RE: [PATCH] HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during teardown
From: Xu, Even
Date: Sun Aug 09 2026 - 20:54:00 EST
> -----Original Message-----
> From: Guangshuo Li <lgs201920130244@xxxxxxxxx>
> Sent: Saturday, August 8, 2026 11:18 PM
> To: Xu, Even <even.xu@xxxxxxxxx>; Sun, Xinpeng <xinpeng.sun@xxxxxxxxx>; Jiri
> Kosina <jikos@xxxxxxxxxx>; Benjamin Tissoires <bentiss@xxxxxxxxxx>; Sakari Ailus
> <sakari.ailus@xxxxxxxxxxxxxxx>; Danny D. <d3z.the.dev@xxxxxxxxx>; Guangshuo
> Li <lgs201920130244@xxxxxxxxx>; Abhishek Tamboli
> <abhishektamboli9@xxxxxxxxx>; Mark Pearson <mpearson-lenovo@xxxxxxxxx>;
> Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>; linux-
> input@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx
> Subject: [PATCH] HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during
> teardown
>
> quickspi_probe() calls pm_runtime_use_autosuspend(), but
> quickspi_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: 6912aaf3fd24 ("HID: intel-thc-hid: intel-quickspi: Add PM implementation")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Guangshuo Li <lgs201920130244@xxxxxxxxx>
> ---
> drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> index 4ae2e1718b30..3c87519aca84 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> @@ -713,6 +713,7 @@ static void quickspi_remove(struct pci_dev *pdev)
> quickspi_hid_remove(qsdev);
> quickspi_dma_deinit(qsdev);
>
> + pm_runtime_dont_use_autosuspend(qsdev->dev);
Reviewed-by: Even Xu <even.xu@xxxxxxxxx>
> pm_runtime_get_noresume(qsdev->dev);
>
> quickspi_dev_deinit(qsdev);
> --
> 2.43.0