Hi, On Tue, 22 Feb 2022 at 04:26, Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxx> wrote: > > There is *almost no reason* to keep separate compatibles for different > SoCs utilizing the DPU1 driver, as it checks the HW version at runtime. > > Introduce a common compatible, while not removing the old ones to keep > old DT compatibility. I don't quite like this idea. Specifying more or less exact compatibility string gives us more flexibility. Few recent usecases to mention: - qcom,mdp5 compatibility. If we had soc-specific compatibilities, we would be able to switch the drivers w/o changing the dts. With a single compatibility we would have to change the dts if we were to change one of the boards form mdp5 to dpu1. - qcom,mdss-dsi-ctrl vs qcm2290. We have to add special compat string to account for the different io addresses. If we were using soc-specific compats, it would be one from many, not one vs many usage. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxx> > --- > Bar some very very very unlikely edge cases (such as need for some random > quick being applied to one SoC from a family that shares DPU hw rev, but > not the others, there is little to no reason to keep adding compatibles > that don't mean anything. > > If this change is cool, then the question about what to do with > dt-bindings arises... > > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > index 47fe11a84a77..335018542a3a 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > @@ -1348,6 +1348,9 @@ static const struct dev_pm_ops dpu_pm_ops = { > }; > > const struct of_device_id dpu_dt_match[] = { > + { .compatible = "qcom,dpu1" }, > + > + /* Legacy compatibles for old DTs */ > { .compatible = "qcom,sdm845-dpu", }, > { .compatible = "qcom,sc7180-dpu", }, > { .compatible = "qcom,sc7280-dpu", }, > -- > 2.35.1 > -- With best wishes Dmitry