Thread (6 messages) 6 messages, 3 authors, 2021-06-02

Re: [input:next 2732/2735] drivers/input/touchscreen/resistive-adc-touch.c:84 grts_cb() error: uninitialized symbol 'z2'.

flat view

From: Oleksij Rempel <o.rempel@pengutronix.de>
Date: 2021-05-27 10:20:12
Also in: oe-kbuild-all

Hi,

On Thu, May 27, 2021 at 12:30:00PM +0300, Dan Carpenter wrote:
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
head:   6cf3b3abbf0b3b778138c0f8936aa7820af62cfc
commit: fb082cd59afa7fbd3a610e9835050675040b1b99 [2732/2735] Input: resistive-adc-touch - add support for z1 and z2 channels
config: x86_64-randconfig-m001-20210526 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <redacted>
Reported-by: Dan Carpenter <redacted>

New smatch warnings:
drivers/input/touchscreen/resistive-adc-touch.c:84 grts_cb() error: uninitialized symbol 'z2'.
drivers/input/touchscreen/resistive-adc-touch.c:88 grts_cb() error: uninitialized symbol 'x'.
drivers/input/touchscreen/resistive-adc-touch.c:101 grts_cb() error: uninitialized symbol 'y'.

Old smatch warnings:
drivers/input/touchscreen/resistive-adc-touch.c:101 grts_cb() error: uninitialized symbol 'x'.
drivers/input/touchscreen/resistive-adc-touch.c:109 grts_cb() error: uninitialized symbol 'y'.

vim +/z2 +84 drivers/input/touchscreen/resistive-adc-touch.c

