piix/slc90e66: fix PIO1 handling in ->speedproc method
PATCH 7/12 piix/slc90e66: fix PIO1 handling in ->speedproc method
* Don't call {piix,slc90e66}_dma_2_pio() for PIO modes in {piix,slc90e66}_tune_chipset().
* Add PIO1 handling to {piix,slc90e66}_tune_chipset().
* Bump driver version.
--- drivers/ide/pci/piix.c | 9 +++++++-- drivers/ide/pci/slc90e66.c | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-)
drivers/ide/pci/piix.c +7 -2
@@ -1,5 +1,5 @@/* -* linux/drivers/ide/pci/piix.c Version 0.50 Jun 10, 2007 +* linux/drivers/ide/pci/piix.c Version 0.51 Jul 6, 2007 * * Copyright (C) 1998-1999 Andrzej Krzysztofowicz, Author and Maintainer * Copyright (C) 1998-2000 Andre Hedrick <[email protected]>
@@ -269,6 +269,7 @@ static int piix_tune_chipset (ide_drive_case XFER_PIO_4 :case XFER_PIO_3 :case XFER_PIO_2 : +case XFER_PIO_1 :case XFER_PIO_0 :break ;default :return -1 ; }
@@ -299,7 +300,11 @@ static int piix_tune_chipset (ide_drive_pci_write_config_byte (dev,0x55 , (u8 ) reg55 & ~w_flag); } -piix_tune_pio (drive,piix_dma_2_pio (speed)); +if (speed >XFER_PIO_4 ) +piix_tune_pio (drive,piix_dma_2_pio (speed)); +else +piix_tune_pio (drive, speed -XFER_PIO_0 ); +return ide_config_drive_speed (drive, speed); }
drivers/ide/pci/slc90e66.c +7 -2
@@ -1,5 +1,5 @@/* -* linux/drivers/ide/pci/slc90e66.c Version 0.14 February 8, 2007 +* linux/drivers/ide/pci/slc90e66.c Version 0.15 Jul 6, 2007 * * Copyright (C) 2000-2002 Andre Hedrick <[email protected]> * Copyright (C) 2006-2007 MontaVista Software, Inc. <[email protected]>
@@ -136,6 +136,7 @@ static int slc90e66_tune_chipset (ide_drcase XFER_PIO_4 :case XFER_PIO_3 :case XFER_PIO_2 : +case XFER_PIO_1 :case XFER_PIO_0 :break ;default :return -1 ; }
@@ -156,7 +157,11 @@ static int slc90e66_tune_chipset (ide_drpci_write_config_word (dev,0x4a , reg4a & ~a_speed); } -slc90e66_tune_pio (drive,slc90e66_dma_2_pio (speed)); +if (speed >XFER_PIO_4 ) +slc90e66_tune_pio (drive,slc90e66_dma_2_pio (speed)); +else +slc90e66_tune_pio (drive, speed -XFER_PIO_0 ); +return ide_config_drive_speed (drive, speed); }
Quoted 2 lines · Bartlomiej Zolnierkiewicz
* Don't call {piix,slc90e66}_dma_2_pio() for PIO modes in {piix,slc90e66}_tune_chipset().
XFER_PIO_* switch cases might have been be deleted from
{piix,slc90e66}_dma_2_pio() then...
Quoted 5 lines
* Add PIO1 handling to {piix,slc90e66}_tune_chipset().
* Bump driver version.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
MBR, Sergei
Quoted 7 lines · Sergei Shtylyov
Quoted 2 lines · Bartlomiej Zolnierkiewicz
* Don't call {piix,slc90e66}_dma_2_pio() for PIO modes in {piix,slc90e66}_tune_chipset().
XFER_PIO_* switch cases might have been be deleted from
{piix,slc90e66}_dma_2_pio() then...
Uh, I overlooked these...
*_dma_2_pio() are to go away in the future so not a big issue...
Quoted 7 lines
Quoted 5 lines
* Add PIO1 handling to {piix,slc90e66}_tune_chipset().
* Bump driver version.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>Acked-by Sergei Shtylyov <[email protected]>
added