[PATCH] HID: Intel-thc-hid: Intel-thc: Fix wrong register fields updating

Even Xu posted 1 patch 5 days ago
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] HID: Intel-thc-hid: Intel-thc: Fix wrong register fields updating
Posted by Even Xu 5 days ago
Clear the target bit fields in register before setting new values. This
ensures proper field updates by removing any existing bits that might
interfere with the new configuration.

Fixes: 22da60f0304b ("HID: Intel-thc-hid: Intel-thc: Introduce interrupt delay control")
Fixes: 45e92a093099 ("HID: Intel-thc-hid: Intel-thc: Introduce max input size control")
Signed-off-by: Even Xu <even.xu@intel.com>
Tested-by: Rui Zhang <rui1.zhang@intel.com>
---
 drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c b/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c
index 7e220a4c5ded..d8e195189e4b 100644
--- a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c
+++ b/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dev.c
@@ -1597,6 +1597,7 @@ int thc_i2c_set_rx_max_size(struct thc_device *dev, u32 max_rx_size)
 	if (ret)
 		return ret;
 
+	val = val & ~THC_M_PRT_SPI_ICRRD_OPCODE_I2C_MAX_SIZE;
 	val |= FIELD_PREP(THC_M_PRT_SPI_ICRRD_OPCODE_I2C_MAX_SIZE, max_rx_size);
 
 	ret = regmap_write(dev->thc_regmap, THC_M_PRT_SPI_ICRRD_OPCODE_OFFSET, val);
@@ -1667,6 +1668,7 @@ int thc_i2c_set_rx_int_delay(struct thc_device *dev, u32 delay_us)
 		return ret;
 
 	/* THC hardware counts at 10us unit */
+	val = val & ~THC_M_PRT_SPI_ICRRD_OPCODE_I2C_INTERVAL;
 	val |= FIELD_PREP(THC_M_PRT_SPI_ICRRD_OPCODE_I2C_INTERVAL, DIV_ROUND_UP(delay_us, 10));
 
 	ret = regmap_write(dev->thc_regmap, THC_M_PRT_SPI_ICRRD_OPCODE_OFFSET, val);
-- 
2.40.1
Re: [PATCH] HID: Intel-thc-hid: Intel-thc: Fix wrong register fields updating
Posted by Jiri Kosina 4 days, 13 hours ago
On Mon, 2 Feb 2026, Even Xu wrote:

> Clear the target bit fields in register before setting new values. This
> ensures proper field updates by removing any existing bits that might
> interfere with the new configuration.
> 
> Fixes: 22da60f0304b ("HID: Intel-thc-hid: Intel-thc: Introduce interrupt delay control")
> Fixes: 45e92a093099 ("HID: Intel-thc-hid: Intel-thc: Introduce max input size control")
> Signed-off-by: Even Xu <even.xu@intel.com>
> Tested-by: Rui Zhang <rui1.zhang@intel.com>

Applied, thanks.

-- 
Jiri Kosina
SUSE Labs
RE: [PATCH] HID: Intel-thc-hid: Intel-thc: Fix wrong register fields updating
Posted by Xu, Even 4 days, 2 hours ago
Thanks Jiri!

Best Regards,
Even Xu

> -----Original Message-----
> From: Jiri Kosina <jikos@kernel.org>
> Sent: Monday, February 2, 2026 9:40 PM
> To: Xu, Even <even.xu@intel.com>
> Cc: bentiss@kernel.org; srinivas.pandruvada@linux.intel.com; linux-
> input@vger.kernel.org; linux-kernel@vger.kernel.org; Zhang, Rui1
> <rui1.zhang@intel.com>
> Subject: Re: [PATCH] HID: Intel-thc-hid: Intel-thc: Fix wrong register fields
> updating
> 
> On Mon, 2 Feb 2026, Even Xu wrote:
> 
> > Clear the target bit fields in register before setting new values.
> > This ensures proper field updates by removing any existing bits that
> > might interfere with the new configuration.
> >
> > Fixes: 22da60f0304b ("HID: Intel-thc-hid: Intel-thc: Introduce
> > interrupt delay control")
> > Fixes: 45e92a093099 ("HID: Intel-thc-hid: Intel-thc: Introduce max
> > input size control")
> > Signed-off-by: Even Xu <even.xu@intel.com>
> > Tested-by: Rui Zhang <rui1.zhang@intel.com>
> 
> Applied, thanks.
> 
> --
> Jiri Kosina
> SUSE Labs