[PATCH 1/2] [ARM] Introduce 'struct machine_class' for SoC level abstraction
Nicolas Pitre
nico at fluxnic.net
Mon Jun 21 11:38:27 EDT 2010
On Mon, 21 Jun 2010, Eric Miao wrote:
> On Mon, Jun 21, 2010 at 5:02 PM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > The same behaviour seems sensible to apply to the other class
> > functions as well - allow platforms to override the class
> > version, and leave the replacement platform function responsible
> > for calling the class if that's what it needs to do.
> >
>
> Yep, that's a good idea, and actually was as my first version. Yet my
> concern is this doesn't easily fit for the class data, i.e., allow the
> machine specific data to override the class data like below:
>
> if (valid_value(mdesc->phys_io))
> use(mdesc->phys_io);
> else
> use(mdesc->class->phys_io);
>
> but since phys_io could be valid for value zero (as if not explicitly
> initialized), so we may end up defining like below to allow use of the
> default class values:
>
> MACHINE_START(....)
> .phys_io = INVALID_ADDRESS,
> .io_pg_offst = INVALID_ADDRESS,
> ....
> MACHINE_END
No, please don't do that. This is horribly ugly.
And in fact I would actually be highly surprised if 0 was a sensible
value to use for either of those fields anyway. No SOCs I know about
has its IO at physical address0, and we're even less likely to remap
them at virtual address 0 either. So having 0 meaning uninitialized
makes perfect sense in practice.
Nicolas
More information about the linux-arm-kernel
mailing list