Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2210406imm; Mon, 28 May 2018 04:01:53 -0700 (PDT) X-Google-Smtp-Source: AB8JxZr4ZCjVCGApDUkpt69wDBTntlb0IGAFSzZ/xRIVZKzJFYjqrtb3ORo3KXUAf0Ynps4POInZ X-Received: by 2002:a17:902:bd98:: with SMTP id q24-v6mr10302789pls.105.1527505313100; Mon, 28 May 2018 04:01:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527505313; cv=none; d=google.com; s=arc-20160816; b=Zf9/qHLTkpzkcENh4MNOEfWxleA3tstnl9LkDVrtUFskRQJkf5DBe3ccxDe55O3CQv OjAMsR8iFyd2xEpKY57hdc++gN/eT3qDRiCvOBv38rP5IgdTViWPKTIL1tXIZ+jOfafo YcJ4mL8jaO51cfX60TSAOPQn4/OQ1ZOqNyX3wglO/TZ82gt0d48cRT3gvQtno8pFmy7W 4C36Ke+F6KddahocQKkNCvffWLblkhp4fy/AnCEVZhyvILvZ/6vKTa8U6i04Iad4ZPTs ncj005Rsj1X2w6Gc5z8Taot6yFgpv7qfax+QUnw9djnOdmUDWEmBiwTHfi6RWrSDyLkq sYDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=zmEspNMW9/FCeGgndQjsinnjyXNvZdXVGDVdMsBj1QU=; b=JQ4G2k/VzbwzeyezMfeJXQQ2L2AYPIh2S/9376cKWs5BOWBKWEZFe9vA6xxgL5Kr0m rRMiVfrWdUU8FA5Zccee7upgRby0VsPJnFZcYS9ZzlTZFNRqxiK6CTTmhOpwMMEjmQuP f0tJOnq0LrsyTWVthGXvacDNIS6kOMc2vs29X/jDwOUUdF3r5ts4yOkwsn5gSaabYSYX whq00n8LkWSbl1ZfYE7b6R9i+gPB/Aqi2OsfkbO9FIgsa0mAx2JyfExVRS4mf1X6t7Lj movJ0TglYd1SP5Dawt0p5sph/vBlGpns+Jj3R4b1yEmQmcl2YNnFREMvzvr4HiRKpGIy 80yQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E73vyvhq; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o62-v6si23963942pga.94.2018.05.28.04.01.38; Mon, 28 May 2018 04:01:53 -0700 (PDT) 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=@kernel.org header.s=default header.b=E73vyvhq; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422738AbeE1LB1 (ORCPT + 99 others); Mon, 28 May 2018 07:01:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:48924 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S938029AbeE1LBW (ORCPT ); Mon, 28 May 2018 07:01:22 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (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 5D7A8206B7; Mon, 28 May 2018 11:01:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505281; bh=qHUgbix4FgUYYszdYYHzZDl4rGtcbadBeZdyvmUzBrc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E73vyvhqpUpow5YS4+n8n9W+XsouQK/tm4wlXYYaEBs3BVt0P99p0TOi2LM3hw7US 57dXC/VJL4HgR9Rfkrotw/ybupG6zzLNwjkmsB1ZXpPUqldatJCLkqQx8jPHaVFqgB ctP5T7bCTnQtfxl5ERymNGWQsDo9jIQ1WiDclNnk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vivek Gautam , Manu Gautam , Kishon Vijay Abraham I , Sasha Levin Subject: [PATCH 4.14 441/496] phy: qcom-qmp: Fix phy pipe clock gating Date: Mon, 28 May 2018 12:03:46 +0200 Message-Id: <20180528100338.424636180@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Vivek Gautam [ Upstream commit f8ba22a39e985c93e278709b1d5f20857a26b49b ] Pipe clock comes out of the phy and is available as long as the phy is turned on. Clock controller fails to gate this clock after the phy is turned off and generates a warning. / # [ 33.048561] gcc_usb3_phy_pipe_clk status stuck at 'on' [ 33.048585] ------------[ cut here ]------------ [ 33.052621] WARNING: CPU: 1 PID: 18 at ../drivers/clk/qcom/clk-branch.c:97 clk_branch_wait+0xf0/0x108 [ 33.057384] Modules linked in: [ 33.066497] CPU: 1 PID: 18 Comm: kworker/1:0 Tainted: G W 4.12.0-rc7-00024-gfe926e34c36d-dirty #96 [ 33.069451] Hardware name: Qualcomm Technologies, Inc. DB820c (DT) ... [ 33.278565] [] clk_branch_wait+0xf0/0x108 [ 33.286375] [] clk_branch2_disable+0x28/0x34 [ 33.291761] [] clk_core_disable+0x5c/0x88 [ 33.297660] [] clk_core_disable_lock+0x20/0x34 [ 33.303129] [] clk_disable+0x1c/0x24 [ 33.309384] [] qcom_qmp_phy_poweroff+0x20/0x48 [ 33.314328] [] phy_power_off+0x80/0xdc [ 33.320492] [] dwc3_core_exit+0x94/0xa0 [ 33.325784] [] dwc3_suspend_common+0x50/0x60 [ 33.331080] [] dwc3_runtime_suspend+0x48/0x6c [ 33.336810] [] pm_generic_runtime_suspend+0x28/0x38 [ 33.342627] [] __rpm_callback+0x150/0x254 [ 33.349222] [] rpm_callback+0x24/0x78 [ 33.354604] [] rpm_suspend+0xe0/0x4e4 [ 33.359813] [] pm_runtime_work+0xdc/0xf0 [ 33.365028] [] process_one_work+0x12c/0x28c [ 33.370576] [] worker_thread+0x58/0x3b8 [ 33.376393] [] kthread+0x100/0x12c [ 33.381776] [] ret_from_fork+0x10/0x50 Fix this by disabling it as the first thing in phy_exit(). Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets") Signed-off-by: Vivek Gautam Signed-off-by: Manu Gautam Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/phy/qualcomm/phy-qcom-qmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/phy/qualcomm/phy-qcom-qmp.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -751,8 +751,6 @@ static int qcom_qmp_phy_poweroff(struct struct qmp_phy *qphy = phy_get_drvdata(phy); struct qcom_qmp *qmp = qphy->qmp; - clk_disable_unprepare(qphy->pipe_clk); - regulator_bulk_disable(qmp->cfg->num_vregs, qmp->vregs); return 0; @@ -936,6 +934,8 @@ static int qcom_qmp_phy_exit(struct phy const struct qmp_phy_cfg *cfg = qmp->cfg; int i = cfg->num_clks; + clk_disable_unprepare(qphy->pipe_clk); + /* PHY reset */ qphy_setbits(qphy->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET);