@@ -166,10 +166,10 @@ static void dpu_encoder_phys_wb_set_qos(struct dpu_encoder_phys *phys_enc)
166166/**
167167 * dpu_encoder_phys_wb_setup_fb - setup output framebuffer
168168 * @phys_enc: Pointer to physical encoder
169- * @fb: Pointer to output framebuffer
169+ * @format: Format of the framebuffer
170170 */
171171static void dpu_encoder_phys_wb_setup_fb (struct dpu_encoder_phys * phys_enc ,
172- struct drm_framebuffer * fb )
172+ const struct msm_format * format )
173173{
174174 struct dpu_encoder_phys_wb * wb_enc = to_dpu_encoder_phys_wb (phys_enc );
175175 struct dpu_hw_wb * hw_wb ;
@@ -193,12 +193,12 @@ static void dpu_encoder_phys_wb_setup_fb(struct dpu_encoder_phys *phys_enc,
193193 hw_wb -> ops .setup_roi (hw_wb , wb_cfg );
194194
195195 if (hw_wb -> ops .setup_outformat )
196- hw_wb -> ops .setup_outformat (hw_wb , wb_cfg );
196+ hw_wb -> ops .setup_outformat (hw_wb , wb_cfg , format );
197197
198198 if (hw_wb -> ops .setup_cdp ) {
199199 const struct dpu_perf_cfg * perf = phys_enc -> dpu_kms -> catalog -> perf ;
200200
201- hw_wb -> ops .setup_cdp (hw_wb , wb_cfg -> dest . format ,
201+ hw_wb -> ops .setup_cdp (hw_wb , format ,
202202 perf -> cdp_cfg [DPU_PERF_CDP_USAGE_NRT ].wr_enable );
203203 }
204204
@@ -321,15 +321,10 @@ static void dpu_encoder_phys_wb_setup(
321321{
322322 struct dpu_hw_wb * hw_wb = phys_enc -> hw_wb ;
323323 struct drm_display_mode mode = phys_enc -> cached_mode ;
324- struct drm_framebuffer * fb = NULL ;
325324 struct dpu_encoder_phys_wb * wb_enc = to_dpu_encoder_phys_wb (phys_enc );
326- struct drm_writeback_job * wb_job ;
327325 const struct msm_format * format ;
328- const struct msm_format * dpu_fmt ;
329326
330- wb_job = wb_enc -> wb_job ;
331327 format = msm_framebuffer_format (wb_enc -> wb_job -> fb );
332- dpu_fmt = mdp_get_format (& phys_enc -> dpu_kms -> base , format -> pixel_format , wb_job -> fb -> modifier );
333328
334329 DPU_DEBUG ("[mode_set:%d, \"%s\",%d,%d]\n" ,
335330 hw_wb -> idx - WB_0 , mode .name ,
@@ -341,9 +336,9 @@ static void dpu_encoder_phys_wb_setup(
341336
342337 dpu_encoder_phys_wb_set_qos (phys_enc );
343338
344- dpu_encoder_phys_wb_setup_fb (phys_enc , fb );
339+ dpu_encoder_phys_wb_setup_fb (phys_enc , format );
345340
346- dpu_encoder_helper_phys_setup_cdm (phys_enc , dpu_fmt , CDM_CDWN_OUTPUT_WB );
341+ dpu_encoder_helper_phys_setup_cdm (phys_enc , format , CDM_CDWN_OUTPUT_WB );
347342
348343 dpu_encoder_phys_wb_setup_ctl (phys_enc );
349344}
@@ -587,14 +582,6 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct dpu_encoder_phys *phys_enc
587582
588583 format = msm_framebuffer_format (job -> fb );
589584
590- wb_cfg -> dest .format = mdp_get_format (& phys_enc -> dpu_kms -> base ,
591- format -> pixel_format , job -> fb -> modifier );
592- if (!wb_cfg -> dest .format ) {
593- /* this error should be detected during atomic_check */
594- DPU_ERROR ("failed to get format %p4cc\n" , & format -> pixel_format );
595- return ;
596- }
597-
598585 ret = dpu_format_populate_layout (aspace , job -> fb , & wb_cfg -> dest );
599586 if (ret ) {
600587 DPU_DEBUG ("failed to populate layout %d\n" , ret );
@@ -603,10 +590,10 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct dpu_encoder_phys *phys_enc
603590
604591 wb_cfg -> dest .width = job -> fb -> width ;
605592 wb_cfg -> dest .height = job -> fb -> height ;
606- wb_cfg -> dest .num_planes = wb_cfg -> dest . format -> num_planes ;
593+ wb_cfg -> dest .num_planes = format -> num_planes ;
607594
608- if ((wb_cfg -> dest . format -> fetch_type == MDP_PLANE_PLANAR ) &&
609- ( wb_cfg -> dest . format -> element [0 ] == C1_B_Cb ))
595+ if ((format -> fetch_type == MDP_PLANE_PLANAR ) &&
596+ ( format -> element [0 ] == C1_B_Cb ))
610597 swap (wb_cfg -> dest .plane_addr [1 ], wb_cfg -> dest .plane_addr [2 ]);
611598
612599 DPU_DEBUG ("[fb_offset:%8.8x,%8.8x,%8.8x,%8.8x]\n" ,
0 commit comments