From patchwork Tue Jan 7 20:54:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 234314 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F9B4C282DD for ; Tue, 7 Jan 2020 21:17:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2713C2080A for ; Tue, 7 Jan 2020 21:17:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578431827; bh=Gp/vD1HcvuFOrxXK0RGDEN6nK/NDqbHsH7zaBdF7heY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=gc5kBqOzOzuxUFJQYW0a/tdPqFmAcyPIT22dLMXdAkwsDr2a5gzlUtqMg00FmaqFW U63n6QMtBcADqX149iO93ghtSYVqhUF/U3CE/SIk1QJt7KSddrXAyELsh3oCSle1ID 0fnJ7LtPaTnv0XjdedcvPOj9VZGwVpxDO34uqy4c= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728947AbgAGVGP (ORCPT ); Tue, 7 Jan 2020 16:06:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:54732 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729363AbgAGVGN (ORCPT ); Tue, 7 Jan 2020 16:06:13 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 530332077B; Tue, 7 Jan 2020 21:06:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578431172; bh=Gp/vD1HcvuFOrxXK0RGDEN6nK/NDqbHsH7zaBdF7heY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P+fsEd3MyDe356BcZCNDcZ0JLI3VDgPrLy92wMnqPKRfxteqj7u2Dd4c2Vdk7Ppr9 F6kaC0FaMvMQx5RykH530MResWCNqItQewDonEL4Rmi7nSk+MLrWjzlIz3q++XMub8 UhDnz2BsnHf7qvP3ZIIzg5V09Ziukj5EJBpciaVQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hans de Goede , Florian Fainelli , Jens Axboe Subject: [PATCH 4.19 063/115] ata: ahci_brcm: Add missing clock management during recovery Date: Tue, 7 Jan 2020 21:54:33 +0100 Message-Id: <20200107205303.419870315@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200107205240.283674026@linuxfoundation.org> References: <20200107205240.283674026@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Florian Fainelli commit bf0e5013bc2dcac205417e1252205dca39dfc005 upstream. The downstream implementation of ahci_brcm.c did contain clock management recovery, but until recently, did that outside of the libahci_platform helpers and this was unintentionally stripped out while forward porting the patch upstream. Add the missing clock management during recovery and sleep for 10 milliseconds per the design team recommendations to ensure the SATA PHY controller and AFE have been fully quiesced. Fixes: eb73390ae241 ("ata: ahci_brcm: Recover from failures to identify devices") Cc: stable@vger.kernel.org Reviewed-by: Hans de Goede Signed-off-by: Florian Fainelli Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- drivers/ata/ahci_brcm.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/drivers/ata/ahci_brcm.c +++ b/drivers/ata/ahci_brcm.c @@ -284,6 +284,13 @@ static unsigned int brcm_ahci_read_id(st /* Perform the SATA PHY reset sequence */ brcm_sata_phy_disable(priv, ap->port_no); + /* Reset the SATA clock */ + ahci_platform_disable_clks(hpriv); + msleep(10); + + ahci_platform_enable_clks(hpriv); + msleep(10); + /* Bring the PHY back on */ brcm_sata_phy_enable(priv, ap->port_no);