]> err.no Git - linux-2.6/blobdiff - drivers/ata/pata_via.c
ACPI: disable stray GPE, prevent ACPI interrupt storm
[linux-2.6] / drivers / ata / pata_via.c
index 4ddcae8b8c962bb53b6007181991814d3b967fdc..a4175fbdd1704dcf6c231dcf6bf55b0552d3f1b5 100644 (file)
@@ -176,7 +176,7 @@ static int via_cable_detect(struct ata_port *ap) {
        if ((config->flags & VIA_UDMA) < VIA_UDMA_66)
                return ATA_CBL_PATA40;
        /* UDMA 66 chips have only drive side logic */
-       else if((config->flags & VIA_UDMA) < VIA_UDMA_100)
+       else if ((config->flags & VIA_UDMA) < VIA_UDMA_100)
                return ATA_CBL_PATA_UNK;
        /* UDMA 100 or later */
        pci_read_config_dword(pdev, 0x50, &ata66);
@@ -184,6 +184,9 @@ static int via_cable_detect(struct ata_port *ap) {
           two drives */
        if (ata66 & (0x10100000 >> (16 * ap->port_no)))
                return ATA_CBL_PATA80;
+       /* Check with ACPI so we can spot BIOS reported SATA bridges */
+       if (ata_acpi_cbl_80wire(ap))
+               return ATA_CBL_PATA80;
        return ATA_CBL_PATA40;
 }
 
@@ -345,7 +348,6 @@ static struct scsi_host_template via_sht = {
 };
 
 static struct ata_port_operations via_port_ops = {
-       .port_disable   = ata_port_disable,
        .set_piomode    = via_set_piomode,
        .set_dmamode    = via_set_dmamode,
        .mode_filter    = ata_pci_default_filter,
@@ -376,11 +378,10 @@ static struct ata_port_operations via_port_ops = {
        .irq_clear      = ata_bmdma_irq_clear,
        .irq_on         = ata_irq_on,
 
-       .port_start     = ata_port_start,
+       .port_start     = ata_sff_port_start,
 };
 
 static struct ata_port_operations via_port_ops_noirq = {
-       .port_disable   = ata_port_disable,
        .set_piomode    = via_set_piomode,
        .set_dmamode    = via_set_dmamode,
        .mode_filter    = ata_pci_default_filter,
@@ -411,7 +412,7 @@ static struct ata_port_operations via_port_ops_noirq = {
        .irq_clear      = ata_bmdma_irq_clear,
        .irq_on         = ata_irq_on,
 
-       .port_start     = ata_port_start,
+       .port_start     = ata_sff_port_start,
 };
 
 /**
@@ -419,7 +420,7 @@ static struct ata_port_operations via_port_ops_noirq = {
  *     @pdev: PCI device
  *     @flags: configuration flags
  *
- *     Set the FIFO properties for this device if neccessary. Used both on
+ *     Set the FIFO properties for this device if necessary. Used both on
  *     set up and on and the resume path
  */