Messages in this thread Patch in this message | | | Date | Tue, 02 Dec 2003 18:31:57 +0100 | From | Takashi Iwai <> | Subject | Re: vanilla 2.6.0-test11 and CS4236 card |
| |
At Tue, 2 Dec 2003 11:06:39 -0600, Joseph Pingenot wrote: > > Howdy. > > I'm having problems getting the CS4236+ driver to recognize my > CS4236B card. pnp finds it on boot: > isapnp: Scanning for PnP cards... > isapnp: Card 'CS4236B' > isapnp: 1 Plug & Play card detected total > > but the ALSA driver doesn't pick it up. > isapnp detection failed and probing for CS4236+ is not supported > CS4236+ soundcard not found or device busy > > Furthermore, after fudging with manually setting it up via modprobe > options, it's still not loading: > CS4236+ soundcard not found or device busy > > This used to work in the 2.4 series kernel without any modprobe.conf > settings; the OSS driver would pick it up. > > Any assistance would be greatly appreciated; this is the only thing holding > me back from 2.6 goodness. ;)
does the attached patch work? (it's untested at all...)
-- Takashi Iwai <tiwai@suse.de> ALSA Developer - www.alsa-project.org --- linux-2.6.0-test11/drivers/pnp/card.c-dist 2003-12-02 18:14:21.000000000 +0100 +++ linux-2.6.0-test11/drivers/pnp/card.c 2003-12-02 18:29:20.000000000 +0100 @@ -26,8 +26,25 @@ { const struct pnp_card_device_id * drv_id = drv->id_table; while (*drv_id->id){ - if (compare_pnp_id(card->id,drv_id->id)) - return drv_id; + if (compare_pnp_id(card->id,drv_id->id)) { + int i = 0; + for (;;) { + int found; + struct pnp_dev *dev; + if (i == PNP_MAX_DEVICES || ! *drv_id->devs[i].id) + return drv_id; + found = 0; + card_for_each_dev(card, dev) { + if (compare_pnp_id(dev->id, drv_id->devs[i].id)) { + found = 1; + break; + } + } + if (! found) + break; + i++; + } + } drv_id++; } return NULL;
| |