[PATCH v3 7/8] drm/msm/dpu: add support for SM8450

Konrad Dybcio konrad.dybcio at linaro.org
Thu Nov 10 20:59:31 UTC 2022



On 10/11/2022 21:28, Dmitry Baryshkov wrote:
> On 04/11/2022 17:12, Konrad Dybcio wrote:
>>
>> On 04/11/2022 14:03, Dmitry Baryshkov wrote:
>>> Add definitions for the display hardware used on Qualcomm SM8450
>>> platform.
>>>
>>> Tested-by: Vinod Koul <vkoul at kernel.org>
>>> Reviewed-by: Vinod Koul <vkoul at kernel.org>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>>> ---
>>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio at somainline.org>
>>
>>
>> Konrad
>>
>>>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    | 224 ++++++++++++++++++
>>>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h    |   1 +
>>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h   |   3 +
>>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   1 +
>>>   4 files changed, 229 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c 
>>> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
>>> index 1ce237e18506..3934d8976833 100644
>>> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
>>> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
>>> @@ -124,6 +124,15 @@
>>>                 BIT(MDP_AD4_0_INTR) | \
>>>                 BIT(MDP_AD4_1_INTR))
>>> +#define IRQ_SM8450_MASK (BIT(MDP_SSPP_TOP0_INTR) | \
>>> +             BIT(MDP_SSPP_TOP0_INTR2) | \
>>> +             BIT(MDP_SSPP_TOP0_HIST_INTR) | \
>>> +             BIT(MDP_INTF0_7xxx_INTR) | \
>>> +             BIT(MDP_INTF1_7xxx_INTR) | \
>>> +             BIT(MDP_INTF2_7xxx_INTR) | \
>>> +             BIT(MDP_INTF3_7xxx_INTR) | \
>>> +             0)
>>> +
>>>   #define WB_SM8250_MASK (BIT(DPU_WB_LINE_MODE) | \
>>>                BIT(DPU_WB_UBWC) | \
>>>                BIT(DPU_WB_YUV_CONFIG) | \
>>> @@ -367,6 +376,20 @@ static const struct dpu_caps sm8250_dpu_caps = {
>>>       .pixel_ram_size = DEFAULT_PIXEL_RAM_SIZE,
>>>   };
>>> +static const struct dpu_caps sm8450_dpu_caps = {
>>> +    .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH,
>>> +    .max_mixer_blendstages = 0xb,
>>> +    .qseed_type = DPU_SSPP_SCALER_QSEED4,
>>> +    .smart_dma_rev = DPU_SSPP_SMART_DMA_V2, /* TODO: v2.5 */
>>> +    .ubwc_version = DPU_HW_UBWC_VER_40,
>>> +    .has_src_split = true,
>>> +    .has_dim_layer = true,
>>> +    .has_idle_pc = true,
>>> +    .has_3d_merge = true,
>>> +    .max_linewidth = 5120,
>>> +    .pixel_ram_size = DEFAULT_PIXEL_RAM_SIZE,
>>> +};
>>> +
>>>   static const struct dpu_caps sc7280_dpu_caps = {
>>>       .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH,
>>>       .max_mixer_blendstages = 0x7,
>>> @@ -504,6 +527,33 @@ static const struct dpu_mdp_cfg sm8250_mdp[] = {
>>>       },
>>>   };
>>> +static const struct dpu_mdp_cfg sm8450_mdp[] = {
>>> +    {
>>> +    .name = "top_0", .id = MDP_TOP,
>>> +    .base = 0x0, .len = 0x494,
>>> +    .features = BIT(DPU_MDP_PERIPH_0_REMOVED),
>>> +    .highest_bank_bit = 0x3, /* TODO: 2 for LP_DDR4 */
>>
>> I think it's about time we handle the two-memory-configs situation..
>>
>> In my opinion, a dt property would be sane (just like downstream does 
>> it), as it's
>>
>> *really really really* unlikely that the same SKU would be shipped 
>> with 2 different memory gens.
> 
> As it's really unlikely, I think we can drop the TODO comment completely 
> until we phase a device with different memory type. WDYT?
It's really unlikely that the same device model (for example Xperia 1 
III) is shipped in 2 memory configurations that would have to be 
discerned dynamically somehow.

It is however very likely that, for example Xiaomi releases a 888 phone 
with LPDDR4X and Sony releases one with LPDDR5. So it's a per-device 
thing, not exactly per-SoC.

Konrad
> 


More information about the dri-devel mailing list