From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_PASS,URIBL_BLOCKED, USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A362C43610 for ; Thu, 22 Nov 2018 20:36:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16F9A20989 for ; Thu, 22 Nov 2018 20:36:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16F9A20989 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2438791AbeKWHRE (ORCPT ); Fri, 23 Nov 2018 02:17:04 -0500 Received: from mga09.intel.com ([134.134.136.24]:48313 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405118AbeKWHRD (ORCPT ); Fri, 23 Nov 2018 02:17:03 -0500 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Nov 2018 12:36:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,266,1539673200"; d="gz'50?scan'50,208,50";a="276129051" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by orsmga005.jf.intel.com with ESMTP; 22 Nov 2018 12:35:58 -0800 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1gPvhd-00081E-Vc; Fri, 23 Nov 2018 04:35:57 +0800 Date: Fri, 23 Nov 2018 04:35:20 +0800 From: kbuild test robot To: Jjian Zhou Cc: kbuild-all@01.org, Ulf Hansson , Matthias Brugger , Chaotian Jing , Ryder Lee , jjian zhou , Sean Wang , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, Yong Mao Subject: Re: [PATCH] mmc: mediatek: add MT8183 SDIO driver support Message-ID: <201811230435.FE0QEUrJ%fengguang.wu@intel.com> References: <1542870318-10731-1-git-send-email-jjian.zhou@mediatek.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ikeVEW9yuYc//A+q" Content-Disposition: inline In-Reply-To: <1542870318-10731-1-git-send-email-jjian.zhou@mediatek.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --ikeVEW9yuYc//A+q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi jjian, Thank you for the patch! Yet something to improve: [auto build test ERROR on ulf.hansson-mmc/next] [also build test ERROR on v4.20-rc3 next-20181122] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Jjian-Zhou/mmc-mediatek-add-MT8183-SDIO-driver-support/20181123-025850 base: git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next config: x86_64-randconfig-u0-11230408 (attached as .config) compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): drivers/mmc/host/mtk-sd.c: In function 'msdc_drv_probe': >> drivers/mmc/host/mtk-sd.c:2263:12: error: invalid storage class for function 'msdc_drv_remove' static int msdc_drv_remove(struct platform_device *pdev) ^ >> drivers/mmc/host/mtk-sd.c:2263:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static int msdc_drv_remove(struct platform_device *pdev) ^ >> drivers/mmc/host/mtk-sd.c:2292:13: error: invalid storage class for function 'msdc_save_reg' static void msdc_save_reg(struct msdc_host *host) ^ >> drivers/mmc/host/mtk-sd.c:2319:13: error: invalid storage class for function 'msdc_restore_reg' static void msdc_restore_reg(struct msdc_host *host) ^ >> drivers/mmc/host/mtk-sd.c:2346:12: error: invalid storage class for function 'msdc_runtime_suspend' static int msdc_runtime_suspend(struct device *dev) ^ >> drivers/mmc/host/mtk-sd.c:2356:12: error: invalid storage class for function 'msdc_runtime_resume' static int msdc_runtime_resume(struct device *dev) ^ In file included from include/linux/device.h:23:0, from include/linux/dma-mapping.h:7, from drivers/mmc/host/mtk-sd.c:18: >> drivers/mmc/host/mtk-sd.c:2370:21: error: initializer element is not constant SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:354:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/mmc/host/mtk-sd.c:2370:21: note: (near initialization for 'msdc_dev_pm_ops.runtime_suspend') SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:354:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/mmc/host/mtk-sd.c:2370:43: error: initializer element is not constant SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:355:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/mmc/host/mtk-sd.c:2370:43: note: (near initialization for 'msdc_dev_pm_ops.runtime_resume') SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:355:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/mmc/host/mtk-sd.c:2375:12: error: initializer element is not constant .remove = msdc_drv_remove, ^ drivers/mmc/host/mtk-sd.c:2375:12: note: (near initialization for 'mt_msdc_driver.remove') In file included from include/linux/dma-mapping.h:7:0, from drivers/mmc/host/mtk-sd.c:18: >> drivers/mmc/host/mtk-sd.c:2383:24: error: invalid storage class for function 'mt_msdc_driver_init' module_platform_driver(mt_msdc_driver); ^ include/linux/device.h:1611:19: note: in definition of macro 'module_driver' static int __init __driver##_init(void) \ ^ >> drivers/mmc/host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/kernel.h:10:0, from include/linux/list.h:9, from include/linux/module.h:9, from drivers/mmc/host/mtk-sd.c:15: >> include/linux/compiler.h:285:44: error: initializer element is not constant __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^ include/linux/init.h:187:2: note: in expansion of macro '__ADDRESSABLE' __ADDRESSABLE(fn) \ ^ include/linux/init.h:198:35: note: in expansion of macro '___define_initcall' #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) ^ include/linux/init.h:227:30: note: in expansion of macro '__define_initcall' #define device_initcall(fn) __define_initcall(fn, 6) ^ include/linux/init.h:232:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^ include/linux/module.h:87:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^ include/linux/device.h:1615:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ >> drivers/mmc/host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/dma-mapping.h:7:0, from drivers/mmc/host/mtk-sd.c:18: >> drivers/mmc/host/mtk-sd.c:2383:24: error: invalid storage class for function 'mt_msdc_driver_exit' module_platform_driver(mt_msdc_driver); ^ include/linux/device.h:1616:20: note: in definition of macro 'module_driver' static void __exit __driver##_exit(void) \ ^ >> drivers/mmc/host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ >> include/linux/device.h:1616:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void __exit __driver##_exit(void) \ ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ >> drivers/mmc/host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/printk.h:6:0, from include/linux/kernel.h:14, from include/linux/list.h:9, from include/linux/module.h:9, from drivers/mmc/host/mtk-sd.c:15: drivers/mmc/host/mtk-sd.c:2383:24: error: initializer element is not constant module_platform_driver(mt_msdc_driver); ^ include/linux/init.h:235:50: note: in definition of macro '__exitcall' static exitcall_t __exitcall_##fn __exit_call = fn ^ include/linux/device.h:1620:1: note: in expansion of macro 'module_exit' module_exit(__driver##_exit); ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ >> drivers/mmc/host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/module.h:18:0, from drivers/mmc/host/mtk-sd.c:15: >> include/linux/moduleparam.h:28:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] struct __UNIQUE_ID(name) {} ^ include/linux/module.h:161:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:199:34: note: in expansion of macro 'MODULE_INFO' #define MODULE_LICENSE(_license) MODULE_INFO(license, _license) ^ >> drivers/mmc/host/mtk-sd.c:2384:1: note: in expansion of macro 'MODULE_LICENSE' MODULE_LICENSE("GPL v2"); ^ In file included from :0:0: >> include/linux/compiler-gcc.h:75:45: error: expected declaration or statement at end of input #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/compiler_types.h:53:23: note: in definition of macro '___PASTE' #define ___PASTE(a,b) a##b ^ include/linux/compiler-gcc.h:75:29: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/compiler_types.h:54:22: note: in expansion of macro '___PASTE' #define __PASTE(a,b) ___PASTE(a,b) ^ include/linux/compiler-gcc.h:75:37: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/moduleparam.h:28:10: note: in expansion of macro '__UNIQUE_ID' struct __UNIQUE_ID(name) {} ^ include/linux/module.h:161:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:208:42: note: in expansion of macro 'MODULE_INFO' #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) ^ >> drivers/mmc/host/mtk-sd.c:2385:1: note: in expansion of macro 'MODULE_DESCRIPTION' MODULE_DESCRIPTION("MediaTek SD/MMC Card Driver"); ^ drivers/mmc/host/mtk-sd.c: At top level: drivers/mmc/host/mtk-sd.c:2094:12: warning: 'msdc_drv_probe' defined but not used [-Wunused-function] static int msdc_drv_probe(struct platform_device *pdev) ^ -- drivers/mmc//host/mtk-sd.c: In function 'msdc_drv_probe': drivers/mmc//host/mtk-sd.c:2263:12: error: invalid storage class for function 'msdc_drv_remove' static int msdc_drv_remove(struct platform_device *pdev) ^ drivers/mmc//host/mtk-sd.c:2263:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static int msdc_drv_remove(struct platform_device *pdev) ^ drivers/mmc//host/mtk-sd.c:2292:13: error: invalid storage class for function 'msdc_save_reg' static void msdc_save_reg(struct msdc_host *host) ^ drivers/mmc//host/mtk-sd.c:2319:13: error: invalid storage class for function 'msdc_restore_reg' static void msdc_restore_reg(struct msdc_host *host) ^ drivers/mmc//host/mtk-sd.c:2346:12: error: invalid storage class for function 'msdc_runtime_suspend' static int msdc_runtime_suspend(struct device *dev) ^ drivers/mmc//host/mtk-sd.c:2356:12: error: invalid storage class for function 'msdc_runtime_resume' static int msdc_runtime_resume(struct device *dev) ^ In file included from include/linux/device.h:23:0, from include/linux/dma-mapping.h:7, from drivers/mmc//host/mtk-sd.c:18: drivers/mmc//host/mtk-sd.c:2370:21: error: initializer element is not constant SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:354:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/mmc//host/mtk-sd.c:2370:21: note: (near initialization for 'msdc_dev_pm_ops.runtime_suspend') SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:354:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/mmc//host/mtk-sd.c:2370:43: error: initializer element is not constant SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:355:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/mmc//host/mtk-sd.c:2370:43: note: (near initialization for 'msdc_dev_pm_ops.runtime_resume') SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) ^ include/linux/pm.h:355:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/mmc//host/mtk-sd.c:2375:12: error: initializer element is not constant .remove = msdc_drv_remove, ^ drivers/mmc//host/mtk-sd.c:2375:12: note: (near initialization for 'mt_msdc_driver.remove') In file included from include/linux/dma-mapping.h:7:0, from drivers/mmc//host/mtk-sd.c:18: drivers/mmc//host/mtk-sd.c:2383:24: error: invalid storage class for function 'mt_msdc_driver_init' module_platform_driver(mt_msdc_driver); ^ include/linux/device.h:1611:19: note: in definition of macro 'module_driver' static int __init __driver##_init(void) \ ^ drivers/mmc//host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/kernel.h:10:0, from include/linux/list.h:9, from include/linux/module.h:9, from drivers/mmc//host/mtk-sd.c:15: >> include/linux/compiler.h:285:44: error: initializer element is not constant __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^ include/linux/init.h:187:2: note: in expansion of macro '__ADDRESSABLE' __ADDRESSABLE(fn) \ ^ include/linux/init.h:198:35: note: in expansion of macro '___define_initcall' #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) ^ include/linux/init.h:227:30: note: in expansion of macro '__define_initcall' #define device_initcall(fn) __define_initcall(fn, 6) ^ include/linux/init.h:232:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^ include/linux/module.h:87:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^ include/linux/device.h:1615:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ drivers/mmc//host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/dma-mapping.h:7:0, from drivers/mmc//host/mtk-sd.c:18: drivers/mmc//host/mtk-sd.c:2383:24: error: invalid storage class for function 'mt_msdc_driver_exit' module_platform_driver(mt_msdc_driver); ^ include/linux/device.h:1616:20: note: in definition of macro 'module_driver' static void __exit __driver##_exit(void) \ ^ drivers/mmc//host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ >> include/linux/device.h:1616:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void __exit __driver##_exit(void) \ ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ drivers/mmc//host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/printk.h:6:0, from include/linux/kernel.h:14, from include/linux/list.h:9, from include/linux/module.h:9, from drivers/mmc//host/mtk-sd.c:15: drivers/mmc//host/mtk-sd.c:2383:24: error: initializer element is not constant module_platform_driver(mt_msdc_driver); ^ include/linux/init.h:235:50: note: in definition of macro '__exitcall' static exitcall_t __exitcall_##fn __exit_call = fn ^ include/linux/device.h:1620:1: note: in expansion of macro 'module_exit' module_exit(__driver##_exit); ^ include/linux/platform_device.h:229:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^ drivers/mmc//host/mtk-sd.c:2383:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(mt_msdc_driver); ^ In file included from include/linux/module.h:18:0, from drivers/mmc//host/mtk-sd.c:15: >> include/linux/moduleparam.h:28:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] struct __UNIQUE_ID(name) {} ^ include/linux/module.h:161:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:199:34: note: in expansion of macro 'MODULE_INFO' #define MODULE_LICENSE(_license) MODULE_INFO(license, _license) ^ drivers/mmc//host/mtk-sd.c:2384:1: note: in expansion of macro 'MODULE_LICENSE' MODULE_LICENSE("GPL v2"); ^ In file included from :0:0: >> include/linux/compiler-gcc.h:75:45: error: expected declaration or statement at end of input #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/compiler_types.h:53:23: note: in definition of macro '___PASTE' #define ___PASTE(a,b) a##b ^ include/linux/compiler-gcc.h:75:29: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/compiler_types.h:54:22: note: in expansion of macro '___PASTE' #define __PASTE(a,b) ___PASTE(a,b) ^ include/linux/compiler-gcc.h:75:37: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/moduleparam.h:28:10: note: in expansion of macro '__UNIQUE_ID' struct __UNIQUE_ID(name) {} ^ include/linux/module.h:161:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:208:42: note: in expansion of macro 'MODULE_INFO' #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) ^ drivers/mmc//host/mtk-sd.c:2385:1: note: in expansion of macro 'MODULE_DESCRIPTION' MODULE_DESCRIPTION("MediaTek SD/MMC Card Driver"); ^ drivers/mmc//host/mtk-sd.c: At top level: drivers/mmc//host/mtk-sd.c:2094:12: warning: 'msdc_drv_probe' defined but not used [-Wunused-function] static int msdc_drv_probe(struct platform_device *pdev) ^ vim +/msdc_drv_remove +2263 drivers/mmc/host/mtk-sd.c 20848903 Chaotian Jing 2015-06-15 2262 20848903 Chaotian Jing 2015-06-15 @2263 static int msdc_drv_remove(struct platform_device *pdev) 20848903 Chaotian Jing 2015-06-15 2264 { 20848903 Chaotian Jing 2015-06-15 2265 struct mmc_host *mmc; 20848903 Chaotian Jing 2015-06-15 2266 struct msdc_host *host; 20848903 Chaotian Jing 2015-06-15 2267 20848903 Chaotian Jing 2015-06-15 2268 mmc = platform_get_drvdata(pdev); 20848903 Chaotian Jing 2015-06-15 2269 host = mmc_priv(mmc); 20848903 Chaotian Jing 2015-06-15 2270 4b8a43e9 Chaotian Jing 2015-06-15 2271 pm_runtime_get_sync(host->dev); 4b8a43e9 Chaotian Jing 2015-06-15 2272 20848903 Chaotian Jing 2015-06-15 2273 platform_set_drvdata(pdev, NULL); 20848903 Chaotian Jing 2015-06-15 2274 mmc_remove_host(host->mmc); 20848903 Chaotian Jing 2015-06-15 2275 msdc_deinit_hw(host); 20848903 Chaotian Jing 2015-06-15 2276 msdc_gate_clock(host); 20848903 Chaotian Jing 2015-06-15 2277 4b8a43e9 Chaotian Jing 2015-06-15 2278 pm_runtime_disable(host->dev); 4b8a43e9 Chaotian Jing 2015-06-15 2279 pm_runtime_put_noidle(host->dev); 20848903 Chaotian Jing 2015-06-15 2280 dma_free_coherent(&pdev->dev, 16f2e0c6 Phong LE 2017-05-24 2281 2 * sizeof(struct mt_gpdma_desc), 20848903 Chaotian Jing 2015-06-15 2282 host->dma.gpd, host->dma.gpd_addr); 20848903 Chaotian Jing 2015-06-15 2283 dma_free_coherent(&pdev->dev, MAX_BD_NUM * sizeof(struct mt_bdma_desc), 20848903 Chaotian Jing 2015-06-15 2284 host->dma.bd, host->dma.bd_addr); 20848903 Chaotian Jing 2015-06-15 2285 20848903 Chaotian Jing 2015-06-15 2286 mmc_free_host(host->mmc); 20848903 Chaotian Jing 2015-06-15 2287 20848903 Chaotian Jing 2015-06-15 2288 return 0; 20848903 Chaotian Jing 2015-06-15 2289 } 20848903 Chaotian Jing 2015-06-15 2290 4b8a43e9 Chaotian Jing 2015-06-15 2291 #ifdef CONFIG_PM 4b8a43e9 Chaotian Jing 2015-06-15 @2292 static void msdc_save_reg(struct msdc_host *host) 4b8a43e9 Chaotian Jing 2015-06-15 2293 { 39add252 Chaotian Jing 2017-10-16 2294 u32 tune_reg = host->dev_comp->pad_tune_reg; 39add252 Chaotian Jing 2017-10-16 2295 4b8a43e9 Chaotian Jing 2015-06-15 2296 host->save_para.msdc_cfg = readl(host->base + MSDC_CFG); 4b8a43e9 Chaotian Jing 2015-06-15 2297 host->save_para.iocon = readl(host->base + MSDC_IOCON); 4b8a43e9 Chaotian Jing 2015-06-15 2298 host->save_para.sdc_cfg = readl(host->base + SDC_CFG); 4b8a43e9 Chaotian Jing 2015-06-15 2299 host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT); 4b8a43e9 Chaotian Jing 2015-06-15 2300 host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1); 2fea5819 Chaotian Jing 2017-10-16 2301 host->save_para.patch_bit2 = readl(host->base + MSDC_PATCH_BIT2); 6397b7f5 Chaotian Jing 2015-10-27 2302 host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE); 1ede5cb8 yong mao 2017-03-15 2303 host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE); 6397b7f5 Chaotian Jing 2015-10-27 2304 host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0); c8609b22 Chaotian Jing 2017-10-16 2305 host->save_para.emmc50_cfg3 = readl(host->base + EMMC50_CFG3); d9dcbfc8 Chaotian Jing 2017-10-16 2306 host->save_para.sdc_fifo_cfg = readl(host->base + SDC_FIFO_CFG); a2e6d1f6 Chaotian Jing 2018-10-13 2307 if (host->top_base) { a2e6d1f6 Chaotian Jing 2018-10-13 2308 host->save_para.emmc_top_control = a2e6d1f6 Chaotian Jing 2018-10-13 2309 readl(host->top_base + EMMC_TOP_CONTROL); a2e6d1f6 Chaotian Jing 2018-10-13 2310 host->save_para.emmc_top_cmd = a2e6d1f6 Chaotian Jing 2018-10-13 2311 readl(host->top_base + EMMC_TOP_CMD); a2e6d1f6 Chaotian Jing 2018-10-13 2312 host->save_para.emmc50_pad_ds_tune = a2e6d1f6 Chaotian Jing 2018-10-13 2313 readl(host->top_base + EMMC50_PAD_DS_TUNE); a2e6d1f6 Chaotian Jing 2018-10-13 2314 } else { a2e6d1f6 Chaotian Jing 2018-10-13 2315 host->save_para.pad_tune = readl(host->base + tune_reg); a2e6d1f6 Chaotian Jing 2018-10-13 2316 } 4b8a43e9 Chaotian Jing 2015-06-15 2317 } 4b8a43e9 Chaotian Jing 2015-06-15 2318 4b8a43e9 Chaotian Jing 2015-06-15 @2319 static void msdc_restore_reg(struct msdc_host *host) 4b8a43e9 Chaotian Jing 2015-06-15 2320 { 39add252 Chaotian Jing 2017-10-16 2321 u32 tune_reg = host->dev_comp->pad_tune_reg; 39add252 Chaotian Jing 2017-10-16 2322 4b8a43e9 Chaotian Jing 2015-06-15 2323 writel(host->save_para.msdc_cfg, host->base + MSDC_CFG); 4b8a43e9 Chaotian Jing 2015-06-15 2324 writel(host->save_para.iocon, host->base + MSDC_IOCON); 4b8a43e9 Chaotian Jing 2015-06-15 2325 writel(host->save_para.sdc_cfg, host->base + SDC_CFG); 4b8a43e9 Chaotian Jing 2015-06-15 2326 writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT); 4b8a43e9 Chaotian Jing 2015-06-15 2327 writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1); 2fea5819 Chaotian Jing 2017-10-16 2328 writel(host->save_para.patch_bit2, host->base + MSDC_PATCH_BIT2); 6397b7f5 Chaotian Jing 2015-10-27 2329 writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE); 1ede5cb8 yong mao 2017-03-15 2330 writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE); 6397b7f5 Chaotian Jing 2015-10-27 2331 writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0); c8609b22 Chaotian Jing 2017-10-16 2332 writel(host->save_para.emmc50_cfg3, host->base + EMMC50_CFG3); d9dcbfc8 Chaotian Jing 2017-10-16 2333 writel(host->save_para.sdc_fifo_cfg, host->base + SDC_FIFO_CFG); a2e6d1f6 Chaotian Jing 2018-10-13 2334 if (host->top_base) { a2e6d1f6 Chaotian Jing 2018-10-13 2335 writel(host->save_para.emmc_top_control, a2e6d1f6 Chaotian Jing 2018-10-13 2336 host->top_base + EMMC_TOP_CONTROL); a2e6d1f6 Chaotian Jing 2018-10-13 2337 writel(host->save_para.emmc_top_cmd, a2e6d1f6 Chaotian Jing 2018-10-13 2338 host->top_base + EMMC_TOP_CMD); a2e6d1f6 Chaotian Jing 2018-10-13 2339 writel(host->save_para.emmc50_pad_ds_tune, a2e6d1f6 Chaotian Jing 2018-10-13 2340 host->top_base + EMMC50_PAD_DS_TUNE); a2e6d1f6 Chaotian Jing 2018-10-13 2341 } else { a2e6d1f6 Chaotian Jing 2018-10-13 2342 writel(host->save_para.pad_tune, host->base + tune_reg); a2e6d1f6 Chaotian Jing 2018-10-13 2343 } 4b8a43e9 Chaotian Jing 2015-06-15 2344 } 4b8a43e9 Chaotian Jing 2015-06-15 2345 4b8a43e9 Chaotian Jing 2015-06-15 @2346 static int msdc_runtime_suspend(struct device *dev) 4b8a43e9 Chaotian Jing 2015-06-15 2347 { 4b8a43e9 Chaotian Jing 2015-06-15 2348 struct mmc_host *mmc = dev_get_drvdata(dev); 4b8a43e9 Chaotian Jing 2015-06-15 2349 struct msdc_host *host = mmc_priv(mmc); 4b8a43e9 Chaotian Jing 2015-06-15 2350 4b8a43e9 Chaotian Jing 2015-06-15 2351 msdc_save_reg(host); 4b8a43e9 Chaotian Jing 2015-06-15 2352 msdc_gate_clock(host); 4b8a43e9 Chaotian Jing 2015-06-15 2353 return 0; 4b8a43e9 Chaotian Jing 2015-06-15 2354 } 4b8a43e9 Chaotian Jing 2015-06-15 2355 4b8a43e9 Chaotian Jing 2015-06-15 @2356 static int msdc_runtime_resume(struct device *dev) 4b8a43e9 Chaotian Jing 2015-06-15 2357 { 4b8a43e9 Chaotian Jing 2015-06-15 2358 struct mmc_host *mmc = dev_get_drvdata(dev); 4b8a43e9 Chaotian Jing 2015-06-15 2359 struct msdc_host *host = mmc_priv(mmc); 4b8a43e9 Chaotian Jing 2015-06-15 2360 4b8a43e9 Chaotian Jing 2015-06-15 2361 msdc_ungate_clock(host); 4b8a43e9 Chaotian Jing 2015-06-15 2362 msdc_restore_reg(host); 4b8a43e9 Chaotian Jing 2015-06-15 2363 return 0; 4b8a43e9 Chaotian Jing 2015-06-15 2364 } 4b8a43e9 Chaotian Jing 2015-06-15 2365 #endif 4b8a43e9 Chaotian Jing 2015-06-15 2366 4b8a43e9 Chaotian Jing 2015-06-15 2367 static const struct dev_pm_ops msdc_dev_pm_ops = { 4b8a43e9 Chaotian Jing 2015-06-15 2368 SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, 4b8a43e9 Chaotian Jing 2015-06-15 2369 pm_runtime_force_resume) 4b8a43e9 Chaotian Jing 2015-06-15 @2370 SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL) 4b8a43e9 Chaotian Jing 2015-06-15 2371 }; 4b8a43e9 Chaotian Jing 2015-06-15 2372 20848903 Chaotian Jing 2015-06-15 2373 static struct platform_driver mt_msdc_driver = { 20848903 Chaotian Jing 2015-06-15 2374 .probe = msdc_drv_probe, 20848903 Chaotian Jing 2015-06-15 @2375 .remove = msdc_drv_remove, 20848903 Chaotian Jing 2015-06-15 2376 .driver = { 20848903 Chaotian Jing 2015-06-15 2377 .name = "mtk-msdc", 20848903 Chaotian Jing 2015-06-15 2378 .of_match_table = msdc_of_ids, 4b8a43e9 Chaotian Jing 2015-06-15 2379 .pm = &msdc_dev_pm_ops, 20848903 Chaotian Jing 2015-06-15 2380 }, 20848903 Chaotian Jing 2015-06-15 2381 }; 20848903 Chaotian Jing 2015-06-15 2382 20848903 Chaotian Jing 2015-06-15 @2383 module_platform_driver(mt_msdc_driver); 20848903 Chaotian Jing 2015-06-15 @2384 MODULE_LICENSE("GPL v2"); 20848903 Chaotian Jing 2015-06-15 @2385 MODULE_DESCRIPTION("MediaTek SD/MMC Card Driver"); :::::: The code at line 2263 was first introduced by commit :::::: 208489032bdd8d4a7de50f3057c175058f271956 mmc: mediatek: Add Mediatek MMC driver :::::: TO: Chaotian Jing :::::: CC: Ulf Hansson --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --ikeVEW9yuYc//A+q Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 nwEA --ikeVEW9yuYc//A+q--