Re: OSS Audio borked between 2.6.6 and 2.6.10

From: Andrew Morton
Date: Mon Mar 14 2005 - 00:58:48 EST


Greg Stark <gsstark@xxxxxxx> wrote:
>
> Greg Stark <gsstark@xxxxxxx> writes:
>
> > Andrew Morton <akpm@xxxxxxxx> writes:
> >
> > > Are you able to narrow it down to something more fine grained than "between
> > > 2.6.6 and 2.6.9-rc1"?
> >
> > Er, I suppose I would have to build some more kernels. Ugh. Is there a good
> > place to start or do I have to just do a binary search?
>
> Oof. I just skimmed the Changelogs. It looks like the i810 OSS drivers got
> quite a rototilling in 2.6.7 and 2.6.8. It also kind of sounds like they
> needed it though.

The 2.6.6 i810_audio.c compiles OK in current kernels with the below patch
applied.

--- 25/sound/oss/i810_audio.c~a 2005-03-13 21:54:00.000000000 -0800
+++ 25-akpm/sound/oss/i810_audio.c 2005-03-13 21:56:29.000000000 -0800
@@ -1758,7 +1758,8 @@ static int i810_mmap(struct file *file,
if (size > (PAGE_SIZE << dmabuf->buforder))
goto out;
ret = -EAGAIN;
- if (remap_page_range(vma, vma->vm_start, virt_to_phys(dmabuf->rawbuf),
+ if (remap_pfn_range(vma, vma->vm_start,
+ virt_to_phys(dmabuf->rawbuf) >> PAGE_SHIFT,
size, vma->vm_page_prot))
goto out;
dmabuf->mapped = 1;
@@ -3349,7 +3350,7 @@ static int i810_pm_suspend(struct pci_de
}
}
}
- pci_save_state(dev,card->pm_save_state); /* XXX do we need this? */
+ pci_save_state(dev); /* XXX do we need this? */
pci_disable_device(dev); /* disable busmastering */
pci_set_power_state(dev,3); /* Zzz. */

@@ -3362,7 +3363,7 @@ static int i810_pm_resume(struct pci_dev
int num_ac97,i=0;
struct i810_card *card=pci_get_drvdata(dev);
pci_enable_device(dev);
- pci_restore_state (dev,card->pm_save_state);
+ pci_restore_state (dev);

/* observation of a toshiba portege 3440ct suggests that the
hardware has to be more or less completely reinitialized from
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/