[PATCH] rtc: mpfs: Remove printing of stray CR
Conor.Dooley at microchip.com
Conor.Dooley at microchip.com
Tue Aug 16 10:27:51 PDT 2022
Hey Geert, thanks for the patch.
On 16/08/2022 15:18, Geert Uytterhoeven wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> During boot, the driver prints out a stray carriage return character.
> Remove it, together with the preceding space character.
>
> While at it, change prescaler to "unsigned long", as returned by
> clk_get_rate(), to avoid truncating very large clock rates, and update
> the format specifiers.
If you manage to into Linux with a reference clock that high
let me know ASAP ;)
>
> Fixes: 0b31d703598dc199 ("rtc: Add driver for Microchip PolarFire SoC")
> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
> ---
> Apparently updating the RTC when Debian userspace starts fails, causing
> an infinite stream of:
>
> mpfs_rtc 20124000.rtc: timed out uploading time to rtc
>
> Increasing UPLOAD_TIMEOUT_US from 50 to 50000 doesn't help.
I didn't see this once during development, nor when I tested before
I left work today. Tested when I got home, happened once the first
time I tried it & never saw it again after that...
I'll take a look this week and see if I can figure out a cause.
As I mentioned on IRC, I wondered if there was an interaction between
the HSS you're running & the reset controller series that you applied.
I looked back at the the HSS, and there was a point where it did not
take the RTC out of reset - but that predates the version you have
(0.99.16) by over 6 months.
I would still be quite interested in seeing if it repro's without
the reset series.
> ---
> drivers/rtc/rtc-mpfs.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/rtc/rtc-mpfs.c b/drivers/rtc/rtc-mpfs.c
> index f14d1925e0c94dfb..944ad10365164c4d 100644
> --- a/drivers/rtc/rtc-mpfs.c
> +++ b/drivers/rtc/rtc-mpfs.c
> @@ -233,7 +233,7 @@ static int mpfs_rtc_probe(struct platform_device *pdev)
> {
> struct mpfs_rtc_dev *rtcdev;
> struct clk *clk;
> - u32 prescaler;
> + unsigned long prescaler;
> int wakeup_irq, ret;
>
> rtcdev = devm_kzalloc(&pdev->dev, sizeof(struct mpfs_rtc_dev), GFP_KERNEL);
> @@ -275,14 +275,13 @@ static int mpfs_rtc_probe(struct platform_device *pdev)
>
> /* prescaler hardware adds 1 to reg value */
> prescaler = clk_get_rate(devm_clk_get(&pdev->dev, "rtcref")) - 1;
> -
> if (prescaler > MAX_PRESCALER_COUNT) {
> - dev_dbg(&pdev->dev, "invalid prescaler %d\n", prescaler);
> + dev_dbg(&pdev->dev, "invalid prescaler %lu\n", prescaler);
> return -EINVAL;
> }
>
> writel(prescaler, rtcdev->base + PRESCALER_REG);
> - dev_info(&pdev->dev, "prescaler set to: 0x%X \r\n", prescaler);
> + dev_info(&pdev->dev, "prescaler set to: %lu\n", prescaler);
TBQH, this does not need to be a dev_info() print. I don't think it
provides any value to a regular user.
Either way:
Reviewed-by: Conor Dooley <conor.dooley at microchip.com>
Thanks again,
Conor.
>
> device_init_wakeup(&pdev->dev, true);
> ret = dev_pm_set_wake_irq(&pdev->dev, wakeup_irq);
> --
> 2.25.1
>
More information about the linux-riscv
mailing list