Re: [PATCH 0/5] mfd: replace IORESOURCE_IO by IORESOURCE_MEM

Russell King
2012-08-07T08:28:33Z

On Tue, Aug 07, 2012 at 06:22:22PM +1000, Benjamin Herrenschmidt wrote:
> On Mon, 2012-08-06 at 22:31 +0100, Russell King wrote:
> >
> > So, if we made this a numeric index, then we have 32 resource types
> > to deal with, and no need to bugger around with re-using an existing
> > type for something else.
> >
> > This makes sense, MEM, IRQ and DMA are all mutually exclusive, as
> > should be MEM and IO (because they can't coexist in two resource trees
> > at the same time.) BUS only gets used in a hand-full of places and
> > not with any other flags.
> >
> > So, looks like we can have 27 new resource types fairly easily.
>
> Besides we can easily use a single IORESOURCE_OTHER for most things
> really, if we prefer, make it IORESOURCE_IO | IORESOURCE_MEM and have
> platform device avoid that combo...

That will work just the same way that I'm suggesting. We can keep
the existing bit-based numbers, and:

#define IORESOURCE_OTHER 0x00000300

and the platform code will avoid using the standard resource trees,
because it does things correctly here:

if (resource_type(r) == IORESOURCE_MEM)
p = &iomem_resource;
else if (resource_type(r) == IORESOURCE_IO)
p = &ioport_resource;

Same for the resource getting functions. Hardly surprising this, because
I wrote this code...

So, no need to touch any existing users or change their behaviour in
any way.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/