RE: [PATCH] HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during teardown
"Xu, Even" <[email protected]> Mon, 10 Aug 2026 00:53:34 +0000
| Newsgroups | org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <IA1PR11MB60985BDE3A634ED205A72CD4F4DE2@IA1PR11MB6098.namprd11.prod.outlook.com> |
> -----Original Message----- > From: Guangshuo Li <[email protected]> > Sent: Saturday, August 8, 2026 11:18 PM > To: Xu, Even <[email protected]>; Sun, Xinpeng <[email protected]>; Jiri > Kosina <[email protected]>; Benjamin Tissoires <[email protected]>; Sakari Ailus > <[email protected]>; Danny D. <[email protected]>; Guangshuo > Li <[email protected]>; Abhishek Tamboli > <[email protected]>; Mark Pearson <[email protected]>; > Srinivas Pandruvada <[email protected]>; linux- > [email protected]; [email protected] > Cc: [email protected] > 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: [email protected] > Signed-off-by: Guangshuo Li <[email protected]> > --- > 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 <[email protected]> > pm_runtime_get_noresume(qsdev->dev); > > quickspi_dev_deinit(qsdev); > -- > 2.43.0