RE: [PATCH] HID: intel-thc-hid: intel-quicki2c: fix autosuspend cleanup during teardown

"Xu, Even" <[email protected]>
Newsgroups org.kernel.vger.stable,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel
Message-ID <IA1PR11MB6098DEE7D7CBA03B4012D155F4DE2@IA1PR11MB6098.namprd11.prod.outlook.com>

> -----Original Message-----
> From: Guangshuo Li <[email protected]>
> Sent: Saturday, August 8, 2026 10:58 PM
> To: Xu, Even <[email protected]>; Sun, Xinpeng <[email protected]>; Jiri
> Kosina <[email protected]>; Benjamin Tissoires <[email protected]>; Sakari Ailus
> <[email protected]>; Guangshuo Li <[email protected]>;
> Mark Pearson <[email protected]>; Srinivas Pandruvada
> <[email protected]>; [email protected]; linux-
> [email protected]
> Cc: [email protected]
> Subject: [PATCH] HID: intel-thc-hid: intel-quicki2c: fix autosuspend cleanup during
> teardown
> 
> quicki2c_probe() calls pm_runtime_use_autosuspend(), but
> quicki2c_remove() does not call the matching
> pm_runtime_dont_use_autosuspend() during teardown.
> 
> If the autosuspend delay is set to a negative value while autosuspend is enabled,
> the runtime PM core increments usage_count to prevent runtime suspend.
> Without calling pm_runtime_dont_use_autosuspend() during teardown, this
> reference is not dropped.
> 
> The documentation for pm_runtime_use_autosuspend() also notes that it is
> important to undo it with pm_runtime_dont_use_autosuspend() at driver exit
> time, unless runtime PM was initially enabled with devm_pm_runtime_enable().
> 
> Add the missing pm_runtime_dont_use_autosuspend() call to the driver remove
> path.
> 
> This issue was found by manual code inspection.
> 
> Fixes: 5f420e8215c6 ("HID: intel-thc-hid: intel-quicki2c: Add PM
> implementation")
> Cc: [email protected]
> Signed-off-by: Guangshuo Li <[email protected]>
> ---
>  drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> index 46d3e9a01999..4126c2408d98 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> @@ -774,6 +774,7 @@ static void quicki2c_remove(struct pci_dev *pdev)
>  	quicki2c_hid_remove(qcdev);
>  	quicki2c_dma_deinit(qcdev);
> 
> +	pm_runtime_dont_use_autosuspend(qcdev->dev);

Thanks for the patch!
Reviewed-by: Even Xu <[email protected]>

>  	pm_runtime_get_noresume(qcdev->dev);
> 
>  	quicki2c_dev_deinit(qcdev);
> --
> 2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.