[PATCH v5 4/5] fsl_pmc: Add API to enable device as wakeup event source
scottwood at freescale.com
Wed Jun 6 02:11:36 EST 2012
On 06/04/2012 11:08 PM, Li Yang-R58472 wrote:
>> -----Original Message-----
>> From: Wood Scott-B07421
>> Sent: Tuesday, June 05, 2012 7:03 AM
>> To: Zhao Chenhui-B35336
>> Cc: linuxppc-dev at lists.ozlabs.org; linux-kernel at vger.kernel.org;
>> galak at kernel.crashing.org; Li Yang-R58472
>> Subject: Re: [PATCH v5 4/5] fsl_pmc: Add API to enable device as wakeup
>> event source
>> On 06/04/2012 06:36 AM, Zhao Chenhui wrote:
>>> On Fri, Jun 01, 2012 at 05:08:52PM -0500, Scott Wood wrote:
>>>> On 05/11/2012 06:53 AM, Zhao Chenhui wrote:
>>>>> +int mpc85xx_pmc_set_wake(struct platform_device *pdev, bool enable)
>>>> Why does it have to be a platform_device? Would a bare device_node
>>>> here? If it's for stuff like device_may_wakeup() that could be in a
>>>> platform_device wrapper function.
>>> It does not have to be a platform_device. I think it can be a struct
>> Why does it even need that? The low level mechanism for influencing
>> PMCDR should only need a device node, not a Linux device struct.
> It does no harm to pass the device structure and makes more sense for object oriented interface design.
It does do harm if you don't have a device structure to pass, if for
some reason you found the device by directly looking for it rather than
going through the device model.
>>>> Who is setting can_wakeup for these devices?
>>> The device driver is responsible to set can_wakeup.
>> How would the device driver know how to set it? Wouldn't this depend on
>> the particular SoC and low power mode?
> It is based on the "fsl,magic-packet" and "fsl,wake-on-filer" device tree properties.
fsl,magic-packet was a mistake. It is equivalent to checking the
compatible for etsec. It does not convey any information about whether
the eTSEC is still active in a given low power mode.
How is fsl,wake-os-filer relevant to this decision? When will it be set
but not fsl,magic-packet?
What about devices other than ethernet? What about differences between
ordinary sleep and deep sleep?
More information about the Linuxppc-dev