--- ./drivers/sound/ad1816.c-orig Sat Mar 30 10:56:24 2002 +++ ./drivers/sound/ad1816.c Sat Mar 30 11:35:13 2002 @@ -1326,18 +1326,13 @@ { &ad1816_init_generic, "Analog Devices 1816A" } }; -static struct { - unsigned short card_vendor, card_device; - unsigned short vendor; - unsigned short function; - struct ad1816_data *data; -} isapnp_ad1816_list[] __initdata = { +static struct isapnp_device_id isapnp_ad1816_list[] __initdata = { { ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('A','D','S'), ISAPNP_FUNCTION(0x7150), - &ad1816_pnp_data[0] }, + (unsigned long)&ad1816_pnp_data[0] }, { ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('A','D','S'), ISAPNP_FUNCTION(0x7180), - &ad1816_pnp_data[1] }, + (unsigned long)&ad1816_pnp_data[1] }, {0} }; @@ -1349,13 +1344,14 @@ struct pci_dev *idev = NULL; /* You missed the init func? That's bad. */ - if(isapnp_ad1816_list[slot].data->initfunc) { - char *busname = bus->name[0] ? bus->name : isapnp_ad1816_list[slot].data->name; + if(((struct ad1816_data *)isapnp_ad1816_list[slot].driver_data)->initfunc) { + char *busname = bus->name[0] ? bus->name : + ((struct ad1816_data *)isapnp_ad1816_list[slot].driver_data)->name; printk(KERN_INFO "ad1816: %s detected\n", busname); /* Initialize this baby. */ - if((idev = isapnp_ad1816_list[slot].data->initfunc(bus, card, hw_config))) { + if((idev = ((struct ad1816_data *)isapnp_ad1816_list[slot].driver_data)->initfunc(bus, card, hw_config))) { /* We got it. */ printk(KERN_NOTICE "ad1816: ISAPnP reports '%s' at i/o %#x, irq %d, dma %d, %d\n",