Lines Matching refs:pdpu
156 struct dpu_plane *pdpu, *tmp; in _dpu_plane_calc_fill_level() local
166 pdpu = to_dpu_plane(plane); in _dpu_plane_calc_fill_level()
168 fixed_buff_size = pdpu->pipe_sblk->common->pixel_ram_size; in _dpu_plane_calc_fill_level()
170 list_for_each_entry(tmp, &pdpu->mplane_list, mplane_list) { in _dpu_plane_calc_fill_level()
174 pdpu->base.base.id, tmp->base.base.id, in _dpu_plane_calc_fill_level()
202 plane->base.id, pdpu->pipe - SSPP_VIG0, in _dpu_plane_calc_fill_level()
242 struct dpu_plane *pdpu; in _dpu_plane_set_qos_lut() local
253 pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_lut()
255 if (!pdpu->pipe_hw || !pdpu->pipe_sblk || !pdpu->catalog) { in _dpu_plane_set_qos_lut()
258 } else if (!pdpu->pipe_hw->ops.setup_creq_lut) { in _dpu_plane_set_qos_lut()
262 if (!pdpu->is_rt_pipe) { in _dpu_plane_set_qos_lut()
269 drm_rect_width(&pdpu->pipe_cfg.src_rect)); in _dpu_plane_set_qos_lut()
278 &pdpu->catalog->perf.qos_lut_tbl[lut_usage], total_fl); in _dpu_plane_set_qos_lut()
280 pdpu->pipe_qos_cfg.creq_lut = qos_lut; in _dpu_plane_set_qos_lut()
282 trace_dpu_perf_set_qos_luts(pdpu->pipe - SSPP_VIG0, in _dpu_plane_set_qos_lut()
284 pdpu->is_rt_pipe, total_fl, qos_lut, lut_usage); in _dpu_plane_set_qos_lut()
288 pdpu->pipe - SSPP_VIG0, in _dpu_plane_set_qos_lut()
290 pdpu->is_rt_pipe, total_fl, qos_lut); in _dpu_plane_set_qos_lut()
292 pdpu->pipe_hw->ops.setup_creq_lut(pdpu->pipe_hw, &pdpu->pipe_qos_cfg); in _dpu_plane_set_qos_lut()
303 struct dpu_plane *pdpu; in _dpu_plane_set_danger_lut() local
312 pdpu = to_dpu_plane(plane); in _dpu_plane_set_danger_lut()
314 if (!pdpu->pipe_hw || !pdpu->pipe_sblk || !pdpu->catalog) { in _dpu_plane_set_danger_lut()
317 } else if (!pdpu->pipe_hw->ops.setup_danger_safe_lut) { in _dpu_plane_set_danger_lut()
321 if (!pdpu->is_rt_pipe) { in _dpu_plane_set_danger_lut()
322 danger_lut = pdpu->catalog->perf.danger_lut_tbl in _dpu_plane_set_danger_lut()
324 safe_lut = pdpu->catalog->perf.safe_lut_tbl in _dpu_plane_set_danger_lut()
332 danger_lut = pdpu->catalog->perf.danger_lut_tbl in _dpu_plane_set_danger_lut()
334 safe_lut = pdpu->catalog->perf.safe_lut_tbl in _dpu_plane_set_danger_lut()
337 danger_lut = pdpu->catalog->perf.danger_lut_tbl in _dpu_plane_set_danger_lut()
339 safe_lut = pdpu->catalog->perf.safe_lut_tbl in _dpu_plane_set_danger_lut()
344 pdpu->pipe_qos_cfg.danger_lut = danger_lut; in _dpu_plane_set_danger_lut()
345 pdpu->pipe_qos_cfg.safe_lut = safe_lut; in _dpu_plane_set_danger_lut()
347 trace_dpu_perf_set_danger_luts(pdpu->pipe - SSPP_VIG0, in _dpu_plane_set_danger_lut()
350 pdpu->pipe_qos_cfg.danger_lut, in _dpu_plane_set_danger_lut()
351 pdpu->pipe_qos_cfg.safe_lut); in _dpu_plane_set_danger_lut()
355 pdpu->pipe - SSPP_VIG0, in _dpu_plane_set_danger_lut()
358 pdpu->pipe_qos_cfg.danger_lut, in _dpu_plane_set_danger_lut()
359 pdpu->pipe_qos_cfg.safe_lut); in _dpu_plane_set_danger_lut()
361 pdpu->pipe_hw->ops.setup_danger_safe_lut(pdpu->pipe_hw, in _dpu_plane_set_danger_lut()
362 &pdpu->pipe_qos_cfg); in _dpu_plane_set_danger_lut()
374 struct dpu_plane *pdpu; in _dpu_plane_set_qos_ctrl() local
381 pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_ctrl()
383 if (!pdpu->pipe_hw || !pdpu->pipe_sblk) { in _dpu_plane_set_qos_ctrl()
386 } else if (!pdpu->pipe_hw->ops.setup_qos_ctrl) { in _dpu_plane_set_qos_ctrl()
391 pdpu->pipe_qos_cfg.creq_vblank = pdpu->pipe_sblk->creq_vblank; in _dpu_plane_set_qos_ctrl()
392 pdpu->pipe_qos_cfg.danger_vblank = in _dpu_plane_set_qos_ctrl()
393 pdpu->pipe_sblk->danger_vblank; in _dpu_plane_set_qos_ctrl()
394 pdpu->pipe_qos_cfg.vblank_en = enable; in _dpu_plane_set_qos_ctrl()
399 pdpu->pipe_qos_cfg.vblank_en = false; in _dpu_plane_set_qos_ctrl()
400 pdpu->pipe_qos_cfg.creq_vblank = 0; /* clear vblank bits */ in _dpu_plane_set_qos_ctrl()
404 pdpu->pipe_qos_cfg.danger_safe_en = enable; in _dpu_plane_set_qos_ctrl()
406 if (!pdpu->is_rt_pipe) { in _dpu_plane_set_qos_ctrl()
407 pdpu->pipe_qos_cfg.vblank_en = false; in _dpu_plane_set_qos_ctrl()
408 pdpu->pipe_qos_cfg.danger_safe_en = false; in _dpu_plane_set_qos_ctrl()
413 pdpu->pipe - SSPP_VIG0, in _dpu_plane_set_qos_ctrl()
414 pdpu->pipe_qos_cfg.danger_safe_en, in _dpu_plane_set_qos_ctrl()
415 pdpu->pipe_qos_cfg.vblank_en, in _dpu_plane_set_qos_ctrl()
416 pdpu->pipe_qos_cfg.creq_vblank, in _dpu_plane_set_qos_ctrl()
417 pdpu->pipe_qos_cfg.danger_vblank, in _dpu_plane_set_qos_ctrl()
418 pdpu->is_rt_pipe); in _dpu_plane_set_qos_ctrl()
420 pdpu->pipe_hw->ops.setup_qos_ctrl(pdpu->pipe_hw, in _dpu_plane_set_qos_ctrl()
421 &pdpu->pipe_qos_cfg); in _dpu_plane_set_qos_ctrl()
426 struct dpu_plane *pdpu; in dpu_plane_danger_signal_ctrl() local
442 pdpu = to_dpu_plane(plane); in dpu_plane_danger_signal_ctrl()
444 if (!pdpu->is_rt_pipe) in dpu_plane_danger_signal_ctrl()
463 struct dpu_plane *pdpu; in _dpu_plane_set_ot_limit() local
481 pdpu = to_dpu_plane(plane); in _dpu_plane_set_ot_limit()
482 if (!pdpu->pipe_hw) { in _dpu_plane_set_ot_limit()
488 ot_params.xin_id = pdpu->pipe_hw->cap->xin_id; in _dpu_plane_set_ot_limit()
489 ot_params.num = pdpu->pipe_hw->idx - SSPP_NONE; in _dpu_plane_set_ot_limit()
490 ot_params.width = drm_rect_width(&pdpu->pipe_cfg.src_rect); in _dpu_plane_set_ot_limit()
491 ot_params.height = drm_rect_height(&pdpu->pipe_cfg.src_rect); in _dpu_plane_set_ot_limit()
492 ot_params.is_wfd = !pdpu->is_rt_pipe; in _dpu_plane_set_ot_limit()
495 ot_params.clk_ctrl = pdpu->pipe_hw->cap->clk_ctrl; in _dpu_plane_set_ot_limit()
507 struct dpu_plane *pdpu; in _dpu_plane_set_qos_remap() local
524 pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_remap()
525 if (!pdpu->pipe_hw) { in _dpu_plane_set_qos_remap()
532 qos_params.clk_ctrl = pdpu->pipe_hw->cap->clk_ctrl; in _dpu_plane_set_qos_remap()
533 qos_params.xin_id = pdpu->pipe_hw->cap->xin_id; in _dpu_plane_set_qos_remap()
534 qos_params.num = pdpu->pipe_hw->idx - SSPP_VIG0; in _dpu_plane_set_qos_remap()
535 qos_params.is_rt = pdpu->is_rt_pipe; in _dpu_plane_set_qos_remap()
550 struct dpu_plane *pdpu, in _dpu_plane_get_aspace() argument
556 if (!pdpu || !pstate || !aspace) { in _dpu_plane_get_aspace()
561 kms = _dpu_plane_get_kms(&pdpu->base); in _dpu_plane_get_aspace()
577 struct dpu_plane *pdpu; in _dpu_plane_set_scanout() local
588 pdpu = to_dpu_plane(plane); in _dpu_plane_set_scanout()
589 if (!pdpu->pipe_hw) { in _dpu_plane_set_scanout()
590 DPU_ERROR_PLANE(pdpu, "invalid pipe_hw\n"); in _dpu_plane_set_scanout()
594 ret = _dpu_plane_get_aspace(pdpu, pstate, &aspace); in _dpu_plane_set_scanout()
596 DPU_ERROR_PLANE(pdpu, "Failed to get aspace %d\n", ret); in _dpu_plane_set_scanout()
602 DPU_DEBUG_PLANE(pdpu, "not updating same src addrs\n"); in _dpu_plane_set_scanout()
604 DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret); in _dpu_plane_set_scanout()
605 else if (pdpu->pipe_hw->ops.setup_sourceaddress) { in _dpu_plane_set_scanout()
606 trace_dpu_plane_set_scanout(pdpu->pipe_hw->idx, in _dpu_plane_set_scanout()
609 pdpu->pipe_hw->ops.setup_sourceaddress(pdpu->pipe_hw, pipe_cfg, in _dpu_plane_set_scanout()
614 static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu, in _dpu_plane_setup_scaler3() argument
623 if (!pdpu || !pstate || !scale_cfg || !fmt || !chroma_subsmpl_h || in _dpu_plane_setup_scaler3()
627 !!pdpu, !!pstate, !!scale_cfg, !!fmt, chroma_subsmpl_h, in _dpu_plane_setup_scaler3()
684 static inline void _dpu_plane_setup_csc(struct dpu_plane *pdpu) in _dpu_plane_setup_csc() argument
715 if (!pdpu) { in _dpu_plane_setup_csc()
720 if (BIT(DPU_SSPP_CSC_10BIT) & pdpu->features) in _dpu_plane_setup_csc()
721 pdpu->csc_ptr = (struct dpu_csc_cfg *)&dpu_csc10_YUV2RGB_601L; in _dpu_plane_setup_csc()
723 pdpu->csc_ptr = (struct dpu_csc_cfg *)&dpu_csc_YUV2RGB_601L; in _dpu_plane_setup_csc()
725 DPU_DEBUG_PLANE(pdpu, "using 0x%X 0x%X 0x%X...\n", in _dpu_plane_setup_csc()
726 pdpu->csc_ptr->csc_mv[0], in _dpu_plane_setup_csc()
727 pdpu->csc_ptr->csc_mv[1], in _dpu_plane_setup_csc()
728 pdpu->csc_ptr->csc_mv[2]); in _dpu_plane_setup_csc()
731 static void _dpu_plane_setup_scaler(struct dpu_plane *pdpu, in _dpu_plane_setup_scaler() argument
738 if (!pdpu || !fmt || !pstate) { in _dpu_plane_setup_scaler()
740 pdpu != 0, fmt != 0, pstate != 0); in _dpu_plane_setup_scaler()
753 _dpu_plane_setup_scaler3(pdpu, pstate, in _dpu_plane_setup_scaler()
754 drm_rect_width(&pdpu->pipe_cfg.src_rect), in _dpu_plane_setup_scaler()
755 drm_rect_height(&pdpu->pipe_cfg.src_rect), in _dpu_plane_setup_scaler()
756 drm_rect_width(&pdpu->pipe_cfg.dst_rect), in _dpu_plane_setup_scaler()
757 drm_rect_height(&pdpu->pipe_cfg.dst_rect), in _dpu_plane_setup_scaler()
769 static int _dpu_plane_color_fill(struct dpu_plane *pdpu, in _dpu_plane_color_fill() argument
776 if (!pdpu || !pdpu->base.state) { in _dpu_plane_color_fill()
781 if (!pdpu->pipe_hw) { in _dpu_plane_color_fill()
782 DPU_ERROR_PLANE(pdpu, "invalid plane h/w pointer\n"); in _dpu_plane_color_fill()
786 plane = &pdpu->base; in _dpu_plane_color_fill()
789 DPU_DEBUG_PLANE(pdpu, "\n"); in _dpu_plane_color_fill()
798 if (fmt && pdpu->pipe_hw->ops.setup_solidfill) { in _dpu_plane_color_fill()
799 pdpu->pipe_hw->ops.setup_solidfill(pdpu->pipe_hw, in _dpu_plane_color_fill()
804 pdpu->pipe_cfg.src_rect.x1 = 0; in _dpu_plane_color_fill()
805 pdpu->pipe_cfg.src_rect.y1 = 0; in _dpu_plane_color_fill()
806 pdpu->pipe_cfg.src_rect.x2 = in _dpu_plane_color_fill()
807 drm_rect_width(&pdpu->pipe_cfg.dst_rect); in _dpu_plane_color_fill()
808 pdpu->pipe_cfg.src_rect.y2 = in _dpu_plane_color_fill()
809 drm_rect_height(&pdpu->pipe_cfg.dst_rect); in _dpu_plane_color_fill()
810 _dpu_plane_setup_scaler(pdpu, pstate, fmt, true); in _dpu_plane_color_fill()
812 if (pdpu->pipe_hw->ops.setup_format) in _dpu_plane_color_fill()
813 pdpu->pipe_hw->ops.setup_format(pdpu->pipe_hw, in _dpu_plane_color_fill()
817 if (pdpu->pipe_hw->ops.setup_rects) in _dpu_plane_color_fill()
818 pdpu->pipe_hw->ops.setup_rects(pdpu->pipe_hw, in _dpu_plane_color_fill()
819 &pdpu->pipe_cfg, in _dpu_plane_color_fill()
822 if (pdpu->pipe_hw->ops.setup_pe) in _dpu_plane_color_fill()
823 pdpu->pipe_hw->ops.setup_pe(pdpu->pipe_hw, in _dpu_plane_color_fill()
826 if (pdpu->pipe_hw->ops.setup_scaler && in _dpu_plane_color_fill()
828 pdpu->pipe_hw->ops.setup_scaler(pdpu->pipe_hw, in _dpu_plane_color_fill()
829 &pdpu->pipe_cfg, &pstate->pixel_ext, in _dpu_plane_color_fill()
990 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_prepare_fb() local
1002 DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", fb->base.id); in dpu_plane_prepare_fb()
1004 ret = _dpu_plane_get_aspace(pdpu, pstate, &aspace); in dpu_plane_prepare_fb()
1006 DPU_ERROR_PLANE(pdpu, "Failed to get aspace\n"); in dpu_plane_prepare_fb()
1037 DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret); in dpu_plane_prepare_fb()
1047 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_cleanup_fb() local
1055 DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", old_state->fb->base.id); in dpu_plane_cleanup_fb()
1083 struct dpu_plane *pdpu; in dpu_plane_sspp_atomic_check() local
1098 pdpu = to_dpu_plane(plane); in dpu_plane_sspp_atomic_check()
1101 if (!pdpu->pipe_sblk) { in dpu_plane_sspp_atomic_check()
1102 DPU_ERROR_PLANE(pdpu, "invalid catalog\n"); in dpu_plane_sspp_atomic_check()
1117 max_linewidth = pdpu->pipe_sblk->common->maxlinewidth; in dpu_plane_sspp_atomic_check()
1119 if (pdpu->features & DPU_SSPP_SCALER) { in dpu_plane_sspp_atomic_check()
1120 max_downscale = pdpu->pipe_sblk->maxdwnscale; in dpu_plane_sspp_atomic_check()
1121 max_upscale = pdpu->pipe_sblk->maxupscale; in dpu_plane_sspp_atomic_check()
1132 DPU_DEBUG_PLANE(pdpu, "check %d -> %d\n", in dpu_plane_sspp_atomic_check()
1143 (!(pdpu->features & DPU_SSPP_SCALER) || in dpu_plane_sspp_atomic_check()
1144 !(pdpu->features & (BIT(DPU_SSPP_CSC) in dpu_plane_sspp_atomic_check()
1146 DPU_ERROR_PLANE(pdpu, in dpu_plane_sspp_atomic_check()
1152 DPU_ERROR_PLANE(pdpu, "invalid source " DRM_RECT_FMT "\n", in dpu_plane_sspp_atomic_check()
1161 DPU_ERROR_PLANE(pdpu, "invalid yuv source " DRM_RECT_FMT "\n", in dpu_plane_sspp_atomic_check()
1167 DPU_ERROR_PLANE(pdpu, "invalid dest rect " DRM_RECT_FMT "\n", in dpu_plane_sspp_atomic_check()
1173 DPU_ERROR_PLANE(pdpu, "invalid src " DRM_RECT_FMT " line:%u\n", in dpu_plane_sspp_atomic_check()
1179 DPU_ERROR_PLANE(pdpu, "invalid scaling requested src=" in dpu_plane_sspp_atomic_check()
1202 struct dpu_plane *pdpu; in dpu_plane_flush() local
1210 pdpu = to_dpu_plane(plane); in dpu_plane_flush()
1217 if (pdpu->is_error) in dpu_plane_flush()
1219 _dpu_plane_color_fill(pdpu, 0xFFFFFF, 0xFF); in dpu_plane_flush()
1220 else if (pdpu->color_fill & DPU_PLANE_COLOR_FILL_FLAG) in dpu_plane_flush()
1222 _dpu_plane_color_fill(pdpu, pdpu->color_fill, 0xFF); in dpu_plane_flush()
1223 else if (pdpu->pipe_hw && pdpu->csc_ptr && pdpu->pipe_hw->ops.setup_csc) in dpu_plane_flush()
1224 pdpu->pipe_hw->ops.setup_csc(pdpu->pipe_hw, pdpu->csc_ptr); in dpu_plane_flush()
1237 struct dpu_plane *pdpu; in dpu_plane_set_error() local
1242 pdpu = to_dpu_plane(plane); in dpu_plane_set_error()
1243 pdpu->is_error = error; in dpu_plane_set_error()
1250 struct dpu_plane *pdpu; in dpu_plane_sspp_atomic_update() local
1270 pdpu = to_dpu_plane(plane); in dpu_plane_sspp_atomic_update()
1280 DPU_ERROR_PLANE(pdpu, "invalid crtc %d or fb %d\n", in dpu_plane_sspp_atomic_update()
1287 memset(&(pdpu->pipe_cfg), 0, sizeof(struct dpu_hw_pipe_cfg)); in dpu_plane_sspp_atomic_update()
1289 _dpu_plane_set_scanout(plane, pstate, &pdpu->pipe_cfg, fb); in dpu_plane_sspp_atomic_update()
1293 pdpu->is_rt_pipe = (dpu_crtc_get_client_type(crtc) != NRT_CLIENT); in dpu_plane_sspp_atomic_update()
1303 DPU_DEBUG_PLANE(pdpu, "FB[%u] " DRM_RECT_FMT "->crtc%u " DRM_RECT_FMT in dpu_plane_sspp_atomic_update()
1309 pdpu->pipe_cfg.src_rect = src; in dpu_plane_sspp_atomic_update()
1310 pdpu->pipe_cfg.dst_rect = dst; in dpu_plane_sspp_atomic_update()
1312 _dpu_plane_setup_scaler(pdpu, pstate, fmt, false); in dpu_plane_sspp_atomic_update()
1315 if (pdpu->color_fill & DPU_PLANE_COLOR_FILL_FLAG) { in dpu_plane_sspp_atomic_update()
1320 if (pdpu->pipe_hw->ops.setup_rects) { in dpu_plane_sspp_atomic_update()
1321 pdpu->pipe_hw->ops.setup_rects(pdpu->pipe_hw, in dpu_plane_sspp_atomic_update()
1322 &pdpu->pipe_cfg, in dpu_plane_sspp_atomic_update()
1326 if (pdpu->pipe_hw->ops.setup_pe && in dpu_plane_sspp_atomic_update()
1328 pdpu->pipe_hw->ops.setup_pe(pdpu->pipe_hw, in dpu_plane_sspp_atomic_update()
1336 if (pdpu->pipe_hw->ops.setup_scaler && in dpu_plane_sspp_atomic_update()
1338 pdpu->pipe_hw->ops.setup_scaler(pdpu->pipe_hw, in dpu_plane_sspp_atomic_update()
1339 &pdpu->pipe_cfg, &pstate->pixel_ext, in dpu_plane_sspp_atomic_update()
1342 if (pdpu->pipe_hw->ops.setup_multirect) in dpu_plane_sspp_atomic_update()
1343 pdpu->pipe_hw->ops.setup_multirect( in dpu_plane_sspp_atomic_update()
1344 pdpu->pipe_hw, in dpu_plane_sspp_atomic_update()
1348 if (pdpu->pipe_hw->ops.setup_format) { in dpu_plane_sspp_atomic_update()
1352 pdpu->pipe_hw->ops.setup_format(pdpu->pipe_hw, fmt, src_flags, in dpu_plane_sspp_atomic_update()
1355 if (pdpu->pipe_hw->ops.setup_cdp) { in dpu_plane_sspp_atomic_update()
1360 cdp_cfg->enable = pdpu->catalog->perf.cdp_cfg in dpu_plane_sspp_atomic_update()
1369 pdpu->pipe_hw->ops.setup_cdp(pdpu->pipe_hw, cdp_cfg); in dpu_plane_sspp_atomic_update()
1374 _dpu_plane_setup_csc(pdpu); in dpu_plane_sspp_atomic_update()
1376 pdpu->csc_ptr = 0; in dpu_plane_sspp_atomic_update()
1394 struct dpu_plane *pdpu; in _dpu_plane_atomic_disable() local
1409 pdpu = to_dpu_plane(plane); in _dpu_plane_atomic_disable()
1419 pdpu->pipe_hw && pdpu->pipe_hw->ops.setup_multirect) in _dpu_plane_atomic_disable()
1420 pdpu->pipe_hw->ops.setup_multirect(pdpu->pipe_hw, in _dpu_plane_atomic_disable()
1427 struct dpu_plane *pdpu; in dpu_plane_atomic_update() local
1438 pdpu = to_dpu_plane(plane); in dpu_plane_atomic_update()
1439 pdpu->is_error = false; in dpu_plane_atomic_update()
1442 DPU_DEBUG_PLANE(pdpu, "\n"); in dpu_plane_atomic_update()
1457 struct dpu_plane *pdpu; in dpu_plane_restore() local
1464 pdpu = to_dpu_plane(plane); in dpu_plane_restore()
1466 DPU_DEBUG_PLANE(pdpu, "\n"); in dpu_plane_restore()
1474 struct dpu_plane *pdpu = plane ? to_dpu_plane(plane) : NULL; in dpu_plane_destroy() local
1476 DPU_DEBUG_PLANE(pdpu, "\n"); in dpu_plane_destroy()
1478 if (pdpu) { in dpu_plane_destroy()
1481 mutex_destroy(&pdpu->lock); in dpu_plane_destroy()
1488 if (pdpu->pipe_hw) in dpu_plane_destroy()
1489 dpu_hw_sspp_destroy(pdpu->pipe_hw); in dpu_plane_destroy()
1491 kfree(pdpu); in dpu_plane_destroy()
1518 struct dpu_plane *pdpu; in dpu_plane_duplicate_state() local
1531 pdpu = to_dpu_plane(plane); in dpu_plane_duplicate_state()
1534 DPU_ERROR_PLANE(pdpu, "failed to allocate state\n"); in dpu_plane_duplicate_state()
1538 DPU_DEBUG_PLANE(pdpu, "\n"); in dpu_plane_duplicate_state()
1549 struct dpu_plane *pdpu; in dpu_plane_reset() local
1557 pdpu = to_dpu_plane(plane); in dpu_plane_reset()
1558 DPU_DEBUG_PLANE(pdpu, "\n"); in dpu_plane_reset()
1568 DPU_ERROR_PLANE(pdpu, "failed to allocate state\n"); in dpu_plane_reset()
1672 struct dpu_plane *pdpu; in _dpu_plane_init_debugfs() local
1690 pdpu = to_dpu_plane(plane); in _dpu_plane_init_debugfs()
1692 if (pdpu && pdpu->pipe_hw) in _dpu_plane_init_debugfs()
1693 cfg = pdpu->pipe_hw->cap; in _dpu_plane_init_debugfs()
1701 pdpu->debugfs_root = in _dpu_plane_init_debugfs()
1702 debugfs_create_dir(pdpu->pipe_name, in _dpu_plane_init_debugfs()
1705 if (!pdpu->debugfs_root) in _dpu_plane_init_debugfs()
1710 pdpu->debugfs_root, &pdpu->features); in _dpu_plane_init_debugfs()
1713 dpu_debugfs_setup_regset32(&pdpu->debugfs_src, in _dpu_plane_init_debugfs()
1718 pdpu->debugfs_root, &pdpu->debugfs_src); in _dpu_plane_init_debugfs()
1722 dpu_debugfs_setup_regset32(&pdpu->debugfs_scaler, in _dpu_plane_init_debugfs()
1727 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1728 &pdpu->debugfs_scaler); in _dpu_plane_init_debugfs()
1731 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1732 &pdpu->debugfs_default_scale); in _dpu_plane_init_debugfs()
1737 dpu_debugfs_setup_regset32(&pdpu->debugfs_csc, in _dpu_plane_init_debugfs()
1742 pdpu->debugfs_root, &pdpu->debugfs_csc); in _dpu_plane_init_debugfs()
1747 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1751 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1755 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1759 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1764 pdpu->debugfs_root, in _dpu_plane_init_debugfs()
1772 struct dpu_plane *pdpu; in _dpu_plane_destroy_debugfs() local
1776 pdpu = to_dpu_plane(plane); in _dpu_plane_destroy_debugfs()
1778 debugfs_remove_recursive(pdpu->debugfs_root); in _dpu_plane_destroy_debugfs()
1835 struct dpu_plane *pdpu; in dpu_plane_init() local
1865 pdpu = kzalloc(sizeof(*pdpu), GFP_KERNEL); in dpu_plane_init()
1866 if (!pdpu) { in dpu_plane_init()
1873 plane = &pdpu->base; in dpu_plane_init()
1874 pdpu->pipe = pipe; in dpu_plane_init()
1875 pdpu->is_virtual = (master_plane_id != 0); in dpu_plane_init()
1876 INIT_LIST_HEAD(&pdpu->mplane_list); in dpu_plane_init()
1881 list_add_tail(&pdpu->mplane_list, &mpdpu->mplane_list); in dpu_plane_init()
1885 pdpu->pipe_hw = dpu_hw_sspp_init(pipe, kms->mmio, kms->catalog, in dpu_plane_init()
1887 if (IS_ERR(pdpu->pipe_hw)) { in dpu_plane_init()
1889 ret = PTR_ERR(pdpu->pipe_hw); in dpu_plane_init()
1891 } else if (!pdpu->pipe_hw->cap || !pdpu->pipe_hw->cap->sblk) { in dpu_plane_init()
1897 pdpu->features = pdpu->pipe_hw->cap->features; in dpu_plane_init()
1898 pdpu->pipe_sblk = pdpu->pipe_hw->cap->sblk; in dpu_plane_init()
1899 if (!pdpu->pipe_sblk) { in dpu_plane_init()
1905 format_list = pdpu->pipe_sblk->format_list; in dpu_plane_init()
1907 format_list = pdpu->pipe_sblk->virt_format_list; in dpu_plane_init()
1909 pdpu->nformats = dpu_populate_formats(format_list, in dpu_plane_init()
1910 pdpu->formats, in dpu_plane_init()
1912 ARRAY_SIZE(pdpu->formats)); in dpu_plane_init()
1914 if (!pdpu->nformats) { in dpu_plane_init()
1919 if (pdpu->features & BIT(DPU_SSPP_CURSOR)) in dpu_plane_init()
1926 pdpu->formats, pdpu->nformats, in dpu_plane_init()
1931 pdpu->catalog = kms->catalog; in dpu_plane_init()
1948 snprintf(pdpu->pipe_name, DPU_NAME_SIZE, "plane%u", plane->base.id); in dpu_plane_init()
1950 mutex_init(&pdpu->lock); in dpu_plane_init()
1952 DPU_DEBUG("%s created for pipe:%u id:%u virtual:%u\n", pdpu->pipe_name, in dpu_plane_init()
1957 if (pdpu && pdpu->pipe_hw) in dpu_plane_init()
1958 dpu_hw_sspp_destroy(pdpu->pipe_hw); in dpu_plane_init()
1960 kfree(pdpu); in dpu_plane_init()