From: charu@ti.com (Varadarajan, Charulatha)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/15] OMAP: GPIO: cleanup suspend and resume functions
Date: Thu, 26 May 2011 15:32:34 +0530 [thread overview]
Message-ID: <BANLkTi=eSS-faFd=zYnriUe6qRPTZ76yyQ@mail.gmail.com> (raw)
In-Reply-To: <87d3j6o0ca.fsf@ti.com>
Kevin,
On Thu, May 26, 2011 at 04:27, Kevin Hilman <khilman@ti.com> wrote:
> Tarun Kanti DebBarma <tarun.kanti@ti.com> writes:
>
>> Since wake_status, wake_clear, wake_set is common for all banks on a given
>> OMAP version it is enough to get their values once during probe().
>> Also, register offsets are already initialzed according to OMAP versions
>> during device registration. We no longer need these explicit checks.
>>
>> Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@ti.com>
>> Signed-off-by: Charulatha V <charu@ti.com>
>> ---
>> ?arch/arm/mach-omap1/gpio15xx.c ? ? ? ? | ? ?6 ++
>> ?arch/arm/mach-omap1/gpio16xx.c ? ? ? ? | ? ?6 ++
>> ?arch/arm/mach-omap1/gpio7xx.c ? ? ? ? ?| ? ?6 ++
>> ?arch/arm/mach-omap2/gpio.c ? ? ? ? ? ? | ? ?6 ++
>> ?arch/arm/plat-omap/include/plat/gpio.h | ? ?3 +
>> ?drivers/gpio/gpio_omap.c ? ? ? ? ? ? ? | ?102 +++++++-------------------------
>> ?6 files changed, 49 insertions(+), 80 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c
>> index f18a4a9..b0bd21e 100644
>> --- a/arch/arm/mach-omap1/gpio15xx.c
>> +++ b/arch/arm/mach-omap1/gpio15xx.c
>> @@ -43,6 +43,9 @@ static struct omap_gpio_reg_offs omap15xx_mpuio_regs = {
>> ? ? ? .irqenable ? ? ?= OMAP_MPUIO_GPIO_MASKIT,
>> ? ? ? .irqenable_inv ?= true,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = USHRT_MAX,
>> + ? ? .wkupclear ? ? ?= USHRT_MAX,
>> + ? ? .wkupset ? ? ? ?= USHRT_MAX,
>> ?};
>
> Same comment as earlier about USHRT_MAX.
>
> Just use zero to indicate no register present.
>
>> ?static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = {
>> @@ -85,6 +88,9 @@ static struct omap_gpio_reg_offs omap15xx_gpio_regs = {
>> ? ? ? .irqenable ? ? ?= OMAP1510_GPIO_INT_MASK,
>> ? ? ? .irqenable_inv ?= true,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = USHRT_MAX,
>> + ? ? .wkupclear ? ? ?= USHRT_MAX,
>> + ? ? .wkupset ? ? ? ?= USHRT_MAX,
>> ?};
>>
>> ?static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = {
>> diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c
>> index d886b88..403437b 100644
>> --- a/arch/arm/mach-omap1/gpio16xx.c
>> +++ b/arch/arm/mach-omap1/gpio16xx.c
>> @@ -46,6 +46,9 @@ static struct omap_gpio_reg_offs omap16xx_mpuio_regs = {
>> ? ? ? .irqenable ? ? ?= OMAP_MPUIO_GPIO_MASKIT,
>> ? ? ? .irqenable_inv ?= true,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = USHRT_MAX,
>> + ? ? .wkupclear ? ? ?= USHRT_MAX,
>> + ? ? .wkupset ? ? ? ?= USHRT_MAX,
>> ?};
>>
>> ?static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = {
>> @@ -91,6 +94,9 @@ static struct omap_gpio_reg_offs omap16xx_gpio_regs = {
>> ? ? ? .set_irqenable ?= OMAP1610_GPIO_SET_IRQENABLE1,
>> ? ? ? .clr_irqenable ?= OMAP1610_GPIO_CLEAR_IRQENABLE1,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = OMAP1610_GPIO_WAKEUPENABLE,
>> + ? ? .wkupclear ? ? ?= OMAP1610_GPIO_CLEAR_WAKEUPENA,
>> + ? ? .wkupset ? ? ? ?= OMAP1610_GPIO_SET_WAKEUPENA,
>> ?};
>>
>> ?static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = {
>> diff --git a/arch/arm/mach-omap1/gpio7xx.c b/arch/arm/mach-omap1/gpio7xx.c
>> index c7684ce..d5a4aaf 100644
>> --- a/arch/arm/mach-omap1/gpio7xx.c
>> +++ b/arch/arm/mach-omap1/gpio7xx.c
>> @@ -48,6 +48,9 @@ static struct omap_gpio_reg_offs omap7xx_mpuio_regs = {
>> ? ? ? .irqenable ? ? ?= OMAP_MPUIO_GPIO_MASKIT / 2,
>> ? ? ? .irqenable_inv ?= true,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = USHRT_MAX,
>> + ? ? .wkupclear ? ? ?= USHRT_MAX,
>> + ? ? .wkupset ? ? ? ?= USHRT_MAX,
>> ?};
>>
>> ?static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = {
>> @@ -90,6 +93,9 @@ static struct omap_gpio_reg_offs omap7xx_gpio_regs = {
>> ? ? ? .irqenable ? ? ?= OMAP7XX_GPIO_INT_MASK,
>> ? ? ? .irqenable_inv ?= true,
>> ? ? ? .ctrl ? ? ? ? ? = USHRT_MAX,
>> + ? ? .wkupstatus ? ? = USHRT_MAX,
>> + ? ? .wkupclear ? ? ?= USHRT_MAX,
>> + ? ? .wkupset ? ? ? ?= USHRT_MAX,
>> ?};
>>
>> ?static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = {
>> diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
>> index 0782e06..7e79999 100644
>> --- a/arch/arm/mach-omap2/gpio.c
>> +++ b/arch/arm/mach-omap2/gpio.c
>> @@ -111,6 +111,9 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
>> ? ? ? ? ? ? ? pdata->regs->debounce = OMAP24XX_GPIO_DEBOUNCE_VAL;
>> ? ? ? ? ? ? ? pdata->regs->debounce_en = OMAP24XX_GPIO_DEBOUNCE_EN;
>> ? ? ? ? ? ? ? pdata->regs->ctrl = OMAP24XX_GPIO_CTRL;
>> + ? ? ? ? ? ? pdata->regs->wkupstatus = OMAP24XX_GPIO_WAKE_EN;
>> + ? ? ? ? ? ? pdata->regs->wkupclear = OMAP24XX_GPIO_CLEARWKUENA;
>> + ? ? ? ? ? ? pdata->regs->wkupset = OMAP24XX_GPIO_SETWKUENA;
>> ? ? ? ? ? ? ? break;
>> ? ? ? case 3:
>> ? ? ? ? ? ? ? pdata->bank_type = METHOD_GPIO_44XX;
>> @@ -128,6 +131,9 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
>> ? ? ? ? ? ? ? pdata->regs->debounce = OMAP4_GPIO_DEBOUNCINGTIME;
>> ? ? ? ? ? ? ? pdata->regs->debounce_en = OMAP4_GPIO_DEBOUNCENABLE;
>> ? ? ? ? ? ? ? pdata->regs->ctrl = OMAP4_GPIO_CTRL;
>> + ? ? ? ? ? ? pdata->regs->wkupstatus = OMAP4_GPIO_IRQWAKEN0;
>> + ? ? ? ? ? ? pdata->regs->wkupclear = OMAP4_GPIO_IRQWAKEN0;
>> + ? ? ? ? ? ? pdata->regs->wkupset = OMAP4_GPIO_IRQWAKEN0;
>> ? ? ? ? ? ? ? break;
>> ? ? ? default:
>> ? ? ? ? ? ? ? WARN(1, "Invalid gpio bank_type\n");
>> diff --git a/arch/arm/plat-omap/include/plat/gpio.h b/arch/arm/plat-omap/include/plat/gpio.h
>> index 5718a45..2d1a5d6 100644
>> --- a/arch/arm/plat-omap/include/plat/gpio.h
>> +++ b/arch/arm/plat-omap/include/plat/gpio.h
>> @@ -189,6 +189,9 @@ struct omap_gpio_reg_offs {
>> ? ? ? u16 debounce;
>> ? ? ? u16 debounce_en;
>> ? ? ? u16 ctrl;
>> + ? ? u16 wkupstatus;
>> + ? ? u16 wkupclear;
>> + ? ? u16 wkupset;
>
> s/wkup/wkup_/
Okay.
>
>> ? ? ? bool irqenable_inv;
>> ?};
>> diff --git a/drivers/gpio/gpio_omap.c b/drivers/gpio/gpio_omap.c
>> index fcc60be..c189416 100644
>> --- a/drivers/gpio/gpio_omap.c
>> +++ b/drivers/gpio/gpio_omap.c
>> @@ -77,6 +77,9 @@ struct gpio_bank {
>> ? ? ? u32 width;
>> ? ? ? u32 ctx_lost_cnt_before;
>> ? ? ? u16 id;
>> + ? ? void __iomem *wake_status;
>> + ? ? void __iomem *wake_clear;
>> + ? ? void __iomem *wake_set;
>>
>> ? ? ? void (*set_dataout)(struct gpio_bank *bank, int gpio, int enable);
>>
>> @@ -606,27 +609,11 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)
>> ? ? ? unsigned long flags;
>>
>> ? ? ? spin_lock_irqsave(&bank->lock, flags);
>> -#ifdef CONFIG_ARCH_OMAP16XX
>> - ? ? if (bank->method == METHOD_GPIO_1610) {
>> - ? ? ? ? ? ? /* Disable wake-up during idle for dynamic tick */
>> - ? ? ? ? ? ? void __iomem *reg = bank->base + OMAP1610_GPIO_CLEAR_WAKEUPENA;
>> - ? ? ? ? ? ? __raw_writel(1 << offset, reg);
>> - ? ? }
>> -#endif
>> -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
>> - ? ? if (bank->method == METHOD_GPIO_24XX) {
>> - ? ? ? ? ? ? /* Disable wake-up during idle for dynamic tick */
>> - ? ? ? ? ? ? void __iomem *reg = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
>> - ? ? ? ? ? ? __raw_writel(1 << offset, reg);
>> - ? ? }
>> -#endif
>> -#ifdef CONFIG_ARCH_OMAP4
>> - ? ? if (bank->method == METHOD_GPIO_44XX) {
>> +
>> + ? ? if (bank->regs->wkupclear != USHRT_MAX)
>
> Here you check the 'regs' version...
>
>> ? ? ? ? ? ? ? /* Disable wake-up during idle for dynamic tick */
>> - ? ? ? ? ? ? void __iomem *reg = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? __raw_writel(1 << offset, reg);
>> - ? ? }
>> -#endif
>> + ? ? ? ? ? ? __raw_writel(1 << offset, bank->wake_clear);
>> +
>
> ...and here you write using the copy. ?Not good for readability. ?More
> on this below.
Agreed. Will do the needful.
>
>> ? ? ? bank->mod_usage &= ~(1 << offset);
>>
>> ? ? ? if ((bank->regs->ctrl != USHRT_MAX) && (!bank->mod_usage)) {
>> @@ -1189,6 +1176,15 @@ static int __devinit omap_gpio_probe(struct platform_device *pdev)
>> ? ? ? ? ? ? ? goto err_free;
>> ? ? ? }
>>
>> + ? ? /*
>> + ? ? ?* Storing these addresses avoids redundant computation of these
>> + ? ? ?* values every time in suspend/resume functions and for all the
>> + ? ? ?* gpio banks.
>> + ? ? ?*/
>> + ? ? bank->wake_status = bank->base + bank->regs->wkupstatus;
>> + ? ? bank->wake_clear = bank->base + bank->regs->wkupclear;
>> + ? ? bank->wake_set = bank->base + bank->regs->wkupset;
>
> Well, it's not really redundant since these are only used in the suspend
> and resume functions. ?I'd rather have an extra add in the
> suspend/resume functions than have 3 extra words in every struct gpio_bank.
>
> Also, Using 'bank + reg offset' in the functions that use them is
> consistent with the pattern of all the other changes in the cleanup
> series, so lets not start something new.
Agreed.
>
>> ? ? ? pm_runtime_enable(bank->dev);
>> ? ? ? pm_runtime_get_sync(bank->dev);
>>
>> @@ -1207,7 +1203,7 @@ err_exit:
>> ?}
>>
>> ?#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2PLUS)
>> -static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
>> +static int omap_gpio_suspend(struct sys_device *dev, pm_message_t unused)
>
> change not related to $SUBJECT patch
>
>> ?{
>> ? ? ? struct gpio_bank *bank;
>>
>> @@ -1215,41 +1211,12 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
>> ? ? ? ? ? ? ? return 0;
>>
>> ? ? ? list_for_each_entry(bank, &omap_gpio_list, node) {
>> - ? ? ? ? ? ? void __iomem *wake_status;
>> - ? ? ? ? ? ? void __iomem *wake_clear;
>> - ? ? ? ? ? ? void __iomem *wake_set;
>
> IMO, these should stay here and should just be assigned 'bank->base +
> bank->regs->...'
Okay.
>
>> ? ? ? ? ? ? ? unsigned long flags;
>>
>> - ? ? ? ? ? ? switch (bank->method) {
>> -#ifdef CONFIG_ARCH_OMAP16XX
>> - ? ? ? ? ? ? case METHOD_GPIO_1610:
>> - ? ? ? ? ? ? ? ? ? ? wake_status = bank->base + OMAP1610_GPIO_WAKEUPENABLE;
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP1610_GPIO_CLEAR_WAKEUPENA;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP1610_GPIO_SET_WAKEUPENA;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
>> - ? ? ? ? ? ? case METHOD_GPIO_24XX:
>> - ? ? ? ? ? ? ? ? ? ? wake_status = bank->base + OMAP24XX_GPIO_WAKE_EN;
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> -#ifdef CONFIG_ARCH_OMAP4
>> - ? ? ? ? ? ? case METHOD_GPIO_44XX:
>> - ? ? ? ? ? ? ? ? ? ? wake_status = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> - ? ? ? ? ? ? default:
>> - ? ? ? ? ? ? ? ? ? ? continue;
>> - ? ? ? ? ? ? }
>> -
>> ? ? ? ? ? ? ? spin_lock_irqsave(&bank->lock, flags);
>> - ? ? ? ? ? ? bank->saved_wakeup = __raw_readl(wake_status);
>> - ? ? ? ? ? ? __raw_writel(0xffffffff, wake_clear);
>> - ? ? ? ? ? ? __raw_writel(bank->suspend_wakeup, wake_set);
>> + ? ? ? ? ? ? bank->saved_wakeup = __raw_readl(bank->wake_status);
>> + ? ? ? ? ? ? __raw_writel(0xffffffff, bank->wake_clear);
>> + ? ? ? ? ? ? __raw_writel(bank->suspend_wakeup, bank->wake_set);
>> ? ? ? ? ? ? ? spin_unlock_irqrestore(&bank->lock, flags);
>> ? ? ? }
>
>> @@ -1264,36 +1231,11 @@ static int omap_gpio_resume(struct sys_device *dev)
>> ? ? ? ? ? ? ? return 0;
>>
>> ? ? ? list_for_each_entry(bank, &omap_gpio_list, node) {
>> - ? ? ? ? ? ? void __iomem *wake_clear;
>> - ? ? ? ? ? ? void __iomem *wake_set;
>> ? ? ? ? ? ? ? unsigned long flags;
>>
>> - ? ? ? ? ? ? switch (bank->method) {
>> -#ifdef CONFIG_ARCH_OMAP16XX
>> - ? ? ? ? ? ? case METHOD_GPIO_1610:
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP1610_GPIO_CLEAR_WAKEUPENA;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP1610_GPIO_SET_WAKEUPENA;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
>> - ? ? ? ? ? ? case METHOD_GPIO_24XX:
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> -#ifdef CONFIG_ARCH_OMAP4
>> - ? ? ? ? ? ? case METHOD_GPIO_44XX:
>> - ? ? ? ? ? ? ? ? ? ? wake_clear = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? ? ? ? ? wake_set = bank->base + OMAP4_GPIO_IRQWAKEN0;
>> - ? ? ? ? ? ? ? ? ? ? break;
>> -#endif
>> - ? ? ? ? ? ? default:
>> - ? ? ? ? ? ? ? ? ? ? continue;
>> - ? ? ? ? ? ? }
>> -
>> ? ? ? ? ? ? ? spin_lock_irqsave(&bank->lock, flags);
>> - ? ? ? ? ? ? __raw_writel(0xffffffff, wake_clear);
>> - ? ? ? ? ? ? __raw_writel(bank->saved_wakeup, wake_set);
>> + ? ? ? ? ? ? __raw_writel(0xffffffff, bank->wake_clear);
>> + ? ? ? ? ? ? __raw_writel(bank->saved_wakeup, bank->wake_set);
>> ? ? ? ? ? ? ? spin_unlock_irqrestore(&bank->lock, flags);
>> ? ? ? }
>
> In addition, the cpu_is_* checks in the suspend/resume functions could
> be replaced by checking for non-zero values in bank->regs->wkup*
This is taken care in a later patch. In our next series, we will take care
about the patch order too with cleanup taken care in a separately and
later any functionality change/fixes.
-V Charulatha
>
> Kevin
>
next prev parent reply other threads:[~2011-05-26 10:02 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-24 14:24 [PATCH 00/15] OMAP: GPIO: Cleanup OMAP GPIO driver Tarun Kanti DebBarma
2011-05-24 14:24 ` [PATCH 01/15] OMAP: GPIO: Avoid cpu_is checks during module ena/disable Tarun Kanti DebBarma
2011-05-25 21:19 ` Kevin Hilman
2011-05-26 9:38 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 02/15] OMAP2PLUS: GPIO: Fix non-wakeup GPIO and rev_ids Tarun Kanti DebBarma
2011-05-25 21:34 ` Kevin Hilman
2011-05-26 9:38 ` Varadarajan, Charulatha
2011-05-26 17:15 ` Kevin Hilman
2011-05-26 17:39 ` Varadarajan, Charulatha
2011-05-26 18:32 ` Kevin Hilman
2011-05-26 9:23 ` Premi, Sanjeev
2011-05-26 9:43 ` Varadarajan, Charulatha
2011-05-26 10:11 ` Cousson, Benoit
2011-05-26 11:47 ` Premi, Sanjeev
2011-05-26 12:11 ` Cousson, Benoit
2011-05-26 12:38 ` Premi, Sanjeev
2011-05-26 12:46 ` Cousson, Benoit
2011-05-26 13:19 ` Premi, Sanjeev
2011-05-26 13:38 ` B.J. Buchalter
2011-05-26 14:12 ` Cousson, Benoit
2011-05-24 14:24 ` [PATCH 03/15] OMAP: GPIO: Remove dependency on gpio_bank_count Tarun Kanti DebBarma
2011-05-24 14:24 ` [PATCH 04/15] OMAP2PLUS: GPIO: Use flag to identify wkup dmn GPIO Tarun Kanti DebBarma
2011-05-25 21:40 ` Kevin Hilman
2011-05-24 14:24 ` [PATCH 05/15] OMAP: GPIO: Make gpio_context part of gpio_bank structure Tarun Kanti DebBarma
2011-05-25 21:41 ` Kevin Hilman
2011-05-26 9:58 ` Premi, Sanjeev
2011-05-26 10:07 ` Varadarajan, Charulatha
2011-05-26 9:59 ` Premi, Sanjeev
2011-05-24 14:24 ` [PATCH 06/15] OMAP4: GPIO: Save/restore context Tarun Kanti DebBarma
2011-05-25 21:43 ` Kevin Hilman
2011-05-26 9:37 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 07/15] OMAP: GPIO: handle save/restore ctx in GPIO driver Tarun Kanti DebBarma
2011-05-25 22:33 ` Kevin Hilman
2011-05-25 22:36 ` Kevin Hilman
2011-05-24 14:24 ` [PATCH 08/15] OMAP2+: GPIO: make workaround_enabled bank specific Tarun Kanti DebBarma
2011-05-25 22:39 ` Kevin Hilman
2011-05-26 9:37 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 09/15] OMAP: GPIO: cleanup suspend and resume functions Tarun Kanti DebBarma
2011-05-25 22:57 ` Kevin Hilman
2011-05-26 10:02 ` Varadarajan, Charulatha [this message]
2011-05-24 14:24 ` [PATCH 10/15] OMAP: GPIO: cleanup prepare/resume idle functions Tarun Kanti DebBarma
2011-05-25 23:00 ` Kevin Hilman
2011-05-24 14:24 ` [PATCH 11/15] OMAP: GPIO: Remove hardcoded offsets in ctxt save/restore Tarun Kanti DebBarma
2011-05-25 23:01 ` Kevin Hilman
2011-05-26 9:36 ` Varadarajan, Charulatha
2011-05-26 9:42 ` Premi, Sanjeev
2011-05-26 9:48 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 12/15] OMAP: GPIO: Fix: use wake set/clear regs Tarun Kanti DebBarma
2011-05-25 23:14 ` Kevin Hilman
2011-05-26 9:36 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 13/15] OMAP: GPIO: clean set_gpio_triggering function Tarun Kanti DebBarma
2011-05-25 23:27 ` Kevin Hilman
2011-05-26 9:55 ` Varadarajan, Charulatha
2011-05-24 14:24 ` [PATCH 14/15] OMAP: GPIO: Use memset for omap_gpio_reg_offs Tarun Kanti DebBarma
2011-05-25 23:30 ` Kevin Hilman
2011-05-24 14:24 ` [PATCH 15/15] OMAP: GPIO: clean omap_gpio_mod_init function Tarun Kanti DebBarma
2011-05-25 23:48 ` Kevin Hilman
2011-06-03 11:20 ` Varadarajan, Charulatha
2011-06-03 14:31 ` Kevin Hilman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='BANLkTi=eSS-faFd=zYnriUe6qRPTZ76yyQ@mail.gmail.com' \
--to=charu@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).