On Tue, Jun 01, 2021 at 12:27:15PM +0200, Oleksij Rempel wrote: > Hi Dmitry, > > > > Input: resistive-adc-touch - rework mapping of channels > > > > From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > > > > Instead of iterating over channels establish and use channel map to > > retrieve data. As a side effect this will silence "uninitialized variable" > > warnings. > > > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > > --- > > drivers/input/touchscreen/resistive-adc-touch.c | 114 ++++++++++------------- > > 1 file changed, 51 insertions(+), 63 deletions(-) > > > > diff --git a/drivers/input/touchscreen/resistive-adc-touch.c b/drivers/input/touchscreen/resistive-adc-touch.c > > index ea1884fb49a1..2102916a37ea 100644 > > --- a/drivers/input/touchscreen/resistive-adc-touch.c > > +++ b/drivers/input/touchscreen/resistive-adc-touch.c > > @@ -25,12 +25,12 @@ > > #define GRTS_MAX_CHANNELS 4 > > > > enum grts_ch_type { > > - GRTS_CH_NONE = 0, > > GRTS_CH_X, > > GRTS_CH_Y, > > GRTS_CH_PRESSURE, > > GRTS_CH_Z1, > > GRTS_CH_Z2, > > + GRTS_CH_MAX = GRTS_CH_Z2 + 1 > > }; > > > > /** > > @@ -42,7 +42,7 @@ enum grts_ch_type { > > * @iio_cb: iio_callback buffer for the data > > * @input: the input device structure that we register > > * @prop: touchscreen properties struct > > - * @ch: channels that are defined for the touchscreen > > + * @ch_map: map of channels that are defined for the touchscreen > > */ > > struct grts_state { > > u32 x_plate_ohms; > > @@ -52,37 +52,25 @@ struct grts_state { > > struct iio_cb_buffer *iio_cb; > > struct input_dev *input; > > struct touchscreen_properties prop; > > - u8 ch[GRTS_MAX_CHANNELS]; > > + u8 ch_map[GRTS_CH_MAX]; > > }; > > > > static int grts_cb(const void *data, void *private) > > { > > const u16 *touch_info = data; > > struct grts_state *st = private; > > - unsigned int x, y, press = 0, z1 = 0, z2; > > - unsigned int Rt, i; > > - > > - for (i = 0; i < ARRAY_SIZE(st->ch) && st->ch[i] != GRTS_CH_NONE; i++) { > > - switch (st->ch[i]) { > > - case GRTS_CH_X: > > - x = touch_info[i]; > > - break; > > - case GRTS_CH_Y: > > - y = touch_info[i]; > > - break; > > - case GRTS_CH_PRESSURE: > > - press = touch_info[i]; > > - break; > > - case GRTS_CH_Z1: > > - z1 = touch_info[i]; > > - break; > > - case GRTS_CH_Z2: > > - z2 = touch_info[i]; > > - break; > > - } > > - } > > + unsigned int x, y, press; > > + > > + x = touch_info[st->ch_map[GRTS_CH_X]]; > > + y = touch_info[st->ch_map[GRTS_CH_X]]; > > Here should be GRTS_CH_Y > > With this fix: > Tested-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> Thank you Okeksij, I fixed this up and applied. -- Dmitry