Message ID | 1310381866-25584-1-git-send-email-dg@emlix.com |
---|---|
State | Accepted |
Headers | show |
On Mon, 11 Jul 2011 12:57:46 +0200 Daniel Gl__ckner <dg@emlix.com> wrote: > As the comment explains, the intention of the code is to clear the > OMAP_RTC_CTRL_MODE_12_24 bit, but instead it only clears the > OMAP_RTC_CTRL_SPLIT and OMAP_RTC_CTRL_AUTO_COMP bits, which should be > kept. OMAP_RTC_CTRL_DISABLE, OMAP_RTC_CTRL_SET_32_COUNTER, > OMAP_RTC_CTRL_TEST, and OMAP_RTC_CTRL_ROUND_30S are also better off > being cleared. > > Signed-off-by: Daniel Gl__ckner <dg@emlix.com> > --- > drivers/rtc/rtc-omap.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c > index bcae8dd..7789002 100644 > --- a/drivers/rtc/rtc-omap.c > +++ b/drivers/rtc/rtc-omap.c > @@ -368,7 +368,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev) > pr_info("%s: already running\n", pdev->name); > > /* force to 24 hour mode */ > - new_ctrl = reg & ~(OMAP_RTC_CTRL_SPLIT|OMAP_RTC_CTRL_AUTO_COMP); > + new_ctrl = reg & (OMAP_RTC_CTRL_SPLIT|OMAP_RTC_CTRL_AUTO_COMP); > new_ctrl |= OMAP_RTC_CTRL_STOP; > > /* BOARD-SPECIFIC CUSTOMIZATION CAN GO HERE: Decisions need to be made about which kernel version(s) this should be merged into. To make and support those decisions we need to know the user-visible effects of the bug. But the changelog is silent on this important thing. What were the user-visible effects of the bug?
On 07/27/2011 11:19 PM, Andrew Morton wrote: > On Mon, 11 Jul 2011 12:57:46 +0200 > Daniel Gl__ckner <dg@emlix.com> wrote: > >> As the comment explains, the intention of the code is to clear the >> OMAP_RTC_CTRL_MODE_12_24 bit, but instead it only clears the >> OMAP_RTC_CTRL_SPLIT and OMAP_RTC_CTRL_AUTO_COMP bits, which should be >> kept. OMAP_RTC_CTRL_DISABLE, OMAP_RTC_CTRL_SET_32_COUNTER, >> OMAP_RTC_CTRL_TEST, and OMAP_RTC_CTRL_ROUND_30S are also better off >> being cleared. > What were the user-visible effects of the bug? The contents of the control register is undefined after a complete power loss. On our board the RTC has been observed to sometimes power up with the OMAP_RTC_CTRL_SET_32_COUNTER bit being set, which stops the clock. Daniel
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c index bcae8dd..7789002 100644 --- a/drivers/rtc/rtc-omap.c +++ b/drivers/rtc/rtc-omap.c @@ -368,7 +368,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev) pr_info("%s: already running\n", pdev->name); /* force to 24 hour mode */ - new_ctrl = reg & ~(OMAP_RTC_CTRL_SPLIT|OMAP_RTC_CTRL_AUTO_COMP); + new_ctrl = reg & (OMAP_RTC_CTRL_SPLIT|OMAP_RTC_CTRL_AUTO_COMP); new_ctrl |= OMAP_RTC_CTRL_STOP; /* BOARD-SPECIFIC CUSTOMIZATION CAN GO HERE:
As the comment explains, the intention of the code is to clear the OMAP_RTC_CTRL_MODE_12_24 bit, but instead it only clears the OMAP_RTC_CTRL_SPLIT and OMAP_RTC_CTRL_AUTO_COMP bits, which should be kept. OMAP_RTC_CTRL_DISABLE, OMAP_RTC_CTRL_SET_32_COUNTER, OMAP_RTC_CTRL_TEST, and OMAP_RTC_CTRL_ROUND_30S are also better off being cleared. Signed-off-by: Daniel Glöckner <dg@emlix.com> --- drivers/rtc/rtc-omap.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)