All of lore.kernel.org
 help / color / mirror / Atom feed
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.