X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fata%2Fsata_promise.c;h=a7916d72c4caccc9282eecc6e19d19faeaa47563;hb=ce2d3abc292c1eecd9ddc6f03391a0a46c6561dc;hp=baa836881b03e84d0b4af8753f9517e63db4167a;hpb=9bedb799f2d270dc6434473fcab745adc930a85b;p=linux-2.6-omap-h63xx.git diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index baa836881b0..a7916d72c4c 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c @@ -45,7 +45,7 @@ #include "sata_promise.h" #define DRV_NAME "sata_promise" -#define DRV_VERSION "2.04" +#define DRV_VERSION "2.05" enum { @@ -650,9 +650,12 @@ static void pdc_error_intr(struct ata_port *ap, struct ata_queued_cmd *qc, | PDC_PCI_SYS_ERR | PDC1_PCI_PARITY_ERR)) ac_err_mask |= AC_ERR_HOST_BUS; - ehi->action |= ATA_EH_SOFTRESET; + if (sata_scr_valid(ap)) + ehi->serror |= pdc_sata_scr_read(ap, SCR_ERROR); + qc->err_mask |= ac_err_mask; - ata_port_freeze(ap); + + pdc_reset_port(ap); } static inline unsigned int pdc_host_intr( struct ata_port *ap,