|
@@ -86,6 +86,17 @@ void auide_outsw(unsigned long port, void *addr, u32 count)
|
|
ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp);
|
|
ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void au1xxx_input_data(ide_drive_t *drive, struct request *rq,
|
|
|
|
+ void *buf, unsigned int len)
|
|
|
|
+{
|
|
|
|
+ auide_insw(drive->hwif->io_ports.data_addr, buf, (len + 1) / 2);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void au1xxx_output_data(ide_drive_t *drive, struct request *rq,
|
|
|
|
+ void *buf, unsigned int len)
|
|
|
|
+{
|
|
|
|
+ auide_outsw(drive->hwif->io_ports.data_addr, buf, (len + 1) / 2);
|
|
|
|
+}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio)
|
|
static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio)
|
|
@@ -596,6 +607,9 @@ static int au_ide_probe(struct device *dev)
|
|
*/
|
|
*/
|
|
|
|
|
|
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA
|
|
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA
|
|
|
|
+ hwif->input_data = au1xxx_input_data;
|
|
|
|
+ hwif->output_data = au1xxx_output_data;
|
|
|
|
+
|
|
hwif->INSW = auide_insw;
|
|
hwif->INSW = auide_insw;
|
|
hwif->OUTSW = auide_outsw;
|
|
hwif->OUTSW = auide_outsw;
|
|
#endif
|
|
#endif
|