[PATCH v3 00/10] Fix DSI host idx detection on HW revision clash

From: Konrad Dybcio
Date: Tue Mar 07 2023 - 08:01:53 EST


v2 -> v3:
- Merge with [1], I should have done that earlier..
- Squash 6115 compatible patches into one
- Pick up tags (except Rob's ack in 6115 compatible addition, as it was changed)
- Use b4 (sorry if you got an incomplete set of messages before..)

[1] https://lore.kernel.org/linux-arm-msm/145066db-5723-6baa-237d-7c2b8fd476d9@xxxxxxxxxx/
v2: https://lore.kernel.org/linux-arm-msm/20230213121012.1768296-1-konrad.dybcio@xxxxxxxxxx/

v1 -> v2:
- squash the 2d-array-ification and fixing up the logic into one patch
- drop num_variants, loop over VARIANTS_MAX*DSI_MAX unconditionally
- drop inadequate Fixes: tags
- pick up rbs

v1: https://lore.kernel.org/linux-arm-msm/20230211115110.1462920-1-konrad.dybcio@xxxxxxxxxx/

Some DSI host versions are implemented on multiple SoCs which use
vastly different register maps. This messes with our current
assumptions of being able to map {dsi0, dsi1} to {reg0, reg1}.
Solve that by adding a way of specifying multiple sets of base
registers and try comparing them against the register specified in DT
until we find a match.

This removes the need for the QCM2290-specific compatible which was
used in the SM6115 DT (which uses DSIv2.4.1, just like SC7180).
The series also takes care of that.

Tested on SM6115P Lenovo Tab P11 and SM8350 PDX215

Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
---
Konrad Dybcio (10):
dt-bindings: display/msm: dsi-controller-main: Fix deprecated QCM2290 compatible
drm/msm/dsi: Get rid of msm_dsi_config::num_dsi
drm/msm/dsi: Fix DSI index detection when version clash occurs
drm/msm/dsi: dsi_cfg: Deduplicate identical structs
drm/msm/dsi: dsi_cfg: Merge SC7180 config into SDM845
drm/msm/dsi: Switch the QCM2290-specific compatible to index autodetection
drm/msm/dsi: Remove custom DSI config handling
dt-bindings: display/msm: dsi-controller-main: Fix deprecated compatible
dt-bindings: display/msm: dsi-controller-main: Add SM6115
arm64: dts: qcom: sm6115: Use the correct DSI compatible

.../bindings/display/msm/dsi-controller-main.yaml | 6 +-
.../bindings/display/msm/qcom,sm6115-mdss.yaml | 8 +-
arch/arm64/boot/dts/qcom/sm6115.dtsi | 2 +-
drivers/gpu/drm/msm/dsi/dsi.c | 6 +-
drivers/gpu/drm/msm/dsi/dsi_cfg.c | 161 ++++++++-------------
drivers/gpu/drm/msm/dsi/dsi_cfg.h | 6 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 14 +-
7 files changed, 82 insertions(+), 121 deletions(-)
---
base-commit: dc837c1a5137a8cf2e9432c1891392b6a66f4d8d
change-id: 20230307-topic-dsi_qcm-5cd03c230f8f

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