1) libata-acpi regression fix
2) additional or corrected drive quirks for ata_blacklist 3) Kconfig text tweaking 4) new PCI IDs 5) pata_atiixp: quirk for MSI motherboard 6) export ahci_dev_classify for an ahci_platform driver -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUDjfByWzCDIBeCsvAQJSrA//UXV3Vfg6nnSXb714m3I1zaqBPCyl/eZF 42dt62xsykfhVJGy10Ld1Ss8glxomSHzRWgIw7PG32VOTlJ/5KWvp1ZkjtqJnJG5 7XLIhjBQWVdtiZ1RMRUZRJRCrcJ1UMXZfCEpW8PPVqjdqKrK3gxSdOJtdxfQKkS6 imRv3SHytUsxfUKtJCsIr8YnSpRbbYNz/b3qYQxYVIw6MILVQLJYP2+DHvtrDaMP XFdoCT4PI1sIrgn2TIV1nNRP/KONHSlDKQ9IMeDGO7C0C++WYWKf9F0COnIDem3j Oc8zAjbIRBG8pWo16qTN6D01kcww5Wqqzv0xwW8SGxFqhYeOmJyexGuya8nch5+T GUihCo2dqsj3SiGwVnHGzTpo2QDnxpGKY6gPPmJubpkU2czCc6Fl4w/XhO1S+saC olm2BqMNpfWErD7pDIuZIrBrCxv8UtnFK9HNfUF4OQsyHPXcDjlFfeiZBmvHolgU +tjSSMsgBf0+QLGLgjAnA7DZ0mv5v/lQ4NlyGd+HfXWM/vyjLdU4I2zYYol2LlYg YtEUJwgT7Qk7iDW6QSP47NzVS7f10ejdTEfE5aDmiaFfDCticfUuJ3704eAUI08E BgoGYqIyHShOAIAZFfc8ILBvMBjPZ6SXk7jwq4Nf5zTtUP3sgy96dnWOBEl0YFLP VXPUcodWouM= =pjUK -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
da31ce727e
|
@ -115,7 +115,7 @@ config SATA_SIL24
|
|||
If unsure, say N.
|
||||
|
||||
config ATA_SFF
|
||||
bool "ATA SFF support"
|
||||
bool "ATA SFF support (for legacy IDE and PATA)"
|
||||
default y
|
||||
help
|
||||
This option adds support for ATA controllers with SFF
|
||||
|
|
|
@ -256,6 +256,14 @@ static const struct pci_device_id ahci_pci_tbl[] = {
|
|||
{ PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c02), board_ahci }, /* Lynx Point-LP AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c03), board_ahci }, /* Lynx Point-LP AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c04), board_ahci }, /* Lynx Point-LP RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c05), board_ahci }, /* Lynx Point-LP RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c06), board_ahci }, /* Lynx Point-LP RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c07), board_ahci }, /* Lynx Point-LP RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c0e), board_ahci }, /* Lynx Point-LP RAID */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c0f), board_ahci }, /* Lynx Point-LP RAID */
|
||||
|
||||
/* JMicron 360/1/3/5/6, match class to avoid IDE function */
|
||||
{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
|
|
|
@ -320,6 +320,7 @@ extern struct device_attribute *ahci_sdev_attrs[];
|
|||
extern struct ata_port_operations ahci_ops;
|
||||
extern struct ata_port_operations ahci_pmp_retry_srst_ops;
|
||||
|
||||
unsigned int ahci_dev_classify(struct ata_port *ap);
|
||||
void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts);
|
||||
void ahci_save_initial_config(struct device *dev,
|
||||
|
|
|
@ -329,6 +329,14 @@ static const struct pci_device_id piix_pci_tbl[] = {
|
|||
{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||
/* SATA Controller IDE (Lynx Point) */
|
||||
{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||
/* SATA Controller IDE (Lynx Point-LP) */
|
||||
{ 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
|
||||
/* SATA Controller IDE (Lynx Point-LP) */
|
||||
{ 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
|
||||
/* SATA Controller IDE (Lynx Point-LP) */
|
||||
{ 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||
/* SATA Controller IDE (Lynx Point-LP) */
|
||||
{ 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||
/* SATA Controller IDE (DH89xxCC) */
|
||||
{ 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||
{ } /* terminate list */
|
||||
|
|
|
@ -1139,7 +1139,7 @@ static void ahci_dev_config(struct ata_device *dev)
|
|||
}
|
||||
}
|
||||
|
||||
static unsigned int ahci_dev_classify(struct ata_port *ap)
|
||||
unsigned int ahci_dev_classify(struct ata_port *ap)
|
||||
{
|
||||
void __iomem *port_mmio = ahci_port_base(ap);
|
||||
struct ata_taskfile tf;
|
||||
|
@ -1153,6 +1153,7 @@ static unsigned int ahci_dev_classify(struct ata_port *ap)
|
|||
|
||||
return ata_dev_classify(&tf);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ahci_dev_classify);
|
||||
|
||||
void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts)
|
||||
|
|
|
@ -60,17 +60,7 @@ acpi_handle ata_ap_acpi_handle(struct ata_port *ap)
|
|||
if (ap->flags & ATA_FLAG_ACPI_SATA)
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* If acpi bind operation has already happened, we can get the handle
|
||||
* for the port by checking the corresponding scsi_host device's
|
||||
* firmware node, otherwise we will need to find out the handle from
|
||||
* its parent's acpi node.
|
||||
*/
|
||||
if (ap->scsi_host)
|
||||
return DEVICE_ACPI_HANDLE(&ap->scsi_host->shost_gendev);
|
||||
else
|
||||
return acpi_get_child(DEVICE_ACPI_HANDLE(ap->host->dev),
|
||||
ap->port_no);
|
||||
return acpi_get_child(DEVICE_ACPI_HANDLE(ap->host->dev), ap->port_no);
|
||||
}
|
||||
EXPORT_SYMBOL(ata_ap_acpi_handle);
|
||||
|
||||
|
@ -1101,6 +1091,9 @@ static int ata_acpi_bind_host(struct ata_port *ap, acpi_handle *handle)
|
|||
if (!*handle)
|
||||
return -ENODEV;
|
||||
|
||||
if (ata_acpi_gtm(ap, &ap->__acpi_init_gtm) == 0)
|
||||
ap->pflags |= ATA_PFLAG_INIT_GTM_VALID;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -4062,7 +4062,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
{ "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA },
|
||||
{ "SAMSUNG CD-ROM SN-124", "N001", ATA_HORKAGE_NODMA },
|
||||
{ "Seagate STT20000A", NULL, ATA_HORKAGE_NODMA },
|
||||
{ "2GB ATA Flash Disk", "ADMA428M", ATA_HORKAGE_NODMA },
|
||||
{ " 2GB ATA Flash Disk", "ADMA428M", ATA_HORKAGE_NODMA },
|
||||
/* Odd clown on sil3726/4726 PMPs */
|
||||
{ "Config Disk", NULL, ATA_HORKAGE_DISABLE },
|
||||
|
||||
|
@ -4128,6 +4128,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
|
||||
/* Devices that do not need bridging limits applied */
|
||||
{ "MTRON MSP-SATA*", NULL, ATA_HORKAGE_BRIDGE_OK, },
|
||||
{ "BUFFALO HD-QSU2/R5", NULL, ATA_HORKAGE_BRIDGE_OK, },
|
||||
|
||||
/* Devices which aren't very happy with higher link speeds */
|
||||
{ "WD My Book", NULL, ATA_HORKAGE_1_5_GBPS, },
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <scsi/scsi_host.h>
|
||||
#include <linux/libata.h>
|
||||
#include <linux/dmi.h>
|
||||
|
||||
#define DRV_NAME "pata_atiixp"
|
||||
#define DRV_VERSION "0.4.6"
|
||||
|
@ -33,11 +34,26 @@ enum {
|
|||
ATIIXP_IDE_UDMA_MODE = 0x56
|
||||
};
|
||||
|
||||
static const struct dmi_system_id attixp_cable_override_dmi_table[] = {
|
||||
{
|
||||
/* Board has onboard PATA<->SATA converters */
|
||||
.ident = "MSI E350DM-E33",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "MSI"),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "E350DM-E33(MS-7720)"),
|
||||
},
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
static int atiixp_cable_detect(struct ata_port *ap)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
u8 udma;
|
||||
|
||||
if (dmi_check_system(attixp_cable_override_dmi_table))
|
||||
return ATA_CBL_PATA40_SHORT;
|
||||
|
||||
/* Hack from drivers/ide/pci. Really we want to know how to do the
|
||||
raw detection not play follow the bios mode guess */
|
||||
pci_read_config_byte(pdev, ATIIXP_IDE_UDMA_MODE + ap->port_no, &udma);
|
||||
|
|
Loading…
Reference in a new issue