aa132ffb6b0a18 Eugen Hristev  2018-05-22   56  static int grts_cb(const void *data, void *private)
aa132ffb6b0a18 Eugen Hristev  2018-05-22   57  {
aa132ffb6b0a18 Eugen Hristev  2018-05-22   58  	const u16 *touch_info = data;
aa132ffb6b0a18 Eugen Hristev  2018-05-22   59  	struct grts_state *st = private;
fb082cd59afa7f Oleksij Rempel 2021-05-25   60  	unsigned int x, y, press = 0, z1 = 0, z2;
fb082cd59afa7f Oleksij Rempel 2021-05-25   61  	unsigned int Rt, i;
aa132ffb6b0a18 Eugen Hristev  2018-05-22   62  
fb082cd59afa7f Oleksij Rempel 2021-05-25   63  	for (i = 0; i < ARRAY_SIZE(st->ch) && st->ch[i] != GRTS_CH_NONE; i++) {
fb082cd59afa7f Oleksij Rempel 2021-05-25   64  		switch (st->ch[i]) {
fb082cd59afa7f Oleksij Rempel 2021-05-25   65  		case GRTS_CH_X:
fb082cd59afa7f Oleksij Rempel 2021-05-25   66  			x = touch_info[i];
fb082cd59afa7f Oleksij Rempel 2021-05-25   67  			break;
fb082cd59afa7f Oleksij Rempel 2021-05-25   68  		case GRTS_CH_Y:
fb082cd59afa7f Oleksij Rempel 2021-05-25   69  			y = touch_info[i];
fb082cd59afa7f Oleksij Rempel 2021-05-25   70  			break;
fb082cd59afa7f Oleksij Rempel 2021-05-25   71  		case GRTS_CH_PRESSURE:
fb082cd59afa7f Oleksij Rempel 2021-05-25   72  			press = touch_info[i];
fb082cd59afa7f Oleksij Rempel 2021-05-25   73  			break;
fb082cd59afa7f Oleksij Rempel 2021-05-25   74  		case GRTS_CH_Z1:
fb082cd59afa7f Oleksij Rempel 2021-05-25   75  			z1 = touch_info[i];
fb082cd59afa7f Oleksij Rempel 2021-05-25   76  			break;
fb082cd59afa7f Oleksij Rempel 2021-05-25   77  		case GRTS_CH_Z2:
fb082cd59afa7f Oleksij Rempel 2021-05-25   78  			z2 = touch_info[i];
fb082cd59afa7f Oleksij Rempel 2021-05-25   79  			break;
fb082cd59afa7f Oleksij Rempel 2021-05-25   80  		}
fb082cd59afa7f Oleksij Rempel 2021-05-25   81  	}
fb082cd59afa7f Oleksij Rempel 2021-05-25   82  
fb082cd59afa7f Oleksij Rempel 2021-05-25   83  	if (z1) {
fb082cd59afa7f Oleksij Rempel 2021-05-25  @84  		Rt = z2;

It's likely this is a false positive, but we can see why the static
checker would complain.
The presence of this values was validated on probe. Do we really need
extra set them to 0?
fb082cd59afa7f Oleksij Rempel 2021-05-25   85  		Rt -= z1;
fb082cd59afa7f Oleksij Rempel 2021-05-25   86  		Rt *= st->x_plate_ohms;
fb082cd59afa7f Oleksij Rempel 2021-05-25   87  		Rt = DIV_ROUND_CLOSEST(Rt, 16);
fb082cd59afa7f Oleksij Rempel 2021-05-25  @88  		Rt *= x;
fb082cd59afa7f Oleksij Rempel 2021-05-25   89  		Rt /= z1;
fb082cd59afa7f Oleksij Rempel 2021-05-25   90  		Rt = DIV_ROUND_CLOSEST(Rt, 256);
fb082cd59afa7f Oleksij Rempel 2021-05-25   91  		/*
fb082cd59afa7f Oleksij Rempel 2021-05-25   92  		 * On increased pressure the resistance (Rt) is decreasing
fb082cd59afa7f Oleksij Rempel 2021-05-25   93  		 * so, convert values to make it looks as real pressure.
fb082cd59afa7f Oleksij Rempel 2021-05-25   94  		 */
fb082cd59afa7f Oleksij Rempel 2021-05-25   95  		if (Rt < GRTS_DEFAULT_PRESSURE_MAX)
fb082cd59afa7f Oleksij Rempel 2021-05-25   96  			press = GRTS_DEFAULT_PRESSURE_MAX - Rt;
fb082cd59afa7f Oleksij Rempel 2021-05-25   97  		else
fb082cd59afa7f Oleksij Rempel 2021-05-25   98  			press = 0;
fb082cd59afa7f Oleksij Rempel 2021-05-25   99  	}
aa132ffb6b0a18 Eugen Hristev  2018-05-22  100  
aa132ffb6b0a18 Eugen Hristev  2018-05-22 @101  	if ((!x && !y) || (st->pressure && (press < st->pressure_min))) {
aa132ffb6b0a18 Eugen Hristev  2018-05-22  102  		/* report end of touch */
aa132ffb6b0a18 Eugen Hristev  2018-05-22  103  		input_report_key(st->input, BTN_TOUCH, 0);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  104  		input_sync(st->input);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  105  		return 0;
aa132ffb6b0a18 Eugen Hristev  2018-05-22  106  	}
aa132ffb6b0a18 Eugen Hristev  2018-05-22  107  
aa132ffb6b0a18 Eugen Hristev  2018-05-22  108  	/* report proper touch to subsystem*/
aa132ffb6b0a18 Eugen Hristev  2018-05-22  109  	touchscreen_report_pos(st->input, &st->prop, x, y, false);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  110  	if (st->pressure)
aa132ffb6b0a18 Eugen Hristev  2018-05-22  111  		input_report_abs(st->input, ABS_PRESSURE, press);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  112  	input_report_key(st->input, BTN_TOUCH, 1);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  113  	input_sync(st->input);
aa132ffb6b0a18 Eugen Hristev  2018-05-22  114  
aa132ffb6b0a18 Eugen Hristev  2018-05-22  115  	return 0;
aa132ffb6b0a18 Eugen Hristev  2018-05-22  116  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help