Re: [PATCH V5 2/5] input: keyboard: imx_sc: Add i.MX system controller key support

From: kbuild test robot
Date: Mon Sep 16 2019 - 23:43:15 EST


Hi Anson,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3 next-20190916]
[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/Anson-Huang/dt-bindings-fsl-scu-add-scu-key-binding/20190917-105937
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=ia64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from drivers/input/keyboard/imx_sc_key.c:6:0:
drivers/input/keyboard/imx_sc_key.c: In function 'imx_sc_check_for_events':
>> drivers/input/keyboard/imx_sc_key.c:76:60: error: 'ret' undeclared (first use in this function); did you mean 'net'?
dev_err(&input->dev, "read imx sc key failed, ret %d\n", ret);
^
include/linux/device.h:1499:32: note: in definition of macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
drivers/input/keyboard/imx_sc_key.c:76:60: note: each undeclared identifier is reported only once for each function it appears in
dev_err(&input->dev, "read imx sc key failed, ret %d\n", ret);
^
include/linux/device.h:1499:32: note: in definition of macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~

vim +76 drivers/input/keyboard/imx_sc_key.c

> 6 #include <linux/device.h>
7 #include <linux/err.h>
8 #include <linux/firmware/imx/sci.h>
9 #include <linux/init.h>
10 #include <linux/input.h>
11 #include <linux/interrupt.h>
12 #include <linux/jiffies.h>
13 #include <linux/kernel.h>
14 #include <linux/module.h>
15 #include <linux/of.h>
16 #include <linux/of_address.h>
17 #include <linux/platform_device.h>
18
19 #define DEBOUNCE_TIME 30
20 #define REPEAT_INTERVAL 60
21
22 #define SC_IRQ_BUTTON 1
23 #define SC_IRQ_GROUP_WAKE 3
24 #define IMX_SC_MISC_FUNC_GET_BUTTON_STATUS 18
25
26 struct imx_key_drv_data {
27 int keycode;
28 bool keystate; /* 1: pressed, 0: release */
29 struct delayed_work check_work;
30 struct input_dev *input;
31 struct imx_sc_ipc *key_ipc_handle;
32 struct notifier_block key_notifier;
33 };
34
35 struct imx_sc_msg_key {
36 struct imx_sc_rpc_msg hdr;
37 u8 state;
38 };
39
40 static int imx_sc_key_notify(struct notifier_block *nb,
41 unsigned long event, void *group)
42 {
43 struct imx_key_drv_data *priv =
44 container_of(nb,
45 struct imx_key_drv_data,
46 key_notifier);
47
48 if ((event & SC_IRQ_BUTTON) && (*(u8 *)group == SC_IRQ_GROUP_WAKE)) {
49 schedule_delayed_work(&priv->check_work,
50 msecs_to_jiffies(DEBOUNCE_TIME));
51 pm_wakeup_event(priv->input->dev.parent, 0);
52 }
53
54 return 0;
55 }
56
57 static void imx_sc_check_for_events(struct work_struct *work)
58 {
59 struct imx_key_drv_data *priv =
60 container_of(work,
61 struct imx_key_drv_data,
62 check_work.work);
63 struct input_dev *input = priv->input;
64 struct imx_sc_msg_key msg;
65 struct imx_sc_rpc_msg *hdr = &msg.hdr;
66 bool state;
67 int error;
68
69 hdr->ver = IMX_SC_RPC_VERSION;
70 hdr->svc = IMX_SC_RPC_SVC_MISC;
71 hdr->func = IMX_SC_MISC_FUNC_GET_BUTTON_STATUS;
72 hdr->size = 1;
73
74 error = imx_scu_call_rpc(priv->key_ipc_handle, &msg, true);
75 if (error) {
> 76 dev_err(&input->dev, "read imx sc key failed, ret %d\n", ret);
77 return;
78 }
79
80 state = (bool)msg.state;
81
82 if (state ^ priv->keystate) {
83 priv->keystate = state;
84 input_event(input, EV_KEY, priv->keycode, state);
85 input_sync(input);
86 if (!priv->keystate)
87 pm_relax(priv->input->dev.parent);
88 }
89
90 if (state)
91 schedule_delayed_work(&priv->check_work,
92 msecs_to_jiffies(REPEAT_INTERVAL));
93 }
94

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip