Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

This reverts commit 6bf23661d4a7a105001ebb4410c1c0a17752fac4.

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>

+17 -10
+17 -10
drivers/misc/cardreader/rtsx_pcr.c
··· 1604 1604 pci_name(pcidev), (int)pcidev->vendor, (int)pcidev->device); 1605 1605 } 1606 1606 1607 - static int __maybe_unused rtsx_pci_suspend(struct device *dev_d) 1607 + #ifdef CONFIG_PM 1608 + 1609 + static int rtsx_pci_suspend(struct pci_dev *pcidev, pm_message_t state) 1608 1610 { 1609 - struct pci_dev *pcidev = to_pci_dev(dev_d); 1610 1611 struct pcr_handle *handle; 1611 1612 struct rtsx_pcr *pcr; 1612 1613 ··· 1623 1622 1624 1623 rtsx_pci_power_off(pcr, HOST_ENTER_S3); 1625 1624 1626 - device_wakeup_disable(dev_d); 1625 + pci_save_state(pcidev); 1626 + pci_enable_wake(pcidev, pci_choose_state(pcidev, state), 0); 1627 + pci_disable_device(pcidev); 1628 + pci_set_power_state(pcidev, pci_choose_state(pcidev, state)); 1627 1629 1628 1630 mutex_unlock(&pcr->pcr_mutex); 1629 1631 return 0; 1630 1632 } 1631 1633 1632 - static int __maybe_unused rtsx_pci_resume(struct device *dev_d) 1634 + static int rtsx_pci_resume(struct pci_dev *pcidev) 1633 1635 { 1634 - struct pci_dev *pcidev = to_pci_dev(dev_d); 1635 1636 struct pcr_handle *handle; 1636 1637 struct rtsx_pcr *pcr; 1637 1638 int ret = 0; ··· 1645 1642 1646 1643 mutex_lock(&pcr->pcr_mutex); 1647 1644 1645 + pci_set_power_state(pcidev, PCI_D0); 1646 + pci_restore_state(pcidev); 1647 + ret = pci_enable_device(pcidev); 1648 + if (ret) 1649 + goto out; 1648 1650 pci_set_master(pcidev); 1649 1651 1650 1652 ret = rtsx_pci_write_register(pcr, HOST_SLEEP_STATE, 0x03, 0x00); ··· 1666 1658 mutex_unlock(&pcr->pcr_mutex); 1667 1659 return ret; 1668 1660 } 1669 - 1670 - #ifdef CONFIG_PM 1671 1661 1672 1662 static void rtsx_pci_shutdown(struct pci_dev *pcidev) 1673 1663 { ··· 1686 1680 1687 1681 #else /* CONFIG_PM */ 1688 1682 1683 + #define rtsx_pci_suspend NULL 1684 + #define rtsx_pci_resume NULL 1689 1685 #define rtsx_pci_shutdown NULL 1690 1686 1691 1687 #endif /* CONFIG_PM */ 1692 - 1693 - static SIMPLE_DEV_PM_OPS(rtsx_pci_pm_ops, rtsx_pci_suspend, rtsx_pci_resume); 1694 1688 1695 1689 static struct pci_driver rtsx_pci_driver = { 1696 1690 .name = DRV_NAME_RTSX_PCI, 1697 1691 .id_table = rtsx_pci_ids, 1698 1692 .probe = rtsx_pci_probe, 1699 1693 .remove = rtsx_pci_remove, 1700 - .driver.pm = &rtsx_pci_pm_ops, 1694 + .suspend = rtsx_pci_suspend, 1695 + .resume = rtsx_pci_resume, 1701 1696 .shutdown = rtsx_pci_shutdown, 1702 1697 }; 1703 1698 module_pci_driver(rtsx_pci_driver);