All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <error27@gmail.com>
To: macromorgan@hotmail.com
Cc: linux-input@vger.kernel.org
Subject: [bug report] Input: add driver for Hynitron cstxxx touchscreens
Date: Tue, 15 Nov 2022 15:43:39 +0300	[thread overview]
Message-ID: <Y3OJe4lOkOsRMIcu@kili> (raw)

[ I sent this a couple weeks back, but it turns out that mutt + msmtp
  has been silently eating my emails instead of sending them so I'm
  resending two weeks of email. -dan ]

Hello Chris Morgan,

The patch 66603243f528: "Input: add driver for Hynitron cstxxx
touchscreens" from Oct 28, 2022, leads to the following Smatch static
checker warning:

	drivers/input/touchscreen/hynitron_cstxxx.c:238 cst3xx_bootloader_enter()
	error: uninitialized symbol 'tmp'.

drivers/input/touchscreen/hynitron_cstxxx.c
    209 static int cst3xx_bootloader_enter(struct i2c_client *client)
    210 {
    211         int err;
    212         u8 retry;
    213         u32 tmp;
    214         unsigned char buf[3];
    215 
    216         for (retry = 0; retry < 5; retry++) {
    217                 hyn_reset_proc(client, (7 + retry));

I would have changed this to a while (retry--) { loop except the retry
value probably matters here.

    218                 /* set cmd to enter program mode */
    219                 put_unaligned_le24(CST3XX_BOOTLDR_PROG_CMD, buf);
    220                 err = cst3xx_i2c_write(client, buf, 3);
    221                 if (err)
    222                         continue;
    223 
    224                 usleep_range(2000, 2500);
    225 
    226                 /* check whether in program mode */
    227                 err = cst3xx_i2c_read_register(client,
    228                                                CST3XX_BOOTLDR_PROG_CHK_REG,
    229                                                buf, 1);
    230                 if (err)
    231                         continue;
    232 
    233                 tmp = get_unaligned(buf);
    234                 if (tmp == CST3XX_BOOTLDR_CHK_VAL)
    235                         break;
    236         }
    237 
--> 238         if (tmp != CST3XX_BOOTLDR_CHK_VAL) {

This is a genuine bug.  It should be checking if retry == 5 but maybe
with a define instead of a magic 5.

    239                 dev_err(&client->dev, "%s unable to enter bootloader mode\n",
    240                         __func__);
    241                 return -ENODEV;
    242         }
    243 
    244         hyn_reset_proc(client, 40);
    245 
    246         return 0;
    247 }

regards,
dan carpenter

             reply	other threads:[~2022-11-15 12:43 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-15 12:43 Dan Carpenter [this message]
     [not found] ` <6373b1f3.170a0220.85a5b.3a48SMTPIN_ADDED_BROKEN@mx.google.com>
2022-11-15 15:53   ` [bug report] Input: add driver for Hynitron cstxxx touchscreens Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y3OJe4lOkOsRMIcu@kili \
    --to=error27@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=macromorgan@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.