Re: [PATCH 11/15] OMAP: GPIO: Remove hardcoded offsets in ctxt save/restore

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

 



Sanjeev,

On Thu, May 26, 2011 at 15:12, Premi, Sanjeev <premi@xxxxxx> wrote:
>> -----Original Message-----
>> From: linux-omap-owner@xxxxxxxxxxxxxxx
>> [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of
>> DebBarma, Tarun Kanti
>> Sent: Tuesday, May 24, 2011 7:55 PM
>> To: linux-omap@xxxxxxxxxxxxxxx
>> Cc: Hilman, Kevin; Shilimkar, Santosh; tony@xxxxxxxxxxx;
>> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; DebBarma, Tarun Kanti;
>> Varadarajan, Charulatha
>> Subject: [PATCH 11/15] OMAP: GPIO: Remove hardcoded offsets
>> in ctxt save/restore
>>
>> It is not required to use hard-coded offsets any more in context
>> save and restore functions and instead use the generic offsets
>> which have been correctly initialized during device registration.
>>
>> Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@xxxxxx>
>> Signed-off-by: Charulatha V <charu@xxxxxx>
>> ---
>>  arch/arm/mach-omap2/gpio.c             |    2 +
>>  arch/arm/plat-omap/include/plat/gpio.h |    1 +
>>  drivers/gpio/gpio_omap.c               |  123
>> ++++++++++----------------------
>>  3 files changed, 40 insertions(+), 86 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
>> index 0f8782f..5c888dd 100644
>
> [snip]...[snip]
>> diff --git a/drivers/gpio/gpio_omap.c b/drivers/gpio/gpio_omap.c
>> index 28390a9..05c2857 100644
>> --- a/drivers/gpio/gpio_omap.c
>> +++ b/drivers/gpio/gpio_omap.c
>> @@ -1395,96 +1395,47 @@ restore_gpio_ctx:
>>
>>  void omap_gpio_save_context(struct gpio_bank *bank)
>>  {
>
> [sp] The [PATCH 06/15] OMAP4: GPIO: Save/restore context
>     seems to be doing exactly opposite:
>     It introduces the checks for
> [quote]
>  +              if (bank->method == METHOD_GPIO_24XX) {
> ...
> ...
>  +              } else if (bank->method == METHOD_GPIO_44XX) {
> [/quote]
>
> and this patch removes the same checks.
>
> Am I missing something?

Patch 6 introduces the save/restore context code for OMAP4 and this patch
tries to replace all the macro usage with the reg offset values which is nothing
but cleanup.

Based on your comments and Kevin's I understand that I should make cleanups
first and then any fixes/functionality changes to avoid confusions.
Will do that and send a revised series next week.

-V Charulatha

>
> ~sanjeev
>
>
>> -     if (bank->method == METHOD_GPIO_24XX) {
>> -             bank->context.irqenable1 = __raw_readl(
>> -                                     bank->base +
>> OMAP24XX_GPIO_IRQENABLE1);
>> -             bank->context.irqenable2 = __raw_readl(
>> -                                     bank->base +
>> OMAP24XX_GPIO_IRQENABLE2);
>> -             bank->context.wake_en = __raw_readl(
>> -                                     bank->base +
>> OMAP24XX_GPIO_WAKE_EN);
>> -             bank->context.ctrl = __raw_readl(
>> -                                     bank->base +
>> OMAP24XX_GPIO_CTRL);
>> -             bank->context.oe = __raw_readl(
>> -                                     bank->base + OMAP24XX_GPIO_OE);
>> -             bank->context.leveldetect0 = __raw_readl(bank->base +
>> -                                     OMAP24XX_GPIO_LEVELDETECT0);
>> -             bank->context.leveldetect1 = __raw_readl(bank->base +
>> -                                     OMAP24XX_GPIO_LEVELDETECT1);
>> -             bank->context.risingdetect = __raw_readl(bank->base +
>> -                                     OMAP24XX_GPIO_RISINGDETECT);
>> -             bank->context.fallingdetect = __raw_readl(bank->base +
>> -                                     OMAP24XX_GPIO_FALLINGDETECT);
>> -             bank->context.dataout = __raw_readl(
>> -                                     bank->base +
>> OMAP24XX_GPIO_DATAOUT);
>> -     } else if (bank->method == METHOD_GPIO_44XX) {
>> -             bank->context.irqenable1 = __raw_readl(
>> -                                     bank->base +
>> OMAP4_GPIO_IRQSTATUSSET0);
>> -             bank->context.irqenable2 = __raw_readl(
>> -                                     bank->base +
>> OMAP4_GPIO_IRQSTATUSSET1);
>> -             bank->context.wake_en = __raw_readl(
>> -                                     bank->base +
>> OMAP4_GPIO_IRQWAKEN0);
>> -             bank->context.ctrl = __raw_readl(
>> -                                     bank->base + OMAP4_GPIO_CTRL);
>> -             bank->context.oe = __raw_readl(
>> -                                     bank->base + OMAP24XX_GPIO_OE);
>> -             bank->context.leveldetect0 = __raw_readl(bank->base +
>> -                                     OMAP4_GPIO_LEVELDETECT0);
>> -             bank->context.leveldetect1 = __raw_readl(bank->base +
>> -                                     OMAP4_GPIO_LEVELDETECT1);
>> -             bank->context.risingdetect = __raw_readl(bank->base +
>> -                                     OMAP4_GPIO_RISINGDETECT);
>> -             bank->context.fallingdetect = __raw_readl(bank->base +
>> -                                     OMAP4_GPIO_FALLINGDETECT);
>> -             bank->context.dataout = __raw_readl(
>> -                                     bank->base +
>> OMAP4_GPIO_DATAOUT);
>> -     }
>> +     bank->context.irqenable1 =
>> +                     __raw_readl(bank->base + bank->regs->irqenable);
>> +     bank->context.irqenable2 =
>> +                     __raw_readl(bank->base +
>> bank->regs->irqenable2);
>> +     bank->context.wake_en =
>> +                     __raw_readl(bank->base +
>> bank->regs->wkupstatus);
>> +     bank->context.ctrl = __raw_readl(bank->base + bank->regs->ctrl);
>> +     bank->context.oe = __raw_readl(bank->base +
>> bank->regs->direction);
>> +     bank->context.leveldetect0 =
>> +                     __raw_readl(bank->base +
>> bank->regs->leveldetect0);
>> +     bank->context.leveldetect1 =
>> +                     __raw_readl(bank->base +
>> bank->regs->leveldetect1);
>> +     bank->context.risingdetect =
>> +                     __raw_readl(bank->base +
>> bank->regs->risingdetect);
>> +     bank->context.fallingdetect =
>> +                     __raw_readl(bank->base +
>> bank->regs->fallingdetect);
>> +     bank->context.dataout = __raw_readl(bank->base +
>> bank->regs->dataout);
>>  }
>>
>>  void omap_gpio_restore_context(struct gpio_bank *bank)
>>  {
>> -     if (bank->method == METHOD_GPIO_24XX) {
>> -             __raw_writel(bank->context.irqenable1, bank->base +
>> -
>> OMAP24XX_GPIO_IRQENABLE1);
>> -             __raw_writel(bank->context.irqenable2, bank->base +
>> -
>> OMAP24XX_GPIO_IRQENABLE2);
>> -             __raw_writel(bank->context.wake_en, bank->base +
>> -                                             OMAP24XX_GPIO_WAKE_EN);
>> -             __raw_writel(bank->context.ctrl, bank->base +
>> -                                             OMAP24XX_GPIO_CTRL);
>> -             __raw_writel(bank->context.oe, bank->base +
>> -                                             OMAP24XX_GPIO_OE);
>> -             __raw_writel(bank->context.leveldetect0, bank->base +
>> -
>> OMAP24XX_GPIO_LEVELDETECT0);
>> -             __raw_writel(bank->context.leveldetect1, bank->base +
>> -
>> OMAP24XX_GPIO_LEVELDETECT1);
>> -             __raw_writel(bank->context.risingdetect, bank->base +
>> -
>> OMAP24XX_GPIO_RISINGDETECT);
>> -             __raw_writel(bank->context.fallingdetect, bank->base +
>> -
>> OMAP24XX_GPIO_FALLINGDETECT);
>> -             __raw_writel(bank->context.dataout, bank->base +
>> -                                             OMAP24XX_GPIO_DATAOUT);
>> -     } else if (bank->method == METHOD_GPIO_44XX) {
>> -             __raw_writel(bank->context.irqenable1, bank->base +
>> -
>> OMAP4_GPIO_IRQSTATUSSET0);
>> -             __raw_writel(bank->context.irqenable2, bank->base +
>> -
>> OMAP4_GPIO_IRQSTATUSSET1);
>> -             __raw_writel(bank->context.wake_en, bank->base +
>> -                                             OMAP4_GPIO_IRQWAKEN0);
>> -             __raw_writel(bank->context.ctrl, bank->base +
>> -                                             OMAP4_GPIO_CTRL);
>> -             __raw_writel(bank->context.oe, bank->base +
>> -                                             OMAP24XX_GPIO_OE);
>> -             __raw_writel(bank->context.leveldetect0, bank->base +
>> -
>> OMAP4_GPIO_LEVELDETECT0);
>> -             __raw_writel(bank->context.leveldetect1, bank->base +
>> -
>> OMAP4_GPIO_LEVELDETECT1);
>> -             __raw_writel(bank->context.risingdetect, bank->base +
>> -
>> OMAP4_GPIO_RISINGDETECT);
>> -             __raw_writel(bank->context.fallingdetect, bank->base +
>> -
>> OMAP4_GPIO_FALLINGDETECT);
>> -             __raw_writel(bank->context.dataout, bank->base +
>> -                                             OMAP4_GPIO_DATAOUT);
>> -     }
>> +     __raw_writel(bank->context.irqenable1,
>> +                             bank->base + bank->regs->irqenable);
>> +     __raw_writel(bank->context.irqenable2,
>> +                             bank->base + bank->regs->irqenable2);
>> +     __raw_writel(bank->context.wake_en,
>> +                             bank->base + bank->regs->wkupstatus);
>> +     __raw_writel(bank->context.ctrl,
>> +                             bank->base + bank->regs->ctrl);
>> +     __raw_writel(bank->context.oe,
>> +                             bank->base + bank->regs->direction);
>> +     __raw_writel(bank->context.leveldetect0,
>> +                             bank->base + bank->regs->leveldetect0);
>> +     __raw_writel(bank->context.leveldetect1,
>> +                             bank->base + bank->regs->leveldetect1);
>> +     __raw_writel(bank->context.risingdetect,
>> +                             bank->base + bank->regs->risingdetect);
>> +     __raw_writel(bank->context.fallingdetect,
>> +                             bank->base + bank->regs->fallingdetect);
>> +     __raw_writel(bank->context.dataout,
>> +                             bank->base + bank->regs->dataout);
>>  }
>>
>>  #endif
>> --
>> 1.6.0.4
>>
>> --
>> 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
>>
--
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