]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: amd_sfh: Stop sensor before starting
authorMario Limonciello (AMD) <superm1@kernel.org>
Mon, 20 Oct 2025 15:50:42 +0000 (10:50 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Dec 2025 10:43:18 +0000 (11:43 +0100)
commit 4d3a13afa8b64dc49293b3eab3e7beac11072c12 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c

index db36d87d56341769e7ec4b2daeeab90384536961..e405f9b53291090b36229663a2ee3828c300615f 100644 (file)
@@ -172,6 +172,8 @@ static int amd_sfh1_1_hid_client_init(struct amd_mp2_dev *privdata)
                if (rc)
                        goto cleanup;
 
+               mp2_ops->stop(privdata, cl_data->sensor_idx[i]);
+               amd_sfh_wait_for_response(privdata, cl_data->sensor_idx[i], DISABLE_SENSOR);
                writel(0, privdata->mmio + amd_get_p2c_val(privdata, 0));
                mp2_ops->start(privdata, info);
                status = amd_sfh_wait_for_response