From patchwork Tue Aug 18 07:56:16 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ivan T. Ivanov" X-Patchwork-Id: 52489 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f200.google.com (mail-lb0-f200.google.com [209.85.217.200]) by patches.linaro.org (Postfix) with ESMTPS id EBFF822DB1 for ; Tue, 18 Aug 2015 07:56:41 +0000 (UTC) Received: by lbbpd10 with SMTP id pd10sf29376682lbb.3 for ; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:sender:precedence:list-id:x-original-sender :x-original-authentication-results:mailing-list:list-post:list-help :list-archive:list-unsubscribe; bh=/FxNe0t6yGHQmpDzjPsi2yI2GHnQhh08dEoPtXg7HpY=; b=QTPV+LznbCgd1NIQ3MA7S/kbbPtHyFAFRNgNAJ6uW0oI9svJI3xTuzBTalc4/HJ0U7 43s7f7bueqNpADi6b8bDbsDeR+flZ/Fi8Trjp8ljibc6C2Rsbqrs3Kf1VWiuPjpMtsd6 wxWVlEXSa2yWfxjqfCsBBMHa0lPKc6IB7XFMD1XTHllDFV945eJbMNRaFrkwGAOmz4vh P0zYT07qT6KWtn7FOD0RjZPGzd6H0I1nPzzTQlERo/6tchKx5wNgfqobwlgTZfJkUaJr iACwb7gDhthncbJnJiaSrAo5Wc95j9l66acMsFBvYRNuw54imeFQTLkG0gCZiItrC7AG kRTA== X-Gm-Message-State: ALoCoQnxDbH2gSigeoklYNY7GgCX6SULGqWWq++ytqZuPCAfGGu2W2hBjHr81J1O9klBERYl1uwx X-Received: by 10.112.167.201 with SMTP id zq9mr1464411lbb.2.1439884600911; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.28.100 with SMTP id a4ls737200lah.52.gmail; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) X-Received: by 10.152.28.105 with SMTP id a9mr5026375lah.9.1439884600533; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) Received: from mail-la0-f50.google.com (mail-la0-f50.google.com. [209.85.215.50]) by mx.google.com with ESMTPS id jn7si1426168lbc.55.2015.08.18.00.56.40 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Aug 2015 00:56:40 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.50 as permitted sender) client-ip=209.85.215.50; Received: by labd1 with SMTP id d1so94592043lab.1 for ; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) X-Received: by 10.152.5.228 with SMTP id v4mr4932189lav.36.1439884600242; Tue, 18 Aug 2015 00:56:40 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.162.200 with SMTP id yc8csp316630lbb; Tue, 18 Aug 2015 00:56:39 -0700 (PDT) X-Received: by 10.70.52.226 with SMTP id w2mr10670544pdo.88.1439884598397; Tue, 18 Aug 2015 00:56:38 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id pb9si28922874pbc.121.2015.08.18.00.56.37; Tue, 18 Aug 2015 00:56:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-arm-msm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751824AbbHRH4g (ORCPT + 6 others); Tue, 18 Aug 2015 03:56:36 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:38022 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751479AbbHRH4f (ORCPT ); Tue, 18 Aug 2015 03:56:35 -0400 Received: by wicja10 with SMTP id ja10so100505404wic.1 for ; Tue, 18 Aug 2015 00:56:34 -0700 (PDT) X-Received: by 10.194.20.161 with SMTP id o1mr11029530wje.32.1439884594360; Tue, 18 Aug 2015 00:56:34 -0700 (PDT) Received: from localhost.localdomain ([37.157.136.206]) by smtp.googlemail.com with ESMTPSA id mc18sm20132636wic.23.2015.08.18.00.56.32 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Aug 2015 00:56:33 -0700 (PDT) From: "Ivan T. Ivanov" To: Felipe Balbi , Tim Bird Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm Subject: [PATCH] usb: phy: msm: Unregister driver interest for VBUS and ID events Date: Tue, 18 Aug 2015 10:56:16 +0300 Message-Id: <1439884576-28467-1-git-send-email-ivan.ivanov@linaro.org> X-Mailer: git-send-email 1.9.1 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: ivan.ivanov@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.50 as permitted sender) smtp.mailfrom=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Right now even if driver failed to probe extcon framework will still deliver its VBUS and ID events, which will lead to random exception codes. Fix this by removing driver interest for VBUS and ID events when probe fail. Fixes: 591fc116f330 ("usb: phy: msm: Use extcon framework for VBUS and ID detection") Reported-by: Tim Bird Signed-off-by: Ivan T. Ivanov --- drivers/usb/phy/phy-msm-usb.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index 00c49bb1bd29..a9082567f114 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c @@ -1581,6 +1581,8 @@ static int msm_otg_read_dt(struct platform_device *pdev, struct msm_otg *motg) ret = extcon_register_interest(&motg->id.conn, ext_id->name, "USB-HOST", &motg->id.nb); if (ret < 0) { + if (!IS_ERR(ext_vbus)) + extcon_unregister_interest(&motg->vbus.conn); dev_err(&pdev->dev, "register ID notifier failed\n"); return ret; } @@ -1630,15 +1632,6 @@ static int msm_otg_probe(struct platform_device *pdev) if (!motg) return -ENOMEM; - pdata = dev_get_platdata(&pdev->dev); - if (!pdata) { - if (!np) - return -ENXIO; - ret = msm_otg_read_dt(pdev, motg); - if (ret) - return ret; - } - motg->phy.otg = devm_kzalloc(&pdev->dev, sizeof(struct usb_otg), GFP_KERNEL); if (!motg->phy.otg) @@ -1709,6 +1702,15 @@ static int msm_otg_probe(struct platform_device *pdev) if (ret) return ret; + pdata = dev_get_platdata(&pdev->dev); + if (!pdata) { + if (!np) + return -ENXIO; + ret = msm_otg_read_dt(pdev, motg); + if (ret) + return ret; + } + motg->vddcx = regs[0].consumer; motg->v3p3 = regs[1].consumer; motg->v1p8 = regs[2].consumer; @@ -1793,6 +1795,12 @@ disable_clks: clk_disable_unprepare(motg->clk); if (!IS_ERR(motg->core_clk)) clk_disable_unprepare(motg->core_clk); + + if (motg->id.conn.edev) + extcon_unregister_interest(&motg->id.conn); + if (motg->vbus.conn.edev) + extcon_unregister_interest(&motg->vbus.conn); + return ret; }