RE: [PATCH 5/6] powerpc/fsl-pci: Add pci inbound/outbound PM support

From
Jia Hongtao-B38951 <hidden>
Date
2012-08-10 02:17:56
Reply to
Kumar Gala, 2012-08-09
-----Original Message-----
From: Kumar Gala [mailto:<redacted>]
Sent: Thursday, August 09, 2012 9:08 PM
To: Li Yang-R58472
Cc: Jia Hongtao-B38951; Wood Scott-B07421; <redacted>;
Li Yang-R58472
Subject: Re: [PATCH 5/6] powerpc/fsl-pci: Add pci inbound/outbound PM
support
=20
=20
On Aug 9, 2012, at 12:05 AM, Li Yang wrote:
=20
quoted
On Thu, Aug 9, 2012 at 10:52 AM, Jia Hongtao-B38951
[off-list ref] wrote:
quoted
quoted
-----Original Message-----
From: Linuxppc-dev [mailto:linuxppc-dev-
bounces+b38951=3Dfreescale.com@lists.ozlabs.org] On Behalf Of Kumar
bounces+Gala
Sent: Wednesday, August 08, 2012 8:47 PM
To: Jia Hongtao-B38951
Cc: Wood Scott-B07421; <redacted>; Li Yang-R58472
Subject: Re: [PATCH 5/6] powerpc/fsl-pci: Add pci inbound/outbound
PM support
quoted
quoted
quoted
quoted
quoted
quoted
On Jul 24, 2012, at 5:20 AM, Jia Hongtao wrote:
quoted
Power supply for PCI inbound/outbound window registers is off
when
system
quoted
go to deep-sleep state. We save the values of registers
before suspend and restore to registers after resume.

Signed-off-by: Jiang Yutang <redacted>
Signed-off-by: Jia Hongtao <redacted>
Signed-off-by: Li Yang <redacted>
---
arch/powerpc/include/asm/pci-bridge.h |    2 +-
arch/powerpc/sysdev/fsl_pci.c         |  121
+++++++++++++++++++++++++++++++++
quoted
2 files changed, 122 insertions(+), 1 deletions(-)
Remind me why we need to save/restore PCI ATMUs, why not just
re-parse the device tree to restore?

- k
Save/restore is the more efficient way. Latency of sleep/wakeup
is one of most important features in power management.

-Hongtao.
I don't think the time it takes to run through setup_pci_atmu()
is that long compared to fsl_pci_resume().

Also, don't you need to setup PCICCSRBAR and do setup_pci_cmd()
on
resume?
quoted
quoted
- k
Hi Kumar,
I did some tests on P1022DS and found out that PCI_CMD and
PCICSRBAR is not lost when system in deep sleep. We don't need to
save it.
quoted
quoted
quoted
quoted
quoted
How does the PCI code know you're entering deep sleep and not
hibernation?
quoted
quoted
-Scott
When system come back from hibernation PCI will be initialized again=
.
quoted
quoted
quoted
quoted
So no need to save PCI_CMD and PEXCSRBAR.

-Hongtao.
What do you mean PCI will be initialized again?  What code path are
you talking about that would set PCI_CMD & PEXCSRBAR?

- k

In hibernation mode:

When system come back from hibernation kernel will start up again.
Before loading hibernation image PCI initialization has already done.
Some other hardware also re-init again.
In current Linux implementation, restoring from hibernation image is
using late initcall.  By that time, all the platform devices are
already initialized like a fresh boot.

- Leo
=20
I ask against, what specific code path (I'd like a call trace) would
cause PCI_CMD and PEXCSRBAR to be set in the wakeup case?
=20
- k
The code path is the same as a fresh boot:
fsl_add_bridge()
	-> setup_pci_cmd() [PCI_CMD is set]
	-> setup_pci_atmu() [PEXCSRBAR is set]

- Hongtao.
Thread (36 messages) 36 messages, 4 authors, last reply 2012-08-10
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help