From patchwork Fri Nov 29 16:01:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 295440 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 71E342C00E7 for ; Sat, 30 Nov 2013 03:01:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754121Ab3K2QBL (ORCPT ); Fri, 29 Nov 2013 11:01:11 -0500 Received: from mail-qe0-f46.google.com ([209.85.128.46]:61059 "EHLO mail-qe0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754218Ab3K2QBJ (ORCPT ); Fri, 29 Nov 2013 11:01:09 -0500 Received: by mail-qe0-f46.google.com with SMTP id a11so10692258qen.33 for ; Fri, 29 Nov 2013 08:01:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=8Z927YcGbIp2s74+3ryIn3PVFCmbtK2vUs5jjZivj80=; b=KmpjNsQWRUrFzkh0vuSyBLnevltr3pdI9dKskyNlOfz09oalIGaIVlTAGSXx7Cz/QL t0RBPQfxsBc9gUhUjk5bEnKfq7CCZ/aPwH3Dvk7QgQrKZrMtZFLKJf0/ShJo/tI7n1/X ADw5cjfZ+FOJxI2VMPPFR2Ve8L9Apt7IdkeTk9M7H9j/kxdXqdG/6WqE1sKefYLOYYWS HJ1Cipac6RrQ90Wru0g78CRjxBx5X+e3nFDmqlR0ZlCQFhv4tuxI8kufs8W57bXE2izS V7+1jtsvkApiDVtuhsfXUQRsiccM2nyHf1gVQTasHXR3JLbcRsrnZYBhINxUhw8OfkeM lITg== X-Received: by 10.224.74.201 with SMTP id v9mr9819040qaj.93.1385740869164; Fri, 29 Nov 2013 08:01:09 -0800 (PST) Received: from htj.dyndns.org (207-38-225-25.c3-0.43d-ubr1.qens-43d.ny.cable.rcn.com. [207.38.225.25]) by mx.google.com with ESMTPSA id ki4sm64417334qeb.0.2013.11.29.08.01.07 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Nov 2013 08:01:08 -0800 (PST) Date: Fri, 29 Nov 2013 11:01:06 -0500 From: Tejun Heo To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, "Rafael J. Wysocki" Subject: [GIT PULL] libata fixes for v3.13-rc1 Message-ID: <20131129160106.GH3717@htj.dyndns.org> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Hello, Linus. 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. The patches are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git for-3.13-fixes for you to fetch changes up to c5700766975c69d27150256444db63fbfd103791: ATA: Fix port removal ordering (2013-11-27 13:55:16 -0500) Thanks. ---------------------------------------------------------------- Alistair Popple (1): ahci: add support for IBM Akebono platform device Rafael J. Wysocki (1): ATA: Fix port removal ordering Samir Benmendil (1): ahci: add Marvell 9230 to the AHCI PCI device list Wei Yongjun (1): pata_arasan_cf: add missing clk_disable_unprepare() on error path Yijing Wang (1): ata: fix acpi_bus_get_device() return value check drivers/ata/ahci.c | 2 ++ drivers/ata/ahci_platform.c | 1 + drivers/ata/libata-core.c | 3 +-- drivers/ata/libata-zpodd.c | 4 +--- drivers/ata/pata_arasan_cf.c | 1 + 5 files changed, 6 insertions(+), 5 deletions(-) --- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index e2903d0..14f1e95 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -435,6 +435,8 @@ static const struct pci_device_id ahci_pci_tbl[] = { .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3), .driver_data = board_ahci_yes_fbs }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230), + .driver_data = board_ahci_yes_fbs }, /* Promise */ { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c index f955431..4b231ba 100644 --- a/drivers/ata/ahci_platform.c +++ b/drivers/ata/ahci_platform.c @@ -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[] = { { .compatible = "snps,spear-ahci", }, { .compatible = "snps,exynos5440-ahci", }, + { .compatible = "ibm,476gtr-ahci", }, {}, }; MODULE_DEVICE_TABLE(of, ahci_of_match); diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 81a94a3..75b9367 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6304,10 +6304,9 @@ static void ata_port_detach(struct ata_port *ap) for (i = 0; i < SATA_PMP_MAX_PORTS; i++) ata_tlink_delete(&ap->pmp_link[i]); } - ata_tport_delete(ap); - /* remove the associated SCSI host */ scsi_remove_host(ap->scsi_host); + ata_tport_delete(ap); } /** diff --git a/drivers/ata/libata-zpodd.c b/drivers/ata/libata-zpodd.c index 68f9e32..88949c6 100644 --- a/drivers/ata/libata-zpodd.c +++ b/drivers/ata/libata-zpodd.c @@ -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) { acpi_handle handle; - acpi_status status; struct acpi_device *acpi_dev; handle = ata_dev_acpi_handle(ata_dev); if (!handle) return false; - status = acpi_bus_get_device(handle, &acpi_dev); - if (ACPI_FAILURE(status)) + if (acpi_bus_get_device(handle, &acpi_dev)) return false; return acpi_device_can_poweroff(acpi_dev); diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c index e88690e..73492dd 100644 --- a/drivers/ata/pata_arasan_cf.c +++ b/drivers/ata/pata_arasan_cf.c @@ -319,6 +319,7 @@ static int cf_init(struct arasan_cf_dev *acdev) ret = clk_set_rate(acdev->clk, 166000000); if (ret) { dev_warn(acdev->host->dev, "clock set rate failed"); + clk_disable_unprepare(acdev->clk); return ret; }