diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-11 20:55:01 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-11 20:55:01 -0500 |
| commit | 87618e0003dbca0f51f1ef52fa4199bd65212f41 (patch) | |
| tree | d814cfe3675352bea6133518b7d93d7052048ece | |
| parent | c1f4246716392ec8693c23cffb969bd73c1b0910 (diff) | |
| parent | 2d5fcc986da944bca8257f358b155eec79fc4120 (diff) | |
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
| -rw-r--r-- | drivers/ata/ahci.c | 3 | ||||
| -rw-r--r-- | drivers/ata/ahci_platform.c | 4 | ||||
| -rw-r--r-- | drivers/ata/libata-eh.c | 12 | ||||
| -rw-r--r-- | drivers/ata/libata-pmp.c | 7 | ||||
| -rw-r--r-- | drivers/ata/libata-scsi.c | 4 | ||||
| -rw-r--r-- | drivers/ata/pata_of_platform.c | 2 | ||||
| -rw-r--r-- | drivers/ata/sata_sis.c | 2 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 2 |
8 files changed, 26 insertions, 10 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index fb7b90b05922..cf26222a93c5 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
| @@ -390,6 +390,9 @@ static const struct pci_device_id ahci_pci_tbl[] = { | |||
| 390 | /* Promise */ | 390 | /* Promise */ |
| 391 | { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ | 391 | { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ |
| 392 | 392 | ||
| 393 | /* Asmedia */ | ||
| 394 | { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1061 */ | ||
| 395 | |||
| 393 | /* Generic, PCI class code for AHCI */ | 396 | /* Generic, PCI class code for AHCI */ |
| 394 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, | 397 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, |
| 395 | PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, | 398 | PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, |
diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c index 004f2ce3dc73..ec555951176e 100644 --- a/drivers/ata/ahci_platform.c +++ b/drivers/ata/ahci_platform.c | |||
| @@ -65,7 +65,7 @@ static struct scsi_host_template ahci_platform_sht = { | |||
| 65 | static int __init ahci_probe(struct platform_device *pdev) | 65 | static int __init ahci_probe(struct platform_device *pdev) |
| 66 | { | 66 | { |
| 67 | struct device *dev = &pdev->dev; | 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 | const struct platform_device_id *id = platform_get_device_id(pdev); | 69 | const struct platform_device_id *id = platform_get_device_id(pdev); |
| 70 | struct ata_port_info pi = ahci_port_info[id->driver_data]; | 70 | struct ata_port_info pi = ahci_port_info[id->driver_data]; |
| 71 | const struct ata_port_info *ppi[] = { &pi, NULL }; | 71 | const struct ata_port_info *ppi[] = { &pi, NULL }; |
| @@ -191,7 +191,7 @@ err0: | |||
| 191 | static int __devexit ahci_remove(struct platform_device *pdev) | 191 | static int __devexit ahci_remove(struct platform_device *pdev) |
| 192 | { | 192 | { |
| 193 | struct device *dev = &pdev->dev; | 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 | struct ata_host *host = dev_get_drvdata(dev); | 195 | struct ata_host *host = dev_get_drvdata(dev); |
| 196 | 196 | ||
| 197 | ata_host_detach(host); | 197 | ata_host_detach(host); |
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index f22957c2769a..a9b282038000 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
| @@ -2883,7 +2883,7 @@ int ata_eh_reset(struct ata_link *link, int classify, | |||
| 2883 | sata_scr_read(link, SCR_STATUS, &sstatus)) | 2883 | sata_scr_read(link, SCR_STATUS, &sstatus)) |
| 2884 | rc = -ERESTART; | 2884 | rc = -ERESTART; |
| 2885 | 2885 | ||
| 2886 | if (rc == -ERESTART || try >= max_tries) { | 2886 | if (try >= max_tries) { |
| 2887 | /* | 2887 | /* |
| 2888 | * Thaw host port even if reset failed, so that the port | 2888 | * Thaw host port even if reset failed, so that the port |
| 2889 | * can be retried on the next phy event. This risks | 2889 | * can be retried on the next phy event. This risks |
| @@ -2909,6 +2909,16 @@ int ata_eh_reset(struct ata_link *link, int classify, | |||
| 2909 | ata_eh_acquire(ap); | 2909 | ata_eh_acquire(ap); |
| 2910 | } | 2910 | } |
| 2911 | 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; | ||
| 2920 | } | ||
| 2921 | |||
| 2912 | if (try == max_tries - 1) { | 2922 | if (try == max_tries - 1) { |
| 2913 | sata_down_spd_limit(link, 0); | 2923 | sata_down_spd_limit(link, 0); |
| 2914 | if (slave) | 2924 | if (slave) |
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c index 104462dbc524..21b80c555c60 100644 --- a/drivers/ata/libata-pmp.c +++ b/drivers/ata/libata-pmp.c | |||
| @@ -389,12 +389,9 @@ static void sata_pmp_quirks(struct ata_port *ap) | |||
| 389 | /* link reports offline after LPM */ | 389 | /* link reports offline after LPM */ |
| 390 | link->flags |= ATA_LFLAG_NO_LPM; | 390 | link->flags |= ATA_LFLAG_NO_LPM; |
| 391 | 391 | ||
| 392 | /* Class code report is unreliable and SRST | 392 | /* Class code report is unreliable. */ |
| 393 | * times out under certain configurations. | ||
| 394 | */ | ||
| 395 | if (link->pmp < 5) | 393 | if (link->pmp < 5) |
| 396 | link->flags |= ATA_LFLAG_NO_SRST | | 394 | link->flags |= ATA_LFLAG_ASSUME_ATA; |
| 397 | ATA_LFLAG_ASSUME_ATA; | ||
| 398 | 395 | ||
| 399 | /* port 5 is for SEMB device and it doesn't like SRST */ | 396 | /* port 5 is for SEMB device and it doesn't like SRST */ |
| 400 | if (link->pmp == 5) | 397 | if (link->pmp == 5) |
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 72a9770ac42f..2a5412e7e9c1 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
| @@ -1217,6 +1217,10 @@ void ata_scsi_slave_destroy(struct scsi_device *sdev) | |||
| 1217 | 1217 | ||
| 1218 | /** | 1218 | /** |
| 1219 | * __ata_change_queue_depth - helper for ata_scsi_change_queue_depth | 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 | * libsas and libata have different approaches for associating a sdev to | 1225 | * libsas and libata have different approaches for associating a sdev to |
| 1222 | * its ata_port. | 1226 | * its ata_port. |
diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c index a72ab0dde4e5..2a472c5bb7db 100644 --- a/drivers/ata/pata_of_platform.c +++ b/drivers/ata/pata_of_platform.c | |||
| @@ -52,7 +52,7 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev) | |||
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | ret = of_irq_to_resource(dn, 0, &irq_res); | 54 | ret = of_irq_to_resource(dn, 0, &irq_res); |
| 55 | if (ret == NO_IRQ) | 55 | if (!ret) |
| 56 | irq_res.start = irq_res.end = 0; | 56 | irq_res.start = irq_res.end = 0; |
| 57 | else | 57 | else |
| 58 | irq_res.flags = 0; | 58 | irq_res.flags = 0; |
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c index 447d9c05fb5a..95ec435f0eb4 100644 --- a/drivers/ata/sata_sis.c +++ b/drivers/ata/sata_sis.c | |||
| @@ -104,7 +104,7 @@ static const struct ata_port_info sis_port_info = { | |||
| 104 | }; | 104 | }; |
| 105 | 105 | ||
| 106 | MODULE_AUTHOR("Uwe Koziolek"); | 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 | MODULE_LICENSE("GPL"); | 108 | MODULE_LICENSE("GPL"); |
| 109 | MODULE_DEVICE_TABLE(pci, sis_pci_tbl); | 109 | MODULE_DEVICE_TABLE(pci, sis_pci_tbl); |
| 110 | MODULE_VERSION(DRV_VERSION); | 110 | MODULE_VERSION(DRV_VERSION); |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 3fdf251389de..172ba70306d1 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -2405,6 +2405,8 @@ | |||
| 2405 | 2405 | ||
| 2406 | #define PCI_VENDOR_ID_AZWAVE 0x1a3b | 2406 | #define PCI_VENDOR_ID_AZWAVE 0x1a3b |
| 2407 | 2407 | ||
| 2408 | #define PCI_VENDOR_ID_ASMEDIA 0x1b21 | ||
| 2409 | |||
| 2408 | #define PCI_VENDOR_ID_TEKRAM 0x1de1 | 2410 | #define PCI_VENDOR_ID_TEKRAM 0x1de1 |
| 2409 | #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 | 2411 | #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 |
| 2410 | 2412 | ||
