Lines Matching refs:hwif
76 static inline int is_sata(ide_hwif_t *hwif) in is_sata() argument
78 return pdev_is_sata(to_pci_dev(hwif->dev)); in is_sata()
92 static unsigned long siimage_selreg(ide_hwif_t *hwif, int r) in siimage_selreg() argument
94 unsigned long base = (unsigned long)hwif->hwif_data; in siimage_selreg()
97 if (hwif->host_flags & IDE_HFLAG_MMIO) in siimage_selreg()
98 base += hwif->channel << 6; in siimage_selreg()
100 base += hwif->channel << 4; in siimage_selreg()
116 ide_hwif_t *hwif = drive->hwif; in siimage_seldev() local
117 unsigned long base = (unsigned long)hwif->hwif_data; in siimage_seldev()
121 if (hwif->host_flags & IDE_HFLAG_MMIO) in siimage_seldev()
122 base += hwif->channel << 6; in siimage_seldev()
124 base += hwif->channel << 4; in siimage_seldev()
197 ide_hwif_t *hwif = drive->hwif; in sil_pata_udma_filter() local
198 struct pci_dev *dev = to_pci_dev(hwif->dev); in sil_pata_udma_filter()
199 unsigned long base = (unsigned long)hwif->hwif_data; in sil_pata_udma_filter()
202 base += (hwif->host_flags & IDE_HFLAG_MMIO) ? 0x4A : 0x8A; in sil_pata_udma_filter()
239 static void sil_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) in sil_set_pio_mode() argument
244 struct pci_dev *dev = to_pci_dev(hwif->dev); in sil_set_pio_mode()
249 unsigned long tfaddr = siimage_selreg(hwif, 0x02); in sil_set_pio_mode()
250 unsigned long base = (unsigned long)hwif->hwif_data; in sil_set_pio_mode()
253 u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0; in sil_set_pio_mode()
254 u8 addr_mask = hwif->channel ? (mmio ? 0xF4 : 0x84) in sil_set_pio_mode()
298 static void sil_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive) in sil_set_dma_mode() argument
304 struct pci_dev *dev = to_pci_dev(hwif->dev); in sil_set_dma_mode()
305 unsigned long base = (unsigned long)hwif->hwif_data; in sil_set_dma_mode()
308 u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0; in sil_set_dma_mode()
309 u8 scsc = 0, addr_mask = hwif->channel ? (mmio ? 0xF4 : 0x84) in sil_set_dma_mode()
324 scsc = is_sata(hwif) ? 1 : scsc; in sil_set_dma_mode()
341 static int sil_test_irq(ide_hwif_t *hwif) in sil_test_irq() argument
343 struct pci_dev *dev = to_pci_dev(hwif->dev); in sil_test_irq()
344 unsigned long addr = siimage_selreg(hwif, 1); in sil_test_irq()
361 ide_hwif_t *hwif = drive->hwif; in siimage_mmio_dma_test_irq() local
363 = (void __iomem *)hwif->sata_scr[SATA_ERROR_OFFSET]; in siimage_mmio_dma_test_irq()
366 unsigned long base = (unsigned long)hwif->hwif_data; in siimage_mmio_dma_test_irq()
370 if (ext_stat & ((hwif->channel) ? 0x40 : 0x10)) { in siimage_mmio_dma_test_irq()
387 if (readb((void __iomem *)(hwif->dma_base + ATA_DMA_STATUS)) & 4) in siimage_mmio_dma_test_irq()
395 if (drive->hwif->host_flags & IDE_HFLAG_MMIO) in siimage_dma_test_irq()
411 ide_hwif_t *hwif = drive->hwif; in sil_sata_reset_poll() local
413 = (void __iomem *)hwif->sata_scr[SATA_STATUS_OFFSET]; in sil_sata_reset_poll()
421 hwif->name, sata_stat); in sil_sata_reset_poll()
549 static void init_mmio_iops_siimage(ide_hwif_t *hwif) in init_mmio_iops_siimage() argument
551 struct pci_dev *dev = to_pci_dev(hwif->dev); in init_mmio_iops_siimage()
554 u8 ch = hwif->channel; in init_mmio_iops_siimage()
555 struct ide_io_ports *io_ports = &hwif->io_ports; in init_mmio_iops_siimage()
561 hwif->host_flags |= IDE_HFLAG_MMIO; in init_mmio_iops_siimage()
563 hwif->hwif_data = addr; in init_mmio_iops_siimage()
595 hwif->sata_scr[SATA_STATUS_OFFSET] = base + 0x104; in init_mmio_iops_siimage()
596 hwif->sata_scr[SATA_ERROR_OFFSET] = base + 0x108; in init_mmio_iops_siimage()
597 hwif->sata_scr[SATA_CONTROL_OFFSET] = base + 0x100; in init_mmio_iops_siimage()
600 hwif->irq = dev->irq; in init_mmio_iops_siimage()
602 hwif->dma_base = (unsigned long)addr + (ch ? 0x08 : 0x00); in init_mmio_iops_siimage()
632 ide_hwif_t *hwif = drive->hwif; in sil_quirkproc() local
635 if (!is_sata(hwif) || !is_dev_seagate_sata(drive)) in sil_quirkproc()
636 hwif->rqsize = 128; in sil_quirkproc()
649 static void init_iops_siimage(ide_hwif_t *hwif) in init_iops_siimage() argument
651 struct pci_dev *dev = to_pci_dev(hwif->dev); in init_iops_siimage()
654 hwif->hwif_data = NULL; in init_iops_siimage()
657 hwif->rqsize = 15; in init_iops_siimage()
660 init_mmio_iops_siimage(hwif); in init_iops_siimage()
670 static u8 sil_cable_detect(ide_hwif_t *hwif) in sil_cable_detect() argument
672 struct pci_dev *dev = to_pci_dev(hwif->dev); in sil_cable_detect()
673 unsigned long addr = siimage_selreg(hwif, 0); in sil_cable_detect()