All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:master 2450/2855] drivers/input/keyboard/samsung-keypad.c:361: undefined reference to `devm_ioremap'
Date: Fri, 28 Jan 2022 22:13:06 +0800	[thread overview]
Message-ID: <202201282217.feGQWIFA-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 12728 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   b605fdc54c2b28c30ef06d9db99282d8a32ae4be
commit: 880f694bd1cef484e92065ea4e736850abce5352 [2450/2855] Kconfig.debug: make DEBUG_INFO selectable from a choice
config: s390-randconfig-r032-20220124 (https://download.01.org/0day-ci/archive/20220128/202201282217.feGQWIFA-lkp(a)intel.com/config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=880f694bd1cef484e92065ea4e736850abce5352
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 880f694bd1cef484e92065ea4e736850abce5352
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash

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 >>):

   s390-linux-ld: drivers/input/keyboard/samsung-keypad.o: in function `samsung_keypad_probe':
>> drivers/input/keyboard/samsung-keypad.c:361: undefined reference to `devm_ioremap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_base_init':
>> drivers/clocksource/timer-of.c:159: undefined reference to `of_iomap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_base_exit':
>> drivers/clocksource/timer-of.c:151: undefined reference to `iounmap'
>> s390-linux-ld: drivers/clocksource/timer-of.c:151: undefined reference to `iounmap'
   s390-linux-ld: drivers/clocksource/timer-microchip-pit64b.o: in function `mchp_pit64b_dt_init_timer':
>> drivers/clocksource/timer-microchip-pit64b.c:436: undefined reference to `of_iomap'
>> s390-linux-ld: drivers/clocksource/timer-microchip-pit64b.c:486: undefined reference to `iounmap'


vim +361 drivers/input/keyboard/samsung-keypad.c

b3d6ac3e5f9374 Thomas Abraham  2011-11-02  313  
5298cc4cc753bb Bill Pemberton  2012-11-23  314  static int samsung_keypad_probe(struct platform_device *pdev)
0fffed27f92d9d Joonyoung Shim  2010-07-21  315  {
0fffed27f92d9d Joonyoung Shim  2010-07-21  316  	const struct samsung_keypad_platdata *pdata;
0fffed27f92d9d Joonyoung Shim  2010-07-21  317  	const struct matrix_keymap_data *keymap_data;
0fffed27f92d9d Joonyoung Shim  2010-07-21  318  	struct samsung_keypad *keypad;
0fffed27f92d9d Joonyoung Shim  2010-07-21  319  	struct resource *res;
0fffed27f92d9d Joonyoung Shim  2010-07-21  320  	struct input_dev *input_dev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  321  	unsigned int row_shift;
0fffed27f92d9d Joonyoung Shim  2010-07-21  322  	unsigned int keymap_size;
0fffed27f92d9d Joonyoung Shim  2010-07-21  323  	int error;
0fffed27f92d9d Joonyoung Shim  2010-07-21  324  
c838cb3d477f79 Jingoo Han      2013-12-05  325  	pdata = dev_get_platdata(&pdev->dev);
0fffed27f92d9d Joonyoung Shim  2010-07-21  326  	if (!pdata) {
670d20725e4f70 Dmitry Torokhov 2012-11-03  327  		pdata = samsung_keypad_parse_dt(&pdev->dev);
670d20725e4f70 Dmitry Torokhov 2012-11-03  328  		if (IS_ERR(pdata))
670d20725e4f70 Dmitry Torokhov 2012-11-03  329  			return PTR_ERR(pdata);
0fffed27f92d9d Joonyoung Shim  2010-07-21  330  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  331  
0fffed27f92d9d Joonyoung Shim  2010-07-21  332  	keymap_data = pdata->keymap_data;
0fffed27f92d9d Joonyoung Shim  2010-07-21  333  	if (!keymap_data) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  334  		dev_err(&pdev->dev, "no keymap data defined\n");
0fffed27f92d9d Joonyoung Shim  2010-07-21  335  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  336  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  337  
0fffed27f92d9d Joonyoung Shim  2010-07-21  338  	if (!pdata->rows || pdata->rows > SAMSUNG_MAX_ROWS)
0fffed27f92d9d Joonyoung Shim  2010-07-21  339  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  340  
0fffed27f92d9d Joonyoung Shim  2010-07-21  341  	if (!pdata->cols || pdata->cols > SAMSUNG_MAX_COLS)
0fffed27f92d9d Joonyoung Shim  2010-07-21  342  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  343  
0fffed27f92d9d Joonyoung Shim  2010-07-21  344  	/* initialize the gpio */
0fffed27f92d9d Joonyoung Shim  2010-07-21  345  	if (pdata->cfg_gpio)
0fffed27f92d9d Joonyoung Shim  2010-07-21  346  		pdata->cfg_gpio(pdata->rows, pdata->cols);
0fffed27f92d9d Joonyoung Shim  2010-07-21  347  
0fffed27f92d9d Joonyoung Shim  2010-07-21  348  	row_shift = get_count_order(pdata->cols);
0fffed27f92d9d Joonyoung Shim  2010-07-21  349  	keymap_size = (pdata->rows << row_shift) * sizeof(keypad->keycodes[0]);
0fffed27f92d9d Joonyoung Shim  2010-07-21  350  
a57da34795452b Sachin Kamat    2012-11-27  351  	keypad = devm_kzalloc(&pdev->dev, sizeof(*keypad) + keymap_size,
a57da34795452b Sachin Kamat    2012-11-27  352  			      GFP_KERNEL);
a57da34795452b Sachin Kamat    2012-11-27  353  	input_dev = devm_input_allocate_device(&pdev->dev);
a57da34795452b Sachin Kamat    2012-11-27  354  	if (!keypad || !input_dev)
a57da34795452b Sachin Kamat    2012-11-27  355  		return -ENOMEM;
0fffed27f92d9d Joonyoung Shim  2010-07-21  356  
0fffed27f92d9d Joonyoung Shim  2010-07-21  357  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
a57da34795452b Sachin Kamat    2012-11-27  358  	if (!res)
a57da34795452b Sachin Kamat    2012-11-27  359  		return -ENODEV;
0fffed27f92d9d Joonyoung Shim  2010-07-21  360  
a57da34795452b Sachin Kamat    2012-11-27 @361  	keypad->base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
a57da34795452b Sachin Kamat    2012-11-27  362  	if (!keypad->base)
a57da34795452b Sachin Kamat    2012-11-27  363  		return -EBUSY;
0fffed27f92d9d Joonyoung Shim  2010-07-21  364  
a57da34795452b Sachin Kamat    2012-11-27  365  	keypad->clk = devm_clk_get(&pdev->dev, "keypad");
0fffed27f92d9d Joonyoung Shim  2010-07-21  366  	if (IS_ERR(keypad->clk)) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  367  		dev_err(&pdev->dev, "failed to get keypad clk\n");
a57da34795452b Sachin Kamat    2012-11-27  368  		return PTR_ERR(keypad->clk);
0fffed27f92d9d Joonyoung Shim  2010-07-21  369  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  370  
aba828cee24f48 Thomas Abraham  2012-10-04  371  	error = clk_prepare(keypad->clk);
aba828cee24f48 Thomas Abraham  2012-10-04  372  	if (error) {
aba828cee24f48 Thomas Abraham  2012-10-04  373  		dev_err(&pdev->dev, "keypad clock prepare failed\n");
a57da34795452b Sachin Kamat    2012-11-27  374  		return error;
aba828cee24f48 Thomas Abraham  2012-10-04  375  	}
aba828cee24f48 Thomas Abraham  2012-10-04  376  
0fffed27f92d9d Joonyoung Shim  2010-07-21  377  	keypad->input_dev = input_dev;
48c98b1bb85a09 Mark Brown      2011-12-29  378  	keypad->pdev = pdev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  379  	keypad->row_shift = row_shift;
0fffed27f92d9d Joonyoung Shim  2010-07-21  380  	keypad->rows = pdata->rows;
0fffed27f92d9d Joonyoung Shim  2010-07-21  381  	keypad->cols = pdata->cols;
48c98b1bb85a09 Mark Brown      2011-12-29  382  	keypad->stopped = true;
0fffed27f92d9d Joonyoung Shim  2010-07-21  383  	init_waitqueue_head(&keypad->wait);
0fffed27f92d9d Joonyoung Shim  2010-07-21  384  
41cc2aaf802ee2 Thomas Abraham  2013-06-25  385  	if (pdev->dev.of_node)
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  386  		keypad->type = of_device_is_compatible(pdev->dev.of_node,
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  387  					"samsung,s5pv210-keypad");
41cc2aaf802ee2 Thomas Abraham  2013-06-25  388  	else
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  389  		keypad->type = platform_get_device_id(pdev)->driver_data;
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  390  
0fffed27f92d9d Joonyoung Shim  2010-07-21  391  	input_dev->name = pdev->name;
0fffed27f92d9d Joonyoung Shim  2010-07-21  392  	input_dev->id.bustype = BUS_HOST;
0fffed27f92d9d Joonyoung Shim  2010-07-21  393  	input_dev->dev.parent = &pdev->dev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  394  
0fffed27f92d9d Joonyoung Shim  2010-07-21  395  	input_dev->open = samsung_keypad_open;
0fffed27f92d9d Joonyoung Shim  2010-07-21  396  	input_dev->close = samsung_keypad_close;
0fffed27f92d9d Joonyoung Shim  2010-07-21  397  
1932811f426fee Dmitry Torokhov 2012-05-10  398  	error = matrix_keypad_build_keymap(keymap_data, NULL,
1932811f426fee Dmitry Torokhov 2012-05-10  399  					   pdata->rows, pdata->cols,
1932811f426fee Dmitry Torokhov 2012-05-10  400  					   keypad->keycodes, input_dev);
1932811f426fee Dmitry Torokhov 2012-05-10  401  	if (error) {
1932811f426fee Dmitry Torokhov 2012-05-10  402  		dev_err(&pdev->dev, "failed to build keymap\n");
aba828cee24f48 Thomas Abraham  2012-10-04  403  		goto err_unprepare_clk;
1932811f426fee Dmitry Torokhov 2012-05-10  404  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  405  
0fffed27f92d9d Joonyoung Shim  2010-07-21  406  	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
1932811f426fee Dmitry Torokhov 2012-05-10  407  	if (!pdata->no_autorepeat)
1932811f426fee Dmitry Torokhov 2012-05-10  408  		__set_bit(EV_REP, input_dev->evbit);
0fffed27f92d9d Joonyoung Shim  2010-07-21  409  
1932811f426fee Dmitry Torokhov 2012-05-10  410  	input_set_drvdata(input_dev, keypad);
0fffed27f92d9d Joonyoung Shim  2010-07-21  411  
0fffed27f92d9d Joonyoung Shim  2010-07-21  412  	keypad->irq = platform_get_irq(pdev, 0);
0fffed27f92d9d Joonyoung Shim  2010-07-21  413  	if (keypad->irq < 0) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  414  		error = keypad->irq;
a57da34795452b Sachin Kamat    2012-11-27  415  		goto err_unprepare_clk;
0fffed27f92d9d Joonyoung Shim  2010-07-21  416  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  417  
a57da34795452b Sachin Kamat    2012-11-27  418  	error = devm_request_threaded_irq(&pdev->dev, keypad->irq, NULL,
a57da34795452b Sachin Kamat    2012-11-27  419  					  samsung_keypad_irq, IRQF_ONESHOT,
a57da34795452b Sachin Kamat    2012-11-27  420  					  dev_name(&pdev->dev), keypad);
0fffed27f92d9d Joonyoung Shim  2010-07-21  421  	if (error) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  422  		dev_err(&pdev->dev, "failed to register keypad interrupt\n");
a57da34795452b Sachin Kamat    2012-11-27  423  		goto err_unprepare_clk;
0fffed27f92d9d Joonyoung Shim  2010-07-21  424  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  425  
48c98b1bb85a09 Mark Brown      2011-12-29  426  	device_init_wakeup(&pdev->dev, pdata->wakeup);
48c98b1bb85a09 Mark Brown      2011-12-29  427  	platform_set_drvdata(pdev, keypad);
48c98b1bb85a09 Mark Brown      2011-12-29  428  	pm_runtime_enable(&pdev->dev);
48c98b1bb85a09 Mark Brown      2011-12-29  429  
0fffed27f92d9d Joonyoung Shim  2010-07-21  430  	error = input_register_device(keypad->input_dev);
0fffed27f92d9d Joonyoung Shim  2010-07-21  431  	if (error)
a57da34795452b Sachin Kamat    2012-11-27  432  		goto err_disable_runtime_pm;
0fffed27f92d9d Joonyoung Shim  2010-07-21  433  
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  434  	if (pdev->dev.of_node) {
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  435  		devm_kfree(&pdev->dev, (void *)pdata->keymap_data->keymap);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  436  		devm_kfree(&pdev->dev, (void *)pdata->keymap_data);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  437  		devm_kfree(&pdev->dev, (void *)pdata);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  438  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  439  	return 0;
0fffed27f92d9d Joonyoung Shim  2010-07-21  440  
a57da34795452b Sachin Kamat    2012-11-27  441  err_disable_runtime_pm:
48c98b1bb85a09 Mark Brown      2011-12-29  442  	pm_runtime_disable(&pdev->dev);
aba828cee24f48 Thomas Abraham  2012-10-04  443  err_unprepare_clk:
aba828cee24f48 Thomas Abraham  2012-10-04  444  	clk_unprepare(keypad->clk);
0fffed27f92d9d Joonyoung Shim  2010-07-21  445  	return error;
0fffed27f92d9d Joonyoung Shim  2010-07-21  446  }
0fffed27f92d9d Joonyoung Shim  2010-07-21  447  

:::::: The code at line 361 was first introduced by commit
:::::: a57da34795452bbe44b55e2b69c3ab6b117cc4b4 Input: samsung-keypad - switch to using managed resources

:::::: TO: Sachin Kamat <sachin.kamat@linaro.org>
:::::: CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Kees Cook <keescook@chromium.org>
Cc: kbuild-all@lists.01.org,
	Linux Memory Management List <linux-mm@kvack.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [linux-next:master 2450/2855] drivers/input/keyboard/samsung-keypad.c:361: undefined reference to `devm_ioremap'
