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

Configure Feed

Select the types of activity you want to include in your feed.

soc: mediatek: mtk-dvfsrc: Write bandwidth to EMI DDR if present

In preparation for adding support for DVFSRC Version 4, add a new
`has_emi_ddr` member to struct dvfsrc_soc_data: if true, write the
DRAM bandwidth both to the BW_AVG and to the newly defined EMI_BW
register, present only on DVFSRC v4.

Currently supported SoCs will not use this, as has_emi_ddr is left
out from their platform data, hence reading false.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

+5
+5
drivers/soc/mediatek/mtk-dvfsrc.c
··· 72 72 73 73 struct dvfsrc_soc_data { 74 74 const int *regs; 75 + const bool has_emi_ddr; 75 76 const struct dvfsrc_opp_desc *opps_desc; 76 77 u32 (*calc_dram_bw)(struct mtk_dvfsrc *dvfsrc, int type, u64 bw); 77 78 u32 (*get_target_level)(struct mtk_dvfsrc *dvfsrc); ··· 108 107 DVFSRC_SW_BW, 109 108 DVFSRC_SW_PEAK_BW, 110 109 DVFSRC_SW_HRT_BW, 110 + DVFSRC_SW_EMI_BW, 111 111 DVFSRC_VCORE, 112 112 DVFSRC_REGS_MAX, 113 113 }; ··· 294 292 new_bw = max(new_bw, min_bw); 295 293 296 294 dvfsrc_writel(dvfsrc, reg, new_bw); 295 + 296 + if (type == DVFSRC_BW_AVG && dvfsrc->dvd->has_emi_ddr) 297 + dvfsrc_writel(dvfsrc, DVFSRC_SW_EMI_BW, bw); 297 298 } 298 299 299 300 static void dvfsrc_set_dram_bw_v1(struct mtk_dvfsrc *dvfsrc, u64 bw)