diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-15 14:18:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-15 14:18:10 -0400 |
commit | b312bf359e20cc39c00d480fd40a24c245d80bf7 (patch) | |
tree | 756247f113688403cf35d1d7437fc92d390279d2 /drivers/ata/libata-pmp.c | |
parent | dc221eae08eea3b0db127d1f152fac24d10b6a52 (diff) | |
parent | 2640d7c0b8d5d9d9ee303b8cd09f5124176f6239 (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
AHCI: Remove an unnecessary flush from ahci_qc_issue
AHCI: speed up resume
[libata] Add support for VPD page b1
ata: endianness annotations in pata drivers
libata-eh: update atapi_eh_request_sense() to take @dev instead of @qc
[libata] sata_svw: update code comments relating to data corruption
libata/ahci: enclosure management support
libata: improve EH internal command timeout handling
libata: use ULONG_MAX to terminate reset timeout table
libata: improve EH retry delay handling
libata: consistently use msecs for time durations
Diffstat (limited to 'drivers/ata/libata-pmp.c')
-rw-r--r-- | drivers/ata/libata-pmp.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c index 7daf4c0f6216..b65db309c181 100644 --- a/drivers/ata/libata-pmp.c +++ b/drivers/ata/libata-pmp.c | |||
@@ -727,19 +727,12 @@ static int sata_pmp_eh_recover_pmp(struct ata_port *ap, | |||
727 | } | 727 | } |
728 | 728 | ||
729 | if (tries) { | 729 | if (tries) { |
730 | int sleep = ehc->i.flags & ATA_EHI_DID_RESET; | ||
731 | |||
732 | /* consecutive revalidation failures? speed down */ | 730 | /* consecutive revalidation failures? speed down */ |
733 | if (reval_failed) | 731 | if (reval_failed) |
734 | sata_down_spd_limit(link); | 732 | sata_down_spd_limit(link); |
735 | else | 733 | else |
736 | reval_failed = 1; | 734 | reval_failed = 1; |
737 | 735 | ||
738 | ata_dev_printk(dev, KERN_WARNING, | ||
739 | "retrying reset%s\n", | ||
740 | sleep ? " in 5 secs" : ""); | ||
741 | if (sleep) | ||
742 | ssleep(5); | ||
743 | ehc->i.action |= ATA_EH_RESET; | 736 | ehc->i.action |= ATA_EH_RESET; |
744 | goto retry; | 737 | goto retry; |
745 | } else { | 738 | } else { |
@@ -785,7 +778,8 @@ static int sata_pmp_eh_handle_disabled_links(struct ata_port *ap) | |||
785 | * SError.N working. | 778 | * SError.N working. |
786 | */ | 779 | */ |
787 | sata_link_hardreset(link, sata_deb_timing_normal, | 780 | sata_link_hardreset(link, sata_deb_timing_normal, |
788 | jiffies + ATA_TMOUT_INTERNAL_QUICK, NULL, NULL); | 781 | ata_deadline(jiffies, ATA_TMOUT_INTERNAL_QUICK), |
782 | NULL, NULL); | ||
789 | 783 | ||
790 | /* unconditionally clear SError.N */ | 784 | /* unconditionally clear SError.N */ |
791 | rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG); | 785 | rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG); |
@@ -990,10 +984,7 @@ static int sata_pmp_eh_recover(struct ata_port *ap) | |||
990 | goto retry; | 984 | goto retry; |
991 | 985 | ||
992 | if (--pmp_tries) { | 986 | if (--pmp_tries) { |
993 | ata_port_printk(ap, KERN_WARNING, | ||
994 | "failed to recover PMP, retrying in 5 secs\n"); | ||
995 | pmp_ehc->i.action |= ATA_EH_RESET; | 987 | pmp_ehc->i.action |= ATA_EH_RESET; |
996 | ssleep(5); | ||
997 | goto retry; | 988 | goto retry; |
998 | } | 989 | } |
999 | 990 | ||