From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [android-goldfish:android-5.4 4/5] drivers/hid/hid-nintendo.c:314 joycon_request_calibration() warn: right shifting more than type allows 16 vs 16
Date: Thu, 26 Nov 2020 05:15:49 +0800 [thread overview]
Message-ID: <202011260546.iAsFdDpE-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10767 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Alistair Delva <adelva@google.com>
tree: https://android.googlesource.com/kernel/goldfish android-5.4
head: e03073f66fc4018c29fefbc5ded97a31c3e958b9
commit: e63d24388097cc5592fb085fea19f9f7e9cd1248 [4/5] FROMLIST: HID: nintendo: add nintendo switch controller driver
:::::: branch date: 9 months ago
:::::: commit date: 9 months ago
config: x86_64-randconfig-m001-20201125 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/hid/hid-nintendo.c:314 joycon_request_calibration() warn: right shifting more than type allows 16 vs 16
Old smatch warnings:
drivers/hid/hid-nintendo.c:315 joycon_request_calibration() warn: right shifting more than type allows 16 vs 24
vim +314 drivers/hid/hid-nintendo.c
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 290
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 291 static const u16 DFLT_STICK_CAL_CEN = 2000;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 292 static const u16 DFLT_STICK_CAL_MAX = 3500;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 293 static const u16 DFLT_STICK_CAL_MIN = 500;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 294 static int joycon_request_calibration(struct joycon_ctlr *ctlr)
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 295 {
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 296 struct joycon_subcmd_request *req;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 297 u8 buffer[sizeof(*req) + 5] = { 0 };
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 298 struct joycon_input_report *report;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 299 struct joycon_stick_cal *cal_x;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 300 struct joycon_stick_cal *cal_y;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 301 s32 x_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 302 s32 x_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 303 s32 y_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 304 s32 y_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 305 u8 *data;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 306 u8 *raw_cal;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 307 int ret;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 308
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 309 req = (struct joycon_subcmd_request *)buffer;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 310 req->subcmd_id = JC_SUBCMD_SPI_FLASH_READ;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 311 data = req->data;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 312 data[0] = 0xFF & JC_CAL_DATA_START;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 313 data[1] = 0xFF & (JC_CAL_DATA_START >> 8);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 @314 data[2] = 0xFF & (JC_CAL_DATA_START >> 16);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 315 data[3] = 0xFF & (JC_CAL_DATA_START >> 24);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 316 data[4] = JC_CAL_DATA_SIZE;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 317
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 318 hid_dbg(ctlr->hdev, "requesting cal data\n");
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 319 ret = joycon_send_subcmd(ctlr, req, 5);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 320 if (ret) {
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 321 hid_warn(ctlr->hdev,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 322 "Failed to read stick cal, using defaults; ret=%d\n",
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 323 ret);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 324
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 325 ctlr->left_stick_cal_x.center = DFLT_STICK_CAL_CEN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 326 ctlr->left_stick_cal_x.max = DFLT_STICK_CAL_MAX;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 327 ctlr->left_stick_cal_x.min = DFLT_STICK_CAL_MIN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 328
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 329 ctlr->left_stick_cal_y.center = DFLT_STICK_CAL_CEN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 330 ctlr->left_stick_cal_y.max = DFLT_STICK_CAL_MAX;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 331 ctlr->left_stick_cal_y.min = DFLT_STICK_CAL_MIN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 332
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 333 ctlr->right_stick_cal_x.center = DFLT_STICK_CAL_CEN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 334 ctlr->right_stick_cal_x.max = DFLT_STICK_CAL_MAX;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 335 ctlr->right_stick_cal_x.min = DFLT_STICK_CAL_MIN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 336
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 337 ctlr->right_stick_cal_y.center = DFLT_STICK_CAL_CEN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 338 ctlr->right_stick_cal_y.max = DFLT_STICK_CAL_MAX;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 339 ctlr->right_stick_cal_y.min = DFLT_STICK_CAL_MIN;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 340
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 341 return ret;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 342 }
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 343
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 344 report = (struct joycon_input_report *)ctlr->input_buf;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 345 raw_cal = &report->reply.data[5];
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 346
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 347 /* left stick calibration parsing */
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 348 cal_x = &ctlr->left_stick_cal_x;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 349 cal_y = &ctlr->left_stick_cal_y;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 350
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 351 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 352 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 353 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 354 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 355 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 356 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 357 cal_x->max = cal_x->center + x_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 358 cal_x->min = cal_x->center - x_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 359 cal_y->max = cal_y->center + y_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 360 cal_y->min = cal_y->center - y_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 361
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 362 /* right stick calibration parsing */
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 363 raw_cal += 9;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 364 cal_x = &ctlr->right_stick_cal_x;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 365 cal_y = &ctlr->right_stick_cal_y;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 366
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 367 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 368 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 369 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 370 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 371 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 372 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4, 12);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 373 cal_x->max = cal_x->center + x_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 374 cal_x->min = cal_x->center - x_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 375 cal_y->max = cal_y->center + y_max_above;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 376 cal_y->min = cal_y->center - y_min_below;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 377
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 378 hid_dbg(ctlr->hdev, "calibration:\n"
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 379 "l_x_c=%d l_x_max=%d l_x_min=%d\n"
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 380 "l_y_c=%d l_y_max=%d l_y_min=%d\n"
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 381 "r_x_c=%d r_x_max=%d r_x_min=%d\n"
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 382 "r_y_c=%d r_y_max=%d r_y_min=%d\n",
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 383 ctlr->left_stick_cal_x.center,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 384 ctlr->left_stick_cal_x.max,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 385 ctlr->left_stick_cal_x.min,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 386 ctlr->left_stick_cal_y.center,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 387 ctlr->left_stick_cal_y.max,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 388 ctlr->left_stick_cal_y.min,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 389 ctlr->right_stick_cal_x.center,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 390 ctlr->right_stick_cal_x.max,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 391 ctlr->right_stick_cal_x.min,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 392 ctlr->right_stick_cal_y.center,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 393 ctlr->right_stick_cal_y.max,
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 394 ctlr->right_stick_cal_y.min);
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 395
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 396 return 0;
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 397 }
e63d24388097cc5 Daniel J. Ogorchock 2019-12-29 398
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31821 bytes --]
reply other threads:[~2020-11-25 21:15 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202011260546.iAsFdDpE-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/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.