Revert "cardreader/rtsx_pcr.c: use generic power management"

This reverts commit 6bf23661d4.

0-day reported build problems with it.

Reported-by: kernel test robot <lkp@intel.com>
Cc: Vaibhav Gupta <vaibhavgupta40@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Greg Kroah-Hartman 2020-07-01 13:44:25 +02:00
parent ba2104c24a
commit 81148a7ab7

View File

@ -1604,9 +1604,10 @@ static void rtsx_pci_remove(struct pci_dev *pcidev)
pci_name(pcidev), (int)pcidev->vendor, (int)pcidev->device);
}
static int __maybe_unused rtsx_pci_suspend(struct device *dev_d)
#ifdef CONFIG_PM
static int rtsx_pci_suspend(struct pci_dev *pcidev, pm_message_t state)
{
struct pci_dev *pcidev = to_pci_dev(dev_d);
struct pcr_handle *handle;
struct rtsx_pcr *pcr;
@ -1622,15 +1623,17 @@ static int __maybe_unused rtsx_pci_suspend(struct device *dev_d)
rtsx_pci_power_off(pcr, HOST_ENTER_S3);
device_wakeup_disable(dev_d);
pci_save_state(pcidev);
pci_enable_wake(pcidev, pci_choose_state(pcidev, state), 0);
pci_disable_device(pcidev);
pci_set_power_state(pcidev, pci_choose_state(pcidev, state));
mutex_unlock(&pcr->pcr_mutex);
return 0;
}
static int __maybe_unused rtsx_pci_resume(struct device *dev_d)
static int rtsx_pci_resume(struct pci_dev *pcidev)
{
struct pci_dev *pcidev = to_pci_dev(dev_d);
struct pcr_handle *handle;
struct rtsx_pcr *pcr;
int ret = 0;
@ -1642,6 +1645,11 @@ static int __maybe_unused rtsx_pci_resume(struct device *dev_d)
mutex_lock(&pcr->pcr_mutex);
pci_set_power_state(pcidev, PCI_D0);
pci_restore_state(pcidev);
ret = pci_enable_device(pcidev);
if (ret)
goto out;
pci_set_master(pcidev);
ret = rtsx_pci_write_register(pcr, HOST_SLEEP_STATE, 0x03, 0x00);
@ -1659,8 +1667,6 @@ out:
return ret;
}
#ifdef CONFIG_PM
static void rtsx_pci_shutdown(struct pci_dev *pcidev)
{
struct pcr_handle *handle;
@ -1680,18 +1686,19 @@ static void rtsx_pci_shutdown(struct pci_dev *pcidev)
#else /* CONFIG_PM */
#define rtsx_pci_suspend NULL
#define rtsx_pci_resume NULL
#define rtsx_pci_shutdown NULL
#endif /* CONFIG_PM */
static SIMPLE_DEV_PM_OPS(rtsx_pci_pm_ops, rtsx_pci_suspend, rtsx_pci_resume);
static struct pci_driver rtsx_pci_driver = {
.name = DRV_NAME_RTSX_PCI,
.id_table = rtsx_pci_ids,
.probe = rtsx_pci_probe,
.remove = rtsx_pci_remove,
.driver.pm = &rtsx_pci_pm_ops,
.suspend = rtsx_pci_suspend,
.resume = rtsx_pci_resume,
.shutdown = rtsx_pci_shutdown,
};
module_pci_driver(rtsx_pci_driver);