mbox series

[v2,00/16] Add CDM support for MSM writeback

Message ID 20231208050641.32582-1-quic_abhinavk@quicinc.com (mailing list archive)
Headers show
Series Add CDM support for MSM writeback | expand

Message

Abhinav Kumar Dec. 8, 2023, 5:06 a.m. UTC
Chroma Down Sampling (CDM) block is a hardware block in the DPU pipeline
which among other things has a CSC block that can convert RGB input
from the DPU to YUV data.

This block can be used with either HDMI, DP or writeback interface.

In this series, lets first add the support for CDM block to be used
with writeback and then follow-up with support for other interfaces such
as DP.

This was validated by adding support to pass custom output format to the
IGT's kms_writeback test-case, specifically only for the output dump
test-case [1].

The usage for this is:

./kms_writeback -d -f <name of the DRM YUV fmt from igt_fb>

So for NV12, this can be verified with the below command:

./kms_writeback -d -f NV12

[1] : https://patchwork.freedesktop.org/series/122125/

changes in v2:
	- rebased on top of current msm-next-lumag
	- fix commit text of some of the patches
	- move csc matrices to dpu_hw_util as they span across DPU
	- move cdm blk define to dpu_hw_catalog as its common across chipsets
	- remove bit magic in dpu_hw_cdm with relevant defines
	- use drmm_kzalloc instead of kzalloc/free
	- protect bind_pingpong_blk with core_rev check
	- drop setup_csc_data() and setup_cdwn() ops as they
	  are merged into enable()
	- protect bind_pingpong_blk with core_rev check
	- drop setup_csc_data() and setup_cdwn() ops as they
	  are merged into enable()
	- move needs_cdm to topology struct
	- call update_pending_flush_cdm even when bind_pingpong_blk
	  is not present
	- drop usage of setup_csc_data() and setup_cdwn() cdm ops
	  as they both have been merged into enable()
	- drop reduntant hw_cdm and hw_pp checks
	- drop fb related checks from dpu_encoder::atomic_mode_set()
	- introduce separate wb2_format arrays for rgb and yuv

Abhinav Kumar (16):
  drm/msm/dpu: add formats check for writeback encoder
  drm/msm/dpu: rename dpu_encoder_phys_wb_setup_cdp to match its
    functionality
  drm/msm/dpu: fix writeback programming for YUV cases
  drm/msm/dpu: move csc matrices to dpu_hw_util
  drm/msm/dpu: add cdm blocks to sc7280 dpu_hw_catalog
  drm/msm/dpu: add cdm blocks to sm8250 dpu_hw_catalog
  drm/msm/dpu: add dpu_hw_cdm abstraction for CDM block
  drm/msm/dpu: add cdm blocks to RM
  drm/msm/dpu: add support to allocate CDM from RM
  drm/msm/dpu: add CDM related logic to dpu_hw_ctl layer
  drm/msm/dpu: add support to disable CDM block during encoder cleanup
  drm/msm/dpu: add an API to setup the CDM block for writeback
  drm/msm/dpu: plug-in the cdm related bits to writeback setup
  drm/msm/dpu: reserve cdm blocks for writeback in case of YUV output
  drm/msm/dpu: introduce separate wb2_format arrays for rgb and yuv
  drm/msm/dpu: add cdm blocks to dpu snapshot

 drivers/gpu/drm/msm/Makefile                  |   1 +
 .../msm/disp/dpu1/catalog/dpu_10_0_sm8650.h   |   4 +-
 .../msm/disp/dpu1/catalog/dpu_6_0_sm8250.h    |   5 +-
 .../msm/disp/dpu1/catalog/dpu_6_2_sc7180.h    |   4 +-
 .../msm/disp/dpu1/catalog/dpu_7_2_sc7280.h    |   5 +-
 .../msm/disp/dpu1/catalog/dpu_9_0_sm8550.h    |   4 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |  37 +++
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |   5 +
 .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c   | 117 +++++++-
 .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  47 ++-
 .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h    |  13 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c    | 276 ++++++++++++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h    | 114 ++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  35 +++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  12 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h   |   7 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c   |  71 +++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h   |   8 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c     |   3 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   4 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     |  39 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  51 +++-
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   2 +
 drivers/gpu/drm/msm/msm_drv.h                 |   2 +
 25 files changed, 815 insertions(+), 52 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h

