在 2023/12/13 00:57, Jiri Kosina 写道:
On Mon, 11 Dec 2023, xiongxin wrote:
In this scenario, unmask_irq() will not be called, and then gpio corresponding
interrupt pin will be masked. Finally, in the suspend() process driven by gpio
interrupt controller, the interrupt mask register will be saved, and then
masked will continue to be read when resuming () process. After the kernel
resumed, the i2c hid gpio interrupt was masked and the i2c hid device was
unavailable.
In addition to what Thomas already wrote -- what exactly is the problem
you are trying to solve here?
Is it that your device drive by i2c-hid driver is no longer sending any
data reports after a suspend/resume cycle? What makes you think that it's
because of its IRQ being disabled?
Don't you just perhaps need I2C_HID_QUIRK_RESET_ON_RESUME quirk for that
device?
I have confirmed I2C_HID_QUIRK_RESET_ON_RESUME quirk, the current BUG is
related to GPIO interrupt masking, and has little to do with hid code.
I explained the detailed process of the BUG in another email.