ide: keep pointer to struct device instead of struct pci_dev in ide_hwif_t
[deliverable/linux.git] / drivers / ide / pci / siimage.c
index 908f37b4e0ee140f7dca78f6c6e5c6de2efc3484..391eea88c7605a8172e200a5e2d729ddb8827076 100644 (file)
@@ -79,7 +79,7 @@ static int pdev_is_sata(struct pci_dev *pdev)
  
 static inline int is_sata(ide_hwif_t *hwif)
 {
-       return pdev_is_sata(hwif->pci_dev);
+       return pdev_is_sata(to_pci_dev(hwif->dev));
 }
 
 /**
@@ -140,13 +140,14 @@ static inline unsigned long siimage_seldev(ide_drive_t *drive, int r)
 static u8 sil_pata_udma_filter(ide_drive_t *drive)
 {
        ide_hwif_t *hwif = drive->hwif;
+       struct pci_dev *dev = to_pci_dev(hwif->dev);
        unsigned long base = (unsigned long) hwif->hwif_data;
        u8 mask = 0, scsc = 0;
 
        if (hwif->mmio)
                scsc = hwif->INB(base + 0x4A);
        else
-               pci_read_config_byte(hwif->pci_dev, 0x8A, &scsc);
+               pci_read_config_byte(dev, 0x8A, &scsc);
 
        if ((scsc & 0x30) == 0x10)      /* 133 */
                mask = ATA_UDMA6;
@@ -219,19 +220,21 @@ static void sil_set_pio_mode(ide_drive_t *drive, u8 pio)
                mode |= (unit ? 0x10 : 0x01);
                hwif->OUTB(mode, base + addr_mask);
        } else {
-               pci_write_config_word(hwif->pci_dev, addr, speedp);
-               pci_write_config_word(hwif->pci_dev, tfaddr, speedt);
-               pci_read_config_word(hwif->pci_dev, tfaddr-2, &speedp);
+               struct pci_dev *dev = to_pci_dev(hwif->dev);
+
+               pci_write_config_word(dev, addr, speedp);
+               pci_write_config_word(dev, tfaddr, speedt);
+               pci_read_config_word(dev, tfaddr - 2, &speedp);
                speedp &= ~0x200;
                /* Set IORDY for mode 3 or 4 */
                if (pio > 2)
                        speedp |= 0x200;
-               pci_write_config_word(hwif->pci_dev, tfaddr-2, speedp);
+               pci_write_config_word(dev, tfaddr - 2, speedp);
 
-               pci_read_config_byte(hwif->pci_dev, addr_mask, &mode);
+               pci_read_config_byte(dev, addr_mask, &mode);
                mode &= ~(unit ? 0x30 : 0x03);
                mode |= (unit ? 0x10 : 0x01);
-               pci_write_config_byte(hwif->pci_dev, addr_mask, mode);
+               pci_write_config_byte(dev, addr_mask, mode);
        }
 }
 
@@ -250,6 +253,7 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
        u16 dma[]               = { 0x2208, 0x10C2, 0x10C1 };
 
        ide_hwif_t *hwif        = HWIF(drive);
+       struct pci_dev *dev     = to_pci_dev(hwif->dev);
        u16 ultra = 0, multi    = 0;
        u8 mode = 0, unit       = drive->select.b.unit;
        unsigned long base      = (unsigned long)hwif->hwif_data;
@@ -266,10 +270,10 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
                multi = hwif->INW(ma);
                ultra = hwif->INW(ua);
        } else {
-               pci_read_config_byte(hwif->pci_dev, 0x8A, &scsc);
-               pci_read_config_byte(hwif->pci_dev, addr_mask, &mode);
-               pci_read_config_word(hwif->pci_dev, ma, &multi);
-               pci_read_config_word(hwif->pci_dev, ua, &ultra);
+               pci_read_config_byte(dev, 0x8A, &scsc);
+               pci_read_config_byte(dev, addr_mask, &mode);
+               pci_read_config_word(dev, ma, &multi);
+               pci_read_config_word(dev, ua, &ultra);
        }
 
        mode &= ~((unit) ? 0x30 : 0x03);
@@ -293,9 +297,9 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
                hwif->OUTW(multi, ma);
                hwif->OUTW(ultra, ua);
        } else {
-               pci_write_config_byte(hwif->pci_dev, addr_mask, mode);
-               pci_write_config_word(hwif->pci_dev, ma, multi);
-               pci_write_config_word(hwif->pci_dev, ua, ultra);
+               pci_write_config_byte(dev, addr_mask, mode);
+               pci_write_config_word(dev, ma, multi);
+               pci_write_config_word(dev, ua, ultra);
        }
 }
 
@@ -303,6 +307,7 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
 static int siimage_io_ide_dma_test_irq (ide_drive_t *drive)
 {
        ide_hwif_t *hwif        = HWIF(drive);
+       struct pci_dev *dev     = to_pci_dev(hwif->dev);
        u8 dma_altstat          = 0;
        unsigned long addr      = siimage_selreg(hwif, 1);
 
@@ -311,7 +316,7 @@ static int siimage_io_ide_dma_test_irq (ide_drive_t *drive)
                return 1;
 
        /* return 1 if Device INTR asserted */
-       pci_read_config_byte(hwif->pci_dev, addr, &dma_altstat);
+       pci_read_config_byte(dev, addr, &dma_altstat);
        if (dma_altstat & 8)
                return 0;       //return 1;
        return 0;
@@ -377,13 +382,14 @@ static int siimage_mmio_ide_dma_test_irq (ide_drive_t *drive)
 static int sil_sata_busproc(ide_drive_t * drive, int state)
 {
        ide_hwif_t *hwif        = HWIF(drive);
+       struct pci_dev *dev     = to_pci_dev(hwif->dev);
        u32 stat_config         = 0;
        unsigned long addr      = siimage_selreg(hwif, 0);
 
        if (hwif->mmio)
                stat_config = readl((void __iomem *)addr);
        else
-               pci_read_config_dword(hwif->pci_dev, addr, &stat_config);
+               pci_read_config_dword(dev, addr, &stat_config);
 
        switch (state) {
                case BUSSTATE_ON:
@@ -643,7 +649,7 @@ static unsigned int __devinit init_chipset_siimage(struct pci_dev *dev, const ch
 
 static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif)
 {
-       struct pci_dev *dev     = hwif->pci_dev;
+       struct pci_dev *dev     = to_pci_dev(hwif->dev);
        void *addr              = pci_get_drvdata(dev);
        u8 ch                   = hwif->channel;
        hw_regs_t               hw;
@@ -756,12 +762,14 @@ static void __devinit sil_quirkproc(ide_drive_t *drive)
 
 static void __devinit init_iops_siimage(ide_hwif_t *hwif)
 {
+       struct pci_dev *dev = to_pci_dev(hwif->dev);
+
        hwif->hwif_data = NULL;
 
        /* Pessimal until we finish probing */
        hwif->rqsize = 15;
 
-       if (pci_get_drvdata(hwif->pci_dev) == NULL)
+       if (pci_get_drvdata(dev) == NULL)
                return;
 
        init_mmio_iops_siimage(hwif);
@@ -777,11 +785,12 @@ static void __devinit init_iops_siimage(ide_hwif_t *hwif)
 
 static u8 __devinit ata66_siimage(ide_hwif_t *hwif)
 {
+       struct pci_dev *dev = to_pci_dev(hwif->dev);
        unsigned long addr = siimage_selreg(hwif, 0);
        u8 ata66 = 0;
 
-       if (pci_get_drvdata(hwif->pci_dev) == NULL)
-               pci_read_config_byte(hwif->pci_dev, addr, &ata66);
+       if (pci_get_drvdata(dev) == NULL)
+               pci_read_config_byte(dev, addr, &ata66);
        else
                ata66 = hwif->INB(addr);
 
This page took 0.055731 seconds and 5 git commands to generate.