All of lore.kernel.org
 help / color / mirror / Atom feed
From: mtk14576 <ran.bi@mediatek.com>
To: Sean Wang <sean.wang@kernel.org>
Cc: <stable@vger.kernel.org>,
	Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>,
	Lee Jones <lee.jones@linaro.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Eddie Huang <eddie.huang@mediatek.com>,
	<linux-rtc@vger.kernel.org>, <devicetree@vger.kernel.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	srv_heupstream <srv_heupstream@mediatek.com>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Sean Wang <sean.wang@mediatek.com>,
	<linux-kernel@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	<linux-mediatek@lists.infradead.org>,
	Mark Rutland <mark.rutland@arm.com>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 8/9] rtc: mt6397: fix alarm register overwrite
Date: Thu, 14 Mar 2019 10:46:21 +0800	[thread overview]
Message-ID: <1552531581.18390.8.camel@mhfsdcap03> (raw)
In-Reply-To: <CAGp9Lzq4D56PbivbHkQd41-TCoGACTiBqLz+Jyiqiog=YMvEbQ@mail.gmail.com>

Hi,

On Mon, 2019-03-11 at 13:50 -0700, Sean Wang wrote:
> Hi,
> 
> On Sun, Mar 10, 2019 at 8:49 PM Hsin-Hsiung Wang
> <hsin-hsiung.wang@mediatek.com> wrote:
> >
> > From: Ran Bi <ran.bi@mediatek.com>
> >
> > Alarm registers high byte was reserved for other functions.
> > This add mask in alarm registers operation functions.
> > This also fix error condition in interrupt handler.
> >
> > Fixes: fc2979118f3f ("rtc: mediatek: Add MT6397 RTC driver")
> >
> 
> add a  Cc: stable@vger.kernel.org  here to apply to all stable kernels
> for the critical fixup patch.
> 
> > Signed-off-by: Ran Bi <ran.bi@mediatek.com>
> > ---
> >  drivers/rtc/rtc-mt6397.c | 47 +++++++++++++++++++++++++++++++++--------------
> >  1 file changed, 33 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
> > index e9a25ec..f85f1fc 100644
> > --- a/drivers/rtc/rtc-mt6397.c
> > +++ b/drivers/rtc/rtc-mt6397.c
> > @@ -55,6 +55,14 @@
> >
> >  #define RTC_AL_SEC             0x0018
> >
> > +#define RTC_AL_SEC_MASK                0x003f
> > +#define RTC_AL_MIN_MASK                0x003f
> > +#define RTC_AL_HOU_MASK                0x001f
> > +#define RTC_AL_DOM_MASK                0x001f
> > +#define RTC_AL_DOW_MASK                0x0007
> > +#define RTC_AL_MTH_MASK                0x000f
> > +#define RTC_AL_YEA_MASK                0x007f
> > +
> >  #define RTC_PDN2               0x002e
> >  #define RTC_PDN2_PWRON_ALARM   BIT(4)
> >
> > @@ -111,7 +119,7 @@ static irqreturn_t mtk_rtc_irq_handler_thread(int irq, void *data)
> >                 irqen = irqsta & ~RTC_IRQ_EN_AL;
> >                 mutex_lock(&rtc->lock);
> >                 if (regmap_write(rtc->regmap, rtc->addr_base + RTC_IRQ_EN,
> > -                                irqen) < 0)
> > +                                irqen) == 0)
> >                         mtk_rtc_write_trigger(rtc);
> >                 mutex_unlock(&rtc->lock);
> >
> > @@ -233,12 +241,12 @@ static int mtk_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         alm->pending = !!(pdn2 & RTC_PDN2_PWRON_ALARM);
> >         mutex_unlock(&rtc->lock);
> >
> > -       tm->tm_sec = data[RTC_OFFSET_SEC];
> > -       tm->tm_min = data[RTC_OFFSET_MIN];
> > -       tm->tm_hour = data[RTC_OFFSET_HOUR];
> > -       tm->tm_mday = data[RTC_OFFSET_DOM];
> > -       tm->tm_mon = data[RTC_OFFSET_MTH];
> > -       tm->tm_year = data[RTC_OFFSET_YEAR];
> > +       tm->tm_sec = data[RTC_OFFSET_SEC] & RTC_AL_SEC_MASK;
> > +       tm->tm_min = data[RTC_OFFSET_MIN] & RTC_AL_MIN_MASK;
> > +       tm->tm_hour = data[RTC_OFFSET_HOUR] & RTC_AL_HOU_MASK;
> > +       tm->tm_mday = data[RTC_OFFSET_DOM] & RTC_AL_DOM_MASK;
> > +       tm->tm_mon = data[RTC_OFFSET_MTH] & RTC_AL_MTH_MASK;
> > +       tm->tm_year = data[RTC_OFFSET_YEAR] & RTC_AL_YEA_MASK;
> >
> >         tm->tm_year += RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon--;
> > @@ -259,14 +267,25 @@ static int mtk_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         tm->tm_year -= RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon++;
> >
> > -       data[RTC_OFFSET_SEC] = tm->tm_sec;
> > -       data[RTC_OFFSET_MIN] = tm->tm_min;
> > -       data[RTC_OFFSET_HOUR] = tm->tm_hour;
> > -       data[RTC_OFFSET_DOM] = tm->tm_mday;
> > -       data[RTC_OFFSET_MTH] = tm->tm_mon;
> > -       data[RTC_OFFSET_YEAR] = tm->tm_year;
> > -
> >         mutex_lock(&rtc->lock);
> > +       ret = regmap_bulk_read(rtc->regmap, rtc->addr_base + RTC_AL_SEC,
> > +                              data, RTC_OFFSET_COUNT);
> > +       if (ret < 0)
> > +               goto exit;
> > +
> 
> Why did we need an additional regmap_bulk_read here? I would suppose
> data[RTC_OFFSET_*] & ~(RTC_AL_*_MASK) is always equal to 0.

In bootloader, RTC init part need to operate these RTC_AL_* registers
high byte for RTC operating mode settings and data storage, while
RTC_AL_* low byte was used as alarm register here. So we need an
additional regmap_bulk_read here to keep the RTC settings correct.

> 
> It might be another fixup since change is not being mentioned in the
> git message.
> 
> > +       data[RTC_OFFSET_SEC] = ((data[RTC_OFFSET_SEC] & ~(RTC_AL_SEC_MASK)) |
> > +                               (tm->tm_sec & RTC_AL_SEC_MASK));
> > +       data[RTC_OFFSET_MIN] = ((data[RTC_OFFSET_MIN] & ~(RTC_AL_MIN_MASK)) |
> > +                               (tm->tm_min & RTC_AL_MIN_MASK));
> > +       data[RTC_OFFSET_HOUR] = ((data[RTC_OFFSET_HOUR] & ~(RTC_AL_HOU_MASK)) |
> > +                               (tm->tm_hour & RTC_AL_HOU_MASK));
> > +       data[RTC_OFFSET_DOM] = ((data[RTC_OFFSET_DOM] & ~(RTC_AL_DOM_MASK)) |
> > +                               (tm->tm_mday & RTC_AL_DOM_MASK));
> > +       data[RTC_OFFSET_MTH] = ((data[RTC_OFFSET_MTH] & ~(RTC_AL_MTH_MASK)) |
> > +                               (tm->tm_mon & RTC_AL_MTH_MASK));
> > +       data[RTC_OFFSET_YEAR] = ((data[RTC_OFFSET_YEAR] & ~(RTC_AL_YEA_MASK)) |
> > +                               (tm->tm_year & RTC_AL_YEA_MASK));
> > +
> >         if (alm->enabled) {
> >                 ret = regmap_bulk_write(rtc->regmap,
> >                                         rtc->addr_base + RTC_AL_SEC,
> > --
> > 1.9.1
> >
> >
> > _______________________________________________
> > Linux-mediatek mailing list
> > Linux-mediatek@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-mediatek



WARNING: multiple messages have this Message-ID (diff)
From: mtk14576 <ran.bi@mediatek.com>
To: Sean Wang <sean.wang@kernel.org>
Cc: stable@vger.kernel.org,
	Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>,
	Lee Jones <lee.jones@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Eddie Huang <eddie.huang@mediatek.com>,
	linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	srv_heupstream <srv_heupstream@mediatek.com>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Sean Wang <sean.wang@mediatek.com>,
	linux-kernel@vger.kernel.org, Liam Girdwood <lgirdwood@gmail.com>,
	linux-mediatek@lists.infradead.org,
	Mark Rutland <mark.rutland@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 8/9] rtc: mt6397: fix alarm register overwrite
Date: Thu, 14 Mar 2019 10:46:21 +0800	[thread overview]
Message-ID: <1552531581.18390.8.camel@mhfsdcap03> (raw)
In-Reply-To: <CAGp9Lzq4D56PbivbHkQd41-TCoGACTiBqLz+Jyiqiog=YMvEbQ@mail.gmail.com>

Hi,

On Mon, 2019-03-11 at 13:50 -0700, Sean Wang wrote:
> Hi,
> 
> On Sun, Mar 10, 2019 at 8:49 PM Hsin-Hsiung Wang
> <hsin-hsiung.wang@mediatek.com> wrote:
> >
> > From: Ran Bi <ran.bi@mediatek.com>
> >
> > Alarm registers high byte was reserved for other functions.
> > This add mask in alarm registers operation functions.
> > This also fix error condition in interrupt handler.
> >
> > Fixes: fc2979118f3f ("rtc: mediatek: Add MT6397 RTC driver")
> >
> 
> add a  Cc: stable@vger.kernel.org  here to apply to all stable kernels
> for the critical fixup patch.
> 
> > Signed-off-by: Ran Bi <ran.bi@mediatek.com>
> > ---
> >  drivers/rtc/rtc-mt6397.c | 47 +++++++++++++++++++++++++++++++++--------------
> >  1 file changed, 33 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
> > index e9a25ec..f85f1fc 100644
> > --- a/drivers/rtc/rtc-mt6397.c
> > +++ b/drivers/rtc/rtc-mt6397.c
> > @@ -55,6 +55,14 @@
> >
> >  #define RTC_AL_SEC             0x0018
> >
> > +#define RTC_AL_SEC_MASK                0x003f
> > +#define RTC_AL_MIN_MASK                0x003f
> > +#define RTC_AL_HOU_MASK                0x001f
> > +#define RTC_AL_DOM_MASK                0x001f
> > +#define RTC_AL_DOW_MASK                0x0007
> > +#define RTC_AL_MTH_MASK                0x000f
> > +#define RTC_AL_YEA_MASK                0x007f
> > +
> >  #define RTC_PDN2               0x002e
> >  #define RTC_PDN2_PWRON_ALARM   BIT(4)
> >
> > @@ -111,7 +119,7 @@ static irqreturn_t mtk_rtc_irq_handler_thread(int irq, void *data)
> >                 irqen = irqsta & ~RTC_IRQ_EN_AL;
> >                 mutex_lock(&rtc->lock);
> >                 if (regmap_write(rtc->regmap, rtc->addr_base + RTC_IRQ_EN,
> > -                                irqen) < 0)
> > +                                irqen) == 0)
> >                         mtk_rtc_write_trigger(rtc);
> >                 mutex_unlock(&rtc->lock);
> >
> > @@ -233,12 +241,12 @@ static int mtk_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         alm->pending = !!(pdn2 & RTC_PDN2_PWRON_ALARM);
> >         mutex_unlock(&rtc->lock);
> >
> > -       tm->tm_sec = data[RTC_OFFSET_SEC];
> > -       tm->tm_min = data[RTC_OFFSET_MIN];
> > -       tm->tm_hour = data[RTC_OFFSET_HOUR];
> > -       tm->tm_mday = data[RTC_OFFSET_DOM];
> > -       tm->tm_mon = data[RTC_OFFSET_MTH];
> > -       tm->tm_year = data[RTC_OFFSET_YEAR];
> > +       tm->tm_sec = data[RTC_OFFSET_SEC] & RTC_AL_SEC_MASK;
> > +       tm->tm_min = data[RTC_OFFSET_MIN] & RTC_AL_MIN_MASK;
> > +       tm->tm_hour = data[RTC_OFFSET_HOUR] & RTC_AL_HOU_MASK;
> > +       tm->tm_mday = data[RTC_OFFSET_DOM] & RTC_AL_DOM_MASK;
> > +       tm->tm_mon = data[RTC_OFFSET_MTH] & RTC_AL_MTH_MASK;
> > +       tm->tm_year = data[RTC_OFFSET_YEAR] & RTC_AL_YEA_MASK;
> >
> >         tm->tm_year += RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon--;
> > @@ -259,14 +267,25 @@ static int mtk_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         tm->tm_year -= RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon++;
> >
> > -       data[RTC_OFFSET_SEC] = tm->tm_sec;
> > -       data[RTC_OFFSET_MIN] = tm->tm_min;
> > -       data[RTC_OFFSET_HOUR] = tm->tm_hour;
> > -       data[RTC_OFFSET_DOM] = tm->tm_mday;
> > -       data[RTC_OFFSET_MTH] = tm->tm_mon;
> > -       data[RTC_OFFSET_YEAR] = tm->tm_year;
> > -
> >         mutex_lock(&rtc->lock);
> > +       ret = regmap_bulk_read(rtc->regmap, rtc->addr_base + RTC_AL_SEC,
> > +                              data, RTC_OFFSET_COUNT);
> > +       if (ret < 0)
> > +               goto exit;
> > +
> 
> Why did we need an additional regmap_bulk_read here? I would suppose
> data[RTC_OFFSET_*] & ~(RTC_AL_*_MASK) is always equal to 0.

In bootloader, RTC init part need to operate these RTC_AL_* registers
high byte for RTC operating mode settings and data storage, while
RTC_AL_* low byte was used as alarm register here. So we need an
additional regmap_bulk_read here to keep the RTC settings correct.

> 
> It might be another fixup since change is not being mentioned in the
> git message.
> 
> > +       data[RTC_OFFSET_SEC] = ((data[RTC_OFFSET_SEC] & ~(RTC_AL_SEC_MASK)) |
> > +                               (tm->tm_sec & RTC_AL_SEC_MASK));
> > +       data[RTC_OFFSET_MIN] = ((data[RTC_OFFSET_MIN] & ~(RTC_AL_MIN_MASK)) |
> > +                               (tm->tm_min & RTC_AL_MIN_MASK));
> > +       data[RTC_OFFSET_HOUR] = ((data[RTC_OFFSET_HOUR] & ~(RTC_AL_HOU_MASK)) |
> > +                               (tm->tm_hour & RTC_AL_HOU_MASK));
> > +       data[RTC_OFFSET_DOM] = ((data[RTC_OFFSET_DOM] & ~(RTC_AL_DOM_MASK)) |
> > +                               (tm->tm_mday & RTC_AL_DOM_MASK));
> > +       data[RTC_OFFSET_MTH] = ((data[RTC_OFFSET_MTH] & ~(RTC_AL_MTH_MASK)) |
> > +                               (tm->tm_mon & RTC_AL_MTH_MASK));
> > +       data[RTC_OFFSET_YEAR] = ((data[RTC_OFFSET_YEAR] & ~(RTC_AL_YEA_MASK)) |
> > +                               (tm->tm_year & RTC_AL_YEA_MASK));
> > +
> >         if (alm->enabled) {
> >                 ret = regmap_bulk_write(rtc->regmap,
> >                                         rtc->addr_base + RTC_AL_SEC,
> > --
> > 1.9.1
> >
> >
> > _______________________________________________
> > Linux-mediatek mailing list
> > Linux-mediatek@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: mtk14576 <ran.bi@mediatek.com>
To: Sean Wang <sean.wang@kernel.org>
Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	srv_heupstream <srv_heupstream@mediatek.com>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Sean Wang <sean.wang@mediatek.com>,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	linux-mediatek@lists.infradead.org, stable@vger.kernel.org,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Eddie Huang <eddie.huang@mediatek.com>,
	Lee Jones <lee.jones@linaro.org>,
	Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 8/9] rtc: mt6397: fix alarm register overwrite
Date: Thu, 14 Mar 2019 10:46:21 +0800	[thread overview]
Message-ID: <1552531581.18390.8.camel@mhfsdcap03> (raw)
In-Reply-To: <CAGp9Lzq4D56PbivbHkQd41-TCoGACTiBqLz+Jyiqiog=YMvEbQ@mail.gmail.com>

Hi,

On Mon, 2019-03-11 at 13:50 -0700, Sean Wang wrote:
> Hi,
> 
> On Sun, Mar 10, 2019 at 8:49 PM Hsin-Hsiung Wang
> <hsin-hsiung.wang@mediatek.com> wrote:
> >
> > From: Ran Bi <ran.bi@mediatek.com>
> >
> > Alarm registers high byte was reserved for other functions.
> > This add mask in alarm registers operation functions.
> > This also fix error condition in interrupt handler.
> >
> > Fixes: fc2979118f3f ("rtc: mediatek: Add MT6397 RTC driver")
> >
> 
> add a  Cc: stable@vger.kernel.org  here to apply to all stable kernels
> for the critical fixup patch.
> 
> > Signed-off-by: Ran Bi <ran.bi@mediatek.com>
> > ---
> >  drivers/rtc/rtc-mt6397.c | 47 +++++++++++++++++++++++++++++++++--------------
> >  1 file changed, 33 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
> > index e9a25ec..f85f1fc 100644
> > --- a/drivers/rtc/rtc-mt6397.c
> > +++ b/drivers/rtc/rtc-mt6397.c
> > @@ -55,6 +55,14 @@
> >
> >  #define RTC_AL_SEC             0x0018
> >
> > +#define RTC_AL_SEC_MASK                0x003f
> > +#define RTC_AL_MIN_MASK                0x003f
> > +#define RTC_AL_HOU_MASK                0x001f
> > +#define RTC_AL_DOM_MASK                0x001f
> > +#define RTC_AL_DOW_MASK                0x0007
> > +#define RTC_AL_MTH_MASK                0x000f
> > +#define RTC_AL_YEA_MASK                0x007f
> > +
> >  #define RTC_PDN2               0x002e
> >  #define RTC_PDN2_PWRON_ALARM   BIT(4)
> >
> > @@ -111,7 +119,7 @@ static irqreturn_t mtk_rtc_irq_handler_thread(int irq, void *data)
> >                 irqen = irqsta & ~RTC_IRQ_EN_AL;
> >                 mutex_lock(&rtc->lock);
> >                 if (regmap_write(rtc->regmap, rtc->addr_base + RTC_IRQ_EN,
> > -                                irqen) < 0)
> > +                                irqen) == 0)
> >                         mtk_rtc_write_trigger(rtc);
> >                 mutex_unlock(&rtc->lock);
> >
> > @@ -233,12 +241,12 @@ static int mtk_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         alm->pending = !!(pdn2 & RTC_PDN2_PWRON_ALARM);
> >         mutex_unlock(&rtc->lock);
> >
> > -       tm->tm_sec = data[RTC_OFFSET_SEC];
> > -       tm->tm_min = data[RTC_OFFSET_MIN];
> > -       tm->tm_hour = data[RTC_OFFSET_HOUR];
> > -       tm->tm_mday = data[RTC_OFFSET_DOM];
> > -       tm->tm_mon = data[RTC_OFFSET_MTH];
> > -       tm->tm_year = data[RTC_OFFSET_YEAR];
> > +       tm->tm_sec = data[RTC_OFFSET_SEC] & RTC_AL_SEC_MASK;
> > +       tm->tm_min = data[RTC_OFFSET_MIN] & RTC_AL_MIN_MASK;
> > +       tm->tm_hour = data[RTC_OFFSET_HOUR] & RTC_AL_HOU_MASK;
> > +       tm->tm_mday = data[RTC_OFFSET_DOM] & RTC_AL_DOM_MASK;
> > +       tm->tm_mon = data[RTC_OFFSET_MTH] & RTC_AL_MTH_MASK;
> > +       tm->tm_year = data[RTC_OFFSET_YEAR] & RTC_AL_YEA_MASK;
> >
> >         tm->tm_year += RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon--;
> > @@ -259,14 +267,25 @@ static int mtk_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
> >         tm->tm_year -= RTC_MIN_YEAR_OFFSET;
> >         tm->tm_mon++;
> >
> > -       data[RTC_OFFSET_SEC] = tm->tm_sec;
> > -       data[RTC_OFFSET_MIN] = tm->tm_min;
> > -       data[RTC_OFFSET_HOUR] = tm->tm_hour;
> > -       data[RTC_OFFSET_DOM] = tm->tm_mday;
> > -       data[RTC_OFFSET_MTH] = tm->tm_mon;
> > -       data[RTC_OFFSET_YEAR] = tm->tm_year;
> > -
> >         mutex_lock(&rtc->lock);
> > +       ret = regmap_bulk_read(rtc->regmap, rtc->addr_base + RTC_AL_SEC,
> > +                              data, RTC_OFFSET_COUNT);
> > +       if (ret < 0)
> > +               goto exit;
> > +
> 
> Why did we need an additional regmap_bulk_read here? I would suppose
> data[RTC_OFFSET_*] & ~(RTC_AL_*_MASK) is always equal to 0.

