clocksource/drivers/sh_cmt: Don't use CMTOUT_IE with R-Car Gen2/3
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Tue, 9 Mar 2021 09:44:48 +0000 (10:44 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 8 Apr 2021 11:24:16 +0000 (13:24 +0200)
CMTOUT_IE is only supported for older SoCs. Newer SoCs shall not set
this bit. So, add a version check.

Reported-by: Phong Hoang <phong.hoang.wz@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210309094448.31823-1-wsa+renesas@sang-engineering.com
drivers/clocksource/sh_cmt.c

index c98f885..d7ed99f 100644 (file)
@@ -339,8 +339,9 @@ static int sh_cmt_enable(struct sh_cmt_channel *ch)
                sh_cmt_write_cmcsr(ch, SH_CMT16_CMCSR_CMIE |
                                   SH_CMT16_CMCSR_CKS512);
        } else {
-               sh_cmt_write_cmcsr(ch, SH_CMT32_CMCSR_CMM |
-                                  SH_CMT32_CMCSR_CMTOUT_IE |
+               u32 cmtout = ch->cmt->info->model <= SH_CMT_48BIT ?
+                             SH_CMT32_CMCSR_CMTOUT_IE : 0;
+               sh_cmt_write_cmcsr(ch, cmtout | SH_CMT32_CMCSR_CMM |
                                   SH_CMT32_CMCSR_CMR_IRQ |
                                   SH_CMT32_CMCSR_CKS_RCLK8);
        }