Re: [RFC/PATCH 5/8] omap: mailbox: reorganize omap2 platform_device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 3, 2010 at 9:10 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> * Felipe Contreras <felipe.contreras@xxxxxxxxx> [100502 16:58]:
>> Makes more sense to register in the mach file, plus it will allow more
>> functionality later on.
>>
>> Also, this probably enables multi-omap for real.
>>
>> Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
>
> <snip>
>
>> --- a/arch/arm/mach-omap2/mailbox.c
>> +++ b/arch/arm/mach-omap2/mailbox.c
>
> You still probably want to optimize kernel size and memory
> consumption for production kernels built for one omap:
>
> #ifdef CONFIG_ARCH_OMAP2

True.

>> +static struct resource omap2_mbox_resources[] = {
>> +     {
>> +             .start          = OMAP24XX_MAILBOX_BASE,
>> +             .end            = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
>> +             .flags          = IORESOURCE_MEM,
>> +     },
>> +     {
>> +             .start          = INT_24XX_MAIL_U0_MPU,
>> +             .flags          = IORESOURCE_IRQ,
>> +     },
>> +     {
>> +             .start          = INT_24XX_MAIL_U3_MPU,
>> +             .flags          = IORESOURCE_IRQ,
>> +     },
>> +};
>
> #else
> #define omap2_mbox_resources    NULL
> #endif
>
> And then do the same for omap3 and omap4.
>
> BTW, looks like this could all be also set __initdata?

Yeah, I think so.

>> @@ -443,7 +479,46 @@ static struct platform_driver omap2_mbox_driver = {
>>
>>  static int __init omap2_mbox_init(void)
>>  {
>> +     int err;
>> +     struct platform_device *pdev;
>> +     struct resource *res;
>> +     unsigned num;
>> +
>> +     if (cpu_is_omap3430()) {
>> +             res = omap3_mbox_resources;
>> +             num = ARRAY_SIZE(omap3_mbox_resources);
>> +     }
>> +     else if (cpu_is_omap2420()) {
>> +             res = omap2_mbox_resources;
>> +             num = ARRAY_SIZE(omap2_mbox_resources);
>> +     }
>> +     else if (cpu_is_omap44xx()) {
>> +             res = omap4_mbox_resources;
>> +             num = ARRAY_SIZE(omap4_mbox_resources);
>> +     }
>> +     else {
>> +             pr_err("%s: platform not supported\n", __func__);
>> +             return -ENODEV;
>> +     }
>
> Note that these tests will fail when building for one omap only
> unless you have the #else statement for eacch omapX_mbox_resources[].

Indeed. I'll fix that although the current code is already wrong.

Cheers.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux