Commit 943547ab authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Jeff Garzik

pata_amd/pata_via: de-couple programming of PIO/MWDMA and UDMA timings

* Don't program UDMA timings when programming PIO or MWDMA modes.

  This has also a nice side-effect of fixing regression added by commit
  681c80b5 ("libata: correct handling of
  SRST reset sequences") (->set_piomode method for PIO0 is called before
  ->cable_detect method which checks UDMA timings to get the cable type).

* Bump driver version.
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tested-by: default avatar"Thomas Lindroth" <thomas.lindroth@gmail.com>
Acked-by: default avatarAlan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Tejun Heo <htejun@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 6ba86958
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include <linux/libata.h> #include <linux/libata.h>
#define DRV_NAME "pata_amd" #define DRV_NAME "pata_amd"
#define DRV_VERSION "0.3.9" #define DRV_VERSION "0.3.10"
/** /**
* timing_setup - shared timing computation and load * timing_setup - shared timing computation and load
...@@ -115,7 +115,8 @@ static void timing_setup(struct ata_port *ap, struct ata_device *adev, int offse ...@@ -115,7 +115,8 @@ static void timing_setup(struct ata_port *ap, struct ata_device *adev, int offse
} }
/* UDMA timing */ /* UDMA timing */
pci_write_config_byte(pdev, offset + 0x10 + (3 - dn), t); if (at.udma)
pci_write_config_byte(pdev, offset + 0x10 + (3 - dn), t);
} }
/** /**
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
#include <linux/dmi.h> #include <linux/dmi.h>
#define DRV_NAME "pata_via" #define DRV_NAME "pata_via"
#define DRV_VERSION "0.3.2" #define DRV_VERSION "0.3.3"
/* /*
* The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx * The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx
...@@ -296,7 +296,7 @@ static void via_do_set_mode(struct ata_port *ap, struct ata_device *adev, int mo ...@@ -296,7 +296,7 @@ static void via_do_set_mode(struct ata_port *ap, struct ata_device *adev, int mo
} }
/* Set UDMA unless device is not UDMA capable */ /* Set UDMA unless device is not UDMA capable */
if (udma_type) { if (udma_type && t.udma) {
u8 cable80_status; u8 cable80_status;
/* Get 80-wire cable detection bit */ /* Get 80-wire cable detection bit */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment