A patch series was floated in the drm mailing list which aimed to change the drm_connector and drm_encoder fields to pointer in the drm_connector_writeback structure, this received a huge pushback from the community but since i915 expects each connector present in the drm_device list to be a intel_connector but drm_writeback framework makes us have a connector which cannot be embedded in an intel_connector structure. [1] https://patchwork.kernel.org/project/dri-devel/patch/20220202081702.22119-1-suraj.kandpal@xxxxxxxxx/ [2] https://patchwork.kernel.org/project/dri-devel/patch/20220202085429.22261-6-suraj.kandpal@xxxxxxxxx/ Since no one had an issue with encoder field being changed into a pointer it was decided to break the connector and encoder pointer changes into two different series.The encoder field changes is currently being worked upon by Abhinav Kumar and the changes have been merged. [3]https://patchwork.kernel.org/project/dri-devel/list/?series=633565 Going forward we use a drm_connector which is not embedded in intel_connector. We also create a intel_encoder to avoid changes to many iterators but no intel_connector. We also changed all iterators that Writeback feature will be enabled for tgl and above. ---v2 solving BAT issues ---v3 -remove unnecessary comments from i915_reg.h [Arun] -move wd_init into its own if condition [Arun] -fix comment styling and alignment in intel_wd.c [Arun] -remove continue from loop and calling function if condition is met [Arun] -remove useless arguments from intel_queue_writeback_job and intel_enabling_capture [Arun] --v4 Added Reviewed-by to patches which were previously reviewd --v5 Added Reviewed-by for patch 3 --v6 -Solve BAT issue --v7 -Make wd->wb leaving the register WD untouched[Jani] -move writeback registers to a seprate file rather than keeping it in i914_reg [Jani] -fix the atomic flip done issue when crtc is being detached from writeback connector [Swati] -fix atomic check failing when no writeback job is created Suraj Kandpal (3): drm/i915: Define WD trancoder for i915 drm/i915: Change intel_connector iterators drm/i915: Enable WD Transcoder drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/display/intel_acpi.c | 8 +- drivers/gpu/drm/i915/display/intel_crtc.c | 6 + .../drm/i915/display/intel_crtc_state_dump.c | 1 + drivers/gpu/drm/i915/display/intel_ddi.c | 6 + drivers/gpu/drm/i915/display/intel_display.c | 75 +- drivers/gpu/drm/i915/display/intel_display.h | 14 +- .../drm/i915/display/intel_display_debugfs.c | 13 +- .../drm/i915/display/intel_display_types.h | 31 +- drivers/gpu/drm/i915/display/intel_dpll.c | 6 + .../drm/i915/display/intel_modeset_setup.c | 103 ++- .../drm/i915/display/intel_modeset_verify.c | 17 +- drivers/gpu/drm/i915/display/intel_opregion.c | 3 + drivers/gpu/drm/i915/display/intel_wb.c | 714 ++++++++++++++++++ drivers/gpu/drm/i915/display/intel_wb.h | 49 ++ .../drm/i915/display/intel_writeback_reg.h | 128 ++++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_irq.c | 8 +- drivers/gpu/drm/i915/i915_pci.c | 7 +- drivers/gpu/drm/i915/i915_reg.h | 10 + 20 files changed, 1151 insertions(+), 50 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_wb.c create mode 100644 drivers/gpu/drm/i915/display/intel_wb.h create mode 100644 drivers/gpu/drm/i915/display/intel_writeback_reg.h -- 2.25.1