All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/20] Add writeback block support for DPU
@ 2022-04-22 23:06 Abhinav Kumar
  2022-04-22 23:06 ` [PATCH v4 01/20] drm: allow passing possible_crtcs to drm_writeback_connector_init() Abhinav Kumar
                   ` (19 more replies)
  0 siblings, 20 replies; 35+ messages in thread
From: Abhinav Kumar @ 2022-04-22 23:06 UTC (permalink / raw)
  To: freedreno
  Cc: markyacoub, liviu.dudau, Abhinav Kumar, dri-devel, swboyd,
	seanpaul, laurent.pinchart, dmitry.baryshkov, quic_jesszhan,
	quic_aravindh

This series adds support for writeback block on DPU. Writeback
block is extremely useful to validate boards having no physical displays
in addition to many other use-cases where we want to get the output
of the display pipeline to examine whether issue is with the display
pipeline or with the panel.

These changes have been validated on SM8250 RB5 boards with IGT KMS
writeback test-suite thereby further increasing the IGT test coverage
for DPU. I am sharing the test results below.

root@linaro-developer:~/igt_repo/igt-gpu-tools/build/tests# ./kms_writeback
[   35.066157] Console: switching to colour dummy device 80x25
[   35.071964] [IGT] kms_writeback: executing
IGT-Version: 1.26-gae2eb9e1 (aarch64) (Linux: 5.16.0-rc2-62171-g132577e2697b aarch64)
[   35.611418] [IGT] kms_writeback: starting subtest writeback-pixel-formats
Starting subtest: writeback-pixel-formats
[   35.618528] [IGT] kms_writeback: starting subtest writeback-invalid-parameters
Subtest writeback-pixel-formats: SUCCESS (0.000s)
Starting subtest: writeback-invalid-parameters
Subtest writeback-invalid-parameters: SUCCESS (0.028s)   35.657437] [IGT] kms_writeback: starting subtest writeback-fb-id
Starting subtest: writeback-fb-id
Subtest writeback-fb-id: SUCCESS (0.030s)
[   35.698957] [IGT] kms_writeback: starting subtest writeback-check-output
Starting subtest: writeback-check-output
[   35.852834] [IGT] kms_writeback: exiting, ret=0
Subtest writeback-check-output: SUCCESS (0.142s)
[   35.861291] Console: switching to colour frame buffer device 240x67
root@linaro-developer:~/igt_repo/igt-gpu-tools/build/tests# 

The changes can easily be extended to support any other chipset using
the DPU driver by adding the support in the catalog.

Writeback block supports various formats and features. The support
for all of them can be incrementally added on top of this framework when
validation is improved and the test frameworks are extended to validate
them.

changes in v4:
	- absorb https://patchwork.freedesktop.org/series/102964/ into this
	  and also preserve necessary acks for trivial changes
	- fix order of copyright years for all the changes  	

Abhinav Kumar (20):
  drm: allow passing possible_crtcs to drm_writeback_connector_init()
  drm: introduce drm_writeback_connector_init_with_encoder() API
  drm: allow real encoder to be passed for drm_writeback_connector
  drm/msm/dpu: add writeback blocks to the sm8250 DPU catalog
  drm/msm/dpu: add reset_intf_cfg operation for dpu_hw_ctl
  drm/msm/dpu: rename dpu_hw_pipe_cdp_cfg to dpu_hw_cdp_cfg
  drm/msm/dpu: add dpu_hw_wb abstraction for writeback blocks
  drm/msm/dpu: add writeback blocks to DPU RM
  drm/msm/dpu: add changes to support writeback in hw_ctl
  drm/msm/dpu: add an API to reset the encoder related hw blocks
  drm/msm/dpu: make changes to dpu_encoder to support virtual encoder
  drm/msm/dpu: add encoder operations to prepare/cleanup wb job
  drm/msm/dpu: move _dpu_plane_get_qos_lut to dpu_hw_util file
  drm/msm/dpu: introduce the dpu_encoder_phys_* for writeback
  drm/msm/dpu: add the writeback connector layer
  drm/msm/dpu: initialize dpu encoder and connector for writeback
  drm/msm/dpu: gracefully handle null fb commits for writeback
  drm/msm/dpu: add writeback blocks to the display snapshot
  drm/msm/dpu: add wb_idx to existing DRM prints in dpu_encoder
  drm/msm/dpu: add wb_idx to DRM traces in dpu_encoder

 .../drm/arm/display/komeda/komeda_wb_connector.c   |   4 +-
 drivers/gpu/drm/arm/malidp_mw.c                    |   4 +-
 drivers/gpu/drm/drm_writeback.c                    |  79 ++-
 drivers/gpu/drm/msm/Makefile                       |   3 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c           |   9 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        | 306 +++++++--
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h        |  22 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |  50 ++
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c    | 763 +++++++++++++++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |  72 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h     |  66 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c         |  82 ++-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h         |  21 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c        |   2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h        |  18 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c        |  25 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h        |  19 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c          | 279 ++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h          | 115 ++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            |  66 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c          |  31 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c             |  22 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h             |  12 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h          |  26 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |  68 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h      |  25 +
 drivers/gpu/drm/rcar-du/rcar_du_writeback.c        |   4 +-
 drivers/gpu/drm/vc4/vc4_txp.c                      |   7 +-
 drivers/gpu/drm/vkms/vkms_writeback.c              |   4 +-
 include/drm/drm_writeback.h                        |  31 +-
 30 files changed, 2103 insertions(+), 132 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h

-- 
2.7.4


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2022-04-26  0:18 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-22 23:06 [PATCH v4 00/20] Add writeback block support for DPU Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 01/20] drm: allow passing possible_crtcs to drm_writeback_connector_init() Abhinav Kumar
2022-04-24 14:19   ` Laurent Pinchart
2022-04-22 23:06 ` [PATCH v4 02/20] drm: introduce drm_writeback_connector_init_with_encoder() API Abhinav Kumar
2022-04-24 14:47   ` Laurent Pinchart
2022-04-22 23:06 ` [PATCH v4 03/20] drm: allow real encoder to be passed for drm_writeback_connector Abhinav Kumar
2022-04-24 14:50   ` Laurent Pinchart
2022-04-24 18:12     ` Abhinav Kumar
2022-04-24 18:23       ` [Freedreno] " Abhinav Kumar
2022-04-24 19:59         ` Laurent Pinchart
2022-04-24 21:12           ` Abhinav Kumar
2022-04-25  0:02             ` Abhinav Kumar
2022-04-25 10:50           ` Dmitry Baryshkov
2022-04-25 16:25             ` Abhinav Kumar
2022-04-25 17:32             ` Laurent Pinchart
2022-04-25 17:48               ` Abhinav Kumar
2022-04-25 18:20                 ` Laurent Pinchart
2022-04-22 23:06 ` [PATCH v4 04/20] drm/msm/dpu: add writeback blocks to the sm8250 DPU catalog Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 05/20] drm/msm/dpu: add reset_intf_cfg operation for dpu_hw_ctl Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 06/20] drm/msm/dpu: rename dpu_hw_pipe_cdp_cfg to dpu_hw_cdp_cfg Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 07/20] drm/msm/dpu: add dpu_hw_wb abstraction for writeback blocks Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 08/20] drm/msm/dpu: add writeback blocks to DPU RM Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 09/20] drm/msm/dpu: add changes to support writeback in hw_ctl Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 10/20] drm/msm/dpu: add an API to reset the encoder related hw blocks Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 11/20] drm/msm/dpu: make changes to dpu_encoder to support virtual encoder Abhinav Kumar
2022-04-26  0:18   ` Dmitry Baryshkov
2022-04-22 23:06 ` [PATCH v4 12/20] drm/msm/dpu: add encoder operations to prepare/cleanup wb job Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 13/20] drm/msm/dpu: move _dpu_plane_get_qos_lut to dpu_hw_util file Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 14/20] drm/msm/dpu: introduce the dpu_encoder_phys_* for writeback Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 15/20] drm/msm/dpu: add the writeback connector layer Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 16/20] drm/msm/dpu: initialize dpu encoder and connector for writeback Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 17/20] drm/msm/dpu: gracefully handle null fb commits " Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 18/20] drm/msm/dpu: add writeback blocks to the display snapshot Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 19/20] drm/msm/dpu: add wb_idx to existing DRM prints in dpu_encoder Abhinav Kumar
2022-04-22 23:06 ` [PATCH v4 20/20] drm/msm/dpu: add wb_idx to DRM traces " Abhinav Kumar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.