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

HID: amd_sfh: Stop sensor before starting

Titas reports that the accelerometer sensor on their laptop only
works after a warm boot or unloading/reloading the amd-sfh kernel
module.

Presumably the sensor is in a bad state on cold boot and failing to
start, so explicitly stop it before starting.

Cc: stable@vger.kernel.org
Fixes: 93ce5e0231d79 ("HID: amd_sfh: Implement SFH1.1 functionality")
Reported-by: Titas <novatitas366@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220670
Tested-by: Titas <novatitas366@gmail.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Jiri Kosina <jkosina@suse.com>

authored by

Mario Limonciello (AMD) and committed by
Jiri Kosina
4d3a13af 743c81cd

+2
+2
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
··· 194 194 if (rc) 195 195 goto cleanup; 196 196 197 + mp2_ops->stop(privdata, cl_data->sensor_idx[i]); 198 + amd_sfh_wait_for_response(privdata, cl_data->sensor_idx[i], DISABLE_SENSOR); 197 199 writel(0, privdata->mmio + amd_get_p2c_val(privdata, 0)); 198 200 mp2_ops->start(privdata, info); 199 201 status = amd_sfh_wait_for_response