[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1002537: linux-image-5.15.0-2-rt-amd64: RT kernel does not support touchpad/trackpoint on Thinkpad L15



On 2021-12-25 12:27:33 [+0100], Michael Below wrote:
> Hi,
Hi,

> I have tested the patch, with help from Salvatore, and the dmesg output
> looks better, but the touchpad still does not work. I am attaching the
> dmesg output.

based on 

> [    1.575843] idma64 idma64.0: Found Intel integrated DMA 64-bit
> [    1.578321] i801_smbus 0000:00:1f.4: SPD Write Disable is set
> [    1.578365] genirq: Flags mismatch irq 16. 00010080 (i801_smbus) vs. 00002080 (idma64.0)
> [    1.578368] i801_smbus 0000:00:1f.4: Failed to allocate irq 16: -16
> [    1.578370] i801_smbus 0000:00:1f.4: SMBus using polling

the IRQ can not be non-threaded because it is shared with idma64. Good.
Based on output it says that it is using polling so I'm don't know why
the touchpad is not working…

What about the following hunk instead?

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index 73253e667de1d..30e93651d5b6b 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1423,7 +1423,10 @@ int i2c_handle_smbus_host_notify(struct i2c_adapter *adap, unsigned short addr)
 	if (irq <= 0)
 		return -ENXIO;
 
-	generic_handle_irq(irq);
+	if (!IS_ENABLED(CONFIG_PREEMPT_RT))
+		generic_handle_irq(irq);
+	else
+		handle_nested_irq(irq);
 
 	return 0;
 }

> Cheers
> Michael

Sebastian


Reply to: