mirror of https://gitee.com/openkylin/linux.git
Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata fixes from Tejun Heo: "libata device removal path was removing parent device node before its child, which is mostly harmless but triggers warning after recent sysfs changes. Rafael's patch fixes the order. Other than that, minor controller-specific fixes and device ID additions" * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ATA: Fix port removal ordering ahci: add Marvell 9230 to the AHCI PCI device list ata: fix acpi_bus_get_device() return value check pata_arasan_cf: add missing clk_disable_unprepare() on error path ahci: add support for IBM Akebono platform device
This commit is contained in:
commit
de92a0589c
|
@ -435,6 +435,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
|
||||||
.driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
|
.driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
|
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
|
||||||
.driver_data = board_ahci_yes_fbs },
|
.driver_data = board_ahci_yes_fbs },
|
||||||
|
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
|
||||||
|
.driver_data = board_ahci_yes_fbs },
|
||||||
|
|
||||||
/* Promise */
|
/* Promise */
|
||||||
{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */
|
{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */
|
||||||
|
|
|
@ -329,6 +329,7 @@ static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_suspend, ahci_resume);
|
||||||
static const struct of_device_id ahci_of_match[] = {
|
static const struct of_device_id ahci_of_match[] = {
|
||||||
{ .compatible = "snps,spear-ahci", },
|
{ .compatible = "snps,spear-ahci", },
|
||||||
{ .compatible = "snps,exynos5440-ahci", },
|
{ .compatible = "snps,exynos5440-ahci", },
|
||||||
|
{ .compatible = "ibm,476gtr-ahci", },
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, ahci_of_match);
|
MODULE_DEVICE_TABLE(of, ahci_of_match);
|
||||||
|
|
|
@ -6304,10 +6304,9 @@ static void ata_port_detach(struct ata_port *ap)
|
||||||
for (i = 0; i < SATA_PMP_MAX_PORTS; i++)
|
for (i = 0; i < SATA_PMP_MAX_PORTS; i++)
|
||||||
ata_tlink_delete(&ap->pmp_link[i]);
|
ata_tlink_delete(&ap->pmp_link[i]);
|
||||||
}
|
}
|
||||||
ata_tport_delete(ap);
|
|
||||||
|
|
||||||
/* remove the associated SCSI host */
|
/* remove the associated SCSI host */
|
||||||
scsi_remove_host(ap->scsi_host);
|
scsi_remove_host(ap->scsi_host);
|
||||||
|
ata_tport_delete(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -88,15 +88,13 @@ static enum odd_mech_type zpodd_get_mech_type(struct ata_device *dev)
|
||||||
static bool odd_can_poweroff(struct ata_device *ata_dev)
|
static bool odd_can_poweroff(struct ata_device *ata_dev)
|
||||||
{
|
{
|
||||||
acpi_handle handle;
|
acpi_handle handle;
|
||||||
acpi_status status;
|
|
||||||
struct acpi_device *acpi_dev;
|
struct acpi_device *acpi_dev;
|
||||||
|
|
||||||
handle = ata_dev_acpi_handle(ata_dev);
|
handle = ata_dev_acpi_handle(ata_dev);
|
||||||
if (!handle)
|
if (!handle)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
status = acpi_bus_get_device(handle, &acpi_dev);
|
if (acpi_bus_get_device(handle, &acpi_dev))
|
||||||
if (ACPI_FAILURE(status))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return acpi_device_can_poweroff(acpi_dev);
|
return acpi_device_can_poweroff(acpi_dev);
|
||||||
|
|
|
@ -319,6 +319,7 @@ static int cf_init(struct arasan_cf_dev *acdev)
|
||||||
ret = clk_set_rate(acdev->clk, 166000000);
|
ret = clk_set_rate(acdev->clk, 166000000);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_warn(acdev->host->dev, "clock set rate failed");
|
dev_warn(acdev->host->dev, "clock set rate failed");
|
||||||
|
clk_disable_unprepare(acdev->clk);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue