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

Kumar Gala galak at kernel.crashing.org
Thu Aug 9 23:08:23 EST 2012


On Aug 9, 2012, at 12:05 AM, Li Yang wrote:

> On Thu, Aug 9, 2012 at 10:52 AM, Jia Hongtao-B38951
> <B38951 at freescale.com> wrote:
>> 
>> 
>>> -----Original Message-----
>>> From: Linuxppc-dev [mailto:linuxppc-dev-
>>> bounces+b38951=freescale.com at lists.ozlabs.org] On Behalf Of Kumar Gala
>>> Sent: Wednesday, August 08, 2012 8:47 PM
>>> To: Jia Hongtao-B38951
>>> Cc: Wood Scott-B07421; linuxppc-dev at lists.ozlabs.org; Li Yang-R58472
>>> Subject: Re: [PATCH 5/6] powerpc/fsl-pci: Add pci inbound/outbound PM
>>> support
>>> 
>>>>>>>>> 
>>>>>>>>> On Jul 24, 2012, at 5:20 AM, Jia Hongtao wrote:
>>>>>>>>> 
>>>>>>>>>> Power supply for PCI inbound/outbound window registers is off
>>>>>>>>>> when
>>>>>>>>> system
>>>>>>>>>> go to deep-sleep state. We save the values of registers before
>>>>>>>>>> suspend and restore to registers after resume.
>>>>>>>>>> 
>>>>>>>>>> Signed-off-by: Jiang Yutang <b14898 at freescale.com>
>>>>>>>>>> Signed-off-by: Jia Hongtao <B38951 at freescale.com>
>>>>>>>>>> Signed-off-by: Li Yang <leoli at freescale.com>
>>>>>>>>>> ---
>>>>>>>>>> arch/powerpc/include/asm/pci-bridge.h |    2 +-
>>>>>>>>>> arch/powerpc/sysdev/fsl_pci.c         |  121
>>>>>>>>> +++++++++++++++++++++++++++++++++
>>>>>>>>>> 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?
>>>>>>> 
>>>>>>> - 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.
>>>>> 
>>>>> How does the PCI code know you're entering deep sleep and not
>>> hibernation?
>>>>> 
>>>>> -Scott
>>>> 
>>>> When system come back from hibernation PCI will be initialized again.
>>>> 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

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?

- k


More information about the Linuxppc-dev mailing list