[PATCH v2 0/4] Retrieve information about DDR from SMEM

From: Konrad Dybcio
Date: Thu Apr 10 2025 - 13:47:50 EST


SMEM allows the OS to retrieve information about the DDR memory.
Among that information, is a semi-magic value called 'HBB', or Highest
Bank address Bit, which multimedia drivers (for hardware like Adreno
and MDSS) must retrieve in order to program the IP blocks correctly.

This series introduces an API to retrieve that value, uses it in the
aforementioned programming sequences and exposes available DDR
frequencies in debugfs (to e.g. pass to aoss_qmp debugfs). More
information can be exposed in the future, as needed.

Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
---
Changes in v2:
- Avoid checking for < 0 on unsigned types
- Overwrite Adreno UBWC data to keep the data shared with userspace
coherent with what's programmed into the hardware
- Call get_hbb() in msm_mdss_enable() instead of all UBWC setup
branches separately
- Pick up Bjorn's rb on patch 1
- Link to v1: https://lore.kernel.org/r/20250409-topic-smem_dramc-v1-0-94d505cd5593@xxxxxxxxxxxxxxxx

---
Konrad Dybcio (4):
soc: qcom: Expose DDR data from SMEM
drm/msm/a5xx: Get HBB dynamically, if available
drm/msm/a6xx: Get HBB dynamically, if available
drm/msm/mdss: Get HBB dynamically, if available

drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 12 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 15 +-
drivers/gpu/drm/msm/msm_mdss.c | 30 ++--
drivers/soc/qcom/Makefile | 3 +-
drivers/soc/qcom/smem.c | 14 +-
drivers/soc/qcom/smem.h | 9 ++
drivers/soc/qcom/smem_dramc.c | 287 ++++++++++++++++++++++++++++++++++
include/linux/soc/qcom/smem.h | 4 +
8 files changed, 360 insertions(+), 14 deletions(-)
---
base-commit: 46086739de22d72319e37c37a134d32db52e1c5c
change-id: 20250409-topic-smem_dramc-6467187ac865

Best regards,
--
Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>