![]() | |||||||||||||
Messages in this thread |
Verified that included patch together with patch from Tobias Diedrich <ranma@gmx.at>: http://www.cs.helsinki.fi/linux/linux-kernel/2001-44/1023.html completely fixes problems with i810_audio.c I had under KDE (kernel 2.4.13-ac5). Andris On Saturday 03 November 2001 11:34, Andris Pavenis wrote: > On Monday 22 October 2001 14:32, Alan Cox wrote: > > > reverted one of the patches between 2.4.6-ac1 and 2.4.6-ac2) which > > > mostly works for KDE with fragment size up to 512 bytes. 2.4.7 worked > > > with any fragment size set in kcontrol. > > > > Thanks > > > > > I haven't tested much under GNOME, as I'm starting it very seldom > > > > Gnome esd is very simple in how it drives the hardware - it works in many > > cases where drivers are buggy and arts shows up problems > > Verified that reverting one patch from 2.4.6-ac time partially fixes > i810_audio problems for 2.4.13-ac5 for KDE (it works with fragment size not > larger than 512 bytes and gives garbled sound for larger fragment size). > This is the same patch which reverting helped me earlier. Below are diffs. > > Andris > > --- i810_audio.c.orig Tue Oct 30 09:17:35 2001 > +++ i810_audio.c Sat Nov 3 11:00:45 2001 > @@ -1405,30 +1405,23 @@ > if (dmabuf->count < 0) { > dmabuf->count = 0; > } > - cnt = dmabuf->dmasize - dmabuf->fragsize - dmabuf->count; > - // this is to make the copy_from_user simpler below > - if(cnt > (dmabuf->dmasize - swptr)) > - cnt = dmabuf->dmasize - swptr; > + cnt = dmabuf->dmasize - swptr; > + if(cnt > (dmabuf->dmasize - dmabuf->count)) > + cnt = dmabuf->dmasize - dmabuf->count; > spin_unlock_irqrestore(&state->card->lock, flags); > > -#ifdef DEBUG2 > - printk(KERN_INFO "i810_audio: i810_write: %d bytes available space\n", > cnt); > -#endif > if (cnt > count) > cnt = count; > if (cnt <= 0) { > unsigned long tmo; > // There is data waiting to be played > + i810_update_lvi(state,0); > if(!dmabuf->enable && dmabuf->count) { > /* force the starting incase SETTRIGGER has been used */ > /* to stop it, otherwise this is a deadlock situation */ > dmabuf->trigger |= PCM_ENABLE_OUTPUT; > start_dac(state); > } > - // Update the LVI pointer in case we have already > - // written data in this syscall and are just waiting > - // on the tail bit of data > - i810_update_lvi(state,0); > if (file->f_flags & O_NONBLOCK) { > if (!ret) ret = -EAGAIN; > goto ret; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 12:13 [W:0.519 / U:0.020 seconds] ©2003-2008 Jasper Spaans | |||||||||||||