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

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

 



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



[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