> From: Varadarajan, Charu Latha
> Sent: Monday, October 26, 2009 4:07 AM
>
> >>>> #endif
> >>>> + if (cpu_is_omap24xx() || cpu_is_omap34xx() ||
> cpu_is_omap44xx()) {
> >>>> + if (!bank->>gpio_status) {
> >>>> + ctrl = __raw_readl(bank->>base +
> OMAP24XX_GPIO_CTRL);
> >>>> + /* Module is enabled, clocks are not gated */
> >>>> + ctrl &= 0xFFFFFFFE;
> >>>> + __raw_writel(ctrl, bank->>base +
> OMAP24XX_GPIO_CTRL);
> >>>> + }
> >>>> + bank->>gpio_status |= 1 << offset;
> >>>> + }
> >>> why do this every time a gpio is enabled? why not do this iff gpio was
> >>> never used before.. how about the following:
> >> The module is enabled only when gpio_status indicates that no GPIO
> >> in that module is currently active and the GPIO being requested is the
> 1st one
> >> to be active in that module.
> >> Each module would be disabled in free() API when all GPIOs in a
> particular module
> >> becomes inactive. The module is re-enabled in request() API when a GPIO
> is
> >> requested from the module that was previously disabled.
> >Thanks.
> Welcome
> >>> if (!bank->>gpio_status && (cpu_is_omap24xx() || cpu_is_omap34xx() ||
> >>> cpu_is_omap44xx())) {
> >>> u32 ctrl = __raw_readl(bank->>base + OMAP24XX_GPIO_CTRL);
> >>> /* Module is enabled, clocks are not gated */
> >>> ctrl &= 0xFFFFFFFE;
> >>> __raw_writel(ctrl, bank->>base + OMAP24XX_GPIO_CTRL);
> >>> }
> >>> bank->>gpio_status |= 1 << offset;
> >> Why to touch gpio_status if not used (for other than 34xx/24xx/44xx
> cases)?
> >either the gpio_status should be under a #ifdef for 34xx when defining
> >or it should be usable by all. what it does now is do both.
> gpio_status is not used under #ifdef for 34xx. It is used only with
> cpu_is_omap
> (34xx/24xx/44xx). Should we use both #ifdef and cpu_is_omap together? Why?
> But I don't see that approach in LO. For eg., usage of dbck_enable_mask is
> used only with cpu_is_omap and is not declared under #ifdef.
Please see [1] saved_datain is an example of why I think gpio.c could go thru a
cleanup ;) already in #ifdef in line 1908, in line 1925, we add a new #ifdef
under a #ifdef :D.. err...
Ok this piece of code is not perfect..
Regards,
Nishanth Menon
[1]
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=blob;f=arch/arm/plat-omap/gpio.c;h=487bea7b5605fe366064d792d0c9cc8aed1eac63;hb=0bbf5337f2f2957775051a3caf60b66d3306c815#l174
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html