From patchwork Tue Jul 31 13:02:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 143184 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp5305615ljj; Tue, 31 Jul 2018 06:02:32 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcAuqFKwAknzNoe9pYKaTsZiM7mmX6p1YtYD/tDk7JG2rvgmTpr9YoZ+PO+WLx2Cn59Vc60 X-Received: by 2002:a65:5106:: with SMTP id f6-v6mr20113575pgq.72.1533042152635; Tue, 31 Jul 2018 06:02:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533042152; cv=none; d=google.com; s=arc-20160816; b=poDJJYlzFykscWUQMtJPixkBXfxrTun1HY39FUlqaiccclPCb8jG75p2qDOY6ac8Qz cNwjlsZmuSxwp5qeQWGDbn7SCresO8k345XdSTfGaL5+Vo/jlC8rSogGZ8NrOiHXz57+ NkIrRfQcckqQDwboQXWb3d2jDozdkgL/H6VeaILYnPoxsGKZhSmi+X/dwFDUYlnhGRdi nADhjnWgM85chDLb4W0jc5cu/8W3VRr7TgjlNAQeGtMfB00F1jqtiOuIaa4IJ5xwAVgN Vg4ps+NRGdrCCB98glZ5BDMmoIeq+40jgUO3CFgBlac+MWXM5p3i1XQtbizwIEYpu9Sw gFog== 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:arc-authentication-results; bh=KpyOQJ7ztep8OwyTLvj+iU1mrJk2OPG4g/+gD6L0wrA=; b=eKnn4pMzy3XLY2cHHIujnzVGWu/yYH0Zhxdufr13HnqsYydHLupoCTSE1vBJcFpbz6 Iwe/OMBFD82Ki8GadchZjpkTGAp8llYfIvdkETVQZEU95gqfXLNGz0vQBhX4ZlSX7HmR jAZUvW5znATYKc0Tpf7YLD6NoikK6YoP8TZ0cvGcvitX/9qKWZY1KnweuX9XTt00WZAb ei791m50Jrr3g62tHo4InDDJSALfsrikkzAZbPiwMVWs+cjOFCu15ekoCMql/qcCPl7V LqbIPkI9oQ+g8grxn8n2WxD39+AwK+FJrUnJfxrdPTUlpoQb3mm6QzsVxZPXGI2GOvya neUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="M/xiTx9z"; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u35-v6si13052722pgl.237.2018.07.31.06.02.32; Tue, 31 Jul 2018 06:02:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-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=@linaro.org header.s=google header.b="M/xiTx9z"; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732144AbeGaOmp (ORCPT + 13 others); Tue, 31 Jul 2018 10:42:45 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:33659 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731962AbeGaOmp (ORCPT ); Tue, 31 Jul 2018 10:42:45 -0400 Received: by mail-pg1-f194.google.com with SMTP id r5-v6so9055548pgv.0 for ; Tue, 31 Jul 2018 06:02:31 -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=KpyOQJ7ztep8OwyTLvj+iU1mrJk2OPG4g/+gD6L0wrA=; b=M/xiTx9zaCAItsd5gUIw3elL+JJI8Y+YRc5ELHdLF5jdV0geudNW3FxUuoBWnbLoxN T02VrtglK6zUCGTNM58IQoKvXu79PZBIeWxQT+xc7unUh22PNCvvhlN3yq0N0rq5ApCz QjHuMI9I4ru/TARDJOFvO0gPMjwFMUpsNmPjs= 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=KpyOQJ7ztep8OwyTLvj+iU1mrJk2OPG4g/+gD6L0wrA=; b=nYNnsiB/kK18NtDNPBINTFPuK9NywCFB+kcBAyYuelaQJTWlLeCIHNAuXRxbPL1h6z 3jMfxZ/+0YlzOFFJUDfpO/T17/s6riQmZqzq2dYKsc6fOSE9ZaMBHIJOLNu74WZMVC4H 2ApsDk9M4HZ8Bgl1jD+J/awNLJQgMVc28NpLDMcMyLdPfXlq+BfImKnMkPrUPcswNHdH IscagP5LJDdSZxfyJ16SGj9cg2zmAh32vcqAe9lLODb6AyYzkiT5oqdluKcxRbps0xh/ pgMVTaH9ivP2DtBsJ5jEzNWbSEbjVGXYC/yER7ObJwz08fjfF0MsV01pieXzd/8Ezve7 /VZQ== X-Gm-Message-State: AOUpUlGC6dkh4IrYj0ngKGWSz/7XXSTvaynotWBjFbUT+fu3ntJQ5lGh rx2zsHLE8zUFZEDqjyMKe8I4wQ== X-Received: by 2002:a62:f909:: with SMTP id o9-v6mr22279881pfh.141.1533042149917; Tue, 31 Jul 2018 06:02:29 -0700 (PDT) Received: from localhost.localdomain ([106.51.18.123]) by smtp.gmail.com with ESMTPSA id f23-v6sm23048473pgl.5.2018.07.31.06.02.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 31 Jul 2018 06:02:28 -0700 (PDT) From: Amit Pundir To: Greg KH , Stable Cc: Chunfeng Yun , Kishon Vijay Abraham I Subject: [PATCH for-4.14.y 2/5] phy: phy-mtk-tphy: use auto instead of force to bypass utmi signals Date: Tue, 31 Jul 2018 18:32:18 +0530 Message-Id: <1533042142-8681-2-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533042142-8681-1-git-send-email-amit.pundir@linaro.org> References: <1533042142-8681-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Chunfeng Yun commit 00c0092c5f62147b7d85f0c6f1cf245a0a1ff3b6 upstream. When system is running, if usb2 phy is forced to bypass utmi signals, all PLL will be turned off, and it can't detect device connection anymore, so replace force mode with auto mode which can bypass utmi signals automatically if no device attached for normal flow. But keep the force mode to fix RX sensitivity degradation issue. Signed-off-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Amit Pundir --- Cherry-picked from lede tree https://git.lede-project.org/?p=source.git Not applicable for 4.9.y, 4.4.y and 3.18.y drivers/phy/mediatek/phy-mtk-tphy.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) -- 2.7.4 diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c index 721a2a1c97ef..a63bba12aee4 100644 --- a/drivers/phy/mediatek/phy-mtk-tphy.c +++ b/drivers/phy/mediatek/phy-mtk-tphy.c @@ -438,9 +438,9 @@ static void u2_phy_instance_init(struct mtk_tphy *tphy, u32 index = instance->index; u32 tmp; - /* switch to USB function. (system register, force ip into usb mode) */ + /* switch to USB function, and enable usb pll */ tmp = readl(com + U3P_U2PHYDTM0); - tmp &= ~P2C_FORCE_UART_EN; + tmp &= ~(P2C_FORCE_UART_EN | P2C_FORCE_SUSPENDM); tmp |= P2C_RG_XCVRSEL_VAL(1) | P2C_RG_DATAIN_VAL(0); writel(tmp, com + U3P_U2PHYDTM0); @@ -500,10 +500,8 @@ static void u2_phy_instance_power_on(struct mtk_tphy *tphy, u32 index = instance->index; u32 tmp; - /* (force_suspendm=0) (let suspendm=1, enable usb 480MHz pll) */ tmp = readl(com + U3P_U2PHYDTM0); - tmp &= ~(P2C_FORCE_SUSPENDM | P2C_RG_XCVRSEL); - tmp &= ~(P2C_RG_DATAIN | P2C_DTM0_PART_MASK); + tmp &= ~(P2C_RG_XCVRSEL | P2C_RG_DATAIN | P2C_DTM0_PART_MASK); writel(tmp, com + U3P_U2PHYDTM0); /* OTG Enable */ @@ -538,7 +536,6 @@ static void u2_phy_instance_power_off(struct mtk_tphy *tphy, tmp = readl(com + U3P_U2PHYDTM0); tmp &= ~(P2C_RG_XCVRSEL | P2C_RG_DATAIN); - tmp |= P2C_FORCE_SUSPENDM; writel(tmp, com + U3P_U2PHYDTM0); /* OTG Disable */ @@ -546,18 +543,16 @@ static void u2_phy_instance_power_off(struct mtk_tphy *tphy, tmp &= ~PA6_RG_U2_OTG_VBUSCMP_EN; writel(tmp, com + U3P_USBPHYACR6); - /* let suspendm=0, set utmi into analog power down */ - tmp = readl(com + U3P_U2PHYDTM0); - tmp &= ~P2C_RG_SUSPENDM; - writel(tmp, com + U3P_U2PHYDTM0); - udelay(1); - tmp = readl(com + U3P_U2PHYDTM1); tmp &= ~(P2C_RG_VBUSVALID | P2C_RG_AVALID); tmp |= P2C_RG_SESSEND; writel(tmp, com + U3P_U2PHYDTM1); if (tphy->pdata->avoid_rx_sen_degradation && index) { + tmp = readl(com + U3P_U2PHYDTM0); + tmp &= ~(P2C_RG_SUSPENDM | P2C_FORCE_SUSPENDM); + writel(tmp, com + U3P_U2PHYDTM0); + tmp = readl(com + U3D_U2PHYDCR0); tmp &= ~P2C_RG_SIF_U2PLL_FORCE_ON; writel(tmp, com + U3D_U2PHYDCR0);