Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752172AbdLLJhq (ORCPT ); Tue, 12 Dec 2017 04:37:46 -0500 Received: from mail-by2nam01on0059.outbound.protection.outlook.com ([104.47.34.59]:34496 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750715AbdLLJhi (ORCPT ); Tue, 12 Dec 2017 04:37:38 -0500 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=bestguesspass action=none header.from=xilinx.com; Subject: Re: [PATCH] mmc: sdhci-of-arasan: Disable clk_xin clock in the remove To: Flavio Ceolin , CC: Michal Simek , Adrian Hunter , Ulf Hansson , "moderated list:ARM/ZYNQ ARCHITECTURE" , "open list:SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI...)" References: <20171212081955.2309-1-flavio.ceolin@intel.com> From: Michal Simek Message-ID: <3d975547-3f25-eaab-29fe-c06ee4cb206b@xilinx.com> Date: Tue, 12 Dec 2017 10:37:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20171212081955.2309-1-flavio.ceolin@intel.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23524.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39860400002)(376002)(346002)(2980300002)(438002)(3190300001)(24454002)(199004)(189003)(8936002)(36756003)(81166006)(81156014)(8676002)(6666003)(58126008)(2950100002)(110136005)(50466002)(2906002)(54906003)(53546010)(86362001)(6246003)(316002)(9786002)(31696002)(106002)(305945005)(36386004)(63266004)(230783001)(31686004)(59450400001)(83506002)(2486003)(23676004)(356003)(5660300001)(230700001)(106466001)(65826007)(64126003)(77096006)(65956001)(47776003)(65806001)(76176011)(4326008)(229853002)(478600001)(107986001)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR02MB1338;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT004;1:RQ/kjBjqBU66taMxbU5khvuQ/qdKQkl+/gKruXjb6sg2jqrGDV8j19UMDgkXFuGD4c9H06K6V2Co477p9MZ/V1q+0vviKGwdgj3RPlE9/7R50mj4M6EUpvt3snGq+gZ0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 11936ddb-8792-4663-6e86-08d54143f9ca X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4608076)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307);SRVR:DM2PR02MB1338; X-Microsoft-Exchange-Diagnostics: 1;DM2PR02MB1338;3:6J/JbRDiXFVNB2myN/L8NPSoC6K++n4DjxzBQwt4X8BnYT5DmQz0A/v3S7ee8BFTz/4cSOmUJWEoxcEptTGb7FcyADTG3JbbUstW2ly6d94QN5JQt4NE3NU9K0gCNYFSiDxD7reMh/HRu8an9Dm6Pgt3+kH51r87oCCGk5S88hUYdErCnXDzjBKEyYyf1aEWvKm6fO3QxVFM+GDVrBa/6YoMzou2LfaSH6Zn1b/lkYupVusD4d2p+1CBe0RocH7+QCH3WJh/K4PDKdOHwZhukGYM/RGxNFbPaA0np9elVW6DwZAXeeRKEU9JjNa1u49l3qR2GXLrItBZ8GwD4NGs7CLgfJHHEv2A1AgFHNgtnWY=;25:rALxWKKbQYaLo66yKPLez7y6bVJx+rNY7NgaiklI/SrkEd21b9eLXEL4umbg4whoJfECaezlZEeXHv0XiExe2pbIusto8l3V153x/rgGnoF+wtHpyc0wIOYI6Z/MPW9k1uTeozUGZx/+JNmhl+QlIOovZwBVqjcuP4R6GVy5hAaS6wLgRAvwoWHjdfBZT89HdQiF7s9jeBU730/uSlAofe5mRfqF2dgb0EW1ie7AbkZjaCzqQX3xXqGuiV1kFxNYf3HwFB/hWuo+Sw22t9a11yHhizlUyLnU4SFBTHvBLFIiYWDohoVLwWvlcsz+tOucAbvMasjmbO0XELLsZxviEXl41cWFGj/G5ie07Wfxkkg= X-MS-TrafficTypeDiagnostic: DM2PR02MB1338: X-Microsoft-Exchange-Diagnostics: 1;DM2PR02MB1338;31:2QY9YIczNddBtVANEo6twzks+DlujP659aYlyIbeDOfoNJ1q3dnQD4mOV+Mburn0qMq1KAPf8emzyRueqfziT5yvvMtjoWsc0IBriUOEaTYIYAmcFzuZZn69jLiXMgOryLnjHCaG4BbiW8uKfmWleo1HfDKLybKMnZPw9LX1VQ+hla3u27ZP90KTr2h+4jJep7B62HkC7t/FT+6TnStenL32/Ci1IJichNmQ5rg1j08=;20:tlbDisT5mEhOoCkfzMxdqE4WC5sDbEux0oaQcr+wvzLbyDpcQuXW3pNFWZygjYjPjFnqbPQL8B9noUpHMaFrXFOi9lyyjAEIptpXAYqcs83wBnbm91k0yooKmbfhLxEuKOEKm3R/SbexGSrWlfH47w2dKXvJfYeKlx0tH/jyMYWtmSyHpzGOFXu8QwapNZOQBEWjNWJrUglN7gpyioz6Yyk9+YRkvkP6hXfd+SvqeuZuWBZacKaTZs1XByP5aLZBb0VumiUjXphv3VpKsmTBUtIKUqoqJW8l4nfppDJWdJW4Bv65R7Qps0ygiOS4sUE2MDDMX3J7Asgu4lmaYi2RSrIXkheyTIatFWdUvTniTK9r4ktijBQaDGN4dzbZAoKSuTs36/s65ZKWOyLwA3x6Wq33vvTvUzaK3bMR/BPS/5wP66tJs8z90lFrA5JVBsqervQIZAXSBOgwN6MVF4WmrTL/qnyYkdxEgKBdINbpR4/hntEQZVTqiglrCq/w5puQ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93004095)(3002001)(3231023)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(6072148)(201708071742011);SRVR:DM2PR02MB1338;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DM2PR02MB1338; X-Microsoft-Exchange-Diagnostics: 1;DM2PR02MB1338;4:FMUw5GIrCBaGvWt5dGVcPy2fqvED4CadIrl8sq/o6rHIjbJ9GOm8gB56p/Eer+1YkVDZWFlPnjhL8FsVUVDRRPSjRTklySNZCM6/l+QsJvwxqYe1EtPFFjGioV+FyJD6PHR6XypcQFtjVm9u9dVr5YP0wUzk8y2hxZFVqMatSIQnmnZKVg87px2zFMwNwUp7SHLvQePQuwcGh8woUeE2UTSJw/pnrNJSLTjpdFUBEYcAS54B4SwWOFmDkJKiFPXP/bOMceAZkGIZAfKU9sw1174ze2j4mPEzC9vOwyjXlE5dWHmq0fDj8JeLcapVRBiE X-Forefront-PRVS: 051900244E X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjAyTUIxMzM4OzIzOmlKWW9LczJUQWFveDZLZVpFZktTR2FrdTZ2?= =?utf-8?B?TzJZeXNIdlJKd2dhYkRBeHB3SlNpMXdzZVQwZzlBVmd6d3V5WVZSbkJWbnMz?= =?utf-8?B?QWJBM2toa1JqYmtwZVltdDlqSGh1VjNEd2M0NU5VZHFKSGZhWlpBaytvOUNn?= =?utf-8?B?ckVqMGpmZUFOWDhrQ1VucHRLM0ZrTHJFc2JQclZyN01CbHl2TFF0ZFNzRWIw?= =?utf-8?B?RFR1QkNPSWhEMW9yNjlMWjkyVklPenNtdklXL0hTbFVJUWNSY2dzd3VUWkNh?= =?utf-8?B?RHBDejNvZ0JML2xqK2RNV25sY3lvRTI2VmRCQUFqd3FBUjQ4cjZHblc4QU10?= =?utf-8?B?R29vVURkeENuSHBkZ24wUXpPN1l1RFFoRTBHK3FqZVcwazZQTXVMcEs1ZGli?= =?utf-8?B?NE9ua1dyOStJMGtyd251OTRFVkY1dlZ4ejl5Y29SNnNhcFR3S1dkb0lWaFBO?= =?utf-8?B?ZnkxVkYwSGRjMjYzRFNiUElWUGU0VXJKdnJBVlJ0MUVnMmZreE8vOEdpemV4?= =?utf-8?B?Y3hNVjZKMXU0VndGdVpXMzBhTGk2aDNMTDJGUG5MRXhCaUpKVG1EQmt3WDBn?= =?utf-8?B?SzRDMDVDcTFob2liS2JrQmpkaWRvRWEwdVR4U2czWEltUnB0ZFVHNEhvY1NO?= =?utf-8?B?Q0l2SXRORWRVaW1maUlOY3k1TzF6T2V3dGhHeHo4MGpYY1U1Y0N0OXFSd0c0?= =?utf-8?B?OUU3cWhna2lNUitxbTZrT1NtN3dWb0FtUEU3bDZrbTB2MThvTHBOd2NobmZX?= =?utf-8?B?U1pOUDVzOVQrRE8raDBIVjFXaW9zZjFRVUVVMXRET1NXbUpFbDB6VEhSQUYw?= =?utf-8?B?UXZnZmkyQ1NUSjB2cURnL2UrMjczc0lmSDl5L29IK1loTzkwSzI2TldYWUda?= =?utf-8?B?R2VyVVFrREFPbnA3L2t4TW02Ni9ZRHhLRy94UkgxVTB4YWZDOVJ0RkJPeEdl?= =?utf-8?B?Mm4rT2lXL0d4NFBVYzNhcHpzTzRndkNFM1JhYmViM21ZSXVzekhJMzQyWjVy?= =?utf-8?B?MlVLYkQvSTlaNVVWL0ZSa3NPMFFtRGlldFRwbThYNlRhVldDRTdYWUVRUW9n?= =?utf-8?B?TDdROUU2Q09SQmVVcHh2WWl3SVBBYmRYQXYrTUpjOCtFOWkwYWw4N0crOE9m?= =?utf-8?B?Q21KSGxzaXVIRmR0cWd0YlZkSk9BblB0Mnc4ZXFTYlVMWlM3YTNMTmpnbUxl?= =?utf-8?B?ZXcxYUs2WDMyTjd5T0tXU0pJaXlsVXhTR1ZoU3RIZVhUbE9QYllka2hsLzhx?= =?utf-8?B?NmxxeVJaWm5QaytoZU5iWHAxVjl3c0dQVGpuU3dkdnRjZWJSSERibU9sMDNT?= =?utf-8?B?NkRKeHd4YitnamxWVHVoZmRjNmtUMnR2MURuZGZtZzJZOHpiSktIR25lSVdN?= =?utf-8?B?eGNldkltaGFKTlA5dFBNeVZkZnY2QVhGRjRSdDBVK1V1VlFSajlWenB0L2o4?= =?utf-8?B?cGhTWmhleHBvL3c2aEZsaTN6TjI0dGF1KzFxVFVIcU16ZDU5R3FqbHk2dXlW?= =?utf-8?B?N0VHQUdxRVRFQWVDcS9EUC9WUDdhZlMyZTVWVUlpU05ZaURhNDZQWXcyWkVm?= =?utf-8?B?TU9pMTFtVzduc2JVcU1mRkxqQ0RFMnFVYnNwY2pVRXVQOFNVQTE5ODJGbDV4?= =?utf-8?B?Nm4xdGhaV0xEQ2ZvSlVBcHlCc3hrRzlmUE5mUk5oRi9ERzRrN2ptRG51WjFt?= =?utf-8?Q?CpCKIZxVbpIcOHK+tc=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR02MB1338;6:fLg/tUabi0p+uj4JBBAMAwFpTv5EL1h3tP2vSN9VNyOMEXvE4LmvbqKJs391Cc3oEGTG/YsBJ2OBXPXT+p+YzDhMeTUdeZoBQv+wzUCwB+NNNRvc9iSmLpVwWa9F0tEBdA+WWAMZFLHRN5gGEvqm3ZL4YxIVARTNj/pzdnDWt+QE3yyfgH3Dw39mGFLGwQNco85DlhrCq3QR0CMGbpcPPLJZ56B088HJNe5bMrzMPGUqtBbYszcSqRGgxu3S6hwOlr8qMkiAHyc1GQA3kTMNjUoCECzPF2ZnrR0DmeEZPpcpKGV7NY4S8XVKRJfNvIv6fS44VN4zyum0HRHuUC0DsHfkJcXZ2WUYlHDczaPkVg0=;5:7Q75bCkDG6GCK4mV/RcpljaPMOPrr+rw5bJA+yAxFE90XZL8F9XP9ZYtgK1w25l1+P56fC0AgIJgI/fxcmchJc7NTQWqu8yqtE8KT2aIL0H/mfWnNXxdO/y3VU5TXEJuzz40IdspCZcAt0cTZMbIICTEuo4h3QC6TwQr4uG7tJE=;24:AtXOTfcLltEmI5XTtW+nh4Lfvkf+obiyn6soLG5xhopPkPrg0Lf4nfZbt4HaNxlo5HnYc5YI+p7j9ki60Uougq9K4UsUBLQmncAxAd+pSqE=;7:hEIXGht++G6BceO3Dq8rCj4UzPGSONpZBl/XdUi28j244fall9WKv5Tt9qkpWnh60tUjZ5x7pIcaQk75XqF17lQLUQ6BTnxF8CZYMwnpUgrFgi0fQ0yaeIrIoCUCreuuCcl1kbCzQPbhtUUrUmN9pNr23+taqIH4LfTMy7+Y1ePB6DRgifl7/jVs670yTpTKHeJATLKN1LT0MuNomTWZt3Wun5nnEm9M63GnfaK7Mo9gEf+3bd5Ds+Z5YSjGZgVp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2017 09:37:34.8450 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 11936ddb-8792-4663-6e86-08d54143f9ca X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.100];Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR02MB1338 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1602 Lines: 51 On 12.12.2017 09:19, Flavio Ceolin wrote: > clk_xin is properly prepared/enabled on sdhci_arasan_probe(), and > unprepared/disabled in the error path, but it is not being > unprepared/disabled on sdhci_arasan_remove(). > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Flavio Ceolin > --- > drivers/mmc/host/sdhci-of-arasan.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c > index 0720ea7..69bd260 100644 > --- a/drivers/mmc/host/sdhci-of-arasan.c > +++ b/drivers/mmc/host/sdhci-of-arasan.c > @@ -692,6 +692,7 @@ static int sdhci_arasan_remove(struct platform_device *pdev) > struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); > struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); > struct clk *clk_ahb = sdhci_arasan->clk_ahb; > + struct clk *clk_xin = devm_clk_get(&pdev->dev, "clk_xin"); I don't think this is right. You have already asked for this clock in probe. It means you should reuse pltfm_host->clk = clk_xin; And if you look at sdhci_pltfm_unregister you will find out that clk_disable_unprepare(pltfm_host->clk); is called there. > > if (!IS_ERR(sdhci_arasan->phy)) { > if (sdhci_arasan->is_phy_on) > @@ -705,6 +706,9 @@ static int sdhci_arasan_remove(struct platform_device *pdev) > > clk_disable_unprepare(clk_ahb); > > + if (!IS_ERR(clk_xin)) And clk_xin is required property. > + clk_disable_unprepare(clk_xin); > + > return ret; > } > > It means NACK from me. Thanks, Michal