Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

Pull libata fixes from Jeff Garzik:
- libata-acpi regression fix
- additional or corrected drive quirks for ata_blacklist
- Kconfig text tweaking
- new PCI IDs
- pata_atiixp: quirk for MSI motherboard
- export ahci_dev_classify for an ahci_platform driver

* tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry
[libata] new quirk, lift bridge limits for Buffalo DriveStation Quattro
[libata] Kconfig: Elaborate that SFF is meant for legacy and PATA stuff
[libata] acpi: call ata_acpi_gtm during ata port init time
ata_piix: Add Device IDs for Intel Lynx Point-LP PCH
ahci: Add Device IDs for Intel Lynx Point-LP PCH
pata_atiixp: override cable detection on MSI E350DM-E33
ahci: un-staticize ahci_dev_classify

+42 -14
+1 -1
drivers/ata/Kconfig
··· 115 115 If unsure, say N. 116 116 117 117 config ATA_SFF 118 - bool "ATA SFF support" 118 + bool "ATA SFF support (for legacy IDE and PATA)" 119 119 default y 120 120 help 121 121 This option adds support for ATA controllers with SFF
+8
drivers/ata/ahci.c
··· 256 256 { PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point RAID */ 257 257 { PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */ 258 258 { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point RAID */ 259 + { PCI_VDEVICE(INTEL, 0x9c02), board_ahci }, /* Lynx Point-LP AHCI */ 260 + { PCI_VDEVICE(INTEL, 0x9c03), board_ahci }, /* Lynx Point-LP AHCI */ 261 + { PCI_VDEVICE(INTEL, 0x9c04), board_ahci }, /* Lynx Point-LP RAID */ 262 + { PCI_VDEVICE(INTEL, 0x9c05), board_ahci }, /* Lynx Point-LP RAID */ 263 + { PCI_VDEVICE(INTEL, 0x9c06), board_ahci }, /* Lynx Point-LP RAID */ 264 + { PCI_VDEVICE(INTEL, 0x9c07), board_ahci }, /* Lynx Point-LP RAID */ 265 + { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci }, /* Lynx Point-LP RAID */ 266 + { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci }, /* Lynx Point-LP RAID */ 259 267 260 268 /* JMicron 360/1/3/5/6, match class to avoid IDE function */ 261 269 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+1
drivers/ata/ahci.h
··· 320 320 extern struct ata_port_operations ahci_ops; 321 321 extern struct ata_port_operations ahci_pmp_retry_srst_ops; 322 322 323 + unsigned int ahci_dev_classify(struct ata_port *ap); 323 324 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 324 325 u32 opts); 325 326 void ahci_save_initial_config(struct device *dev,
+8
drivers/ata/ata_piix.c
··· 329 329 { 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 330 330 /* SATA Controller IDE (Lynx Point) */ 331 331 { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 332 + /* SATA Controller IDE (Lynx Point-LP) */ 333 + { 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, 334 + /* SATA Controller IDE (Lynx Point-LP) */ 335 + { 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, 336 + /* SATA Controller IDE (Lynx Point-LP) */ 337 + { 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 338 + /* SATA Controller IDE (Lynx Point-LP) */ 339 + { 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 332 340 /* SATA Controller IDE (DH89xxCC) */ 333 341 { 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 334 342 { } /* terminate list */
+2 -1
drivers/ata/libahci.c
··· 1139 1139 } 1140 1140 } 1141 1141 1142 - static unsigned int ahci_dev_classify(struct ata_port *ap) 1142 + unsigned int ahci_dev_classify(struct ata_port *ap) 1143 1143 { 1144 1144 void __iomem *port_mmio = ahci_port_base(ap); 1145 1145 struct ata_taskfile tf; ··· 1153 1153 1154 1154 return ata_dev_classify(&tf); 1155 1155 } 1156 + EXPORT_SYMBOL_GPL(ahci_dev_classify); 1156 1157 1157 1158 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 1158 1159 u32 opts)
+4 -11
drivers/ata/libata-acpi.c
··· 60 60 if (ap->flags & ATA_FLAG_ACPI_SATA) 61 61 return NULL; 62 62 63 - /* 64 - * If acpi bind operation has already happened, we can get the handle 65 - * for the port by checking the corresponding scsi_host device's 66 - * firmware node, otherwise we will need to find out the handle from 67 - * its parent's acpi node. 68 - */ 69 - if (ap->scsi_host) 70 - return DEVICE_ACPI_HANDLE(&ap->scsi_host->shost_gendev); 71 - else 72 - return acpi_get_child(DEVICE_ACPI_HANDLE(ap->host->dev), 73 - ap->port_no); 63 + return acpi_get_child(DEVICE_ACPI_HANDLE(ap->host->dev), ap->port_no); 74 64 } 75 65 EXPORT_SYMBOL(ata_ap_acpi_handle); 76 66 ··· 1090 1100 1091 1101 if (!*handle) 1092 1102 return -ENODEV; 1103 + 1104 + if (ata_acpi_gtm(ap, &ap->__acpi_init_gtm) == 0) 1105 + ap->pflags |= ATA_PFLAG_INIT_GTM_VALID; 1093 1106 1094 1107 return 0; 1095 1108 }
+2 -1
drivers/ata/libata-core.c
··· 4062 4062 { "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA }, 4063 4063 { "SAMSUNG CD-ROM SN-124", "N001", ATA_HORKAGE_NODMA }, 4064 4064 { "Seagate STT20000A", NULL, ATA_HORKAGE_NODMA }, 4065 - { "2GB ATA Flash Disk", "ADMA428M", ATA_HORKAGE_NODMA }, 4065 + { " 2GB ATA Flash Disk", "ADMA428M", ATA_HORKAGE_NODMA }, 4066 4066 /* Odd clown on sil3726/4726 PMPs */ 4067 4067 { "Config Disk", NULL, ATA_HORKAGE_DISABLE }, 4068 4068 ··· 4128 4128 4129 4129 /* Devices that do not need bridging limits applied */ 4130 4130 { "MTRON MSP-SATA*", NULL, ATA_HORKAGE_BRIDGE_OK, }, 4131 + { "BUFFALO HD-QSU2/R5", NULL, ATA_HORKAGE_BRIDGE_OK, }, 4131 4132 4132 4133 /* Devices which aren't very happy with higher link speeds */ 4133 4134 { "WD My Book", NULL, ATA_HORKAGE_1_5_GBPS, },
+16
drivers/ata/pata_atiixp.c
··· 20 20 #include <linux/delay.h> 21 21 #include <scsi/scsi_host.h> 22 22 #include <linux/libata.h> 23 + #include <linux/dmi.h> 23 24 24 25 #define DRV_NAME "pata_atiixp" 25 26 #define DRV_VERSION "0.4.6" ··· 34 33 ATIIXP_IDE_UDMA_MODE = 0x56 35 34 }; 36 35 36 + static const struct dmi_system_id attixp_cable_override_dmi_table[] = { 37 + { 38 + /* Board has onboard PATA<->SATA converters */ 39 + .ident = "MSI E350DM-E33", 40 + .matches = { 41 + DMI_MATCH(DMI_BOARD_VENDOR, "MSI"), 42 + DMI_MATCH(DMI_BOARD_NAME, "E350DM-E33(MS-7720)"), 43 + }, 44 + }, 45 + { } 46 + }; 47 + 37 48 static int atiixp_cable_detect(struct ata_port *ap) 38 49 { 39 50 struct pci_dev *pdev = to_pci_dev(ap->host->dev); 40 51 u8 udma; 52 + 53 + if (dmi_check_system(attixp_cable_override_dmi_table)) 54 + return ATA_CBL_PATA40_SHORT; 41 55 42 56 /* Hack from drivers/ide/pci. Really we want to know how to do the 43 57 raw detection not play follow the bios mode guess */