[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4656BEB6164FC34F8171C6538F1A595B2E9826A6@SHSMSX101.ccr.corp.intel.com>
Date: Fri, 5 Sep 2014 02:09:22 +0000
From: "Chen, Alvin" <alvin.chen@...el.com>
To: Linus Walleij <linus.walleij@...aro.org>
CC: Alexandre Courbot <gnurou@...il.com>,
Grant Likely <grant.likely@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"Ong, Boon Leong" <boon.leong.ong@...el.com>,
"Shevchenko, Andriy" <andriy.shevchenko@...el.com>,
"Westerberg, Mika" <mika.westerberg@...el.com>,
"Kweh, Hock Leong" <hock.leong.kweh@...el.com>,
Darren Hart <dvhart@...ux.intel.com>
Subject: RE: [PATCH 3/3] GPIO: gpio-dwapb: Suspend & Resume PM enabling
>
> > +#if defined CONFIG_PM_SLEEP
>
> I wonder whether it's worth #ifdef:in out such things, it clutters the place.
OK. I will use '#ifdef'.
>
> > +/* Store GPIO context across system-wide suspend/resume transitions
> > +*/ static struct gpio_saved_regs {
>
> Call the struct:
>
> struct dwapb_context
>
> because that is easier to understand.
>
OK.
> > + unsigned long data;
> > + unsigned long dir;
> > + unsigned long int_en;
> > + unsigned long int_mask;
> > + unsigned long int_type;
> > + unsigned long int_pol;
> > + unsigned long int_deb;
> > +} saved_regs;
>
> Singleton huh?
>
> Insert this into the dynamically allocated per-port or chip struct instead.
>
How about the following?
static struct dwapb_context {
u32 data[DWAPB_MAX_PORTS];
u32 dir[DWAPB_MAX_PORTS];
u32 ext[DWAPB_MAX_PORTS];
u32 int_en;
u32 int_mask;
u32 int_type;
u32 int_pol;
u32 int_deb;
} dwapb_context;
Since only portA can support irq, and the irq related registers are only for portA. Comparing to allocate for each port
dynamically, it is more directly and easy to understand.
> + dwapb_write(gpio, GPIO_SWPORTA_DR, saved_regs.data);
> + dwapb_write(gpio, GPIO_SWPORTA_DDR, saved_regs.dir);
>
> And port B, C, D?
>
> This looks like a crude hack.
I will add port B, C, D.
>
> Yours,
> Linus Walleij
Powered by blists - more mailing lists