* [bug report] Input: add driver for Hynitron cstxxx touchscreens @ 2022-11-15 12:43 Dan Carpenter [not found] ` <6373b1f3.170a0220.85a5b.3a48SMTPIN_ADDED_BROKEN@mx.google.com> 0 siblings, 1 reply; 2+ messages in thread From: Dan Carpenter @ 2022-11-15 12:43 UTC (permalink / raw) To: macromorgan; +Cc: linux-input [ 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 ^ permalink raw reply [flat|nested] 2+ messages in thread
[parent not found: <6373b1f3.170a0220.85a5b.3a48SMTPIN_ADDED_BROKEN@mx.google.com>]
* Re: [bug report] Input: add driver for Hynitron cstxxx touchscreens [not found] ` <6373b1f3.170a0220.85a5b.3a48SMTPIN_ADDED_BROKEN@mx.google.com> @ 2022-11-15 15:53 ` Dan Carpenter 0 siblings, 0 replies; 2+ messages in thread From: Dan Carpenter @ 2022-11-15 15:53 UTC (permalink / raw) To: Christopher Morgan; +Cc: linux-input@vger.kernel.org On Tue, Nov 15, 2022 at 03:36:18PM +0000, Christopher Morgan wrote: > On Tue, Nov 15, 2022 at 03:43:39PM +0300, Dan Carpenter wrote: > > [ 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: > > Apologies, but I'm a surprisingly un-skilled programmer. Heh. Every several years I realize that, "Nope. I still don't understand pointers." > I'll be happy to fix the bugs though I just want to make sure I > understand the problem clearly first. > > > > > drivers/input/touchscreen/hynitron_cstxxx.c:238 cst3xx_bootloader_enter() > > error: uninitialized symbol 'tmp'. > > > > Does this mean I need to set the inital value of the tmp variable to 0? Looking > at the code more closely I'm assuming this is the issue because if it runs through > the loop 5 times and errors each time it will exit the loop without setting a > value for tmp. Setting it to zero works. Although I had to look up that CST3XX_BOOTLDR_CHK_VAL is not zero... But presumably the people who know the code will understand that right away. > > > 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. > > Is that personal prefrence or guidance? The BSP driver did the incremental > loop 5 times, so that's why I did it here. > Yeah. Just a personal preference. I was trying to avoid using the number 5 twice... Never mind about what I said here. Just initialize it to zero. regards, dan carpenter ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-11-15 15:53 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-15 12:43 [bug report] Input: add driver for Hynitron cstxxx touchscreens Dan Carpenter [not found] ` <6373b1f3.170a0220.85a5b.3a48SMTPIN_ADDED_BROKEN@mx.google.com> 2022-11-15 15:53 ` Dan Carpenter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).