Comments

Dmitry Baryshkov Dec. 8, 2023, 12:14 p.m. UTC | #1
On Fri, 8 Dec 2023 at 07:06, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>
> Chroma Down Sampling (CDM) block is a hardware block in the DPU pipeline
> which among other things has a CSC block that can convert RGB input
> from the DPU to YUV data.

This block is more or less standard between all hw versions. I do not
expect any faults and/or issues with any of the platforms.
From what I can see, from the platforms that we do not support, it is
not available only on sm6115/qcs4290, qcm2290 and sm6375. Can we
please enable it for all the other platforms?

>
> This block can be used with either HDMI, DP or writeback interface.
>
> In this series, lets first add the support for CDM block to be used
> with writeback and then follow-up with support for other interfaces such
> as DP.
>
> This was validated by adding support to pass custom output format to the
> IGT's kms_writeback test-case, specifically only for the output dump
> test-case [1].
>
> The usage for this is:
>
> ./kms_writeback -d -f <name of the DRM YUV fmt from igt_fb>
>
> So for NV12, this can be verified with the below command:
>
> ./kms_writeback -d -f NV12
>
> [1] : https://patchwork.freedesktop.org/series/122125/
>
> changes in v2:
>         - rebased on top of current msm-next-lumag
>         - fix commit text of some of the patches
>         - move csc matrices to dpu_hw_util as they span across DPU
>         - move cdm blk define to dpu_hw_catalog as its common across chipsets
>         - remove bit magic in dpu_hw_cdm with relevant defines
>         - use drmm_kzalloc instead of kzalloc/free
>         - protect bind_pingpong_blk with core_rev check
>         - drop setup_csc_data() and setup_cdwn() ops as they
>           are merged into enable()
>         - protect bind_pingpong_blk with core_rev check
>         - drop setup_csc_data() and setup_cdwn() ops as they
>           are merged into enable()
>         - move needs_cdm to topology struct
>         - call update_pending_flush_cdm even when bind_pingpong_blk
>           is not present
>         - drop usage of setup_csc_data() and setup_cdwn() cdm ops
>           as they both have been merged into enable()
>         - drop reduntant hw_cdm and hw_pp checks
>         - drop fb related checks from dpu_encoder::atomic_mode_set()
>         - introduce separate wb2_format arrays for rgb and yuv
>
> Abhinav Kumar (16):
>   drm/msm/dpu: add formats check for writeback encoder
>   drm/msm/dpu: rename dpu_encoder_phys_wb_setup_cdp to match its
>     functionality
>   drm/msm/dpu: fix writeback programming for YUV cases
>   drm/msm/dpu: move csc matrices to dpu_hw_util
>   drm/msm/dpu: add cdm blocks to sc7280 dpu_hw_catalog
>   drm/msm/dpu: add cdm blocks to sm8250 dpu_hw_catalog
>   drm/msm/dpu: add dpu_hw_cdm abstraction for CDM block
>   drm/msm/dpu: add cdm blocks to RM
>   drm/msm/dpu: add support to allocate CDM from RM
>   drm/msm/dpu: add CDM related logic to dpu_hw_ctl layer
>   drm/msm/dpu: add support to disable CDM block during encoder cleanup
>   drm/msm/dpu: add an API to setup the CDM block for writeback
>   drm/msm/dpu: plug-in the cdm related bits to writeback setup
>   drm/msm/dpu: reserve cdm blocks for writeback in case of YUV output
>   drm/msm/dpu: introduce separate wb2_format arrays for rgb and yuv
>   drm/msm/dpu: add cdm blocks to dpu snapshot
>
>  drivers/gpu/drm/msm/Makefile                  |   1 +
>  .../msm/disp/dpu1/catalog/dpu_10_0_sm8650.h   |   4 +-
>  .../msm/disp/dpu1/catalog/dpu_6_0_sm8250.h    |   5 +-
>  .../msm/disp/dpu1/catalog/dpu_6_2_sc7180.h    |   4 +-
>  .../msm/disp/dpu1/catalog/dpu_7_2_sc7280.h    |   5 +-
>  .../msm/disp/dpu1/catalog/dpu_9_0_sm8550.h    |   4 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |  37 +++
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |   5 +
>  .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c   | 117 +++++++-
>  .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  47 ++-
>  .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h    |  13 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c    | 276 ++++++++++++++++++
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h    | 114 ++++++++
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  35 +++
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  12 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h   |   7 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c   |  71 +++++
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h   |   8 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c     |   3 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   4 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     |  39 +--
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  51 +++-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   2 +
>  drivers/gpu/drm/msm/msm_drv.h                 |   2 +
>  25 files changed, 815 insertions(+), 52 deletions(-)
>  create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c
>  create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h
>
> --
> 2.40.1
>
Abhinav Kumar Dec. 8, 2023, 5:40 p.m. UTC | #2
On 12/8/2023 4:14 AM, Dmitry Baryshkov wrote:
> On Fri, 8 Dec 2023 at 07:06, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>>
>> Chroma Down Sampling (CDM) block is a hardware block in the DPU pipeline
>> which among other things has a CSC block that can convert RGB input
>> from the DPU to YUV data.
> 
> This block is more or less standard between all hw versions. I do not
> expect any faults and/or issues with any of the platforms.
>  From what I can see, from the platforms that we do not support, it is
> not available only on sm6115/qcs4290, qcm2290 and sm6375. Can we
> please enable it for all the other platforms?
> 

