patch-2.4.19 linux-2.4.19/drivers/sound/ad1848.c
Next file: linux-2.4.19/drivers/sound/au1000.c
Previous file: linux-2.4.19/drivers/sound/ad1816.c
Back to the patch index
Back to the overall index
- Lines: 77
- Date:
Fri Aug 2 17:39:44 2002
- Orig file:
linux-2.4.18/drivers/sound/ad1848.c
- Orig date:
Fri Dec 21 09:41:55 2001
diff -urN linux-2.4.18/drivers/sound/ad1848.c linux-2.4.19/drivers/sound/ad1848.c
@@ -33,6 +33,7 @@
* Alan Cox : Added CS4236->4239 identification
* Daniel T. Cobra : Alernate config/mixer for later chips
* Alan Cox : Merged chip idents and config code
+ * Zwane Mwaikambo : Fix ISA PnP scan
*
* TODO
* APM save restore assist code on IBM thinkpad
@@ -3003,11 +3004,10 @@
return(dev);
}
-static struct pci_dev *ad1848_init_generic(struct pci_bus *bus, struct address_info *hw_config, int slot)
+static struct pci_dev *ad1848_init_generic(struct pci_dev *dev, struct address_info *hw_config, int slot)
{
-
- /* Configure Audio device */
- if((ad1848_dev = isapnp_find_dev(bus, ad1848_isapnp_list[slot].vendor, ad1848_isapnp_list[slot].function, NULL)))
+ /* Configure Audio device, point ad1848_dev to device found */
+ if((ad1848_dev = dev))
{
int ret;
ret = ad1848_dev->prepare(ad1848_dev);
@@ -3038,25 +3038,25 @@
return(ad1848_dev);
}
-static int __init ad1848_isapnp_init(struct address_info *hw_config, struct pci_bus *bus, int slot)
+static int __init ad1848_isapnp_init(struct address_info *hw_config, struct pci_dev *dev, int slot)
{
- char *busname = bus->name[0] ? bus->name : ad1848_isapnp_list[slot].name;
+ char *devname = dev->name[0] ? dev->name : ad1848_isapnp_list[slot].name;
- printk(KERN_INFO "ad1848: %s detected\n", busname);
+ printk(KERN_INFO "ad1848: %s detected\n", devname);
/* Initialize this baby. */
- if(ad1848_init_generic(bus, hw_config, slot)) {
+ if(ad1848_init_generic(dev, hw_config, slot)) {
/* We got it. */
printk(KERN_NOTICE "ad1848: ISAPnP reports '%s' at i/o %#x, irq %d, dma %d, %d\n",
- busname,
+ devname,
hw_config->io_base, hw_config->irq, hw_config->dma,
hw_config->dma2);
return 1;
}
else
- printk(KERN_INFO "ad1848: Failed to initialize %s\n", busname);
+ printk(KERN_INFO "ad1848: Failed to initialize %s\n", devname);
return 0;
}
@@ -3080,14 +3080,14 @@
i = isapnpjump;
first = 0;
while(ad1848_isapnp_list[i].card_vendor != 0) {
- static struct pci_bus *bus = NULL;
-
- while ((bus = isapnp_find_card(
- ad1848_isapnp_list[i].card_vendor,
- ad1848_isapnp_list[i].card_device,
- bus))) {
+ static struct pci_dev *dev = NULL;
- if(ad1848_isapnp_init(hw_config, bus, i)) {
+ while ((dev = isapnp_find_dev(NULL,
+ ad1848_isapnp_list[i].vendor,
+ ad1848_isapnp_list[i].function,
+ NULL))) {
+
+ if(ad1848_isapnp_init(hw_config, dev, i)) {
isapnpjump = i; /* start next search from here */
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)