mbox series

[00/25] drm/msm/dpu: wide planes support

Message ID 20220209172520.3719906-1-dmitry.baryshkov@linaro.org (mailing list archive)
Headers show
Series drm/msm/dpu: wide planes support | expand

Message

Dmitry Baryshkov Feb. 9, 2022, 5:24 p.m. UTC
It took me a way longer to finish than I expected. And more patches that
I initially hoped. This patchset brings in multirect usage to support
using two SSPP rectangles for a single plane. Virtual planes support is
omitted from this pull request, it will come later.

Dmitry Baryshkov (25):
  drm/msm/dpu: rip out master planes support
  drm/msm/dpu: do not limit the zpos property
  drm/msm/dpu: add support for SSPP allocation to RM
  drm/msm/dpu: move SSPP debugfs creation to dpu_kms.c
  drm/msm/dpu: move pipe_hw to dpu_plane_state
  drm/msm/dpu: inline dpu_plane_get_ctl_flush
  drm/msm/dpu: drop dpu_plane_pipe function
  drm/msm/dpu: get rid of cached flush_mask
  drm/msm/dpu: dpu_crtc_blend_setup: split mixer and ctl logic
  drm/msm/dpu: introduce struct dpu_sw_pipe
  drm/msm/dpu: use dpu_sw_pipe for dpu_hw_sspp callbacks
  drm/msm/dpu: inline _dpu_plane_set_scanout
  drm/msm/dpu: pass dpu_format to _dpu_hw_sspp_setup_scaler3()
  drm/msm/dpu: move stride programming to
    dpu_hw_sspp_setup_sourceaddress
  drm/msm/dpu: remove dpu_hw_fmt_layout from struct dpu_hw_pipe_cfg
  drm/msm/dpu: drop EAGAIN check from dpu_format_populate_layout
  drm/msm/dpu: drop src_split and multirect check from
    dpu_crtc_atomic_check
  drm/msm/dpu: move the rest of plane checks to dpu_plane_atomic_check()
  drm/msm/dpu: don't use unsupported blend stages
  drm/msm/dpu: add dpu_hw_pipe_cfg to dpu_plane_state
  drm/msm/dpu: simplify dpu_plane_validate_src()
  drm/msm/dpu: rewrite plane's QoS-related functions to take dpu_sw_pipe
    and dpu_format
  drm/msm/dpu: rework dpu_plane_atomic_check() and
    dpu_plane_sspp_atomic_update()
  drm/msm/dpu: populate SmartDMA features in hw catalog
  drm/msm/dpu: add support for wide planes

 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c      | 355 +++-----
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h      |   1 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c   |   4 -
 .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  10 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  78 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  35 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c   | 136 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h   |  88 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |  21 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     | 813 +++++++++---------
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h     |  42 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  81 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   6 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h     |  19 +-
 15 files changed, 827 insertions(+), 863 deletions(-)

Comments

Abhinav Kumar March 17, 2022, 1:10 a.m. UTC | #1
Hi Dmitry

I have reviewed the series , some patches completely , some of them 
especially the plane to sspp mapping is something i still need to check.

But I had one question on the design.

I thought we were going to have a boot param to control whether driver 
will internally use both rectangles for the layer so that in the future 
if compositors can do this splitting, we can use that instead of driver 
doing it ( keep boot param disabled ? ).

Thanks

Abhinav