Its just a validation criteria. I have only enabled it on devices which 
I have tested on and do not want to take responsibilty of the bugs 
reported on untested chipsets.

I am open to the approach of publishing a follow-up RFT for the other 
devices like you did for WB on some of the chipsets.

>>
>> This block can be used with either HDMI, DP or writeback interface.
>>
>> In this series, lets first add the support for CDM block to be used
>> with writeback and then follow-up with support for other interfaces such
>> as DP.
>>
>> This was validated by adding support to pass custom output format to the
>> IGT's kms_writeback test-case, specifically only for the output dump
>> test-case [1].
>>
>> The usage for this is:
>>
>> ./kms_writeback -d -f <name of the DRM YUV fmt from igt_fb>
>>
>> So for NV12, this can be verified with the below command:
>>
>> ./kms_writeback -d -f NV12
>>
>> [1] : https://patchwork.freedesktop.org/series/122125/
>>
>> changes in v2:
>>          - rebased on top of current msm-next-lumag
>>          - fix commit text of some of the patches
>>          - move csc matrices to dpu_hw_util as they span across DPU
>>          - move cdm blk define to dpu_hw_catalog as its common across chipsets
>>          - remove bit magic in dpu_hw_cdm with relevant defines
>>          - use drmm_kzalloc instead of kzalloc/free
>>          - protect bind_pingpong_blk with core_rev check
>>          - drop setup_csc_data() and setup_cdwn() ops as they
>>            are merged into enable()
>>          - protect bind_pingpong_blk with core_rev check
>>          - drop setup_csc_data() and setup_cdwn() ops as they
>>            are merged into enable()
>>          - move needs_cdm to topology struct
>>          - call update_pending_flush_cdm even when bind_pingpong_blk
>>            is not present
>>          - drop usage of setup_csc_data() and setup_cdwn() cdm ops
>>            as they both have been merged into enable()
>>          - drop reduntant hw_cdm and hw_pp checks
>>          - drop fb related checks from dpu_encoder::atomic_mode_set()
>>          - introduce separate wb2_format arrays for rgb and yuv
>>
>> Abhinav Kumar (16):
>>    drm/msm/dpu: add formats check for writeback encoder
>>    drm/msm/dpu: rename dpu_encoder_phys_wb_setup_cdp to match its
>>      functionality
>>    drm/msm/dpu: fix writeback programming for YUV cases
>>    drm/msm/dpu: move csc matrices to dpu_hw_util
>>    drm/msm/dpu: add cdm blocks to sc7280 dpu_hw_catalog
>>    drm/msm/dpu: add cdm blocks to sm8250 dpu_hw_catalog
>>    drm/msm/dpu: add dpu_hw_cdm abstraction for CDM block
>>    drm/msm/dpu: add cdm blocks to RM
>>    drm/msm/dpu: add support to allocate CDM from RM
>>    drm/msm/dpu: add CDM related logic to dpu_hw_ctl layer
>>    drm/msm/dpu: add support to disable CDM block during encoder cleanup
>>    drm/msm/dpu: add an API to setup the CDM block for writeback
>>    drm/msm/dpu: plug-in the cdm related bits to writeback setup
>>    drm/msm/dpu: reserve cdm blocks for writeback in case of YUV output
>>    drm/msm/dpu: introduce separate wb2_format arrays for rgb and yuv
>>    drm/msm/dpu: add cdm blocks to dpu snapshot
>>
>>   drivers/gpu/drm/msm/Makefile                  |   1 +
>>   .../msm/disp/dpu1/catalog/dpu_10_0_sm8650.h   |   4 +-
>>   .../msm/disp/dpu1/catalog/dpu_6_0_sm8250.h    |   5 +-
>>   .../msm/disp/dpu1/catalog/dpu_6_2_sc7180.h    |   4 +-
>>   .../msm/disp/dpu1/catalog/dpu_7_2_sc7280.h    |   5 +-
>>   .../msm/disp/dpu1/catalog/dpu_9_0_sm8550.h    |   4 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |  37 +++
>>   .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |   5 +
>>   .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c   | 117 +++++++-
>>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  47 ++-
>>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h    |  13 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c    | 276 ++++++++++++++++++
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h    | 114 ++++++++
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  35 +++
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  12 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h   |   7 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c   |  71 +++++
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h   |   8 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c     |   3 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   4 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     |  39 +--
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  51 +++-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   2 +
>>   drivers/gpu/drm/msm/msm_drv.h                 |   2 +
>>   25 files changed, 815 insertions(+), 52 deletions(-)
>>   create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c
>>   create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h
>>
>> --
>> 2.40.1
>>
> 
>
Dmitry Baryshkov Dec. 8, 2023, 8:49 p.m. UTC | #3
On Fri, 8 Dec 2023 at 19:40, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>
>
>
> On 12/8/2023 4:14 AM, Dmitry Baryshkov wrote:
> > On Fri, 8 Dec 2023 at 07:06, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
> >>
> >> Chroma Down Sampling (CDM) block is a hardware block in the DPU pipeline
> >> which among other things has a CSC block that can convert RGB input
> >> from the DPU to YUV data.
> >
> > This block is more or less standard between all hw versions. I do not
> > expect any faults and/or issues with any of the platforms.
> >  From what I can see, from the platforms that we do not support, it is
> > not available only on sm6115/qcs4290, qcm2290 and sm6375. Can we
> > please enable it for all the other platforms?
> >
>
> Its just a validation criteria. I have only enabled it on devices which
> I have tested on and do not want to take responsibilty of the bugs
> reported on untested chipsets.
>
> I am open to the approach of publishing a follow-up RFT for the other
> devices like you did for WB on some of the chipsets.

