Re: [PATCH v7 2/2] input: add driver for Hynitron CST816X touchscreen

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

 



Hi Oleh,

kernel test robot noticed the following build warnings:

[auto build test WARNING on dtor-input/next]
[also build test WARNING on dtor-input/for-linus robh/for-next krzk-dt/for-next linus/master v6.11-rc7 next-20240913]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Oleh-Kuzhylnyi/input-add-driver-for-Hynitron-CST816X-touchscreen/20240912-213044
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
patch link:    https://lore.kernel.org/r/20240912132823.123409-2-kuzhylol%40gmail.com
patch subject: [PATCH v7 2/2] input: add driver for Hynitron CST816X touchscreen
config: sparc64-randconfig-r133-20240913 (https://download.01.org/0day-ci/archive/20240914/202409141849.QpkMdWlC-lkp@xxxxxxxxx/config)
compiler: sparc64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240914/202409141849.QpkMdWlC-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409141849.QpkMdWlC-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/input/touchscreen/hynitron-cst816x.c:100:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] abs_x @@     got unsigned long @@
   drivers/input/touchscreen/hynitron-cst816x.c:100:21: sparse:     expected restricted __be16 [usertype] abs_x
   drivers/input/touchscreen/hynitron-cst816x.c:100:21: sparse:     got unsigned long
>> drivers/input/touchscreen/hynitron-cst816x.c:101:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] abs_y @@     got unsigned long @@
   drivers/input/touchscreen/hynitron-cst816x.c:101:21: sparse:     expected restricted __be16 [usertype] abs_y
   drivers/input/touchscreen/hynitron-cst816x.c:101:21: sparse:     got unsigned long
>> drivers/input/touchscreen/hynitron-cst816x.c:147:58: sparse: sparse: incorrect type in argument 3 (different base types) @@     expected int value @@     got restricted __be16 [addressable] [usertype] abs_x @@
   drivers/input/touchscreen/hynitron-cst816x.c:147:58: sparse:     expected int value
   drivers/input/touchscreen/hynitron-cst816x.c:147:58: sparse:     got restricted __be16 [addressable] [usertype] abs_x
>> drivers/input/touchscreen/hynitron-cst816x.c:148:58: sparse: sparse: incorrect type in argument 3 (different base types) @@     expected int value @@     got restricted __be16 [addressable] [usertype] abs_y @@
   drivers/input/touchscreen/hynitron-cst816x.c:148:58: sparse:     expected int value
   drivers/input/touchscreen/hynitron-cst816x.c:148:58: sparse:     got restricted __be16 [addressable] [usertype] abs_y

vim +100 drivers/input/touchscreen/hynitron-cst816x.c

    93	
    94	static bool cst816x_process_touch(struct cst816x_priv *priv,
    95					  struct cst816x_touch_info *info)
    96	{
    97		if (cst816x_i2c_read_register(priv, CST816X_FRAME, info, sizeof(*info)))
    98			return false;
    99	
 > 100		info->abs_x = get_unaligned_be16(&info->abs_x) & GENMASK(11, 0);
 > 101		info->abs_y = get_unaligned_be16(&info->abs_y) & GENMASK(11, 0);
   102	
   103		dev_dbg(&priv->client->dev, "x: %d, y: %d, t: %d, g: 0x%x\n",
   104			info->abs_x, info->abs_y, info->touch, info->gesture);
   105	
   106		return true;
   107	}
   108	
   109	static int cst816x_register_input(struct cst816x_priv *priv)
   110	{
   111		priv->input = devm_input_allocate_device(&priv->client->dev);
   112		if (!priv->input)
   113			return -ENOMEM;
   114	
   115		priv->input->name = "Hynitron CST816X Touchscreen";
   116		priv->input->phys = "input/ts";
   117		priv->input->id.bustype = BUS_I2C;
   118		input_set_drvdata(priv->input, priv);
   119	
   120		for (int i = 0; i < ARRAY_SIZE(priv->event_map); i++)
   121			input_set_capability(priv->input, EV_KEY,
   122					     priv->event_map[i].code);
   123	
   124		input_set_abs_params(priv->input, ABS_X, 0, 240, 0, 0);
   125		input_set_abs_params(priv->input, ABS_Y, 0, 240, 0, 0);
   126	
   127		return input_register_device(priv->input);
   128	}
   129	
   130	static void cst816x_reset(struct cst816x_priv *priv)
   131	{
   132		gpiod_set_value_cansleep(priv->reset, 1);
   133		msleep(50);
   134		gpiod_set_value_cansleep(priv->reset, 0);
   135		msleep(100);
   136	}
   137	
   138	static irqreturn_t cst816x_irq_cb(int irq, void *cookie)
   139	{
   140		struct cst816x_priv *priv = cookie;
   141		struct cst816x_touch_info info;
   142	
   143		if (!cst816x_process_touch(priv, &info))
   144			return IRQ_HANDLED;
   145	
   146		if (info.touch) {
 > 147			input_report_abs(priv->input, ABS_X, info.abs_x);
 > 148			input_report_abs(priv->input, ABS_Y, info.abs_y);
   149			input_report_key(priv->input, BTN_TOUCH, 1);
   150		}
   151	
   152		if (info.gesture) {
   153			input_report_key(priv->input,
   154					 priv->event_map[info.gesture & 0x0F].code,
   155					 info.touch);
   156	
   157			if (!info.touch)
   158				input_report_key(priv->input, BTN_TOUCH, 0);
   159		}
   160	
   161		input_sync(priv->input);
   162	
   163		return IRQ_HANDLED;
   164	}
   165	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux