]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/scsi/ahci.c
[PATCH] ahci: do not fail softreset if PHY reports no device
[linux-beck.git] / drivers / scsi / ahci.c
index ffba65656a838464bc0e05c48a6730821be54028..ff48066d4c4f93c656b5472288691b3ff2ed0793 100644 (file)
@@ -48,7 +48,7 @@
 #include <asm/io.h>
 
 #define DRV_NAME       "ahci"
-#define DRV_VERSION    "1.2"
+#define DRV_VERSION    "1.3"
 
 
 enum {
@@ -293,6 +293,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
          board_ahci }, /* JMicron JMB360 */
        { 0x197b, 0x2363, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
          board_ahci }, /* JMicron JMB363 */
+       { PCI_VENDOR_ID_ATI, 0x4380, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ATI SB600 non-raid */
+       { PCI_VENDOR_ID_ATI, 0x4381, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ATI SB600 raid */
        { }     /* terminate list */
 };
 
@@ -545,6 +549,12 @@ static int ahci_softreset(struct ata_port *ap, int verbose, unsigned int *class)
 
        DPRINTK("ENTER\n");
 
+       if (!sata_dev_present(ap)) {
+               DPRINTK("PHY reports no device\n");
+               *class = ATA_DEV_NONE;
+               return 0;
+       }
+
        /* prepare for SRST (AHCI-1.1 10.4.1) */
        rc = ahci_stop_engine(ap);
        if (rc) {