Lines Matching refs:plane
122 static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane) in _dpu_plane_get_kms() argument
124 struct msm_drm_private *priv = plane->dev->dev_private; in _dpu_plane_get_kms()
138 static void _dpu_plane_calc_bw(struct drm_plane *plane, in _dpu_plane_calc_bw() argument
145 struct dpu_kms *dpu_kms = _dpu_plane_get_kms(plane); in _dpu_plane_calc_bw()
153 pstate = to_dpu_plane_state(plane->state); in _dpu_plane_calc_bw()
154 mode = &plane->state->crtc->mode; in _dpu_plane_calc_bw()
195 static void _dpu_plane_calc_clk(struct drm_plane *plane, struct dpu_hw_pipe_cfg *pipe_cfg) in _dpu_plane_calc_clk() argument
201 pstate = to_dpu_plane_state(plane->state); in _dpu_plane_calc_clk()
202 mode = &plane->state->crtc->mode; in _dpu_plane_calc_clk()
225 static int _dpu_plane_calc_fill_level(struct drm_plane *plane, in _dpu_plane_calc_fill_level() argument
233 if (!fmt || !plane->state || !src_width || !fmt->bpp) { in _dpu_plane_calc_fill_level()
238 pdpu = to_dpu_plane(plane); in _dpu_plane_calc_fill_level()
239 pstate = to_dpu_plane_state(plane->state); in _dpu_plane_calc_fill_level()
278 static void _dpu_plane_set_qos_lut(struct drm_plane *plane, in _dpu_plane_set_qos_lut() argument
281 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_lut()
292 total_fl = _dpu_plane_calc_fill_level(plane, fmt, in _dpu_plane_set_qos_lut()
321 static void _dpu_plane_set_danger_lut(struct drm_plane *plane, in _dpu_plane_set_danger_lut() argument
324 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_danger_lut()
374 static void _dpu_plane_set_qos_ctrl(struct drm_plane *plane, in _dpu_plane_set_qos_ctrl() argument
377 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_ctrl()
421 static void _dpu_plane_set_ot_limit(struct drm_plane *plane, in _dpu_plane_set_ot_limit() argument
424 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_ot_limit()
426 struct dpu_kms *dpu_kms = _dpu_plane_get_kms(plane); in _dpu_plane_set_ot_limit()
446 static void _dpu_plane_set_qos_remap(struct drm_plane *plane) in _dpu_plane_set_qos_remap() argument
448 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_qos_remap()
450 struct dpu_kms *dpu_kms = _dpu_plane_get_kms(plane); in _dpu_plane_set_qos_remap()
468 static void _dpu_plane_set_scanout(struct drm_plane *plane, in _dpu_plane_set_scanout() argument
473 struct dpu_plane *pdpu = to_dpu_plane(plane); in _dpu_plane_set_scanout()
692 const struct drm_plane *plane = &pdpu->base; in _dpu_plane_color_fill() local
693 struct dpu_plane_state *pstate = to_dpu_plane_state(plane->state); in _dpu_plane_color_fill()
744 int dpu_plane_validate_multirect_v2(struct dpu_multirect_plane_states *plane) in dpu_plane_validate_multirect_v2() argument
759 drm_state[i] = i ? plane->r1 : plane->r0; in dpu_plane_validate_multirect_v2()
774 dpu_plane[i] = to_dpu_plane(drm_state[i]->plane); in dpu_plane_validate_multirect_v2()
778 drm_state[i]->plane->base.id); in dpu_plane_validate_multirect_v2()
839 drm_state[R0]->plane->base.id, in dpu_plane_validate_multirect_v2()
840 drm_state[R1]->plane->base.id); in dpu_plane_validate_multirect_v2()
855 static int dpu_plane_prepare_fb(struct drm_plane *plane, in dpu_plane_prepare_fb() argument
859 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_prepare_fb()
878 drm_gem_plane_helper_prepare_fb(plane, new_state); in dpu_plane_prepare_fb()
900 static void dpu_plane_cleanup_fb(struct drm_plane *plane, in dpu_plane_cleanup_fb() argument
903 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_cleanup_fb()
964 static int dpu_plane_atomic_check(struct drm_plane *plane, in dpu_plane_atomic_check() argument
968 plane); in dpu_plane_atomic_check()
970 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_atomic_check()
1069 void dpu_plane_flush(struct drm_plane *plane) in dpu_plane_flush() argument
1074 if (!plane || !plane->state) { in dpu_plane_flush()
1079 pdpu = to_dpu_plane(plane); in dpu_plane_flush()
1080 pstate = to_dpu_plane_state(plane->state); in dpu_plane_flush()
1093 const struct dpu_format *fmt = to_dpu_format(msm_framebuffer_format(plane->state->fb)); in dpu_plane_flush()
1101 if (plane->state) in dpu_plane_flush()
1110 void dpu_plane_set_error(struct drm_plane *plane, bool error) in dpu_plane_set_error() argument
1114 if (!plane) in dpu_plane_set_error()
1117 pdpu = to_dpu_plane(plane); in dpu_plane_set_error()
1121 static void dpu_plane_sspp_atomic_update(struct drm_plane *plane) in dpu_plane_sspp_atomic_update() argument
1124 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_sspp_atomic_update()
1125 struct drm_plane_state *state = plane->state; in dpu_plane_sspp_atomic_update()
1136 _dpu_plane_set_scanout(plane, pstate, &pipe_cfg, fb); in dpu_plane_sspp_atomic_update()
1144 _dpu_plane_set_qos_ctrl(plane, false, DPU_PLANE_QOS_PANIC_CTRL); in dpu_plane_sspp_atomic_update()
1217 _dpu_plane_set_qos_lut(plane, fb, &pipe_cfg); in dpu_plane_sspp_atomic_update()
1218 _dpu_plane_set_danger_lut(plane, fb); in dpu_plane_sspp_atomic_update()
1220 if (plane->type != DRM_PLANE_TYPE_CURSOR) { in dpu_plane_sspp_atomic_update()
1221 _dpu_plane_set_qos_ctrl(plane, true, DPU_PLANE_QOS_PANIC_CTRL); in dpu_plane_sspp_atomic_update()
1222 _dpu_plane_set_ot_limit(plane, crtc, &pipe_cfg); in dpu_plane_sspp_atomic_update()
1227 _dpu_plane_set_qos_remap(plane); in dpu_plane_sspp_atomic_update()
1230 _dpu_plane_calc_bw(plane, fb, &pipe_cfg); in dpu_plane_sspp_atomic_update()
1232 _dpu_plane_calc_clk(plane, &pipe_cfg); in dpu_plane_sspp_atomic_update()
1235 static void _dpu_plane_atomic_disable(struct drm_plane *plane) in _dpu_plane_atomic_disable() argument
1237 struct drm_plane_state *state = plane->state; in _dpu_plane_atomic_disable()
1240 trace_dpu_plane_disable(DRMID(plane), false, in _dpu_plane_atomic_disable()
1246 static void dpu_plane_atomic_update(struct drm_plane *plane, in dpu_plane_atomic_update() argument
1249 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_atomic_update()
1251 plane); in dpu_plane_atomic_update()
1258 _dpu_plane_atomic_disable(plane); in dpu_plane_atomic_update()
1260 dpu_plane_sspp_atomic_update(plane); in dpu_plane_atomic_update()
1264 static void dpu_plane_destroy(struct drm_plane *plane) in dpu_plane_destroy() argument
1266 struct dpu_plane *pdpu = plane ? to_dpu_plane(plane) : NULL; in dpu_plane_destroy()
1271 _dpu_plane_set_qos_ctrl(plane, false, DPU_PLANE_QOS_PANIC_CTRL); in dpu_plane_destroy()
1276 drm_plane_cleanup(plane); in dpu_plane_destroy()
1284 static void dpu_plane_destroy_state(struct drm_plane *plane, in dpu_plane_destroy_state() argument
1292 dpu_plane_duplicate_state(struct drm_plane *plane) in dpu_plane_duplicate_state() argument
1298 if (!plane) { in dpu_plane_duplicate_state()
1301 } else if (!plane->state) { in dpu_plane_duplicate_state()
1306 old_state = to_dpu_plane_state(plane->state); in dpu_plane_duplicate_state()
1307 pdpu = to_dpu_plane(plane); in dpu_plane_duplicate_state()
1318 __drm_atomic_helper_plane_duplicate_state(plane, &pstate->base); in dpu_plane_duplicate_state()
1355 const struct dpu_plane *pdpu = to_dpu_plane(state->plane); in dpu_plane_atomic_print_state()
1363 static void dpu_plane_reset(struct drm_plane *plane) in dpu_plane_reset() argument
1368 if (!plane) { in dpu_plane_reset()
1373 pdpu = to_dpu_plane(plane); in dpu_plane_reset()
1377 if (plane->state) { in dpu_plane_reset()
1378 dpu_plane_destroy_state(plane, plane->state); in dpu_plane_reset()
1379 plane->state = NULL; in dpu_plane_reset()
1388 __drm_atomic_helper_plane_reset(plane, &pstate->base); in dpu_plane_reset()
1392 void dpu_plane_danger_signal_ctrl(struct drm_plane *plane, bool enable) in dpu_plane_danger_signal_ctrl() argument
1394 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_plane_danger_signal_ctrl()
1395 struct dpu_kms *dpu_kms = _dpu_plane_get_kms(plane); in dpu_plane_danger_signal_ctrl()
1401 _dpu_plane_set_qos_ctrl(plane, enable, DPU_PLANE_QOS_PANIC_CTRL); in dpu_plane_danger_signal_ctrl()
1408 struct drm_plane *plane; in dpu_debugfs_sspp_init() local
1414 drm_for_each_plane(plane, dpu_kms->dev) { in dpu_debugfs_sspp_init()
1415 struct dpu_plane *pdpu = to_dpu_plane(plane); in dpu_debugfs_sspp_init()
1422 static bool dpu_plane_format_mod_supported(struct drm_plane *plane, in dpu_plane_format_mod_supported() argument
1453 enum dpu_sspp dpu_plane_pipe(struct drm_plane *plane) in dpu_plane_pipe() argument
1455 return plane ? to_dpu_plane(plane)->pipe : SSPP_NONE; in dpu_plane_pipe()
1463 struct drm_plane *plane = NULL; in dpu_plane_init() local
1481 plane = &pdpu->base; in dpu_plane_init()
1498 ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, in dpu_plane_init()
1506 ret = drm_plane_create_zpos_property(plane, 0, 0, DPU_ZPOS_MAX); in dpu_plane_init()
1510 drm_plane_create_alpha_property(plane); in dpu_plane_init()
1511 drm_plane_create_blend_mode_property(plane, in dpu_plane_init()
1521 drm_plane_create_rotation_property(plane, in dpu_plane_init()
1524 drm_plane_enable_fb_damage_clips(plane); in dpu_plane_init()
1527 drm_plane_helper_add(plane, &dpu_plane_helper_funcs); in dpu_plane_init()
1531 DPU_DEBUG("%s created for pipe:%u id:%u\n", plane->name, in dpu_plane_init()
1532 pipe, plane->base.id); in dpu_plane_init()
1533 return plane; in dpu_plane_init()