From patchwork Thu May 19 13:25:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 9127611 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BB2FA60778 for ; Thu, 19 May 2016 13:39:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9FB38281EA for ; Thu, 19 May 2016 13:26:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 94B17281EC; Thu, 19 May 2016 13:26:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B017281EA for ; Thu, 19 May 2016 13:26:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754667AbcESNZ6 (ORCPT ); Thu, 19 May 2016 09:25:58 -0400 Received: from mail-lb0-f174.google.com ([209.85.217.174]:33321 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754749AbcESNZ4 (ORCPT ); Thu, 19 May 2016 09:25:56 -0400 Received: by mail-lb0-f174.google.com with SMTP id k7so3793007lbm.0 for ; Thu, 19 May 2016 06:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=S2vOOBfobYTpwYXHio0DNfq6537v18/zeWtw/f+mkhc=; b=hr2kjAoj2KUEG6Tir21Cp9FFXEpHvxIbSLS+xMfeJtZSA3DLOg4kC/0Gdu7J9nFrLg PHo7VR3po4VA/3/9EtuwdIb6AWH/6QJWQ6nhHydQ7+2ng1lrb6hgG2GfqBNRn8U75vpB /lNEPFgP4ztj2nmC0kiidTm3HXpmAzKxfOJLU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=S2vOOBfobYTpwYXHio0DNfq6537v18/zeWtw/f+mkhc=; b=Gx5I6HvnyJQi0CHLMRD5N9b1p4F5DGioKh6qKopj6o0LX0TZtAtr4y5aiFUJARkIbI 6TDz/LQ2dZNR02/Z1p0fATQN2zgkglRMq8eTSRSXOvbUQbEDgBYZxhq4ECVGPXF4L+pa Aioyt4vXH9kuYunrEPPJACxPIZlzzgb36ImgVFI8AfVQEdfgElSYep/UTyBTlphhbmDZ TcncVPdotnkUxFH6oFu91GRCUlWt58cTa4kbQTnACo+kalR4ZF3qGtxrL5rrw1L81ScH 85tHx0AeaPZx+1qoMRoUMFzXWp65UZC4foQWgZ36CibYwPTP+2VHiNr9B2GHZL0Vbgdt 1OGQ== X-Gm-Message-State: AOPr4FWop8KOImaNjE9Tt23jA+CED8scz2ckGqaTy213nSpkaTR1H23jk9fvvdawSxfc7Xvv X-Received: by 10.112.95.114 with SMTP id dj18mr4687967lbb.136.1463664354647; Thu, 19 May 2016 06:25:54 -0700 (PDT) Received: from uffe-Latitude-E6430s.ideon.se ([85.235.10.227]) by smtp.gmail.com with ESMTPSA id n37sm2435480lfg.46.2016.05.19.06.25.52 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 19 May 2016 06:25:53 -0700 (PDT) From: Ulf Hansson To: linux-mmc@vger.kernel.org, Ulf Hansson , Adrian Hunter , "Rafael J. Wysocki" , Len Brown Cc: linux-acpi@vger.kernel.org, Laszlo Fiat , Nicholas Krause , Subject: [PATCH 2/2] mmc: sdhci-acpi: Ensure connected devices are powered when probing Date: Thu, 19 May 2016 15:25:42 +0200 Message-Id: <1463664342-19209-2-git-send-email-ulf.hansson@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1463664342-19209-1-git-send-email-ulf.hansson@linaro.org> References: <1463664342-19209-1-git-send-email-ulf.hansson@linaro.org> Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Adrian Hunter Some devices connected to the SDHCI controller may have separate enabling lines that are controlled through GPIO. These devices need to be powered on and enabled before probing. This is to ensure all devices connected can be seen by the controller. Signed-off-by: Adrian Hunter Tested-by: Laszlo Fiat Cc: # 4.5+ Signed-off-by: Ulf Hansson Reported-by: Laszlo Fiat --- drivers/mmc/host/sdhci-acpi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index b2d70ba..2d1c4870 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c @@ -378,7 +378,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; acpi_handle handle = ACPI_HANDLE(dev); - struct acpi_device *device; + struct acpi_device *device, *child; struct sdhci_acpi_host *c; struct sdhci_host *host; struct resource *iomem; @@ -390,6 +390,11 @@ static int sdhci_acpi_probe(struct platform_device *pdev) if (acpi_bus_get_device(handle, &device)) return -ENODEV; + /* Power on the SDHCI controller and its children */ + acpi_device_fix_up_power(device); + list_for_each_entry(child, &device->children, node) + acpi_device_fix_up_power(child); + if (acpi_bus_get_status(device) || !device->status.present) return -ENODEV;