lkml.org 
[lkml]   [2012]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [BUGFIX 1/4] PCI/PM: enable D3/D3cold by default for most devices
Date
On Friday, August 03, 2012, Huang Ying wrote:
> This patch fixes the following bug:
>
> http://marc.info/?l=linux-usb&m=134318961120825&w=2
>
> Originally, device lower power states include D1, D2, D3. After that,
> D3 is further divided into D3hot and D3cold. To support both scenario
> safely, original D3 is mapped to D3cold.
>
> When adding D3cold support, because worry about some device may have
> broken D3cold support, D3cold is disabled by default. This disable D3
> on original platform too. But some original platform may only have
> working D3, but no working D1, D2. The root cause of the above bug is
> it too.
>
> To deal with this, this patch enables D3/D3cold by default for most
> devices. This restores the original behavior. For some devices that
> suspected to have broken D3cold support, such as PCIe port, D3cold is
> disabled by default.
>
> Reported-by: Bjorn Mork <bjorn@mork.no>
> Signed-off-by: Huang Ying <ying.huang@intel.com>

Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>

> ---
> drivers/pci/pci.c | 1 +
> drivers/pci/pcie/portdrv_pci.c | 5 +++++
> 2 files changed, 6 insertions(+)
>
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -1941,6 +1941,7 @@ void pci_pm_init(struct pci_dev *dev)
> dev->pm_cap = pm;
> dev->d3_delay = PCI_PM_D3_WAIT;
> dev->d3cold_delay = PCI_PM_D3COLD_WAIT;
> + dev->d3cold_allowed = true;
>
> dev->d1_support = false;
> dev->d2_support = false;
> --- a/drivers/pci/pcie/portdrv_pci.c
> +++ b/drivers/pci/pcie/portdrv_pci.c
> @@ -200,6 +200,11 @@ static int __devinit pcie_portdrv_probe(
> return status;
>
> pci_save_state(dev);
> + /*
> + * D3cold may not work properly on some PCIe port, so disable
> + * it by default.
> + */
> + dev->d3cold_allowed = false;
> if (!pci_match_id(port_runtime_pm_black_list, dev))
> pm_runtime_put_noidle(&dev->dev);
>
>
>



\
 
 \ /
  Last update: 2012-08-05 00:21    [W:0.193 / U:0.144 seconds]
©2003-2014 Jasper Spaans. Advertise on this site