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