Define the compute config function where we assign the output_type and add the transcoder that needs to be used. We currently assign one WD0 transcoder.
Signed-off-by: Suraj Kandpal <suraj.kand...@intel.com> --- .../gpu/drm/i915/display/intel_writeback.c | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_writeback.c b/drivers/gpu/drm/i915/display/intel_writeback.c index f1570a638422..3ea09587c4c2 100644 --- a/drivers/gpu/drm/i915/display/intel_writeback.c +++ b/drivers/gpu/drm/i915/display/intel_writeback.c @@ -214,6 +214,25 @@ static const struct drm_writeback_connector_helper_funcs writeback_conn_helper_f .get_connector_from_writeback = intel_get_connector_from_writeback, }; +static int +intel_writeback_compute_config(struct intel_encoder *encoder, + struct intel_crtc_state *pipe_config, + struct drm_connector_state *conn_state) +{ + struct intel_display *display = to_intel_display(encoder); + + if (!conn_state->writeback_job) + return 0; + + if (HAS_TRANSCODER(display, TRANSCODER_WD_0)) + pipe_config->cpu_transcoder = TRANSCODER_WD_0; + + pipe_config->output_types |= BIT(INTEL_OUTPUT_WRITEBACK); + pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; + + return 0; +} + static void intel_writeback_get_config(struct intel_encoder *encoder, struct intel_crtc_state *crtc_state) @@ -294,6 +313,7 @@ int intel_writeback_init(struct intel_display *display) encoder->cloneable = 0; encoder->get_config = intel_writeback_get_config; encoder->get_hw_state = intel_writeback_get_hw_state; + encoder->compute_config = intel_writeback_compute_config; connector = &writeback_conn->connector; intel_writeback_connector_alloc(connector); -- 2.34.1