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? -- Jiri Kosina SUSE Labs