Lines Matching refs:hwif

54 static u8 superio_read_status(ide_hwif_t *hwif)
56 return superio_ide_inb(hwif->io_ports.status_addr);
59 static u8 superio_dma_sff_read_status(ide_hwif_t *hwif)
61 return superio_ide_inb(hwif->dma_base + ATA_DMA_STATUS);
67 struct ide_io_ports *io_ports = &drive->hwif->io_ports;
99 static void superio_init_iops(struct hwif_s *hwif)
101 struct pci_dev *pdev = to_pci_dev(hwif->dev);
103 u8 port = hwif->channel, tmp;
124 ide_hwif_t *hwif = drive->hwif;
125 struct pci_dev *dev = to_pci_dev(hwif->dev);
126 unsigned int bit, other, new, *old = (unsigned int *) hwif->select_data;
133 bit = 1 << (8 + hwif->channel);
141 bit = 1 << (20 + (drive->dn & 1) + (hwif->channel << 1));
142 other = 1 << (20 + (1 - (drive->dn & 1)) + (hwif->channel << 1));
175 outb(drive->select | ATA_DEVICE_OBS, drive->hwif->io_ports.device_addr);
186 ide_hwif_t *hwif = drive->hwif;
189 dma_stat = hwif->dma_ops->dma_sff_read_status(hwif);
191 dma_cmd = inb(hwif->dma_base + ATA_DMA_CMD);
193 outb(dma_cmd & ~1, hwif->dma_base + ATA_DMA_CMD);
195 dma_cmd = inb(hwif->dma_base + ATA_DMA_CMD);
196 outb(dma_cmd | 6, hwif->dma_base + ATA_DMA_CMD);
204 static void init_hwif_ns87415 (ide_hwif_t *hwif)
206 struct pci_dev *dev = to_pci_dev(hwif->dev);
224 using_inta = progif & (1 << (hwif->channel << 1));
226 using_inta = ctrl & (1 << (4 + hwif->channel));
227 if (hwif->mate) {
228 hwif->select_data = hwif->mate->select_data;
230 hwif->select_data = (unsigned long)
235 *((unsigned int *)hwif->select_data) = ctrl;
250 outb(12, hwif->io_ports.ctl_addr);
252 outb(8, hwif->io_ports.ctl_addr);
255 stat = hwif->tp_ops->read_status(hwif);
263 hwif->irq = pci_get_legacy_ide_irq(dev, hwif->channel);
265 if (!hwif->dma_base)
268 outb(0x60, hwif->dma_base + ATA_DMA_STATUS);