Date: Fri, 28 Jan 2022 22:13:06 +0800	[thread overview]
Message-ID: <202201282217.feGQWIFA-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   b605fdc54c2b28c30ef06d9db99282d8a32ae4be
commit: 880f694bd1cef484e92065ea4e736850abce5352 [2450/2855] Kconfig.debug: make DEBUG_INFO selectable from a choice
config: s390-randconfig-r032-20220124 (https://download.01.org/0day-ci/archive/20220128/202201282217.feGQWIFA-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=880f694bd1cef484e92065ea4e736850abce5352
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 880f694bd1cef484e92065ea4e736850abce5352
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash

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 >>):

   s390-linux-ld: drivers/input/keyboard/samsung-keypad.o: in function `samsung_keypad_probe':
>> drivers/input/keyboard/samsung-keypad.c:361: undefined reference to `devm_ioremap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_base_init':
>> drivers/clocksource/timer-of.c:159: undefined reference to `of_iomap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_base_exit':
>> drivers/clocksource/timer-of.c:151: undefined reference to `iounmap'
>> s390-linux-ld: drivers/clocksource/timer-of.c:151: undefined reference to `iounmap'
   s390-linux-ld: drivers/clocksource/timer-microchip-pit64b.o: in function `mchp_pit64b_dt_init_timer':
