Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: bma150 - use sign_extend32() for sign extending

Despite it's name, sign_extend32() is used for 16 bit values aswell.

Signed-off-by: Martin Kepplinger <martink@posteo.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Martin Kepplinger and committed by
Dmitry Torokhov
b7e79329 d55d0b56

+3 -4
+3 -4
drivers/input/misc/bma150.c
··· 333 333 y = ((0xc0 & data[2]) >> 6) | (data[3] << 2); 334 334 z = ((0xc0 & data[4]) >> 6) | (data[5] << 2); 335 335 336 - /* sign extension */ 337 - x = (s16) (x << 6) >> 6; 338 - y = (s16) (y << 6) >> 6; 339 - z = (s16) (z << 6) >> 6; 336 + x = sign_extend32(x, 9); 337 + y = sign_extend32(y, 9); 338 + z = sign_extend32(z, 9); 340 339 341 340 input_report_abs(bma150->input, ABS_X, x); 342 341 input_report_abs(bma150->input, ABS_Y, y);