MC SID and Broadbast channel register access is restricted for Guest VM. But the Tegra MC driver is considering both these regions as mandatory and causes error on access. Change that to consider both the regions as optional in SoC's from Tegra186 onwards. Then skip access to the restricted registers from Guest if its region is not present in Guest DT and hence not mapped. Previously, the solution in [1] was not accepted. Now, handled the problem with this alternate solution. --- v2[2] -> v3: - fix the yaml error. - add null check for ch_regs in mc_ch_readl() causing error in old SoC's - remove unused populate label reported by kernel test robot. - fix existing compile warning about length of name in tegra186_mc_probe. v1[1] -> v2: - consider broadcast channel registers also as restricted along with sid - make sid and broadcast regions optional and access if present in dt. - update the yaml file. Sumit Gupta (2): dt-bindings: make sid and broadcast reg optional memory: tegra: make sid and broadcast regions optional .../nvidia,tegra186-mc.yaml | 95 ++++++++++--------- drivers/memory/tegra/mc.c | 9 +- drivers/memory/tegra/mc.h | 22 +++-- drivers/memory/tegra/tegra186.c | 25 ++--- 4 files changed, 82 insertions(+), 69 deletions(-) [1]https://lore.kernel.org/lkml/20240206114852.8472-1-sumitg@xxxxxxxxxx/ [2]https://lore.kernel.org/lkml/20240402132626.24693-1-sumitg@xxxxxxxxxx/ -- 2.17.1