From patchwork Thu Mar 22 09:39:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomeu Vizoso X-Patchwork-Id: 132255 Delivered-To: patch@linaro.org Received: by 10.46.84.29 with SMTP id i29csp607810ljb; Thu, 22 Mar 2018 02:40:40 -0700 (PDT) X-Google-Smtp-Source: AG47ELsjzWBlWcqyJ2Rkvmi2RkRBkc/CzC0GeMZdMKTDhdpuAFZtkQiIv7FL1KU10zivZRa2+KsL X-Received: by 2002:a17:902:5acf:: with SMTP id g15-v6mr19490102plm.138.1521711640007; Thu, 22 Mar 2018 02:40:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521711639; cv=none; d=google.com; s=arc-20160816; b=Z0ef9mDNZKIX3dg7ZZlD+18lC4pjEXDRA4iWl73L3K+klnXCnkJBw+1PPjQvjWPOpY vAIdxwq7bsIaKzVidmZncqkfp3yVAjIEJv7jhOQVrKu9RAQYiPvRFXddmGKp4fVPFM/y h+9c/xUTg5HJKTW5yAOg397KSHuouJG66rclQ8NCH8vP+h5k4SB4rv5uNrh6l0NO5Xq1 wziAwM0p8sxj0+z4pP4sQgOj1LZBsMKL/WdEbT3ol5SIxlWBjdWogUbskz1ys2y5v9NU CrkpxBHV1kHGKmsgX5eXASrY4U6LPX86/uWQTT4Cil0K2575evIEoj9BsyJEDT0uki0a 32hQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=KFtokh40tYC4iXpDYYuuJY+bIiHjZ9En/cL9bX+B9Ho=; b=flMYZuEM6RV8RJmQ8R7qey2gSkhvtNIdJVy4Y57rtQhvHLgVNh1uuQb4DhjyEZN3/V PToufPys+7yrld/T50xOPJciOZEeqaajkk52coMeTN7CknXJayzBPsQljU2YLWZUV3DP gQoS0ZmCu1bMnGj2XBT9qIRPXtW8+2l9CeJm96u6aZyKcQpXdOzI8y+vQ3XCb4svii9P ggl2Q8TYzODoBDiupcJ0UwThw7UWOangztpEA7wtNTaPb0BP0zhEo+wIGmJcB/J8EJHC co+2KnmZ7v7vSIhct7jkgsKdRVA7vwhOjxe7IfTtnmqJUAH2ddy/k7znhEuzUPtKux33 mU5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=WyQoGwwG; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h68si4130866pgc.537.2018.03.22.02.40.39; Thu, 22 Mar 2018 02:40:39 -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=fail header.i=@gmail.com header.s=20161025 header.b=WyQoGwwG; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753201AbeCVJkh (ORCPT + 28 others); Thu, 22 Mar 2018 05:40:37 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:35210 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752805AbeCVJkd (ORCPT ); Thu, 22 Mar 2018 05:40:33 -0400 Received: by mail-wm0-f67.google.com with SMTP id r82so14860399wme.0; Thu, 22 Mar 2018 02:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=KFtokh40tYC4iXpDYYuuJY+bIiHjZ9En/cL9bX+B9Ho=; b=WyQoGwwGW2MjGbPvAu46sDyW/B/mfxdVNFGU9ZGjPH5F84jEBW5x2FVqCIIVujgQ92 9aEGFpddXFCoXKvJOy1TKKElBK3xUpbXBRVnhWl3n6lqkU8nwFuqICtuqU5GxtK+Hp0l Ybv8rTHrhf+pjhqchW2UVnF5D6ohFy83qGe+1uVfDbcD8P/CqAoJ3jyNs44EMD8sPhYA PJ4161/NY+0dcwFt2VXvU1uFsGSDGPGaB9CQ/L4058/CWH4ekTaBdMZWTr+H0hxUQOwj ArCzDX3ABQV1CSWSdHpC2sq5hZenxy654CND0qjKmEJLDDrVfdPGvFgqndbSYw/iDycm iWNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=KFtokh40tYC4iXpDYYuuJY+bIiHjZ9En/cL9bX+B9Ho=; b=bknqKOSYKEG0+Ki7IcUamQN+AhhvvnBG0UEuQ0KV/9PLkGav2HtpXWV+76hTUJuENh q9whCNFcsoGhqO4nWYhajZhwD0bQL0PUl0cFjL026uHTc3jVSfTSZPMfp00E8vMauzOC pV/2pFvpWUX75W7jdClWgn52y1QNbnrfptBeWxFMElayZmUysoTt4ChehsibD/nTGuxc qQ91UN3FiTYX0qf8ceyjEpMJ7CSvBgDMy6rL5fvDT9DCrmCqjowTTOdJHfinvu2gJ4FJ 1dz+Okt89C/FMxJ0PrbNBpf6T/HFD9WMEeS4VBsBGQUyFBZUG1b3PhDaNBzcp1D9xMV4 x1fA== X-Gm-Message-State: AElRT7H3LabeeVWp96bwdto6Zq3fKOqPQ3u6IdruUULLxRudF1XTes07 NmOPxIt/7V8GQVwvITGHICkgs5CE X-Received: by 10.28.133.200 with SMTP id h191mr5420842wmd.39.1521711632190; Thu, 22 Mar 2018 02:40:32 -0700 (PDT) Received: from cizrna.lan ([109.72.12.73]) by smtp.gmail.com with ESMTPSA id w74sm5220631wmd.27.2018.03.22.02.40.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 22 Mar 2018 02:40:31 -0700 (PDT) From: Tomeu Vizoso To: linux-kernel@vger.kernel.org Cc: Felipe Balbi , Heiko Stuebner , Tomeu Vizoso , Amelie Delaunay , Minas Harutyunyan , Greg Kroah-Hartman , linux-usb@vger.kernel.org Subject: [PATCH] usb: dwc2: dwc2_vbus_supply_init: fix error check Date: Thu, 22 Mar 2018 10:39:43 +0100 Message-Id: <20180322093943.49717-1-tomeu.vizoso@collabora.com> X-Mailer: git-send-email 2.14.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org devm_regulator_get_optional returns -ENODEV if the regulator isn't there, so if that's the case we have to make sure not to leave -ENODEV in the regulator pointer. Also, make sure we return 0 in that case, but correctly propagate any other errors. Also propagate the error from _dwc2_hcd_start. Fixes: 531ef5ebea96 ("usb: dwc2: add support for host mode external vbus supply") Cc: Amelie Delaunay Signed-off-by: Tomeu Vizoso --- drivers/usb/dwc2/hcd.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) -- 2.14.3 Reviewed-by: Heiko Stuebner Reviewed-by: Amelie Delaunay Reviewed-by: Heiko Stuebner Reviewed-by: Grigor Tovmasyan Acked-by: Minas Harutyunyan Tested-by: Heiko Stuebner diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index dcfda5eb4cac..4ae211f65e85 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -359,8 +359,13 @@ static void dwc2_gusbcfg_init(struct dwc2_hsotg *hsotg) static int dwc2_vbus_supply_init(struct dwc2_hsotg *hsotg) { hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus"); - if (IS_ERR(hsotg->vbus_supply)) - return 0; + if (IS_ERR(hsotg->vbus_supply)) { + hsotg->vbus_supply = NULL; + if (PTR_ERR(hsotg->vbus_supply) == -ENODEV) + return 0; + else + return PTR_ERR(hsotg->vbus_supply); + } return regulator_enable(hsotg->vbus_supply); } @@ -4342,9 +4347,7 @@ static int _dwc2_hcd_start(struct usb_hcd *hcd) spin_unlock_irqrestore(&hsotg->lock, flags); - dwc2_vbus_supply_init(hsotg); - - return 0; + return dwc2_vbus_supply_init(hsotg); } /*