>> drivers/clocksource/timer-microchip-pit64b.c:436: undefined reference to `of_iomap'
>> s390-linux-ld: drivers/clocksource/timer-microchip-pit64b.c:486: undefined reference to `iounmap'


vim +361 drivers/input/keyboard/samsung-keypad.c

b3d6ac3e5f9374 Thomas Abraham  2011-11-02  313  
5298cc4cc753bb Bill Pemberton  2012-11-23  314  static int samsung_keypad_probe(struct platform_device *pdev)
0fffed27f92d9d Joonyoung Shim  2010-07-21  315  {
0fffed27f92d9d Joonyoung Shim  2010-07-21  316  	const struct samsung_keypad_platdata *pdata;
0fffed27f92d9d Joonyoung Shim  2010-07-21  317  	const struct matrix_keymap_data *keymap_data;
0fffed27f92d9d Joonyoung Shim  2010-07-21  318  	struct samsung_keypad *keypad;
0fffed27f92d9d Joonyoung Shim  2010-07-21  319  	struct resource *res;
0fffed27f92d9d Joonyoung Shim  2010-07-21  320  	struct input_dev *input_dev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  321  	unsigned int row_shift;
0fffed27f92d9d Joonyoung Shim  2010-07-21  322  	unsigned int keymap_size;
0fffed27f92d9d Joonyoung Shim  2010-07-21  323  	int error;
0fffed27f92d9d Joonyoung Shim  2010-07-21  324  
c838cb3d477f79 Jingoo Han      2013-12-05  325  	pdata = dev_get_platdata(&pdev->dev);
0fffed27f92d9d Joonyoung Shim  2010-07-21  326  	if (!pdata) {
670d20725e4f70 Dmitry Torokhov 2012-11-03  327  		pdata = samsung_keypad_parse_dt(&pdev->dev);
670d20725e4f70 Dmitry Torokhov 2012-11-03  328  		if (IS_ERR(pdata))
670d20725e4f70 Dmitry Torokhov 2012-11-03  329  			return PTR_ERR(pdata);
0fffed27f92d9d Joonyoung Shim  2010-07-21  330  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  331  
0fffed27f92d9d Joonyoung Shim  2010-07-21  332  	keymap_data = pdata->keymap_data;
0fffed27f92d9d Joonyoung Shim  2010-07-21  333  	if (!keymap_data) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  334  		dev_err(&pdev->dev, "no keymap data defined\n");
0fffed27f92d9d Joonyoung Shim  2010-07-21  335  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  336  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  337  
0fffed27f92d9d Joonyoung Shim  2010-07-21  338  	if (!pdata->rows || pdata->rows > SAMSUNG_MAX_ROWS)
0fffed27f92d9d Joonyoung Shim  2010-07-21  339  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  340  
0fffed27f92d9d Joonyoung Shim  2010-07-21  341  	if (!pdata->cols || pdata->cols > SAMSUNG_MAX_COLS)
0fffed27f92d9d Joonyoung Shim  2010-07-21  342  		return -EINVAL;
0fffed27f92d9d Joonyoung Shim  2010-07-21  343  
0fffed27f92d9d Joonyoung Shim  2010-07-21  344  	/* initialize the gpio */
0fffed27f92d9d Joonyoung Shim  2010-07-21  345  	if (pdata->cfg_gpio)
0fffed27f92d9d Joonyoung Shim  2010-07-21  346  		pdata->cfg_gpio(pdata->rows, pdata->cols);
0fffed27f92d9d Joonyoung Shim  2010-07-21  347  
0fffed27f92d9d Joonyoung Shim  2010-07-21  348  	row_shift = get_count_order(pdata->cols);
0fffed27f92d9d Joonyoung Shim  2010-07-21  349  	keymap_size = (pdata->rows << row_shift) * sizeof(keypad->keycodes[0]);
0fffed27f92d9d Joonyoung Shim  2010-07-21  350  
a57da34795452b Sachin Kamat    2012-11-27  351  	keypad = devm_kzalloc(&pdev->dev, sizeof(*keypad) + keymap_size,
a57da34795452b Sachin Kamat    2012-11-27  352  			      GFP_KERNEL);
a57da34795452b Sachin Kamat    2012-11-27  353  	input_dev = devm_input_allocate_device(&pdev->dev);
a57da34795452b Sachin Kamat    2012-11-27  354  	if (!keypad || !input_dev)
a57da34795452b Sachin Kamat    2012-11-27  355  		return -ENOMEM;
0fffed27f92d9d Joonyoung Shim  2010-07-21  356  
0fffed27f92d9d Joonyoung Shim  2010-07-21  357  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
a57da34795452b Sachin Kamat    2012-11-27  358  	if (!res)
a57da34795452b Sachin Kamat    2012-11-27  359  		return -ENODEV;
0fffed27f92d9d Joonyoung Shim  2010-07-21  360  
a57da34795452b Sachin Kamat    2012-11-27 @361  	keypad->base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
a57da34795452b Sachin Kamat    2012-11-27  362  	if (!keypad->base)
a57da34795452b Sachin Kamat    2012-11-27  363  		return -EBUSY;
0fffed27f92d9d Joonyoung Shim  2010-07-21  364  
a57da34795452b Sachin Kamat    2012-11-27  365  	keypad->clk = devm_clk_get(&pdev->dev, "keypad");
0fffed27f92d9d Joonyoung Shim  2010-07-21  366  	if (IS_ERR(keypad->clk)) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  367  		dev_err(&pdev->dev, "failed to get keypad clk\n");
a57da34795452b Sachin Kamat    2012-11-27  368  		return PTR_ERR(keypad->clk);
0fffed27f92d9d Joonyoung Shim  2010-07-21  369  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  370  
aba828cee24f48 Thomas Abraham  2012-10-04  371  	error = clk_prepare(keypad->clk);
aba828cee24f48 Thomas Abraham  2012-10-04  372  	if (error) {
aba828cee24f48 Thomas Abraham  2012-10-04  373  		dev_err(&pdev->dev, "keypad clock prepare failed\n");
a57da34795452b Sachin Kamat    2012-11-27  374  		return error;
aba828cee24f48 Thomas Abraham  2012-10-04  375  	}
aba828cee24f48 Thomas Abraham  2012-10-04  376  
0fffed27f92d9d Joonyoung Shim  2010-07-21  377  	keypad->input_dev = input_dev;
48c98b1bb85a09 Mark Brown      2011-12-29  378  	keypad->pdev = pdev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  379  	keypad->row_shift = row_shift;
0fffed27f92d9d Joonyoung Shim  2010-07-21  380  	keypad->rows = pdata->rows;
0fffed27f92d9d Joonyoung Shim  2010-07-21  381  	keypad->cols = pdata->cols;
48c98b1bb85a09 Mark Brown      2011-12-29  382  	keypad->stopped = true;
0fffed27f92d9d Joonyoung Shim  2010-07-21  383  	init_waitqueue_head(&keypad->wait);
0fffed27f92d9d Joonyoung Shim  2010-07-21  384  
41cc2aaf802ee2 Thomas Abraham  2013-06-25  385  	if (pdev->dev.of_node)
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  386  		keypad->type = of_device_is_compatible(pdev->dev.of_node,
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  387  					"samsung,s5pv210-keypad");
41cc2aaf802ee2 Thomas Abraham  2013-06-25  388  	else
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  389  		keypad->type = platform_get_device_id(pdev)->driver_data;
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  390  
0fffed27f92d9d Joonyoung Shim  2010-07-21  391  	input_dev->name = pdev->name;
0fffed27f92d9d Joonyoung Shim  2010-07-21  392  	input_dev->id.bustype = BUS_HOST;
0fffed27f92d9d Joonyoung Shim  2010-07-21  393  	input_dev->dev.parent = &pdev->dev;
0fffed27f92d9d Joonyoung Shim  2010-07-21  394  
0fffed27f92d9d Joonyoung Shim  2010-07-21  395  	input_dev->open = samsung_keypad_open;
0fffed27f92d9d Joonyoung Shim  2010-07-21  396  	input_dev->close = samsung_keypad_close;
0fffed27f92d9d Joonyoung Shim  2010-07-21  397  
1932811f426fee Dmitry Torokhov 2012-05-10  398  	error = matrix_keypad_build_keymap(keymap_data, NULL,
1932811f426fee Dmitry Torokhov 2012-05-10  399  					   pdata->rows, pdata->cols,
1932811f426fee Dmitry Torokhov 2012-05-10  400  					   keypad->keycodes, input_dev);
1932811f426fee Dmitry Torokhov 2012-05-10  401  	if (error) {
1932811f426fee Dmitry Torokhov 2012-05-10  402  		dev_err(&pdev->dev, "failed to build keymap\n");
aba828cee24f48 Thomas Abraham  2012-10-04  403  		goto err_unprepare_clk;
1932811f426fee Dmitry Torokhov 2012-05-10  404  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  405  
0fffed27f92d9d Joonyoung Shim  2010-07-21  406  	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
1932811f426fee Dmitry Torokhov 2012-05-10  407  	if (!pdata->no_autorepeat)
1932811f426fee Dmitry Torokhov 2012-05-10  408  		__set_bit(EV_REP, input_dev->evbit);
0fffed27f92d9d Joonyoung Shim  2010-07-21  409  
1932811f426fee Dmitry Torokhov 2012-05-10  410  	input_set_drvdata(input_dev, keypad);
0fffed27f92d9d Joonyoung Shim  2010-07-21  411  
0fffed27f92d9d Joonyoung Shim  2010-07-21  412  	keypad->irq = platform_get_irq(pdev, 0);
0fffed27f92d9d Joonyoung Shim  2010-07-21  413  	if (keypad->irq < 0) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  414  		error = keypad->irq;
a57da34795452b Sachin Kamat    2012-11-27  415  		goto err_unprepare_clk;
0fffed27f92d9d Joonyoung Shim  2010-07-21  416  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  417  
a57da34795452b Sachin Kamat    2012-11-27  418  	error = devm_request_threaded_irq(&pdev->dev, keypad->irq, NULL,
a57da34795452b Sachin Kamat    2012-11-27  419  					  samsung_keypad_irq, IRQF_ONESHOT,
a57da34795452b Sachin Kamat    2012-11-27  420  					  dev_name(&pdev->dev), keypad);
0fffed27f92d9d Joonyoung Shim  2010-07-21  421  	if (error) {
0fffed27f92d9d Joonyoung Shim  2010-07-21  422  		dev_err(&pdev->dev, "failed to register keypad interrupt\n");
a57da34795452b Sachin Kamat    2012-11-27  423  		goto err_unprepare_clk;
0fffed27f92d9d Joonyoung Shim  2010-07-21  424  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  425  
48c98b1bb85a09 Mark Brown      2011-12-29  426  	device_init_wakeup(&pdev->dev, pdata->wakeup);
48c98b1bb85a09 Mark Brown      2011-12-29  427  	platform_set_drvdata(pdev, keypad);
48c98b1bb85a09 Mark Brown      2011-12-29  428  	pm_runtime_enable(&pdev->dev);
48c98b1bb85a09 Mark Brown      2011-12-29  429  
0fffed27f92d9d Joonyoung Shim  2010-07-21  430  	error = input_register_device(keypad->input_dev);
0fffed27f92d9d Joonyoung Shim  2010-07-21  431  	if (error)
a57da34795452b Sachin Kamat    2012-11-27  432  		goto err_disable_runtime_pm;
0fffed27f92d9d Joonyoung Shim  2010-07-21  433  
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  434  	if (pdev->dev.of_node) {
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  435  		devm_kfree(&pdev->dev, (void *)pdata->keymap_data->keymap);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  436  		devm_kfree(&pdev->dev, (void *)pdata->keymap_data);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  437  		devm_kfree(&pdev->dev, (void *)pdata);
b3d6ac3e5f9374 Thomas Abraham  2011-11-02  438  	}
0fffed27f92d9d Joonyoung Shim  2010-07-21  439  	return 0;
0fffed27f92d9d Joonyoung Shim  2010-07-21  440  
a57da34795452b Sachin Kamat    2012-11-27  441  err_disable_runtime_pm:
48c98b1bb85a09 Mark Brown      2011-12-29  442  	pm_runtime_disable(&pdev->dev);
aba828cee24f48 Thomas Abraham  2012-10-04  443  err_unprepare_clk:
aba828cee24f48 Thomas Abraham  2012-10-04  444  	clk_unprepare(keypad->clk);
0fffed27f92d9d Joonyoung Shim  2010-07-21  445  	return error;
0fffed27f92d9d Joonyoung Shim  2010-07-21  446  }
0fffed27f92d9d Joonyoung Shim  2010-07-21  447  

:::::: The code at line 361 was first introduced by commit
:::::: a57da34795452bbe44b55e2b69c3ab6b117cc4b4 Input: samsung-keypad - switch to using managed resources

:::::: TO: Sachin Kamat <sachin.kamat@linaro.org>
:::::: CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>

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


             reply	other threads:[~2022-01-28 14:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 14:13 kernel test robot [this message]
2022-01-28 14:13 ` [linux-next:master 2450/2855] drivers/input/keyboard/samsung-keypad.c:361: undefined reference to `devm_ioremap' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201282217.feGQWIFA-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.