diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-03 20:16:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-03 20:16:52 -0400 |
commit | 6b4c555a6bebd3886a20f6947b273398fef24935 (patch) | |
tree | 5226599d5b9336bfee1da8476bba7331654c8b52 /drivers/ata | |
parent | 4e78f00261886ed2710460f5ca5253f6ab6007cf (diff) | |
parent | 5f098a3ea72e73ad3733c3280fd5ee04816dc999 (diff) |
Merge tag 'tag/upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
Pull libata fixes from Jeff Garzik:
1) Fix regression that could cause a misdiagnosis, which in turn could
lead to an erroneous 3.0 Gbps -> 1.5 downshift, particularly when hotplug
and suspend/resume is involved.
2) Fix a regression that led to ata%d controller ids being numbered one
larger than in <= 3.4-rc3 (oh, the horror!). Controller ids should now be
as expected.
3) add some DT, PCI id's
4) ata/pata_arasan_cf: minor cpp fixing/cleaning
* tag 'tag/upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
ata: ahci_platform: Add synopsys ahci controller in DT's compatible list
ata/pata_arasan_cf: Move arasan_cf_pm_ops out of #ifdef, #endif macros
libata: init ata_print_id to 0
ahci: Detect Marvell 88SE9172 SATA controller
libata: skip old error history when counting probe trials
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/ahci.c | 2 | ||||
-rw-r--r-- | drivers/ata/ahci_platform.c | 1 | ||||
-rw-r--r-- | drivers/ata/libata-core.c | 2 | ||||
-rw-r--r-- | drivers/ata/libata-eh.c | 3 | ||||
-rw-r--r-- | drivers/ata/pata_arasan_cf.c | 4 |
5 files changed, 7 insertions, 5 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 79a1e9dd56d9..ebaf67e4b2bc 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -394,6 +394,8 @@ static const struct pci_device_id ahci_pci_tbl[] = { | |||
394 | .driver_data = board_ahci_yes_fbs }, /* 88se9128 */ | 394 | .driver_data = board_ahci_yes_fbs }, /* 88se9128 */ |
395 | { PCI_DEVICE(0x1b4b, 0x9125), | 395 | { PCI_DEVICE(0x1b4b, 0x9125), |
396 | .driver_data = board_ahci_yes_fbs }, /* 88se9125 */ | 396 | .driver_data = board_ahci_yes_fbs }, /* 88se9125 */ |
397 | { PCI_DEVICE(0x1b4b, 0x917a), | ||
398 | .driver_data = board_ahci_yes_fbs }, /* 88se9172 */ | ||
397 | { PCI_DEVICE(0x1b4b, 0x91a3), | 399 | { PCI_DEVICE(0x1b4b, 0x91a3), |
398 | .driver_data = board_ahci_yes_fbs }, | 400 | .driver_data = board_ahci_yes_fbs }, |
399 | 401 | ||
diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c index 0c86c77764bc..9e419e1c2006 100644 --- a/drivers/ata/ahci_platform.c +++ b/drivers/ata/ahci_platform.c | |||
@@ -280,6 +280,7 @@ static struct dev_pm_ops ahci_pm_ops = { | |||
280 | 280 | ||
281 | static const struct of_device_id ahci_of_match[] = { | 281 | static const struct of_device_id ahci_of_match[] = { |
282 | { .compatible = "calxeda,hb-ahci", }, | 282 | { .compatible = "calxeda,hb-ahci", }, |
283 | { .compatible = "snps,spear-ahci", }, | ||
283 | {}, | 284 | {}, |
284 | }; | 285 | }; |
285 | MODULE_DEVICE_TABLE(of, ahci_of_match); | 286 | MODULE_DEVICE_TABLE(of, ahci_of_match); |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 28db50b57b91..23763a1ec570 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -95,7 +95,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev); | |||
95 | static void ata_dev_xfermask(struct ata_device *dev); | 95 | static void ata_dev_xfermask(struct ata_device *dev); |
96 | static unsigned long ata_dev_blacklisted(const struct ata_device *dev); | 96 | static unsigned long ata_dev_blacklisted(const struct ata_device *dev); |
97 | 97 | ||
98 | atomic_t ata_print_id = ATOMIC_INIT(1); | 98 | atomic_t ata_print_id = ATOMIC_INIT(0); |
99 | 99 | ||
100 | struct ata_force_param { | 100 | struct ata_force_param { |
101 | const char *name; | 101 | const char *name; |
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index c61316e9d2f7..d1fbd59ead16 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -3501,7 +3501,8 @@ static int ata_count_probe_trials_cb(struct ata_ering_entry *ent, void *void_arg | |||
3501 | u64 now = get_jiffies_64(); | 3501 | u64 now = get_jiffies_64(); |
3502 | int *trials = void_arg; | 3502 | int *trials = void_arg; |
3503 | 3503 | ||
3504 | if (ent->timestamp < now - min(now, interval)) | 3504 | if ((ent->eflags & ATA_EFLAG_OLD_ER) || |
3505 | (ent->timestamp < now - min(now, interval))) | ||
3505 | return -1; | 3506 | return -1; |
3506 | 3507 | ||
3507 | (*trials)++; | 3508 | (*trials)++; |
diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c index fc2db2a89a6b..3239517f4d90 100644 --- a/drivers/ata/pata_arasan_cf.c +++ b/drivers/ata/pata_arasan_cf.c | |||
@@ -943,9 +943,9 @@ static int arasan_cf_resume(struct device *dev) | |||
943 | 943 | ||
944 | return 0; | 944 | return 0; |
945 | } | 945 | } |
946 | #endif | ||
946 | 947 | ||
947 | static SIMPLE_DEV_PM_OPS(arasan_cf_pm_ops, arasan_cf_suspend, arasan_cf_resume); | 948 | static SIMPLE_DEV_PM_OPS(arasan_cf_pm_ops, arasan_cf_suspend, arasan_cf_resume); |
948 | #endif | ||
949 | 949 | ||
950 | static struct platform_driver arasan_cf_driver = { | 950 | static struct platform_driver arasan_cf_driver = { |
951 | .probe = arasan_cf_probe, | 951 | .probe = arasan_cf_probe, |
@@ -953,9 +953,7 @@ static struct platform_driver arasan_cf_driver = { | |||
953 | .driver = { | 953 | .driver = { |
954 | .name = DRIVER_NAME, | 954 | .name = DRIVER_NAME, |
955 | .owner = THIS_MODULE, | 955 | .owner = THIS_MODULE, |
956 | #ifdef CONFIG_PM | ||
957 | .pm = &arasan_cf_pm_ops, | 956 | .pm = &arasan_cf_pm_ops, |
958 | #endif | ||
959 | }, | 957 | }, |
960 | }; | 958 | }; |
961 | 959 | ||