Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PM / devfreq: rockchip-dfi: Handle LPDDR2 correctly

According to the downstream driver the DDRMON_CTRL_LPDDR23 bit must be
set for both LPDDR2 and LPDDR3. Add the missing LPDDR2 case and while
at it turn the if/else if/else into switch/case which makes it easier
to read.

Link: https://lore.kernel.org/all/20231018061714.3553817-12-s.hauer@pengutronix.de/
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>

authored by

Sascha Hauer and committed by
Chanwoo Choi
038ff6f5 076b0597

+9 -2
+9 -2
drivers/devfreq/event/rockchip-dfi.c
··· 83 83 DDRMON_CTRL_HARDWARE_EN), dfi_regs + DDRMON_CTRL); 84 84 85 85 /* set ddr type to dfi */ 86 - if (dfi->ddr_type == ROCKCHIP_DDRTYPE_LPDDR3) 86 + switch (dfi->ddr_type) { 87 + case ROCKCHIP_DDRTYPE_LPDDR2: 88 + case ROCKCHIP_DDRTYPE_LPDDR3: 87 89 writel_relaxed(HIWORD_UPDATE(DDRMON_CTRL_LPDDR23, DDRMON_CTRL_DDR_TYPE_MASK), 88 90 dfi_regs + DDRMON_CTRL); 89 - else if (dfi->ddr_type == ROCKCHIP_DDRTYPE_LPDDR4) 91 + break; 92 + case ROCKCHIP_DDRTYPE_LPDDR4: 90 93 writel_relaxed(HIWORD_UPDATE(DDRMON_CTRL_LPDDR4, DDRMON_CTRL_DDR_TYPE_MASK), 91 94 dfi_regs + DDRMON_CTRL); 95 + break; 96 + default: 97 + break; 98 + } 92 99 93 100 /* enable count, use software mode */ 94 101 writel_relaxed(HIWORD_UPDATE(DDRMON_CTRL_SOFTWARE_EN, DDRMON_CTRL_SOFTWARE_EN),