diff mbox series

[V2,2/9] pinctrl: imx: Support building i.MX pinctrl driver as module

Message ID 1591627056-19022-3-git-send-email-Anson.Huang@nxp.com (mailing list archive)
State New, archived
Headers show
Series Support i.MX8 SoCs pinctrl drivers built as module | expand

Commit Message

Anson Huang June 8, 2020, 2:37 p.m. UTC
Export necessary functions to support building i.MX common pinctrl
driver and its user to be built as module.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
Changes since V1:
	- Separate i.MX and i.MX SCU pinctrl driver to 2 patches;
	- Support building i.MX common pinctrl driver itself as module.
---
 drivers/pinctrl/freescale/Kconfig       | 2 +-
 drivers/pinctrl/freescale/pinctrl-imx.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

kernel test robot June 8, 2020, 8:10 p.m. UTC | #1
Hi Anson,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on pinctrl/devel]
[also build test ERROR on v5.7 next-20200608]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Anson-Huang/Support-i-MX8-SoCs-pinctrl-drivers-built-as-module/20200608-225055
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
config: x86_64-randconfig-s032-20200609 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-247-gcadbd124-dirty
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>, old ones prefixed by <<):

drivers/pinctrl/freescale/pinctrl-imx.c: In function 'imx_pinconf_parse_generic_config':
>> drivers/pinctrl/freescale/pinctrl-imx.c:341:8: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration]
341 |  ret = pinconf_generic_parse_dt_config(np, pctl, &configs,
|        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|        pinconf_generic_dump_config
cc1: some warnings being treated as errors

vim +341 drivers/pinctrl/freescale/pinctrl-imx.c

a5cadbbb081cb84 Dong Aisheng 2017-05-19  328  
a5cadbbb081cb84 Dong Aisheng 2017-05-19  329  static u32 imx_pinconf_parse_generic_config(struct device_node *np,
a5cadbbb081cb84 Dong Aisheng 2017-05-19  330  					    struct imx_pinctrl *ipctl)
a5cadbbb081cb84 Dong Aisheng 2017-05-19  331  {
f5843492ecefcf7 Stefan Agner 2018-01-06  332  	const struct imx_pinctrl_soc_info *info = ipctl->info;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  333  	struct pinctrl_dev *pctl = ipctl->pctl;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  334  	unsigned int num_configs;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  335  	unsigned long *configs;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  336  	int ret;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  337  
a5cadbbb081cb84 Dong Aisheng 2017-05-19  338  	if (!info->generic_pinconf)
a5cadbbb081cb84 Dong Aisheng 2017-05-19  339  		return 0;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  340  
a5cadbbb081cb84 Dong Aisheng 2017-05-19 @341  	ret = pinconf_generic_parse_dt_config(np, pctl, &configs,
a5cadbbb081cb84 Dong Aisheng 2017-05-19  342  					      &num_configs);
a5cadbbb081cb84 Dong Aisheng 2017-05-19  343  	if (ret)
a5cadbbb081cb84 Dong Aisheng 2017-05-19  344  		return 0;
a5cadbbb081cb84 Dong Aisheng 2017-05-19  345  
a5cadbbb081cb84 Dong Aisheng 2017-05-19  346  	return imx_pinconf_decode_generic_config(ipctl, configs, num_configs);
a5cadbbb081cb84 Dong Aisheng 2017-05-19  347  }
a5cadbbb081cb84 Dong Aisheng 2017-05-19  348  

:::::: The code at line 341 was first introduced by commit
:::::: a5cadbbb081cb84a9fdb14391fb461a41f089a0a pinctrl: imx: add generic pin config core support

:::::: TO: Dong Aisheng <aisheng.dong@nxp.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff mbox series

Patch

diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index a3a30f1d..58d48df 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -1,6 +1,6 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
 config PINCTRL_IMX
-	bool
+	tristate "IMX pinctrl driver"
 	select GENERIC_PINCTRL_GROUPS
 	select GENERIC_PINMUX_FUNCTIONS
 	select GENERIC_PINCONF
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index cb7e0f0..116d808 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -11,6 +11,7 @@ 
 #include <linux/init.h>
 #include <linux/io.h>
 #include <linux/mfd/syscon.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/of_address.h>
@@ -878,6 +879,7 @@  int imx_pinctrl_probe(struct platform_device *pdev,
 
 	return pinctrl_enable(ipctl->pctl);
 }
+EXPORT_SYMBOL_GPL(imx_pinctrl_probe);
 
 static int __maybe_unused imx_pinctrl_suspend(struct device *dev)
 {
@@ -897,3 +899,5 @@  const struct dev_pm_ops imx_pinctrl_pm_ops = {
 	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx_pinctrl_suspend,
 					imx_pinctrl_resume)
 };
+EXPORT_SYMBOL_GPL(imx_pinctrl_pm_ops);
+MODULE_LICENSE("GPL v2");