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/
 maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to