Shoot! CCed Alan Cox twice, instead of CCing linux-ide... ---------- Forwarded Message ---------- Subject: [PATCH] (2.6.19-rc6-mm2) pdc202xx_new: fix PIO mode setup Date: Thursday 30 November 2006 20:54 From: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> To: akpm@xxxxxxxx, bzolnier@xxxxxxxxx Cc: alan@xxxxxxxxxxxxxxxxxxx, alan@xxxxxxxxxxxxxxxxxxx Fix pdcnew_tune_drive() to always set the PIO mode requested, not pick the best possible one, change pdcnew_config_drive_xfer_rate() accordingly, and get rid of the duplicate tuneproc() call in config_chipset_for_dma(). Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> drivers/ide/pci/pdc202xx_new.c | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) Index: linux-2.6/drivers/ide/pci/pdc202xx_new.c =================================================================== --- linux-2.6.orig/drivers/ide/pci/pdc202xx_new.c +++ linux-2.6/drivers/ide/pci/pdc202xx_new.c @@ -9,6 +9,7 @@ * Split from: * linux/drivers/ide/pdc202xx.c Version 0.35 Mar. 30, 2002 * Copyright (C) 1998-2002 Andre Hedrick <andre@xxxxxxxxxxxxx> + * Copyright (C) 2005-2006 MontaVista Software, Inc. * Portions Copyright (C) 1999 Promise Technology, Inc. * Author: Frank Tiernan (frankt@xxxxxxxxxxx) * Released under terms of General Public License @@ -168,12 +169,8 @@ static int pdcnew_new_tune_chipset (ide_ */ static void pdcnew_tune_drive(ide_drive_t *drive, u8 pio) { - u8 speed; - - if (pio == 5) pio = 4; - speed = XFER_PIO_0 + ide_get_best_pio_mode(drive, 255, pio, NULL); - - (void)pdcnew_new_tune_chipset(drive, speed); + pio = ide_get_best_pio_mode(drive, pio, 4, NULL); + (void)pdcnew_new_tune_chipset(drive, XFER_PIO_0 + pio); } static u8 pdcnew_new_cable_detect (ide_hwif_t *hwif) @@ -207,10 +204,8 @@ static int config_chipset_for_dma (ide_d speed = ide_dma_speed(drive, pdcnew_ratemask(drive)); - if (!(speed)) { - hwif->tuneproc(drive, 5); + if (!speed) return 0; - } (void) hwif->speedproc(drive, speed); return ide_dma_enable(drive); @@ -234,7 +229,7 @@ static int pdcnew_config_drive_xfer_rate } else if ((id->capability & 8) || (id->field_valid & 2)) { fast_ata_pio: - hwif->tuneproc(drive, 5); + hwif->tuneproc(drive, 255); return hwif->ide_dma_off_quietly(drive); } /* IORDY not supported */ ------------------------------------------------------- - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html