ide: skip "VLB sync" if host uses MMIO
PATCH 2/5 ide: skip "VLB sync" if host uses MMIO
* Skip "VLB sync" in ata_{in,out}put_data() if host uses MMIO.
* Use I/O ops directly in ata_vlb_sync() an drop no longer needed 'ide_drive_t *drive' argument.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-iops.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)
drivers/ide/ide-iops.c +10 -10
@@ -227,11 +227,11 @@ static void ide_tf_read(ide_drive_t *dri* of the sector count register location, with interrupts disabled * to ensure that the reads all happen together. */ -static void ata_vlb_sync (ide_drive_t *drive,unsigned long port) +static void ata_vlb_sync (unsigned long port) { - (void )HWIF (drive)->INB (port); - (void )HWIF (drive)->INB (port); - (void )HWIF (drive)->INB (port); + (void )inb (port); + (void )inb (port); + (void )inb (port); }/*
@@ -255,9 +255,9 @@ static void ata_input_data(ide_drive_t *if (io_32bit) {unsigned long uninitialized_var (flags ); -if (io_32bit &2 ) { +if ((io_32bit &2 ) && !mmio) {local_irq_save (flags); -ata_vlb_sync (drive, io_ports->nsect_addr); +ata_vlb_sync (io_ports->nsect_addr); }if (mmio)
@@ -265,7 +265,7 @@ static void ata_input_data(ide_drive_t *else insl (data_addr, buf, len /4 ); -if (io_32bit &2 ) +if ((io_32bit &2 ) && !mmio)local_irq_restore (flags);if ((len &3 ) >=2 ) {
@@ -298,9 +298,9 @@ static void ata_output_data(ide_drive_tif (io_32bit) {unsigned long uninitialized_var (flags ); -if (io_32bit &2 ) { +if ((io_32bit &2 ) && !mmio) {local_irq_save (flags); -ata_vlb_sync (drive, io_ports->nsect_addr); +ata_vlb_sync (io_ports->nsect_addr); }if (mmio)
@@ -308,7 +308,7 @@ static void ata_output_data(ide_drive_telse outsl (data_addr, buf, len /4 ); -if (io_32bit &2 ) +if ((io_32bit &2 ) && !mmio)local_irq_restore (flags);if ((len &3 ) >=2 ) {
Quoted 6 lines · Bartlomiej Zolnierkiewicz
* Skip "VLB sync" in ata_{in,out}put_data() if host uses MMIO.
* Use I/O ops directly in
ata_vlb_sync()an drop no longer needed 'ide_drive_t*drive' argument.Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
MBR, Sergei