1) Notable regression fix. Forbid dynamic runtime power management by
default, due to issues with suspend/resume and hotplug. To re-enable, use sysfs. 2) make ata_print_id atomic, due to ref from multiple contexts 3) sata_mv warning fix 4) ata_piix new PCI ID -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAT48KcSWzCDIBeCsvAQKItRAAk0Rm2o1wC/EOyVJUbYi9aK0AnayPjHQm npmTTTHmlXv12voudqqWNDbjDRuv2vhMfrAnUizZU44QTVwQvuAdmW6zjIGVNPy2 i1+2LFWzNyeUU1LN7eAUlmDbTicipOSulAkV5FfHYbvEivunubOYLbjJYotdbhuy JhfvTHUWgnTn4r7Hr7ZwUPE64BzTYXpTtlvHHklRCespnqZIyXr3eFniZiKWKDVH VsXJXzSYwT5VdTDOCPUHhbmyymJuiBeOaYbGsJaOR6B5rRKNU9sDRTsAxl1JCao4 rOaVwxuYM/6GS5UWs9Ah9fjsYHtPuOXZAgdsw+NVKgDxNXo40qS66kx67XNp0cPu Ots28R0GzcSOA+gnaK3gVT7GHLm0evvg48kFsQk9gSljLE41MQZhxgn/6u0ksyjm JmJUDsTchE+RZAkn6bcs6dTEU5d3CsHhb0XO/tJbjmz6d2GlJIvUqL5Hdj1OGE84 vVNAq7YeMKOqaQ+wL56hSX7Fowemjno6gZz0S5ji7OtrZnMxuMiR9sIBf6Y+EKVm +dW9XcdZ54iOc5G9SPgj8JGBOMM8obSEf7LLaTD93kQktvD57xUmcxoHlKcv4lZh w6pr1Amw9N4B6KN5RtkA0nD4b+QI65dmd4DABv3FqkXgBx7uH0R3+pqExCK+DbCZ AnX9wy0z2Rk= =Ku0x -----END PGP SIGNATURE----- Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev Pull libara fixes from Jeff Garzik: - Notable regression fix. Forbid dynamic runtime power management by default, due to issues with suspend/resume and hotplug. To re-enable, use sysfs. - make ata_print_id atomic, due to ref from multiple contexts - sata_mv warning fix - ata_piix new PCI ID * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: forbid port runtime pm by default, fixing regression libata: make ata_print_id atomic sata_mv: silence an uninitialized variable warning ata_piix: IDE-mode SATA patch for Intel DH89xxCC DeviceIDs
This commit is contained in:
commit
40df43a17f
6 changed files with 10 additions and 6 deletions
|
@ -329,6 +329,8 @@ static const struct pci_device_id piix_pci_tbl[] = {
|
||||||
{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
||||||
/* SATA Controller IDE (Lynx Point) */
|
/* SATA Controller IDE (Lynx Point) */
|
||||||
{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
|
{ 0x8086, 0x8c09, 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 */
|
{ } /* terminate list */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
|
||||||
static void ata_dev_xfermask(struct ata_device *dev);
|
static void ata_dev_xfermask(struct ata_device *dev);
|
||||||
static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
|
static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
|
||||||
|
|
||||||
unsigned int ata_print_id = 1;
|
atomic_t ata_print_id = ATOMIC_INIT(1);
|
||||||
|
|
||||||
struct ata_force_param {
|
struct ata_force_param {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -6029,7 +6029,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
|
||||||
|
|
||||||
/* give ports names and add SCSI hosts */
|
/* give ports names and add SCSI hosts */
|
||||||
for (i = 0; i < host->n_ports; i++)
|
for (i = 0; i < host->n_ports; i++)
|
||||||
host->ports[i]->print_id = ata_print_id++;
|
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||||
|
|
||||||
|
|
||||||
/* Create associated sysfs transport objects */
|
/* Create associated sysfs transport objects */
|
||||||
|
|
|
@ -3843,7 +3843,7 @@ int ata_sas_async_port_init(struct ata_port *ap)
|
||||||
int rc = ap->ops->port_start(ap);
|
int rc = ap->ops->port_start(ap);
|
||||||
|
|
||||||
if (!rc) {
|
if (!rc) {
|
||||||
ap->print_id = ata_print_id++;
|
ap->print_id = atomic_inc_return(&ata_print_id);
|
||||||
__ata_port_probe(ap);
|
__ata_port_probe(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3867,7 +3867,7 @@ int ata_sas_port_init(struct ata_port *ap)
|
||||||
int rc = ap->ops->port_start(ap);
|
int rc = ap->ops->port_start(ap);
|
||||||
|
|
||||||
if (!rc) {
|
if (!rc) {
|
||||||
ap->print_id = ata_print_id++;
|
ap->print_id = atomic_inc_return(&ata_print_id);
|
||||||
rc = ata_port_probe(ap);
|
rc = ata_port_probe(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -294,6 +294,7 @@ int ata_tport_add(struct device *parent,
|
||||||
device_enable_async_suspend(dev);
|
device_enable_async_suspend(dev);
|
||||||
pm_runtime_set_active(dev);
|
pm_runtime_set_active(dev);
|
||||||
pm_runtime_enable(dev);
|
pm_runtime_enable(dev);
|
||||||
|
pm_runtime_forbid(dev);
|
||||||
|
|
||||||
transport_add_device(dev);
|
transport_add_device(dev);
|
||||||
transport_configure_device(dev);
|
transport_configure_device(dev);
|
||||||
|
|
|
@ -53,7 +53,7 @@ enum {
|
||||||
ATA_DNXFER_QUIET = (1 << 31),
|
ATA_DNXFER_QUIET = (1 << 31),
|
||||||
};
|
};
|
||||||
|
|
||||||
extern unsigned int ata_print_id;
|
extern atomic_t ata_print_id;
|
||||||
extern int atapi_passthru16;
|
extern int atapi_passthru16;
|
||||||
extern int libata_fua;
|
extern int libata_fua;
|
||||||
extern int libata_noacpi;
|
extern int libata_noacpi;
|
||||||
|
|
|
@ -4025,7 +4025,8 @@ static int mv_platform_probe(struct platform_device *pdev)
|
||||||
struct ata_host *host;
|
struct ata_host *host;
|
||||||
struct mv_host_priv *hpriv;
|
struct mv_host_priv *hpriv;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
int n_ports, rc;
|
int n_ports = 0;
|
||||||
|
int rc;
|
||||||
|
|
||||||
ata_print_version_once(&pdev->dev, DRV_VERSION);
|
ata_print_version_once(&pdev->dev, DRV_VERSION);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue