mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
HID: amd_sfh: Remove unsupported motion-state field from accelerometer report
The accelerometer HID report descriptor declares a trailing motion-state field (usage 0x0451), but the Sensor Fusion Hub never reports this data, so each accelerometer input report is one byte shorter than the descriptor advertises. This was previously harmless because hid-core zero-padded short reports. Since commit0a3fe972a7("HID: core: Mitigate potential OOB by removing bogus memset()") such reports are rejected instead: hid-sensor-hub 0020:1022:0001.0003: Event data for report 1 was too short (15 vs 14) As a result the accelerometer input events are dropped and screen auto-rotation stops working on AMD SFH systems. Remove the motion-state field from the accelerometer report descriptor and drop the unused in_accel_shake_detection member, so the descriptor matches the report actually provided by the hardware. Fixes:1434f9fc0e("SFH: Create HID report to Enable support of AMD sensor fusion Hub (SFH)") Reported-by: Andrej Scek <scek.andrej@gmail.com> Closes: https://lore.kernel.org/linux-input/CADrS85612m-Hh-G4BJmOhy-y6r3Ni3kD8_GM-2QRBeWWEEZWuA@mail.gmail.com/ Cc: stable@vger.kernel.org Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
This commit is contained in:
parent
912f942b3b
commit
6ff8612290
|
|
@ -48,8 +48,6 @@ struct accel3_input_report {
|
|||
int in_accel_x_value;
|
||||
int in_accel_y_value;
|
||||
int in_accel_z_value;
|
||||
/* include if required to support the "shake" event */
|
||||
u8 in_accel_shake_detection;
|
||||
} __packed;
|
||||
|
||||
struct gyro_feature_report {
|
||||
|
|
|
|||
|
|
@ -169,13 +169,6 @@ static const u8 accel3_report_descriptor[] = {
|
|||
0x95, 1, /* HID report count (1) */
|
||||
0x55, 0x0E, /* HID unit exponent(0x0E) */
|
||||
0X81, 0x02, /* HID Input (Data_Arr_Abs) */
|
||||
|
||||
0x0A, 0x51, 0x04, /* HID usage sensor data motion state */
|
||||
0x15, 0, /* HID logical Min_8(0) False = Still*/
|
||||
0x25, 1, /* HID logical Min_8(1) True = In motion */
|
||||
0x75, 8, /* HID report size(8) */
|
||||
0x95, 1, /* HID report count (1) */
|
||||
0X81, 0x02, /* HID Input (Data_Arr_Abs) */
|
||||
0xC0 /* HID end collection */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user