aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/ata_piix.c40
-rw-r--r--drivers/scsi/libata-core.c20
2 files changed, 23 insertions, 37 deletions
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c
index 333d69dd84ef..887b2b9ee4aa 100644
--- a/drivers/scsi/ata_piix.c
+++ b/drivers/scsi/ata_piix.c
@@ -78,9 +78,7 @@ enum {
78 ich5_sata = 1, 78 ich5_sata = 1,
79 piix4_pata = 2, 79 piix4_pata = 2,
80 ich6_sata = 3, 80 ich6_sata = 3,
81 ich6_sata_rm = 4, 81 ich6_sata_ahci = 4,
82 ich7_sata = 5,
83 esb2_sata = 6,
84 82
85 PIIX_AHCI_DEVICE = 6, 83 PIIX_AHCI_DEVICE = 6,
86}; 84};
@@ -111,11 +109,11 @@ static const struct pci_device_id piix_pci_tbl[] = {
111 { 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata }, 109 { 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
112 { 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata }, 110 { 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
113 { 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata }, 111 { 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
114 { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm }, 112 { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
115 { 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm }, 113 { 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
116 { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata }, 114 { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
117 { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata }, 115 { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
118 { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, esb2_sata }, 116 { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
119 117
120 { } /* terminate list */ 118 { } /* terminate list */
121}; 119};
@@ -258,31 +256,7 @@ static struct ata_port_info piix_port_info[] = {
258 .port_ops = &piix_sata_ops, 256 .port_ops = &piix_sata_ops,
259 }, 257 },
260 258
261 /* ich6_sata_rm */ 259 /* ich6_sata_ahci */
262 {
263 .sht = &piix_sht,
264 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST |
265 PIIX_FLAG_COMBINED | PIIX_FLAG_CHECKINTR |
266 ATA_FLAG_SLAVE_POSS | PIIX_FLAG_AHCI,
267 .pio_mask = 0x1f, /* pio0-4 */
268 .mwdma_mask = 0x07, /* mwdma0-2 */
269 .udma_mask = 0x7f, /* udma0-6 */
270 .port_ops = &piix_sata_ops,
271 },
272
273 /* ich7_sata */
274 {
275 .sht = &piix_sht,
276 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST |
277 PIIX_FLAG_COMBINED | PIIX_FLAG_CHECKINTR |
278 ATA_FLAG_SLAVE_POSS | PIIX_FLAG_AHCI,
279 .pio_mask = 0x1f, /* pio0-4 */
280 .mwdma_mask = 0x07, /* mwdma0-2 */
281 .udma_mask = 0x7f, /* udma0-6 */
282 .port_ops = &piix_sata_ops,
283 },
284
285 /* esb2_sata */
286 { 260 {
287 .sht = &piix_sht, 261 .sht = &piix_sht,
288 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST | 262 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST |
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 665ae79e1fd6..9f27e8d0e774 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1444,11 +1444,23 @@ void __sata_phy_reset(struct ata_port *ap)
1444 } while (time_before(jiffies, timeout)); 1444 } while (time_before(jiffies, timeout));
1445 1445
1446 /* TODO: phy layer with polling, timeouts, etc. */ 1446 /* TODO: phy layer with polling, timeouts, etc. */
1447 if (sata_dev_present(ap)) 1447 sstatus = scr_read(ap, SCR_STATUS);
1448 if (sata_dev_present(ap)) {
1449 const char *speed;
1450 u32 tmp;
1451
1452 tmp = (sstatus >> 4) & 0xf;
1453 if (tmp & (1 << 0))
1454 speed = "1.5";
1455 else if (tmp & (1 << 1))
1456 speed = "3.0";
1457 else
1458 speed = "<unknown>";
1459 printk(KERN_INFO "ata%u: SATA link up %s Gbps (SStatus %X)\n",
1460 ap->id, speed, sstatus);
1448 ata_port_probe(ap); 1461 ata_port_probe(ap);
1449 else { 1462 } else {
1450 sstatus = scr_read(ap, SCR_STATUS); 1463 printk(KERN_INFO "ata%u: SATA link down (SStatus %X)\n",
1451 printk(KERN_INFO "ata%u: no device found (phy stat %08x)\n",
1452 ap->id, sstatus); 1464 ap->id, sstatus);
1453 ata_port_disable(ap); 1465 ata_port_disable(ap);
1454 } 1466 }