From patchwork Tue Feb 5 12:50:12 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: rtc: pl031: restore ST variant functionality X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 218256 Message-Id: <1360068612-30592-1-git-send-email-linus.walleij@stericsson.com> To: Andrew Morton Cc: Alessandro Zummo , , Anmar Oueja , Linus Walleij , Haojian Zhuang , Mian Yousaf KAUKAB , Srinidhi Kasagar , Date: Tue, 5 Feb 2013 13:50:12 +0100 From: Linus Walleij List-Id: From: Linus Walleij The patch titled: "drivers/rtc/rtc-pl031.c: fix the missing operation on enable" accidentally broke the ST variants of PL031. The bit that is being poked as "clockwatch" enable bit for the ST variants does the work of bit 0 on this variant. Bit 0 is used for a clock divider on the ST variants, and setting it to 1 will affect timekeeping in a real bad way. Cc: Haojian Zhuang Cc: Mian Yousaf KAUKAB Cc: Srinidhi Kasagar Cc: Alessandro Zummo Cc: stable@vger.kernel.org Signed-off-by: Linus Walleij Acked-by: Haojian Zhuang --- drivers/rtc/rtc-pl031.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c index fe467c3..8900ea7 100644 --- a/drivers/rtc/rtc-pl031.c +++ b/drivers/rtc/rtc-pl031.c @@ -350,7 +350,9 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id) /* Enable the clockwatch on ST Variants */ if (vendor->clockwatch) data |= RTC_CR_CWEN; - writel(data | RTC_CR_EN, ldata->base + RTC_CR); + else + data |= RTC_CR_EN; + writel(data, ldata->base + RTC_CR); /* * On ST PL031 variants, the RTC reset value does not provide correct