In bootloader, RTC init part need to operate these RTC_AL_* registers
high byte for RTC operating mode settings and data storage, while
RTC_AL_* low byte was used as alarm register here. So we need an
additional regmap_bulk_read here to keep the RTC settings correct.

> 
> It might be another fixup since change is not being mentioned in the
> git message.
> 
> > +       data[RTC_OFFSET_SEC] = ((data[RTC_OFFSET_SEC] & ~(RTC_AL_SEC_MASK)) |
> > +                               (tm->tm_sec & RTC_AL_SEC_MASK));
> > +       data[RTC_OFFSET_MIN] = ((data[RTC_OFFSET_MIN] & ~(RTC_AL_MIN_MASK)) |
> > +                               (tm->tm_min & RTC_AL_MIN_MASK));
> > +       data[RTC_OFFSET_HOUR] = ((data[RTC_OFFSET_HOUR] & ~(RTC_AL_HOU_MASK)) |
> > +                               (tm->tm_hour & RTC_AL_HOU_MASK));
> > +       data[RTC_OFFSET_DOM] = ((data[RTC_OFFSET_DOM] & ~(RTC_AL_DOM_MASK)) |
> > +                               (tm->tm_mday & RTC_AL_DOM_MASK));
> > +       data[RTC_OFFSET_MTH] = ((data[RTC_OFFSET_MTH] & ~(RTC_AL_MTH_MASK)) |
> > +                               (tm->tm_mon & RTC_AL_MTH_MASK));
> > +       data[RTC_OFFSET_YEAR] = ((data[RTC_OFFSET_YEAR] & ~(RTC_AL_YEA_MASK)) |
> > +                               (tm->tm_year & RTC_AL_YEA_MASK));
> > +
> >         if (alm->enabled) {
> >                 ret = regmap_bulk_write(rtc->regmap,
> >                                         rtc->addr_base + RTC_AL_SEC,
> > --
> > 1.9.1
> >
> >
> > _______________________________________________
> > Linux-mediatek mailing list
> > Linux-mediatek@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-mediatek



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-03-14  2:46 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-11  3:46 [PATCH v2 0/9] Add Support for MediaTek PMIC MT6358 Hsin-Hsiung Wang
2019-03-11  3:46 ` Hsin-Hsiung Wang
2019-03-11  3:46 ` Hsin-Hsiung Wang
2019-03-11  3:46 ` [PATCH v2 1/9] mfd: mt6397: clean up code Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11 19:01   ` Sean Wang
2019-03-11 19:01     ` Sean Wang
2019-03-11 19:01     ` Sean Wang
2019-03-12 14:49     ` Matthias Brugger
2019-03-12 14:49       ` Matthias Brugger
2019-04-02  6:48   ` Lee Jones
2019-04-02  6:48     ` Lee Jones
2019-03-11  3:46 ` [PATCH v2 2/9] mfd: mt6397: extract irq related code from core driver Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11 19:10   ` Sean Wang
2019-03-11 19:10     ` Sean Wang
2019-03-11 19:10     ` Sean Wang
2019-03-14 23:25   ` Nicolas Boichat
2019-03-14 23:25     ` Nicolas Boichat
2019-03-14 23:25     ` Nicolas Boichat
2019-03-11  3:46 ` [PATCH v2 3/9] dt-bindings: mfd: Add compatible for the MediaTek MT6358 PMIC Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11 19:19   ` Sean Wang
2019-03-11 19:19     ` Sean Wang
2019-03-11 19:19     ` Sean Wang
2019-03-11 22:06     ` Rob Herring
2019-03-11 22:06       ` Rob Herring
2019-03-12  2:25       ` Sean Wang
2019-03-12  2:25         ` Sean Wang
2019-04-02  7:00   ` Lee Jones
2019-04-02  7:00     ` Lee Jones
2019-03-11  3:46 ` [PATCH v2 4/9] regulator: Add document for MT6358 regulator Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11 19:43   ` Sean Wang
2019-03-11 19:43     ` Sean Wang
2019-03-11  3:46 ` [PATCH v2 5/9] mfd: Add support for the MediaTek MT6358 PMIC Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  8:22   ` Nicolas Boichat
2019-03-11  8:22     ` Nicolas Boichat
2019-03-11  8:22     ` Nicolas Boichat
2019-03-11 20:05   ` Sean Wang
2019-03-11 20:05     ` Sean Wang
2019-03-15  7:10   ` Nicolas Boichat
2019-03-15  7:10     ` Nicolas Boichat
2019-03-15  7:10     ` Nicolas Boichat
2019-03-15  7:25     ` Claire Chang
2019-03-15  7:37     ` Claire Chang
2019-03-15  7:37       ` Claire Chang
2019-03-15  7:37       ` Claire Chang
2019-03-11  3:46 ` [PATCH v2 6/9] regulator: mt6358: Add support for MT6358 regulator Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-13 15:01   ` Mark Brown
2019-03-13 15:01     ` Mark Brown
2019-03-11  3:46 ` [PATCH v2 7/9] arm64: dts: mt6358: add PMIC MT6358 related nodes Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11 20:23   ` Sean Wang
2019-03-11 20:23     ` Sean Wang
2019-03-11  3:46 ` [PATCH v2 8/9] rtc: mt6397: fix alarm register overwrite Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  6:05   ` Eddie Huang
2019-03-11  6:05     ` Eddie Huang
2019-03-11  6:05     ` Eddie Huang
2019-03-11 20:50   ` Sean Wang
2019-03-11 20:50     ` Sean Wang
2019-03-14  2:46     ` mtk14576 [this message]
2019-03-14  2:46       ` mtk14576
2019-03-14  2:46       ` mtk14576
2019-04-02 14:07   ` Alexandre Belloni
2019-04-02 14:07     ` Alexandre Belloni
2019-03-11  3:46 ` [PATCH v2 9/9] rtc: Add support for the MediaTek MT6358 RTC Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  3:46   ` Hsin-Hsiung Wang
2019-03-11  6:10   ` Eddie Huang
2019-03-11  6:10     ` Eddie Huang
2019-03-11  6:10     ` Eddie Huang
2019-03-21  9:51   ` Yingjoe Chen
2019-03-21  9:51     ` Yingjoe Chen
2019-03-21  9:51     ` Yingjoe Chen
2019-04-02 14:06     ` Alexandre Belloni
2019-04-02 14:06       ` Alexandre Belloni
2019-03-11 21:21 ` [PATCH v2 0/9] Add Support for MediaTek PMIC MT6358 Alexandre Belloni
2019-03-11 21:21   ` Alexandre Belloni

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=1552531581.18390.8.camel@mhfsdcap03 \
    --to=ran.bi@mediatek.com \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=eddie.huang@mediatek.com \
    --cc=hsin-hsiung.wang@mediatek.com \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sean.wang@kernel.org \
    --cc=sean.wang@mediatek.com \
    --cc=srv_heupstream@mediatek.com \
    --cc=stable@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.