Subject: [PATCH/RFC] Runtime PM: ARM: subarch-specific extensions of pdev_archdata

From: [email-masked] (Kevin Hilman)
Date: Wed, 23 Sep 2009 16:36:19 -0700

Eric Miao wrote:
> On Thu, Sep 24, 2009 at 7:28 AM, Kevin Hilman
> <[email-masked]> wrote:
>> Mikael Pettersson wrote:
>>> Eric Miao writes:
>>>  > On Wed, Sep 23, 2009 at 9:50 AM, Kevin Hilman
>>>  > <[email-masked]> wrote:
>>>  > > On ARM platforms, power management can be very platform specific.
>>>  > > This patch allows ARM subarches to extend the platform_device
>>>  > > pdev_archdata for each subarch by creating a new struct pdev_machdata
>>>  > > and allowing each subarch to customize it as needed.
>>>  > >
>>>  > > As a starting point, each subarch's <mach/device.h> creates an empty
>>>  > > struct pdev_machdata.
>>>  > >
>>>  >  > Shouldn't that pdev_archdata and pdev_machdata be pointer or
>>> something
>>>  > so that multiple platform_device can share something in common?
>>>
>>> Forcing it to be a pointer has allocation and lifetime implications.
>>> Making it a struct allows the subarch to duplicate or share
>>> (via a private pointer) data as it sees fit.
>> Yes, the allocation/lifetime issues were why a struct was chosen.
>>
> 
> Mmm... this makes sense to me. I'm ok with this patch - just wondering
> for the moment what to put for the pxa architecture - I'll see what davinci
> will do first, of course :)

Well, I'll be doing OMAP before davinci, and the pdev_machdata will 
bascailly contain an OMAP specific struct (omap_device) that keeps track 
of various OMAP-specific device proerties (powerdomain, clock(s), PM 
register offsets, etc. etc.)  Basically, nothing that would be shared by 
other arches.

If down the road we figure out stuff common to all ARM platforms, we 
could put it in the pdev_archdata struct.

Kevin