[PATCH] NUC900/rtc: change the waiting for device ready implement
Andrew Morton
akpm at linux-foundation.org
Tue Jun 1 18:43:24 EDT 2010
On Thu, 27 May 2010 14:59:31 +0800
Wan ZongShun <mcuos.com at gmail.com> wrote:
> Dear Andrew,
>
> This patch is only to change the waiting for device ready implement
> for winbond nuc900 platform.
>
It's not very helpful to only say "I changed it". _why_ did you change
it? What change did you make? What was wrong with the old code and
what's better about the new code?
> --- a/drivers/rtc/rtc-nuc900.c
> +++ b/drivers/rtc/rtc-nuc900.c
> @@ -85,22 +85,21 @@ static irqreturn_t nuc900_rtc_interrupt(int irq, void *_rtc)
>
> static int *check_rtc_access_enable(struct nuc900_rtc *nuc900_rtc)
> {
> - unsigned int i;
> + unsigned int i, timeout = 0x1000;
> __raw_writel(INIRRESET, nuc900_rtc->rtc_reg + REG_RTC_INIR);
>
> mdelay(10);
>
> __raw_writel(AERPOWERON, nuc900_rtc->rtc_reg + REG_RTC_AER);
>
> - for (i = 0; i < 1000; i++) {
> - if (__raw_readl(nuc900_rtc->rtc_reg + REG_RTC_AER) & AERRWENB)
> - return 0;
> - }
> + while (!(__raw_readl(nuc900_rtc->rtc_reg + REG_RTC_AER) & AERRWENB)
> + && timeout--)
> + mdelay(1);
>
> - if ((__raw_readl(nuc900_rtc->rtc_reg + REG_RTC_AER) & AERRWENB) == 0x0)
> - return ERR_PTR(-ENODEV);
> + if (!timeout)
> + return ERR_PTR(-EPERM);
>
> - return ERR_PTR(-EPERM);
> + return 0;
> }
I can see that the patch makes two changes: it adds an mdelay(1) to the
polling loop and it changes the return value from ENODEV to EPERM if
the loop timed out.
But I don't have the faintest idea _why_ the changes were made!
So. I merged the patch without a changelog. Please send a changelog
for this patch which permits others to understand the change.
More information about the linux-arm-kernel
mailing list