Lines Matching refs:hwif

128 static void scc_exec_command(ide_hwif_t *hwif, u8 cmd)
130 out_be32((void *)hwif->io_ports.command_addr, cmd);
132 in_be32((void *)(hwif->dma_base + 0x01c));
136 static u8 scc_read_status(ide_hwif_t *hwif)
138 return (u8)in_be32((void *)hwif->io_ports.status_addr);
141 static u8 scc_read_altstatus(ide_hwif_t *hwif)
143 return (u8)in_be32((void *)hwif->io_ports.ctl_addr);
146 static u8 scc_dma_sff_read_status(ide_hwif_t *hwif)
148 return (u8)in_be32((void *)(hwif->dma_base + 4));
151 static void scc_write_devctl(ide_hwif_t *hwif, u8 ctl)
153 out_be32((void *)hwif->io_ports.ctl_addr, ctl);
155 in_be32((void *)(hwif->dma_base + 0x01c));
202 * @hwif: port
209 static void scc_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive)
211 struct scc_ports *ports = ide_get_hwifdata(hwif);
234 * @hwif: port
241 static void scc_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)
243 struct scc_ports *ports = ide_get_hwifdata(hwif);
284 ide_hwif_t *hwif = drive->hwif;
286 u8 dma_stat = scc_dma_sff_read_status(hwif);
293 scc_ide_outb(dma_stat, hwif->dma_base + 4);
310 ide_hwif_t *hwif = drive->hwif;
319 out_be32((void __iomem *)(hwif->dma_base + 8), hwif->dmatable_dma);
322 out_be32((void __iomem *)hwif->dma_base, rw);
325 dma_stat = scc_dma_sff_read_status(hwif);
328 out_be32((void __iomem *)(hwif->dma_base + 4), dma_stat | 6);
335 ide_hwif_t *hwif = drive->hwif;
336 u8 dma_cmd = scc_ide_inb(hwif->dma_base);
339 scc_ide_outb(dma_cmd | 1, hwif->dma_base);
344 ide_hwif_t *hwif = drive->hwif;
348 dma_cmd = scc_ide_inb(hwif->dma_base);
350 scc_ide_outb(dma_cmd & ~1, hwif->dma_base);
352 dma_stat = scc_dma_sff_read_status(hwif);
354 scc_ide_outb(dma_stat | 6, hwif->dma_base + 4);
369 ide_hwif_t *hwif = drive->hwif;
370 void __iomem *dma_base = (void __iomem *)hwif->dma_base;
371 unsigned long intsts_port = hwif->dma_base + 0x014;
378 if (!(in_be32((void __iomem *)hwif->io_ports.ctl_addr)
387 struct request *rq = hwif->rq;
397 ide_port_for_each_dev(i, drive, hwif)
416 unsigned long ctl_base = hwif->config_data;
479 ide_hwif_t *hwif = drive->hwif;
480 u32 int_stat = in_be32((void __iomem *)hwif->dma_base + 0x014);
483 if ((in_be32((void __iomem *)hwif->io_ports.ctl_addr)
497 ide_hwif_t *hwif = drive->hwif;
498 u8 mask = hwif->ultra_mask;
648 struct ide_io_ports *io_ports = &drive->hwif->io_ports;
666 struct ide_io_ports *io_ports = &drive->hwif->io_ports;
685 unsigned long data_addr = drive->hwif->io_ports.data_addr;
701 unsigned long data_addr = drive->hwif->io_ports.data_addr;
716 * @hwif: interface to set up
720 static void init_mmio_iops_scc(ide_hwif_t *hwif)
722 struct pci_dev *dev = to_pci_dev(hwif->dev);
726 ide_set_hwifdata(hwif, ports);
728 hwif->dma_base = dma_base;
729 hwif->config_data = ports->ctl;
734 * @hwif: interface to set up
740 static void init_iops_scc(ide_hwif_t *hwif)
742 struct pci_dev *dev = to_pci_dev(hwif->dev);
744 hwif->hwif_data = NULL;
747 init_mmio_iops_scc(hwif);
750 static int scc_init_dma(ide_hwif_t *hwif, const struct ide_port_info *d)
752 return ide_allocate_dma_engine(hwif);
755 static u8 scc_cable_detect(ide_hwif_t *hwif)
761 * init_hwif_scc - set up hwif
762 * @hwif: interface to set up
769 static void init_hwif_scc(ide_hwif_t *hwif)
772 out_be32((void __iomem *)(hwif->dma_base + 0x018), hwif->dmatable_dma);
774 if (in_be32((void __iomem *)(hwif->config_data + 0xff0)) & CCKCTRL_ATACLKOEN)
775 hwif->ultra_mask = ATA_UDMA6; /* 133MHz */
777 hwif->ultra_mask = ATA_UDMA5; /* 100MHz */