From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031372AbdAJMGM (ORCPT ); Tue, 10 Jan 2017 07:06:12 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:38143 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1762772AbdAJMGI (ORCPT ); Tue, 10 Jan 2017 07:06:08 -0500 X-AuditID: b6c32a37-f79606d000005083-e9-5874ce2d587d From: Bartlomiej Zolnierkiewicz To: linux-arm-kernel@lists.infradead.org Cc: Shuah Khan , balbi@kernel.org, gregkh@linuxfoundation.org, kgene@kernel.org, krzk@kernel.org, javier@osg.samsung.com, linux-samsung-soc@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] usb: dwc3-exynos fix unspecified suspend clk error handling Date: Tue, 10 Jan 2017 13:05:58 +0100 Message-id: <1641038.u0riMiuGF5@amdc3058> User-Agent: KMail/4.13.3 (Linux/3.13.0-96-generic; KDE/4.13.3; x86_64; ; ) In-reply-to: <20170110022131.31042-1-shuahkh@osg.samsung.com> MIME-version: 1.0 Content-transfer-encoding: 7Bit Content-type: text/plain; charset=us-ascii X-Brightmail-Tracker: H4sIAAAAAAAAA02Sb0hTYRTGfXe3e6+ryXWaHpQyBkFaLodBF80oEVnSB4mIIVKOvExp07Gr khE0ybRZ5LSZNo1Syw/TUuYy/8AWs7RAnZIoSQoxy8h/6VpZSta8E/z2O+95zvO+z+ElMXGj IILMzStgdHlKtQQX8rv6o6WxsSMFirg6xyF6oGyWoG80t+P0wmIbj650z2O0y9VB0Fb3hIB+ 39uA03UuO49uarmJ0TU/vvNPCuVWiwGXOx62EfLOJ9fltsppQu6x7ksXZAiPZzPq3CJGd+RE ljCncvUNrl0IvjJuK8H0aDOoAgWSQB0F09M5xHEYjM604xVISIqpbgQdqxMCrijnQeNqA397 Yn25msc1GhBYe0wEV3gRvB7/vOWFUwlQVW7Z4lDqIJgq3ISPMcqDoMuc6uMQ6izMzg/9dyJJ PnUAlofBdyyioqH+hXtrdA+VBjZ7Oc/HgVQSjPbcJzhNMKzdm+FzllFgd9QIOD4MwwPPke89 QNkJ6Bw0I58/UHvB+grjAqTAcM1Hf+QQ+DZoIziOBMvfKR7HtQhergPn04nA0mf0ixKhf3DM f1kQLHnvCDh/EdwqE3MSOUyaV/zLOgWOD63+lRoR/PSs4EYUZd6Rwbwjg3lHhscIs6AwRstq VAwr08ZLWaWGLcxTSS/la6xo6+PEHOtGHSNnnIgikWS3SGFkFWKBsogt1jgRkJgkVDQ7UKAQ i7KVxVcZXf5FXaGaYZ0okuRLwkXNJYkKMaVSFjCXGUbL6La7PDIwQo+E4YZn73pFyZ41/FGV M+H8onQkNWms0AulertW5OwrXPW2qogHk7tK1RmGJV161qcq8prG1Fart3nNf9K+uKZ/Wfo3 Ft8WZbqkY0zjfMmG6eta45C5qShgKj6rNW/OGHd7MfFcwOb+lAuyZQP927QSl3FX1VJdX5x8 WpZZJ+GzOUpZDKZjlf8A9MojwzQDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrEIsWRmVeSWpSXmKPExsVy+t9jQV3dcyURBmsm81gca3vCbtG8eD2b xZu3a5gs+h+/ZrY4f34Du8Wmx9dYLS7vmsNmMeP8PiaLRctamS2mfvnA4sDlsWlVJ5vH/rlr 2D02L6n32NJ/l93j8ya5ANYoN5uM1MSU1CKF1Lzk/JTMvHRbpdAQN10LJYW8xNxUW6UIXd+Q ICWFssScUiDPyAANODgHuAcr6dsluGX0fzrKVvBGsOLKlkbmBsb/fF2MnBwSAiYSv99PYoKw xSQu3FvP1sXIxSEkMItR4s3xpcwgCSGBr4wSl/fJgNhsAlYSE9tXMYLYIgIaElO6HrODNDAL fGaU2HVgPwtIQlggQOLFzUYgm4ODRUBV4v1ZCZAwr4CmxOytj8F6RQW8JLbsawdbzClgK3Fh 5zR2iF02EguWtzFB1AtK/Jh8D2wks4C8xL79U1khbC2J9TuPM01gBLoSoWwWkrJZSMoWMDKv YpRILUguKE5KzzXMSy3XK07MLS7NS9dLzs/dxAiOv2dSOxgP7nI/xCjAwajEwxsxoThCiDWx rLgy9xCjBAezkgjvk2MlEUK8KYmVValF+fFFpTmpxYcYTYH+m8gsJZqcD0wNeSXxhibmJubG BhbmlpYmRkrivI2zn4ULCaQnlqRmp6YWpBbB9DFxcEo1MJY0Pw8RczJMXmqwqVbxio7AxpLA WZ9mNktqNjUv2XTL9kd8Aa9LcLx7+8yoxxl3Gr+9L5i8YsGC4w2s/XV/Fzoseso9S1LeWGDv 8VmpLKtUTKX6KpabBIXkiuwROVaQLJVZt9q67oxTbUe5naOYr5hG2FcJ7pZjtsfcHyXbR554 96Rmy/G7SizFGYmGWsxFxYkArNTZ8dUCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170110120605epcas1p1c26f7f90fca4765ab9cc339c51d11347 X-Msg-Generator: CA X-Sender-IP: 203.254.230.26 X-Local-Sender: =?UTF-8?B?QmFydGxvbWllaiBab2xuaWVya2lld2ljehtTUlBPTC1LZXJu?= =?UTF-8?B?ZWwgKFRQKRvsgrzshLHsoITsnpAbU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVy?= X-Global-Sender: =?UTF-8?B?QmFydGxvbWllaiBab2xuaWVya2lld2ljehtTUlBPTC1LZXJu?= =?UTF-8?B?ZWwgKFRQKRtTYW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBF?= =?UTF-8?B?bmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 101P X-HopCount: 7 X-CMS-RootMailID: 20170110120605epcas1p1c26f7f90fca4765ab9cc339c51d11347 X-RootMTR: 20170110120605epcas1p1c26f7f90fca4765ab9cc339c51d11347 References: <20170110022131.31042-1-shuahkh@osg.samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Monday, January 09, 2017 07:21:31 PM Shuah Khan wrote: > Fix dwc3_exynos_probe() to call clk_prepare_enable() only when suspend > clock is specified. Call clk_disable_unprepare() from remove and probe > error path only when susp_clk has been set from remove and probe error > paths. It is legal to call clk_prepare_enable() and clk_disable_unprepare() for NULL clock. Also your patch changes susp_clk handling while leaves axius_clk handling (which also can be NULL) untouched. Do you actually see some runtime problem with the current code? If not then the patch should probably be dropped. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics > Signed-off-by: Shuah Khan > --- > drivers/usb/dwc3/dwc3-exynos.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/dwc3/dwc3-exynos.c b/drivers/usb/dwc3/dwc3-exynos.c > index e27899b..f97a3d7 100644 > --- a/drivers/usb/dwc3/dwc3-exynos.c > +++ b/drivers/usb/dwc3/dwc3-exynos.c > @@ -131,8 +131,8 @@ static int dwc3_exynos_probe(struct platform_device *pdev) > if (IS_ERR(exynos->susp_clk)) { > dev_info(dev, "no suspend clk specified\n"); > exynos->susp_clk = NULL; > - } > - clk_prepare_enable(exynos->susp_clk); > + } else > + clk_prepare_enable(exynos->susp_clk); > > if (of_device_is_compatible(node, "samsung,exynos7-dwusb3")) { > exynos->axius_clk = devm_clk_get(dev, "usbdrd30_axius_clk"); > @@ -196,7 +196,8 @@ static int dwc3_exynos_probe(struct platform_device *pdev) > regulator_disable(exynos->vdd33); > err2: > clk_disable_unprepare(exynos->axius_clk); > - clk_disable_unprepare(exynos->susp_clk); > + if (exynos->susp_clk) > + clk_disable_unprepare(exynos->susp_clk); > clk_disable_unprepare(exynos->clk); > return ret; > } > @@ -210,7 +211,8 @@ static int dwc3_exynos_remove(struct platform_device *pdev) > platform_device_unregister(exynos->usb3_phy); > > clk_disable_unprepare(exynos->axius_clk); > - clk_disable_unprepare(exynos->susp_clk); > + if (exynos->susp_clk) > + clk_disable_unprepare(exynos->susp_clk); > clk_disable_unprepare(exynos->clk); > > regulator_disable(exynos->vdd33);