diff options
Diffstat (limited to 'drivers/ide/pci/scc_pata.c')
-rw-r--r-- | drivers/ide/pci/scc_pata.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/ide/pci/scc_pata.c b/drivers/ide/pci/scc_pata.c index fc163a7772a7..d140dfd565a4 100644 --- a/drivers/ide/pci/scc_pata.c +++ b/drivers/ide/pci/scc_pata.c | |||
@@ -126,6 +126,14 @@ static u8 scc_ide_inb(unsigned long port) | |||
126 | return (u8)data; | 126 | return (u8)data; |
127 | } | 127 | } |
128 | 128 | ||
129 | static void scc_exec_command(ide_hwif_t *hwif, u8 cmd) | ||
130 | { | ||
131 | out_be32((void *)hwif->io_ports.command_addr, cmd); | ||
132 | eieio(); | ||
133 | in_be32((void *)(hwif->dma_base + 0x01c)); | ||
134 | eieio(); | ||
135 | } | ||
136 | |||
129 | static u8 scc_read_sff_dma_status(ide_hwif_t *hwif) | 137 | static u8 scc_read_sff_dma_status(ide_hwif_t *hwif) |
130 | { | 138 | { |
131 | return (u8)in_be32((void *)(hwif->dma_base + 4)); | 139 | return (u8)in_be32((void *)(hwif->dma_base + 4)); |
@@ -779,6 +787,7 @@ static void __devinit init_mmio_iops_scc(ide_hwif_t *hwif) | |||
779 | 787 | ||
780 | ide_set_hwifdata(hwif, ports); | 788 | ide_set_hwifdata(hwif, ports); |
781 | 789 | ||
790 | hwif->exec_command = scc_exec_command; | ||
782 | hwif->read_sff_dma_status = scc_read_sff_dma_status; | 791 | hwif->read_sff_dma_status = scc_read_sff_dma_status; |
783 | 792 | ||
784 | hwif->tf_load = scc_tf_load; | 793 | hwif->tf_load = scc_tf_load; |