From: Henrik I. <he...@is...> - 2003-03-30 18:35:00
|
Glad it works for someone... :) Now we only have to figure out why it doesn't work on Vander's machine... I'll put some printk's in it and send a new version to him. /Henrik ----- Original Message ----- From: "Rick Caudill" <ca...@cu...> To: <syl...@li...> Sent: Sunday, March 30, 2003 7:44 PM Subject: RE: [Syllable-developer] Audigy: Problem solved! :) > My SB Live Card works great now! No more Bad Noise(TM) :)! The only > time I have problems is when I move Windows and stuff, the song will > stop playing for a second or two! Hey I will take that any day over Bad > Noise(TM) :)! Great Job Henrik :)! > > Rick Caudill > Development Site: http://www.syllable-desk.tk/ > > > -----Original Message----- > From: syl...@li... > [mailto:syl...@li...] On Behalf Of > Henrik Isaksson > Sent: Saturday, March 29, 2003 10:01 AM > To: syl...@li... > Subject: Re: [Syllable-developer] Audigy: Problem solved! :) > > > > The sound card expects to get page aligned addresses (ie. a > mulptiple of > > > 4096), but Syllable's kmalloc returns ( page + 24 ) byte aligned > addresses. > > > I suppose that the kernel adds some information at the start of the > page. > > > > Nice investigation! I'm also glad I'm not mental, I never would have > guessed > > that was the problem! :D > > If I hadn't found it, I would definitely had gone mental, this was the > weirdest bug I've ever encountered... :o) > > > > I have solved it very temporarily by allocating an extra page of > memory > and > > > then move the pointer to where the next page starts. (crystal clear > sound > > > with no Bad Noise(tm), but it crashes when the memory is supposed to > be > > > freed, at the end of the song...) > > > > Hey, better than *pop* *pop* *pop* *pop* *pop* all the way through the > song ;) > > Hmm... some songs sound like that anyway... :) > > > > I suppose there are two alternatives for a more permanent solution: > > > > > > 1. change kmalloc somehow > > > > I'd rather not; there could be other parts of the kernel or drivers > that > > either rely on that behavour, or work around it. Hmm... > > > > Actually, we could add a MEMF_ALLIGNED flag and just implement it that > way, > > but we'll have to work out what to do with those 24bits the kernel > seems > to > > be using. > > It's 24 bytes, but only 8 comes with each block you allocate, and the > rest > with the page. (The kmalloced memory isn't aligned at all, it just > looked > that way because I always allocated 4096 bytes at a time). I don't think > there's much to do about this, kfree needs this information to be able > to > free the memory later. > > But fear not, for I have found another memory allocation function pair > in > the kernel: > get_free_pages() and free_pages(). Despite their confusing names, one of > them allocates pages and the other one frees them. > > These functions aren't declared anywhere in the include files, so I > don't > know whether it's legitimate to use them. (but I used them anyway, and > it > does seem to work fine) > > You'll find the source code attached. > > /Henrik > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.463 / Virus Database: 262 - Release Date: 3/17/2003 > > > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.463 / Virus Database: 262 - Release Date: 3/17/2003 > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: > The Definitive IT and Networking Event. Be There! > NetWorld+Interop Las Vegas 2003 -- Register today! > http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en > _______________________________________________ > Syllable-developer mailing list > Syl...@li... > https://lists.sourceforge.net/lists/listinfo/syllable-developer > > |