Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5752825ybl; Tue, 10 Dec 2019 10:56:32 -0800 (PST) X-Google-Smtp-Source: APXvYqxDq2+7Br+rgH8RBuVCkW3dgI+U7DnmDvUFvgSYkGoO1f2GdGAXSuU5XXVhxhgmAbycOW7g X-Received: by 2002:a9d:7a46:: with SMTP id z6mr27242196otm.194.1576004192644; Tue, 10 Dec 2019 10:56:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576004192; cv=none; d=google.com; s=arc-20160816; b=gFrr8lUah3K5p4VItrysgb73q/Wa7BgRGJUbZrZzJpSFgTJrv5FhuNMDa4baTat9iJ GQNMi7f+rR82zPmmxo6f+fJagVDqOBfpmSPbdsJzj5us4Co3YqMj7VA6fBQdJCHX+0SC 8TJU8XuqlCeSi8sLPq5trQXoLFKWKhDwuogjBmuB4HoqFmiOHTzFP+epVqoHmJvBR4mB LBQTdKWAOZrsb5n99uD6kqIt+W0oPFVfxLyqT3xPsqjIznowWxcBRgxko1i0+o6lCJ3c sZo2oJ/DBbT0r7RvZb6ThsypYY3x9lWvXoVHATzDVJDvKICzBvGqJ6N/dwhLWMaxNykb jU2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=zGMvJWZo3bb5zgamkdnRKaVLQdrbvMefeySxvLbMI38=; b=nj/KDENPN02nt3bKwGcHZZYo+RmweQttRKphOSpUaGkFfcOF9mtRCdcFML5TPlmsw3 yJF3B9H/tQIJ5sl5oVO1EdfiT/hMGCl5y+eKR/Gow5HFqhkcAK0hfLh2OaFawMTAq2qF 7UeXoA0C+9jip/ec8S7WqOCtC16GioYHPNdr89qViwHqZzMCOAjkP1UQHajtV3tgzCbY BmlNYG249Hv9TMTCPMzmFBrH1Gnw29gCMbs2jflEhDGgbeOvlA8Oxd8uoOYmb7o5lzr8 AmVLStYESzAx9MtFEOMg+6FTR43Lq0jSzZ5g+uFFy6AIQ9aMe/LYsrDnacKMV01Xn5Ti CLcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="aje+hkE/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l16si2530775otq.73.2019.12.10.10.56.20; Tue, 10 Dec 2019 10:56:32 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="aje+hkE/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727827AbfLJSza (ORCPT + 99 others); Tue, 10 Dec 2019 13:55:30 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:37943 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727813AbfLJSz2 (ORCPT ); Tue, 10 Dec 2019 13:55:28 -0500 Received: by mail-wr1-f66.google.com with SMTP id y17so21339861wrh.5; Tue, 10 Dec 2019 10:55:26 -0800 (PST) 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=zGMvJWZo3bb5zgamkdnRKaVLQdrbvMefeySxvLbMI38=; b=aje+hkE/+cZZU+/Ppdll3mTIUW8qKLA/5x0PZcMiq9tm8zyH+AGTKB3VKONQeMMb0x lwQPhevBddVLD4SciVMGl2Bj4TVXtoiH6BoGPS44K78xEHxShUwpYMahFEH0++K6dn00 +8CJKs1LOJfc2AC7LUq+yr23Ih8ey/yE5GL9qZUYROTj/suTP/ln0TCT+RT0ohpm2Lu9 gJrEoia4D4eoAqwXWZdmzG6svXXmpOFSRKRIveCibqU2K+Z0AUbT69WxDyrlC64PYfPP J0frDKrvRy/uoumh6+aEYeteQ+72B0B+qT0yqyLxbvH+GUGS3WwmMpCwn+1iX00I2f3c bigg== 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=zGMvJWZo3bb5zgamkdnRKaVLQdrbvMefeySxvLbMI38=; b=XhxlvcH3tVa83xUTBaAZJGPGG1LJ0NS1aK37qFp0IYpu4J7NClSBI7JHNW+adYefYv vUbzUL5mjcxZJVZ43/MsU66FTJXgcI4n463R3eCpq6FsMBp+lRLPd2qEnTq7kC84Pivy Edu5ObRrEycsDKoy8Vl2S6cvsAtxQ0npiEpr7JvOaQ/cB2vXs5WlZPhKcSSSi7csx8xk IBGZkBMT4d1uZPQVsFB7cHIV3WkEQr4TgTNYpqA3x9kEaNbs7IoD3OQGnaW816QK3gA8 HA9GaiE/9qtlMT+hc7YwGZtmNksIXa8U0x9wHkhO3Gkw3QnBee4Z4rAHc5rmt3zCbsPh DtYQ== X-Gm-Message-State: APjAAAUPNA18z2Ha2MhOvSkEWZKSon3q2FW4mTXK6n69JN4ik2ZZn+cu toZs9SxeE3QRihMWlonrPu9NTX/W X-Received: by 2002:a5d:4ec2:: with SMTP id s2mr4764181wrv.291.1576004125685; Tue, 10 Dec 2019 10:55:25 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e6sm4213536wru.44.2019.12.10.10.55.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2019 10:55:25 -0800 (PST) From: Florian Fainelli To: linux-kernel@vger.kernel.org Cc: bcm-kernel-feedback-list@broadcom.com, Florian Fainelli , Jens Axboe , Rob Herring , Mark Rutland , Hans de Goede , Philipp Zabel , Tejun Heo , Jaedon Shin , linux-ide@vger.kernel.org (open list:LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)), devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS) Subject: [PATCH 5/8] ata: ahci_brcm: Manage reset line during suspend/resume Date: Tue, 10 Dec 2019 10:53:48 -0800 Message-Id: <20191210185351.14825-6-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191210185351.14825-1-f.fainelli@gmail.com> References: <20191210185351.14825-1-f.fainelli@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We were not managing the reset line during suspend/resume, but this needs to be done to ensure that the controller can exit low power modes correctly, especially with deep sleep suspend mode that may reset parts of the logic. Signed-off-by: Florian Fainelli --- drivers/ata/ahci_brcm.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/ata/ahci_brcm.c b/drivers/ata/ahci_brcm.c index 66a570d0da83..76612577a59a 100644 --- a/drivers/ata/ahci_brcm.c +++ b/drivers/ata/ahci_brcm.c @@ -343,10 +343,16 @@ static int brcm_ahci_suspend(struct device *dev) struct ata_host *host = dev_get_drvdata(dev); struct ahci_host_priv *hpriv = host->private_data; struct brcm_ahci_priv *priv = hpriv->plat_data; + int ret; brcm_sata_phys_disable(priv); - return ahci_platform_suspend(dev); + ret = ahci_platform_suspend(dev); + + if (!IS_ERR_OR_NULL(priv->rcdev)) + reset_control_assert(priv->rcdev); + + return ret; } static int brcm_ahci_resume(struct device *dev) @@ -354,7 +360,12 @@ static int brcm_ahci_resume(struct device *dev) struct ata_host *host = dev_get_drvdata(dev); struct ahci_host_priv *hpriv = host->private_data; struct brcm_ahci_priv *priv = hpriv->plat_data; - int ret; + int ret = 0; + + if (!IS_ERR_OR_NULL(priv->rcdev)) + ret = reset_control_deassert(priv->rcdev); + if (ret) + return ret; /* Make sure clocks are turned on before re-configuration */ ret = ahci_platform_enable_clks(hpriv); -- 2.17.1