On 2/9/2022 9:24 AM, Dmitry Baryshkov wrote:
> It took me a way longer to finish than I expected. And more patches that
> I initially hoped. This patchset brings in multirect usage to support
> using two SSPP rectangles for a single plane. Virtual planes support is
> omitted from this pull request, it will come later.
> 
> Dmitry Baryshkov (25):
>    drm/msm/dpu: rip out master planes support
>    drm/msm/dpu: do not limit the zpos property
>    drm/msm/dpu: add support for SSPP allocation to RM
>    drm/msm/dpu: move SSPP debugfs creation to dpu_kms.c
>    drm/msm/dpu: move pipe_hw to dpu_plane_state
>    drm/msm/dpu: inline dpu_plane_get_ctl_flush
>    drm/msm/dpu: drop dpu_plane_pipe function
>    drm/msm/dpu: get rid of cached flush_mask
>    drm/msm/dpu: dpu_crtc_blend_setup: split mixer and ctl logic
>    drm/msm/dpu: introduce struct dpu_sw_pipe
>    drm/msm/dpu: use dpu_sw_pipe for dpu_hw_sspp callbacks
>    drm/msm/dpu: inline _dpu_plane_set_scanout
>    drm/msm/dpu: pass dpu_format to _dpu_hw_sspp_setup_scaler3()
>    drm/msm/dpu: move stride programming to
>      dpu_hw_sspp_setup_sourceaddress
>    drm/msm/dpu: remove dpu_hw_fmt_layout from struct dpu_hw_pipe_cfg
>    drm/msm/dpu: drop EAGAIN check from dpu_format_populate_layout
>    drm/msm/dpu: drop src_split and multirect check from
>      dpu_crtc_atomic_check
>    drm/msm/dpu: move the rest of plane checks to dpu_plane_atomic_check()
>    drm/msm/dpu: don't use unsupported blend stages
>    drm/msm/dpu: add dpu_hw_pipe_cfg to dpu_plane_state
>    drm/msm/dpu: simplify dpu_plane_validate_src()
>    drm/msm/dpu: rewrite plane's QoS-related functions to take dpu_sw_pipe
>      and dpu_format
>    drm/msm/dpu: rework dpu_plane_atomic_check() and
>      dpu_plane_sspp_atomic_update()
>    drm/msm/dpu: populate SmartDMA features in hw catalog
>    drm/msm/dpu: add support for wide planes
> 
>   drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c      | 355 +++-----
>   drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h      |   1 -
>   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c   |   4 -
>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  10 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  78 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  35 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c   | 136 +--
>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h   |  88 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |  21 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     | 813 +++++++++---------
>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h     |  42 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  81 ++
>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   6 +
>   drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h     |  19 +-
>   15 files changed, 827 insertions(+), 863 deletions(-)
>
Dmitry Baryshkov March 17, 2022, 7:59 a.m. UTC | #2
On 17/03/2022 04:10, Abhinav Kumar wrote:
> Hi Dmitry
> 
> I have reviewed the series , some patches completely , some of them 
> especially the plane to sspp mapping is something i still need to check.
> 
> But I had one question on the design.
> 
> I thought we were going to have a boot param to control whether driver 
> will internally use both rectangles for the layer so that in the future 
> if compositors can do this splitting, we can use that instead of driver 
> doing it ( keep boot param disabled ? ).

No need to for this patch series. If your composer allocates smaller 
planes, then the driver won't do a thing. For the proper multirect there 
will be a boot param (at least initially) and then you can work on the 
custom properties, etc.

> 
> Thanks
> 
> Abhinav
> 
> On 2/9/2022 9:24 AM, Dmitry Baryshkov wrote:
>> It took me a way longer to finish than I expected. And more patches that
>> I initially hoped. This patchset brings in multirect usage to support
>> using two SSPP rectangles for a single plane. Virtual planes support is
>> omitted from this pull request, it will come later.
>>
>> Dmitry Baryshkov (25):
>>    drm/msm/dpu: rip out master planes support
>>    drm/msm/dpu: do not limit the zpos property
>>    drm/msm/dpu: add support for SSPP allocation to RM
>>    drm/msm/dpu: move SSPP debugfs creation to dpu_kms.c
>>    drm/msm/dpu: move pipe_hw to dpu_plane_state
>>    drm/msm/dpu: inline dpu_plane_get_ctl_flush
>>    drm/msm/dpu: drop dpu_plane_pipe function
>>    drm/msm/dpu: get rid of cached flush_mask
>>    drm/msm/dpu: dpu_crtc_blend_setup: split mixer and ctl logic
>>    drm/msm/dpu: introduce struct dpu_sw_pipe
>>    drm/msm/dpu: use dpu_sw_pipe for dpu_hw_sspp callbacks
>>    drm/msm/dpu: inline _dpu_plane_set_scanout
>>    drm/msm/dpu: pass dpu_format to _dpu_hw_sspp_setup_scaler3()
>>    drm/msm/dpu: move stride programming to
>>      dpu_hw_sspp_setup_sourceaddress
>>    drm/msm/dpu: remove dpu_hw_fmt_layout from struct dpu_hw_pipe_cfg
>>    drm/msm/dpu: drop EAGAIN check from dpu_format_populate_layout
>>    drm/msm/dpu: drop src_split and multirect check from
>>      dpu_crtc_atomic_check
>>    drm/msm/dpu: move the rest of plane checks to dpu_plane_atomic_check()
>>    drm/msm/dpu: don't use unsupported blend stages
>>    drm/msm/dpu: add dpu_hw_pipe_cfg to dpu_plane_state
>>    drm/msm/dpu: simplify dpu_plane_validate_src()
>>    drm/msm/dpu: rewrite plane's QoS-related functions to take dpu_sw_pipe
>>      and dpu_format
>>    drm/msm/dpu: rework dpu_plane_atomic_check() and
>>      dpu_plane_sspp_atomic_update()
>>    drm/msm/dpu: populate SmartDMA features in hw catalog
>>    drm/msm/dpu: add support for wide planes
>>
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c      | 355 +++-----
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h      |   1 -
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c   |   4 -
>>   .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c    |  10 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c    |  78 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h    |  35 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c   | 136 +--
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h   |  88 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |  21 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |   1 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     | 813 +++++++++---------
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h     |  42 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c        |  81 ++
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h        |   6 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h     |  19 +-
>>   15 files changed, 827 insertions(+), 863 deletions(-)
>>