Sure, why not. We will be able to test it on most of the high-end platforms.
Maybe after validating it on the majority of the platforms, we can
enable it on the rest of the platforms 'by extension'. I mean, unlike
WB or VIG blocks I don't see drastic changes for CDM.

>
> >>
> >> This block can be used with either HDMI, DP or writeback interface.
> >>
> >> In this series, lets first add the support for CDM block to be used
> >> with writeback and then follow-up with support for other interfaces such
> >> as DP.
> >>
> >> This was validated by adding support to pass custom output format to the
> >> IGT's kms_writeback test-case, specifically only for the output dump
> >> test-case [1].
> >>
> >> The usage for this is:
> >>
> >> ./kms_writeback -d -f <name of the DRM YUV fmt from igt_fb>
> >>
> >> So for NV12, this can be verified with the below command:
> >>
> >> ./kms_writeback -d -f NV12
> >>
> >> [1] : https://patchwork.freedesktop.org/series/122125/
> >>
> >> changes in v2:
> >>          - rebased on top of current msm-next-lumag
> >>          - fix commit text of some of the patches
> >>          - move csc matrices to dpu_hw_util as they span across DPU
> >>          - move cdm blk define to dpu_hw_catalog as its common across chipsets
> >>          - remove bit magic in dpu_hw_cdm with relevant defines
> >>          - use drmm_kzalloc instead of kzalloc/free
> >>          - protect bind_pingpong_blk with core_rev check
> >>          - drop setup_csc_data() and setup_cdwn() ops as they
> >>            are merged into enable()
> >>          - protect bind_pingpong_blk with core_rev check
> >>          - drop setup_csc_data() and setup_cdwn() ops as they
> >>            are merged into enable()
> >>          - move needs_cdm to topology struct
> >>          - call update_pending_flush_cdm even when bind_pingpong_blk
> >>            is not present
> >>          - drop usage of setup_csc_data() and setup_cdwn() cdm ops
> >>            as they both have been merged into enable()
> >>          - drop reduntant hw_cdm and hw_pp checks
> >>          - drop fb related checks from dpu_encoder::atomic_mode_set()
> >>          - introduce separate wb2_format arrays for rgb and yuv
> >>
> >> Abhinav Kumar (16):
> >>    drm/msm/dpu: add formats check for writeback encoder
> >>    drm/msm/dpu: rename dpu_encoder_phys_wb_setup_cdp to match its
> >>      functionality
> >>    drm/msm/dpu: fix writeback programming for YUV cases
> >>    drm/msm/dpu: move csc matrices to dpu_hw_util
> >>    drm/msm/dpu: add cdm blocks to sc7280 dpu_hw_catalog
> >>    drm/msm/dpu: add cdm blocks to sm8250 dpu_hw_catalog
> >>    drm/msm/dpu: add dpu_hw_cdm abstraction for CDM block
> >>    drm/msm/dpu: add cdm blocks to RM
> >>    drm/msm/dpu: add support to allocate CDM from RM
> >>    drm/msm/dpu: add CDM related logic to dpu_hw_ctl layer
> >>    drm/msm/dpu: add support to disable CDM block during encoder cleanup
> >>    drm/msm/dpu: add an API to setup the CDM block for writeback
> >>    drm/msm/dpu: plug-in the cdm related bits to writeback setup
> >>    drm/msm/dpu: reserve cdm blocks for writeback in case of YUV output
> >>    drm/msm/dpu: introduce separate wb2_format arrays for rgb and yuv
> >>    drm/msm/dpu: add cdm blocks to dpu snapshot
> >>
> >>   drivers/gpu/drm/msm/Makefile                  |   1 +
> >>   .../msm/disp/dpu1/catalog/dpu_10_0_sm8650.h   |   4 +-
> >>   .../msm/disp/dpu1/catalog/dpu_6_0_sm8250.h    |   5 +-
> >>   .../msm/disp/dpu1/catalog/dpu_6_2_sc7180.h    |   4 +-
> >>   .../msm/disp/dpu1/catalog/dpu_7_2_sc7280.h    |   5 +-
> >>   .../msm/disp/dpu1/catalog/dpu_9_0_sm8550.h    |   4 +-
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |  37 +++
> >>   .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |   5 +
> >>   .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c   | 117 +++++++-
> >>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  47 ++-
> >>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h    |  13 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c    | 276 ++++++++++++++++++
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h    | 114 ++++++++
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  35 +++
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  12 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h   |   7 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c   |  71 +++++
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h   |   8 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c     |   3 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   4 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     |  39 +--
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  51 +++-
> >>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   2 +
> >>   drivers/gpu/drm/msm/msm_drv.h                 |   2 +
> >>   25 files changed, 815 insertions(+), 52 deletions(-)
> >>   create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c
> >>   create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h