From patchwork Thu Jul 20 10:48:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 791561 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="aTiNHhx7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xCrHM3wyxz9s75 for ; Thu, 20 Jul 2017 20:49:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935066AbdGTKsj (ORCPT ); Thu, 20 Jul 2017 06:48:39 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:36357 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934348AbdGTKsi (ORCPT ); Thu, 20 Jul 2017 06:48:38 -0400 Received: by mail-lf0-f68.google.com with SMTP id l200so1376456lfb.3; Thu, 20 Jul 2017 03:48:37 -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:in-reply-to:references; bh=puEP8eahd6GwthWyaMXpqhGQ8euAPM6W3eZfbp2xsPA=; b=aTiNHhx7VTBBxGOD2p/G0Bw/j4gbVBi9r9OqVmTLQvx0dTyUSpUAgLrP/Hy6KYZlxk PdHe03REfExOP0kwMLDP/8GqtD2Zy+II7KYyMWIMxR5spmgIVy+g9pSWH1OqaJKnrOvA 3f0/MEUvLxUVDtm4z6/buJHTDxFd9WuHG9hL5Fhvz4TTCBoKDA939BjBkB/QJvbpHO8/ dA2qfGeoAXxRESRiOqExHnyIoISCj336zPeFN6W69Jvvhh7M+a1meMwOo5Hm58JbSMwP uBYYOH1Rr9oGFOlxEtIiutFYOkssmEF7jb3VOT3kp1n/scJFtsIyXMKn2p4AxZBHD9Ii IZKw== 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 :in-reply-to:references; bh=puEP8eahd6GwthWyaMXpqhGQ8euAPM6W3eZfbp2xsPA=; b=mKkD6twSg/zJYOUhF2PESYkUAiL0Wh4/9PlS1Y6ragsADdlGKR8GNz7efk5vFRaRDs pKXKUQMuVRZOCkdcQQCg+jW7oMs9QjZixUuGyq6c6HkG7hfFoTkjKd5Jl9Ho8EAxJL3t FT2a05yYGCvhhZRKFMERHeq10yOcQv3j0bRBcdiR4CJJyc/sX8qko6HX6UWFB09N8dtf pbLRJjE9BOiRXu+Qmn+mXh0sPp2dlvr4YafEIECJDfbc3O91y+8sU9QpA21WkexX4vJj v9E7UKwpUFw1G9sihMpCRXjLuKgTR9x0TEu1UnD8H6cdm1Ae0AxdVnLRdFM+/khVRSKk uAxA== X-Gm-Message-State: AIVw11105ued5+SCMqp7EjpdPIkE7/PnuXi+H/zKODKKw1tye9AM//mY VWrxFP8qlSgxwug+Cyo= X-Received: by 10.46.32.7 with SMTP id g7mr1374207ljg.120.1500547716531; Thu, 20 Jul 2017 03:48:36 -0700 (PDT) Received: from xi.terra (c-42c8e255.07-184-6d6c6d4.cust.bredbandsbolaget.se. [85.226.200.66]) by smtp.gmail.com with ESMTPSA id r25sm423450lfi.70.2017.07.20.03.48.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Jul 2017 03:48:35 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.89) (envelope-from ) id 1dY90S-0006hh-Ba; Thu, 20 Jul 2017 12:48:32 +0200 From: Johan Hovold To: Thierry Reding Cc: linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 2/2] pwm: tiehrpwm: fix clock imbalance in probe error path Date: Thu, 20 Jul 2017 12:48:17 +0200 Message-Id: <20170720104817.25726-2-johan@kernel.org> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170720104817.25726-1-johan@kernel.org> References: <20170720104817.25726-1-johan@kernel.org> Sender: linux-pwm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pwm@vger.kernel.org Make sure to unprepare the clock before returning on late probe errors. Fixes: b388f15fd14c ("pwm: pwm-tiehrpwm: Use clk_enable/disable instead clk_prepare/unprepare.") Signed-off-by: Johan Hovold --- drivers/pwm/pwm-tiehrpwm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-tiehrpwm.c b/drivers/pwm/pwm-tiehrpwm.c index 6e51a075d1a7..387eaf1bac85 100644 --- a/drivers/pwm/pwm-tiehrpwm.c +++ b/drivers/pwm/pwm-tiehrpwm.c @@ -489,13 +489,18 @@ static int ehrpwm_pwm_probe(struct platform_device *pdev) ret = pwmchip_add(&pc->chip); if (ret < 0) { dev_err(&pdev->dev, "pwmchip_add() failed: %d\n", ret); - return ret; + goto err_clk_unprepare; } pm_runtime_enable(&pdev->dev); platform_set_drvdata(pdev, pc); return 0; + +err_clk_unprepare: + clk_unprepare(pc->tbclk); + + return ret; } static int ehrpwm_pwm_remove(struct platform_device *pdev)