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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux