From patchwork Mon Jul 16 22:41:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 0v3rdr0n3@gmail.com X-Patchwork-Id: 10527967 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 ADCFC600F4 for ; Tue, 17 Jul 2018 02:41:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA37828C7E for ; Tue, 17 Jul 2018 02:41:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9EAB228C96; Tue, 17 Jul 2018 02:41:44 +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.4 required=2.0 tests=BAYES_00, DATE_IN_PAST_03_06, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham 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 4877F28C7E for ; Tue, 17 Jul 2018 02:41:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730267AbeGQDL7 (ORCPT ); Mon, 16 Jul 2018 23:11:59 -0400 Received: from mail-it0-f65.google.com ([209.85.214.65]:55707 "EHLO mail-it0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730304AbeGQDL6 (ORCPT ); Mon, 16 Jul 2018 23:11:58 -0400 Received: by mail-it0-f65.google.com with SMTP id 16-v6so23816007itl.5; Mon, 16 Jul 2018 19:41:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=oN7IC3T6MyT4Hrh64FHOKhkrAikqqRbemZ3D2LYO+LE=; b=a4NeC1Qxllt2aRW8xuYK4b9b8C8I2ziv4LEE/mD/nCr2s7YNQUSEXuG4JKH7q+TBUv HG/gPuwI0ZOofEBjjJmqjNf1pXvSPVCbdOvGE0oBIbjVBT1Djw24sAYpjbz+jXi0Jukp aJSavGA2BAKPJT+JHO+bV+67agdgLhRnMLBvDbkmTNOJIYRKkzAuzNGW+YXrBexNBqG/ jAEK92wyOCpCics2LX5bfZgcLd3JwXHAaLOIcwBG3eE34/IecG1Oyt2osTrFmVMcwHFh tqZ30evyRF7AHncOFWfy69CtOZoAeRzA/Kjh99w0qAH4NUqSYA0iLcDkdSJqHxUCWAhh /bWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=oN7IC3T6MyT4Hrh64FHOKhkrAikqqRbemZ3D2LYO+LE=; b=INxJQMhO0CyTH43ewiNGJEYPSURQp4Opaghjjgrg42Ozvp/9zoAsUSryW4UWWf5RPD T7Q0ywgJFxlZxaoXnb0YWj748CiKBZkfTAsYC7pHJre2+FB879gBdGjWkMxTuTZTMq7c tHz3Vld7GLYPd0YTK8ud5vZY9sY8ziwkM2emRnJ1meURFLFW3+opXMi+YwSE6ZX0roTx pUsR1dVh1XRMlsmqKDB9GOfCt0LSkHCpMxPbkcA1moUlqXnGUpO/58dRWeCJxQVB/Sgp /ScvdX0E/GxJr3VQzo70q00g1K03ROfhUK0bvH/3TrOOxoSs1ZmPynmGvpIZGW7FveV9 mhng== X-Gm-Message-State: AOUpUlFDXcGVbBjhZFX5afZ7wJ1max8DnWOlhX3NUBehEXwXoj0Pop1K DUchfEexHi1mOpnI4icGGj7T1w== X-Google-Smtp-Source: AAOMgpfLv91yb/NQ6iPgffej9zr10nf+mo/OAaRRntrbRRIQzKVpw6mwMR0xAJKsRzApsSXmCHCK/Q== X-Received: by 2002:a24:28f:: with SMTP id 137-v6mr86607itu.55.1531795301674; Mon, 16 Jul 2018 19:41:41 -0700 (PDT) Received: from pride.cinci.rr.com (cpe-74-136-84-14.kya.res.rr.com. [74.136.84.14]) by smtp.gmail.com with ESMTPSA id k21-v6sm13944itb.28.2018.07.16.19.41.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Jul 2018 19:41:41 -0700 (PDT) From: Sam Morris <0v3rdr0n3@gmail.com> To: linux-pm@vger.kernel.org, linux-ide@vger.kernel.org, rogerq@ti.com, rafael@kernel.org Cc: Samuel Morris Subject: [PATCH 3/3] ata: prevent double resume of ata platform device on init Date: Mon, 16 Jul 2018 22:41:03 +0000 Message-Id: <20180716224103.7912-4-0v3rdr0n3@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180716224103.7912-1-0v3rdr0n3@gmail.com> References: <20180716224103.7912-1-0v3rdr0n3@gmail.com> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Samuel Morris This prevents the first resume of the ahci_platform device, while still allowing parent devices to be resumed. Signed-off-by: Samuel Morris --- drivers/ata/ahci.h | 1 + drivers/ata/libahci_platform.c | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h index 1609ebab4e23..8ec39f69fae4 100644 --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h @@ -349,6 +349,7 @@ struct ahci_host_priv { u32 em_buf_sz; /* EM buffer size in byte */ u32 em_msg_type; /* EM message type */ bool got_runtime_pm; /* Did we do pm_runtime_get? */ + bool initialized; struct clk *clks[AHCI_MAX_CLKS]; /* Optional */ struct regulator **target_pwrs; /* Optional */ /* diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c index feee2e11fb33..baad85adf90c 100644 --- a/drivers/ata/libahci_platform.c +++ b/drivers/ata/libahci_platform.c @@ -476,11 +476,6 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev) goto err_out; } - pm_runtime_set_active(dev); - pm_runtime_enable(dev); - pm_runtime_forbid(dev); - hpriv->got_runtime_pm = true; - devres_remove_group(dev, NULL); return hpriv; @@ -594,7 +589,16 @@ int ahci_platform_init_host(struct platform_device *pdev, ahci_init_controller(host); ahci_print_info(host, "platform"); - return ahci_host_activate(host, sht); + rc = ahci_host_activate(host, sht); + if (rc) + return rc; + + pm_runtime_enable(dev); + pm_runtime_forbid(dev); + hpriv->got_runtime_pm = true; + hpriv->initialized = true; + + return 0; } EXPORT_SYMBOL_GPL(ahci_platform_init_host); @@ -760,6 +764,9 @@ static int _ahci_platform_resume(struct device *dev) struct ahci_host_priv *hpriv = host->private_data; int rc; + if (!hpriv->initialized) + return 0; + rc = ahci_platform_enable_resources(hpriv); if (rc) return rc;