|
@@ -61,9 +61,14 @@
|
|
#define EM_MSG_LED_VALUE_ON 0x00010000
|
|
#define EM_MSG_LED_VALUE_ON 0x00010000
|
|
|
|
|
|
static int ahci_skip_host_reset;
|
|
static int ahci_skip_host_reset;
|
|
|
|
+static int ahci_ignore_sss;
|
|
|
|
+
|
|
module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444);
|
|
module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444);
|
|
MODULE_PARM_DESC(skip_host_reset, "skip global host reset (0=don't skip, 1=skip)");
|
|
MODULE_PARM_DESC(skip_host_reset, "skip global host reset (0=don't skip, 1=skip)");
|
|
|
|
|
|
|
|
+module_param_named(ignore_sss, ahci_ignore_sss, int, 0444);
|
|
|
|
+MODULE_PARM_DESC(ignore_sss, "Ignore staggered spinup flag (0=don't ignore, 1=ignore)");
|
|
|
|
+
|
|
static int ahci_enable_alpm(struct ata_port *ap,
|
|
static int ahci_enable_alpm(struct ata_port *ap,
|
|
enum link_pm policy);
|
|
enum link_pm policy);
|
|
static void ahci_disable_alpm(struct ata_port *ap);
|
|
static void ahci_disable_alpm(struct ata_port *ap);
|
|
@@ -2692,8 +2697,10 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
host->iomap = pcim_iomap_table(pdev);
|
|
host->iomap = pcim_iomap_table(pdev);
|
|
host->private_data = hpriv;
|
|
host->private_data = hpriv;
|
|
|
|
|
|
- if (!(hpriv->cap & HOST_CAP_SSS))
|
|
|
|
|
|
+ if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss)
|
|
host->flags |= ATA_HOST_PARALLEL_SCAN;
|
|
host->flags |= ATA_HOST_PARALLEL_SCAN;
|
|
|
|
+ else
|
|
|
|
+ printk(KERN_INFO "ahci: SSS flag set, parallel bus scan disabled\n");
|
|
|
|
|
|
if (pi.flags & ATA_FLAG_EM)
|
|
if (pi.flags & ATA_FLAG_EM)
|
|
ahci_reset_em(host);
|
|
ahci_reset_em(host);
|