*  Remove a couple of work-arounds specific to C1010 if 
         *  they are not desirable. See `sym_fw2.h' for more details.
         */
-       if (!(np->device_id == PCI_DEVICE_ID_LSI_53C1010_66 &&
+       if (!(np->s.device->device == PCI_DEVICE_ID_LSI_53C1010_66 &&
              np->s.device->revision < 0x1 &&
              np->pciclk_khz < 60000)) {
                scripta0->datao_phase[0] = cpu_to_scr(SCR_NO_OP);
                scripta0->datao_phase[1] = cpu_to_scr(0);
        }
-       if (!(np->device_id == PCI_DEVICE_ID_LSI_53C1010_33 /* &&
+       if (!(np->s.device->device == PCI_DEVICE_ID_LSI_53C1010_33 /* &&
              np->s.device->revision < 0xff */)) {
                scripta0->sel_done[0] = cpu_to_scr(SCR_NO_OP);
                scripta0->sel_done[1] = cpu_to_scr(0);
 
 
        copy_info(&info, "Chip " NAME53C "%s, device id 0x%x, "
                         "revision id 0x%x\n", np->s.chip_name,
-                        np->device_id, np->s.device->revision);
+                        np->s.device->device, np->s.device->revision);
        copy_info(&info, "At PCI address %s, IRQ " IRQ_FMT "\n",
                pci_name(np->s.device), IRQ_PRM(np->s.device->irq));
        copy_info(&info, "Min. period factor %d, %s SCSI BUS%s\n",
        np->verbose     = sym_driver_setup.verbose;
        np->s.device    = pdev;
        np->s.unit      = unit;
-       np->device_id   = dev->chip.device_id;
        np->features    = dev->chip.features;
        np->clock_divn  = dev->chip.nr_divisor;
        np->maxoffs     = dev->chip.offset_max;
 static void __devinit sym_get_nvram(struct sym_device *devp, struct sym_nvram *nvp)
 {
        devp->nvram = nvp;
-       devp->device_id = devp->chip.device_id;
        nvp->type = 0;
 
        sym_read_nvram(devp, nvp);
 
         *  In dual channel mode, contention occurs if internal cycles
         *  are used. Disable internal cycles.
         */
-       if (np->device_id == PCI_DEVICE_ID_LSI_53C1010_33 &&
+       if (np->s.device->device == PCI_DEVICE_ID_LSI_53C1010_33 &&
            np->s.device->revision < 0x1)
                np->rv_ccntl0   |=  DILS;
 
         *  this driver. The generic ncr driver that does not use 
         *  LOAD/STORE instructions does not need this work-around.
         */
-       if ((np->device_id == PCI_DEVICE_ID_NCR_53C810 &&
+       if ((np->s.device->device == PCI_DEVICE_ID_NCR_53C810 &&
             np->s.device->revision >= 0x10 && np->s.device->revision <= 0x11) ||
-           (np->device_id == PCI_DEVICE_ID_NCR_53C860 &&
+           (np->s.device->device == PCI_DEVICE_ID_NCR_53C860 &&
             np->s.device->revision <= 0x1))
                np->features &= ~(FE_WRIE|FE_ERL|FE_ERMP);
 
        if ((SYM_SETUP_SCSI_LED || 
             (nvram->type == SYM_SYMBIOS_NVRAM ||
              (nvram->type == SYM_TEKRAM_NVRAM &&
-              np->device_id == PCI_DEVICE_ID_NCR_53C895))) &&
+              np->s.device->device == PCI_DEVICE_ID_NCR_53C895))) &&
            !(np->features & FE_LEDC) && !(np->sv_gpcntl & 0x01))
                np->features |= FE_LED0;
 
        /*
         *  For now, disable AIP generation on C1010-66.
         */
-       if (np->device_id == PCI_DEVICE_ID_LSI_53C1010_66)
+       if (np->s.device->device == PCI_DEVICE_ID_LSI_53C1010_66)
                OUTB(np, nc_aipcntl1, DISAIP);
 
        /*
         *  that from SCRIPTS for each selection/reselection, but 
         *  I just don't want. :)
         */
-       if (np->device_id == PCI_DEVICE_ID_LSI_53C1010_33 &&
+       if (np->s.device->device == PCI_DEVICE_ID_LSI_53C1010_33 &&
            np->s.device->revision < 1)
                OUTB(np, nc_stest1, INB(np, nc_stest1) | 0x30);
 
         *  Disable overlapped arbitration for some dual function devices, 
         *  regardless revision id (kind of post-chip-design feature. ;-))
         */
-       if (np->device_id == PCI_DEVICE_ID_NCR_53C875)
+       if (np->s.device->device == PCI_DEVICE_ID_NCR_53C875)
                OUTB(np, nc_ctest0, (1<<5));
-       else if (np->device_id == PCI_DEVICE_ID_NCR_53C896)
+       else if (np->s.device->device == PCI_DEVICE_ID_NCR_53C896)
                np->rv_ccntl0 |= DPR;
 
        /*