Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56906c61 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman
Browse files

PCI: remove useless pci driver method



Remove pointless and never-called enable_wake() hook from pci_driver and
from documentation.  Evidently this was introduced in the 2.4.6 kernel,
but there's no evidence it was ever called; and it was rarely implemented.

Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e57571a0
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -113,9 +113,6 @@ initialization with a pointer to a structure describing the driver
		(Please see Documentation/power/pci.txt for descriptions
		of PCI Power Management and the related functions.)

	enable_wake	Enable device to generate wake events from a low power
			state.

	shutdown	Hook into reboot_notifier_list (kernel/sys.c).
			Intended to stop any idling DMA operations.
			Useful for enabling wake-on-lan (NIC) or changing
+0 −37
Original line number Diff line number Diff line
@@ -164,7 +164,6 @@ struct pci_driver:

        int  (*suspend) (struct pci_dev *dev, pm_message_t state);
        int  (*resume) (struct pci_dev *dev);
        int  (*enable_wake) (struct pci_dev *dev, pci_power_t state, int enable);


suspend
@@ -251,42 +250,6 @@ The driver should update the current_state field in its pci_dev structure in
this function, except for PM-capable devices when pci_set_power_state is used.


enable_wake
-----------

Usage:

if (dev->driver && dev->driver->enable_wake)
	dev->driver->enable_wake(dev,state,enable);

This callback is generally only relevant for devices that support the PCI PM
spec and have the ability to generate a PME# (Power Management Event Signal)
to wake the system up. (However, it is possible that a device may support 
some non-standard way of generating a wake event on sleep.)

Bits 15:11 of the PMC (Power Mgmt Capabilities) Register in a device's
PM Capabilities describe what power states the device supports generating a 
wake event from:

+------------------+
|  Bit  |  State   |
+------------------+
|  11   |   D0     |
|  12   |   D1     |
|  13   |   D2     |
|  14   |   D3hot  |
|  15   |   D3cold |
+------------------+

A device can use this to enable wake events:

	 pci_enable_wake(dev,state,enable);

Note that to enable PME# from D3cold, a value of 4 should be passed to 
pci_enable_wake (since it uses an index into a bitmask). If a driver gets
a request to enable wake events from D3, two calls should be made to 
pci_enable_wake (one for both D3hot and D3cold).


A reference implementation
-------------------------
+0 −7
Original line number Diff line number Diff line
@@ -2267,12 +2267,6 @@ typhoon_suspend(struct pci_dev *pdev, pm_message_t state)
	typhoon_resume(pdev);
	return -EBUSY;
}

static int
typhoon_enable_wake(struct pci_dev *pdev, pci_power_t state, int enable)
{
	return pci_enable_wake(pdev, state, enable);
}
#endif

static int __devinit
@@ -2636,7 +2630,6 @@ static struct pci_driver typhoon_driver = {
#ifdef CONFIG_PM
	.suspend	= typhoon_suspend,
	.resume		= typhoon_resume,
	.enable_wake	= typhoon_enable_wake,
#endif
};

+0 −2
Original line number Diff line number Diff line
@@ -453,8 +453,6 @@ static struct pci_driver prism2_pci_drv_id = {
	.suspend	= prism2_pci_suspend,
	.resume		= prism2_pci_resume,
#endif /* CONFIG_PM */
	/* Linux 2.4.6 added save_state and enable_wake that are not used here
	 */
};


+0 −3
Original line number Diff line number Diff line
@@ -613,9 +613,6 @@ static struct pci_driver prism2_plx_drv_id = {
	.id_table	= prism2_plx_id_table,
	.probe		= prism2_plx_probe,
	.remove		= prism2_plx_remove,
	.suspend	= NULL,
	.resume		= NULL,
	.enable_wake	= NULL
};


Loading