Commit 87618e0003dbca0f51f1ef52fa4199bd65212f41
Exists in
master
and in
6 other branches
Merge branch 'upstream-linus' of git://github.com/jgarzik/libata-dev
* 'upstream-linus' of git://github.com/jgarzik/libata-dev: pata_of_platform: Don't use NO_IRQ [libata] ahci: Add ASMedia ASM1061 support [libata] Issue SRST to Sil3726 PMP sata_sis.c: trivial spelling fix ahci_platform: use dev_get_platdata() [libata] libata-scsi.c: Add function parameter documentation
Showing 8 changed files Side-by-side Diff
drivers/ata/ahci.c
... | ... | @@ -390,6 +390,9 @@ |
390 | 390 | /* Promise */ |
391 | 391 | { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ |
392 | 392 | |
393 | + /* Asmedia */ | |
394 | + { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1061 */ | |
395 | + | |
393 | 396 | /* Generic, PCI class code for AHCI */ |
394 | 397 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, |
395 | 398 | PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, |
drivers/ata/ahci_platform.c
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | static int __init ahci_probe(struct platform_device *pdev) |
66 | 66 | { |
67 | 67 | struct device *dev = &pdev->dev; |
68 | - struct ahci_platform_data *pdata = dev->platform_data; | |
68 | + struct ahci_platform_data *pdata = dev_get_platdata(dev); | |
69 | 69 | const struct platform_device_id *id = platform_get_device_id(pdev); |
70 | 70 | struct ata_port_info pi = ahci_port_info[id->driver_data]; |
71 | 71 | const struct ata_port_info *ppi[] = { &pi, NULL }; |
... | ... | @@ -191,7 +191,7 @@ |
191 | 191 | static int __devexit ahci_remove(struct platform_device *pdev) |
192 | 192 | { |
193 | 193 | struct device *dev = &pdev->dev; |
194 | - struct ahci_platform_data *pdata = dev->platform_data; | |
194 | + struct ahci_platform_data *pdata = dev_get_platdata(dev); | |
195 | 195 | struct ata_host *host = dev_get_drvdata(dev); |
196 | 196 | |
197 | 197 | ata_host_detach(host); |
drivers/ata/libata-eh.c
... | ... | @@ -2883,7 +2883,7 @@ |
2883 | 2883 | sata_scr_read(link, SCR_STATUS, &sstatus)) |
2884 | 2884 | rc = -ERESTART; |
2885 | 2885 | |
2886 | - if (rc == -ERESTART || try >= max_tries) { | |
2886 | + if (try >= max_tries) { | |
2887 | 2887 | /* |
2888 | 2888 | * Thaw host port even if reset failed, so that the port |
2889 | 2889 | * can be retried on the next phy event. This risks |
... | ... | @@ -2907,6 +2907,16 @@ |
2907 | 2907 | while (delta) |
2908 | 2908 | delta = schedule_timeout_uninterruptible(delta); |
2909 | 2909 | ata_eh_acquire(ap); |
2910 | + } | |
2911 | + | |
2912 | + /* | |
2913 | + * While disks spinup behind PMP, some controllers fail sending SRST. | |
2914 | + * They need to be reset - as well as the PMP - before retrying. | |
2915 | + */ | |
2916 | + if (rc == -ERESTART) { | |
2917 | + if (ata_is_host_link(link)) | |
2918 | + ata_eh_thaw_port(ap); | |
2919 | + goto out; | |
2910 | 2920 | } |
2911 | 2921 | |
2912 | 2922 | if (try == max_tries - 1) { |
drivers/ata/libata-pmp.c
... | ... | @@ -389,12 +389,9 @@ |
389 | 389 | /* link reports offline after LPM */ |
390 | 390 | link->flags |= ATA_LFLAG_NO_LPM; |
391 | 391 | |
392 | - /* Class code report is unreliable and SRST | |
393 | - * times out under certain configurations. | |
394 | - */ | |
392 | + /* Class code report is unreliable. */ | |
395 | 393 | if (link->pmp < 5) |
396 | - link->flags |= ATA_LFLAG_NO_SRST | | |
397 | - ATA_LFLAG_ASSUME_ATA; | |
394 | + link->flags |= ATA_LFLAG_ASSUME_ATA; | |
398 | 395 | |
399 | 396 | /* port 5 is for SEMB device and it doesn't like SRST */ |
400 | 397 | if (link->pmp == 5) |
drivers/ata/libata-scsi.c
... | ... | @@ -1217,6 +1217,10 @@ |
1217 | 1217 | |
1218 | 1218 | /** |
1219 | 1219 | * __ata_change_queue_depth - helper for ata_scsi_change_queue_depth |
1220 | + * @ap: ATA port to which the device change the queue depth | |
1221 | + * @sdev: SCSI device to configure queue depth for | |
1222 | + * @queue_depth: new queue depth | |
1223 | + * @reason: calling context | |
1220 | 1224 | * |
1221 | 1225 | * libsas and libata have different approaches for associating a sdev to |
1222 | 1226 | * its ata_port. |
drivers/ata/pata_of_platform.c
drivers/ata/sata_sis.c
... | ... | @@ -104,7 +104,7 @@ |
104 | 104 | }; |
105 | 105 | |
106 | 106 | MODULE_AUTHOR("Uwe Koziolek"); |
107 | -MODULE_DESCRIPTION("low-level driver for Silicon Integratad Systems SATA controller"); | |
107 | +MODULE_DESCRIPTION("low-level driver for Silicon Integrated Systems SATA controller"); | |
108 | 108 | MODULE_LICENSE("GPL"); |
109 | 109 | MODULE_DEVICE_TABLE(pci, sis_pci_tbl); |
110 | 110 | MODULE_VERSION(DRV_VERSION); |
include/linux/pci_ids.h