Lines Matching full:crtc

47 static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc)  in _dpu_crtc_get_kms()  argument
49 struct msm_drm_private *priv = crtc->dev->dev_private; in _dpu_crtc_get_kms()
54 static void dpu_crtc_destroy(struct drm_crtc *crtc) in dpu_crtc_destroy() argument
56 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_destroy()
58 if (!crtc) in dpu_crtc_destroy()
61 drm_crtc_cleanup(crtc); in dpu_crtc_destroy()
65 static struct drm_encoder *get_encoder_from_crtc(struct drm_crtc *crtc) in get_encoder_from_crtc() argument
67 struct drm_device *dev = crtc->dev; in get_encoder_from_crtc()
71 if (encoder->crtc == crtc) in get_encoder_from_crtc()
91 static int dpu_crtc_verify_crc_source(struct drm_crtc *crtc, in dpu_crtc_verify_crc_source() argument
95 struct dpu_crtc_state *crtc_state = to_dpu_crtc_state(crtc->state); in dpu_crtc_verify_crc_source()
98 DRM_DEBUG_DRIVER("Invalid source %s for CRTC%d\n", src_name, crtc->index); in dpu_crtc_verify_crc_source()
109 drm_for_each_encoder_mask(drm_enc, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_verify_crc_source()
132 static void dpu_crtc_setup_encoder_misr(struct drm_crtc *crtc) in dpu_crtc_setup_encoder_misr() argument
136 drm_for_each_encoder_mask(drm_enc, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_setup_encoder_misr()
140 static int dpu_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name) in dpu_crtc_set_crc_source() argument
145 struct drm_device *drm_dev = crtc->dev; in dpu_crtc_set_crc_source()
152 DRM_DEBUG_DRIVER("Invalid CRC source %s for CRTC%d\n", src_name, crtc->index); in dpu_crtc_set_crc_source()
156 ret = drm_modeset_lock(&crtc->mutex, NULL); in dpu_crtc_set_crc_source()
162 crtc_state = to_dpu_crtc_state(crtc->state); in dpu_crtc_set_crc_source()
171 ret = drm_crtc_vblank_get(crtc); in dpu_crtc_set_crc_source()
177 drm_crtc_vblank_put(crtc); in dpu_crtc_set_crc_source()
189 dpu_crtc_setup_encoder_misr(crtc); in dpu_crtc_set_crc_source()
194 drm_modeset_unlock(&crtc->mutex); in dpu_crtc_set_crc_source()
199 static u32 dpu_crtc_get_vblank_counter(struct drm_crtc *crtc) in dpu_crtc_get_vblank_counter() argument
201 struct drm_encoder *encoder = get_encoder_from_crtc(crtc); in dpu_crtc_get_vblank_counter()
203 DRM_ERROR("no encoder found for crtc %d\n", crtc->index); in dpu_crtc_get_vblank_counter()
210 static int dpu_crtc_get_lm_crc(struct drm_crtc *crtc, in dpu_crtc_get_lm_crc() argument
237 return drm_crtc_add_crc_entry(crtc, true, in dpu_crtc_get_lm_crc()
238 drm_crtc_accurate_vblank_count(crtc), crcs); in dpu_crtc_get_lm_crc()
241 static int dpu_crtc_get_encoder_crc(struct drm_crtc *crtc) in dpu_crtc_get_encoder_crc() argument
247 drm_for_each_encoder_mask(drm_enc, crtc->dev, crtc->state->encoder_mask) { in dpu_crtc_get_encoder_crc()
259 return drm_crtc_add_crc_entry(crtc, true, in dpu_crtc_get_encoder_crc()
260 drm_crtc_accurate_vblank_count(crtc), crcs); in dpu_crtc_get_encoder_crc()
263 static int dpu_crtc_get_crc(struct drm_crtc *crtc) in dpu_crtc_get_crc() argument
265 struct dpu_crtc_state *crtc_state = to_dpu_crtc_state(crtc->state); in dpu_crtc_get_crc()
274 return dpu_crtc_get_lm_crc(crtc, crtc_state); in dpu_crtc_get_crc()
276 return dpu_crtc_get_encoder_crc(crtc); in dpu_crtc_get_crc()
281 static bool dpu_crtc_get_scanout_position(struct drm_crtc *crtc, in dpu_crtc_get_scanout_position() argument
287 unsigned int pipe = crtc->index; in dpu_crtc_get_scanout_position()
291 encoder = get_encoder_from_crtc(crtc); in dpu_crtc_get_scanout_position()
293 DRM_ERROR("no encoder found for crtc %d\n", pipe); in dpu_crtc_get_scanout_position()
380 static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc) in _dpu_crtc_program_lm_output_roi() argument
385 crtc_state = to_dpu_crtc_state(crtc->state); in _dpu_crtc_program_lm_output_roi()
404 static void _dpu_crtc_blend_setup_pipe(struct drm_crtc *crtc, in _dpu_crtc_blend_setup_pipe() argument
424 trace_dpu_crtc_setup_mixer(DRMID(crtc), DRMID(plane), in _dpu_crtc_blend_setup_pipe()
429 DRM_DEBUG_ATOMIC("crtc %d stage:%d - plane %d sspp %d fb %d multirect_idx %d\n", in _dpu_crtc_blend_setup_pipe()
430 crtc->base.id, in _dpu_crtc_blend_setup_pipe()
445 static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc, in _dpu_crtc_blend_setup_mixer() argument
452 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in _dpu_crtc_blend_setup_mixer()
462 drm_atomic_crtc_for_each_plane(plane, crtc) { in _dpu_crtc_blend_setup_mixer()
479 _dpu_crtc_blend_setup_pipe(crtc, plane, in _dpu_crtc_blend_setup_mixer()
487 _dpu_crtc_blend_setup_pipe(crtc, plane, in _dpu_crtc_blend_setup_mixer()
509 _dpu_crtc_program_lm_output_roi(crtc); in _dpu_crtc_blend_setup_mixer()
513 * _dpu_crtc_blend_setup - configure crtc mixers
514 * @crtc: Pointer to drm crtc structure
516 static void _dpu_crtc_blend_setup(struct drm_crtc *crtc) in _dpu_crtc_blend_setup() argument
518 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in _dpu_crtc_blend_setup()
519 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in _dpu_crtc_blend_setup()
538 _dpu_crtc_blend_setup_mixer(crtc, dpu_crtc, mixer, &stage_cfg); in _dpu_crtc_blend_setup()
567 * @crtc: Pointer to drm crtc structure
569 static void _dpu_crtc_complete_flip(struct drm_crtc *crtc) in _dpu_crtc_complete_flip() argument
571 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in _dpu_crtc_complete_flip()
572 struct drm_device *dev = crtc->dev; in _dpu_crtc_complete_flip()
579 trace_dpu_crtc_complete_flip(DRMID(crtc)); in _dpu_crtc_complete_flip()
580 drm_crtc_send_vblank_event(crtc, dpu_crtc->event); in _dpu_crtc_complete_flip()
586 enum dpu_intf_mode dpu_crtc_get_intf_mode(struct drm_crtc *crtc) in dpu_crtc_get_intf_mode() argument
592 * check. When called from debugfs, the crtc->mutex must be held to in dpu_crtc_get_intf_mode()
593 * read crtc->state. However reading crtc->state from atomic check isn't in dpu_crtc_get_intf_mode()
599 WARN_ON(!drm_modeset_is_locked(&crtc->mutex)); in dpu_crtc_get_intf_mode()
602 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_get_intf_mode()
608 void dpu_crtc_vblank_callback(struct drm_crtc *crtc) in dpu_crtc_vblank_callback() argument
610 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_vblank_callback()
618 dpu_crtc_get_crc(crtc); in dpu_crtc_vblank_callback()
620 drm_crtc_handle_vblank(crtc); in dpu_crtc_vblank_callback()
621 trace_dpu_crtc_vblank_cb(DRMID(crtc)); in dpu_crtc_vblank_callback()
628 struct drm_crtc *crtc = fevent->crtc; in dpu_crtc_frame_event_work() local
629 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_frame_event_work()
635 DRM_DEBUG_ATOMIC("crtc%d event:%u ts:%lld\n", crtc->base.id, fevent->event, in dpu_crtc_frame_event_work()
646 trace_dpu_crtc_frame_event_done(DRMID(crtc), in dpu_crtc_frame_event_work()
648 dpu_core_perf_crtc_release_bw(crtc); in dpu_crtc_frame_event_work()
650 trace_dpu_crtc_frame_event_more_pending(DRMID(crtc), in dpu_crtc_frame_event_work()
660 DPU_ERROR("crtc%d ts:%lld received panel dead event\n", in dpu_crtc_frame_event_work()
661 crtc->base.id, ktime_to_ns(fevent->ts)); in dpu_crtc_frame_event_work()
673 * dpu_crtc_frame_event_cb - crtc frame event callback API. CRTC module
683 struct drm_crtc *crtc = (struct drm_crtc *)data; in dpu_crtc_frame_event_cb() local
694 dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_frame_event_cb()
695 priv = crtc->dev->dev_private; in dpu_crtc_frame_event_cb()
696 crtc_id = drm_crtc_index(crtc); in dpu_crtc_frame_event_cb()
698 trace_dpu_crtc_frame_event_cb(DRMID(crtc), event); in dpu_crtc_frame_event_cb()
708 DRM_ERROR_RATELIMITED("crtc%d event %d overflow\n", crtc->base.id, event); in dpu_crtc_frame_event_cb()
713 fevent->crtc = crtc; in dpu_crtc_frame_event_cb()
718 void dpu_crtc_complete_commit(struct drm_crtc *crtc) in dpu_crtc_complete_commit() argument
720 trace_dpu_crtc_complete_commit(DRMID(crtc)); in dpu_crtc_complete_commit()
721 dpu_core_perf_crtc_update(crtc, 0); in dpu_crtc_complete_commit()
722 _dpu_crtc_complete_flip(crtc); in dpu_crtc_complete_commit()
725 static int _dpu_crtc_check_and_setup_lm_bounds(struct drm_crtc *crtc, in _dpu_crtc_check_and_setup_lm_bounds() argument
731 struct dpu_kms *dpu_kms = _dpu_crtc_get_kms(crtc); in _dpu_crtc_check_and_setup_lm_bounds()
741 trace_dpu_crtc_setup_lm_bounds(DRMID(crtc), i, r); in _dpu_crtc_check_and_setup_lm_bounds()
775 static void _dpu_crtc_setup_cp_blocks(struct drm_crtc *crtc) in _dpu_crtc_setup_cp_blocks() argument
777 struct drm_crtc_state *state = crtc->state; in _dpu_crtc_setup_cp_blocks()
778 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in _dpu_crtc_setup_cp_blocks()
809 static void dpu_crtc_atomic_begin(struct drm_crtc *crtc, in dpu_crtc_atomic_begin() argument
812 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in dpu_crtc_atomic_begin()
815 if (!crtc->state->enable) { in dpu_crtc_atomic_begin()
816 DRM_DEBUG_ATOMIC("crtc%d -> enable %d, skip atomic_begin\n", in dpu_crtc_atomic_begin()
817 crtc->base.id, crtc->state->enable); in dpu_crtc_atomic_begin()
821 DRM_DEBUG_ATOMIC("crtc%d\n", crtc->base.id); in dpu_crtc_atomic_begin()
823 _dpu_crtc_check_and_setup_lm_bounds(crtc, crtc->state); in dpu_crtc_atomic_begin()
826 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_atomic_begin()
831 * it means we are trying to flush a CRTC whose state is disabled: in dpu_crtc_atomic_begin()
837 _dpu_crtc_blend_setup(crtc); in dpu_crtc_atomic_begin()
839 _dpu_crtc_setup_cp_blocks(crtc); in dpu_crtc_atomic_begin()
850 static void dpu_crtc_atomic_flush(struct drm_crtc *crtc, in dpu_crtc_atomic_flush() argument
860 if (!crtc->state->enable) { in dpu_crtc_atomic_flush()
861 DRM_DEBUG_ATOMIC("crtc%d -> enable %d, skip atomic_flush\n", in dpu_crtc_atomic_flush()
862 crtc->base.id, crtc->state->enable); in dpu_crtc_atomic_flush()
866 DRM_DEBUG_ATOMIC("crtc%d\n", crtc->base.id); in dpu_crtc_atomic_flush()
868 dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_atomic_flush()
869 cstate = to_dpu_crtc_state(crtc->state); in dpu_crtc_atomic_flush()
870 dev = crtc->dev; in dpu_crtc_atomic_flush()
873 if (crtc->index >= ARRAY_SIZE(priv->event_thread)) { in dpu_crtc_atomic_flush()
874 DPU_ERROR("invalid crtc index[%d]\n", crtc->index); in dpu_crtc_atomic_flush()
880 dpu_crtc->event = crtc->state->event; in dpu_crtc_atomic_flush()
881 crtc->state->event = NULL; in dpu_crtc_atomic_flush()
886 * it means we are trying to flush a CRTC whose state is disabled: in dpu_crtc_atomic_flush()
892 /* update performance setting before crtc kickoff */ in dpu_crtc_atomic_flush()
893 dpu_core_perf_crtc_update(crtc, 1); in dpu_crtc_atomic_flush()
897 * required writes/flushing before crtc's "flush in dpu_crtc_atomic_flush()
900 drm_atomic_crtc_for_each_plane(plane, crtc) { in dpu_crtc_atomic_flush()
911 * @crtc: drm CRTC
912 * @state: CRTC state object to release
914 static void dpu_crtc_destroy_state(struct drm_crtc *crtc, in dpu_crtc_destroy_state() argument
919 DRM_DEBUG_ATOMIC("crtc%d\n", crtc->base.id); in dpu_crtc_destroy_state()
926 static int _dpu_crtc_wait_for_frame_done(struct drm_crtc *crtc) in _dpu_crtc_wait_for_frame_done() argument
928 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in _dpu_crtc_wait_for_frame_done()
948 void dpu_crtc_commit_kickoff(struct drm_crtc *crtc) in dpu_crtc_commit_kickoff() argument
951 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_commit_kickoff()
952 struct dpu_kms *dpu_kms = _dpu_crtc_get_kms(crtc); in dpu_crtc_commit_kickoff()
953 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in dpu_crtc_commit_kickoff()
957 * it means we are trying to start a CRTC whose state is disabled: in dpu_crtc_commit_kickoff()
965 drm_for_each_encoder_mask(encoder, crtc->dev, in dpu_crtc_commit_kickoff()
966 crtc->state->encoder_mask) { in dpu_crtc_commit_kickoff()
968 DRM_DEBUG_ATOMIC("invalid FB not kicking off crtc\n"); in dpu_crtc_commit_kickoff()
976 drm_for_each_encoder_mask(encoder, crtc->dev, in dpu_crtc_commit_kickoff()
977 crtc->state->encoder_mask) in dpu_crtc_commit_kickoff()
982 DRM_DEBUG_ATOMIC("crtc%d first commit\n", crtc->base.id); in dpu_crtc_commit_kickoff()
984 DRM_DEBUG_ATOMIC("crtc%d commit\n", crtc->base.id); in dpu_crtc_commit_kickoff()
990 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_commit_kickoff()
999 static void dpu_crtc_reset(struct drm_crtc *crtc) in dpu_crtc_reset() argument
1003 if (crtc->state) in dpu_crtc_reset()
1004 dpu_crtc_destroy_state(crtc, crtc->state); in dpu_crtc_reset()
1007 __drm_atomic_helper_crtc_reset(crtc, &cstate->base); in dpu_crtc_reset()
1009 __drm_atomic_helper_crtc_reset(crtc, NULL); in dpu_crtc_reset()
1014 * @crtc: Pointer to drm crtc structure
1016 static struct drm_crtc_state *dpu_crtc_duplicate_state(struct drm_crtc *crtc) in dpu_crtc_duplicate_state() argument
1018 struct dpu_crtc_state *cstate, *old_cstate = to_dpu_crtc_state(crtc->state); in dpu_crtc_duplicate_state()
1027 __drm_atomic_helper_crtc_duplicate_state(crtc, &cstate->base); in dpu_crtc_duplicate_state()
1046 static void dpu_crtc_disable(struct drm_crtc *crtc, in dpu_crtc_disable() argument
1050 crtc); in dpu_crtc_disable()
1051 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_disable()
1052 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in dpu_crtc_disable()
1057 DRM_DEBUG_KMS("crtc%d\n", crtc->base.id); in dpu_crtc_disable()
1061 * it won't trigger a warn while assigning crtc. in dpu_crtc_disable()
1064 drm_for_each_encoder_mask(encoder, crtc->dev, in dpu_crtc_disable()
1072 drm_crtc_vblank_off(crtc); in dpu_crtc_disable()
1074 drm_for_each_encoder_mask(encoder, crtc->dev, in dpu_crtc_disable()
1078 * crtc is being used in video mode. in dpu_crtc_disable()
1085 * we will need encoder->crtc connection to process the device sleep & in dpu_crtc_disable()
1088 if (!crtc->state->self_refresh_active) in dpu_crtc_disable()
1093 if (_dpu_crtc_wait_for_frame_done(crtc)) in dpu_crtc_disable()
1094 DPU_ERROR("crtc%d wait for frame done failed;frame_pending%d\n", in dpu_crtc_disable()
1095 crtc->base.id, in dpu_crtc_disable()
1098 trace_dpu_crtc_disable(DRMID(crtc), false, dpu_crtc); in dpu_crtc_disable()
1102 trace_dpu_crtc_disable_frame_pending(DRMID(crtc), in dpu_crtc_disable()
1105 dpu_core_perf_crtc_release_bw(crtc); in dpu_crtc_disable()
1109 dpu_core_perf_crtc_update(crtc, 0); in dpu_crtc_disable()
1111 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_disable()
1121 if (crtc->state->event && !crtc->state->active) { in dpu_crtc_disable()
1122 spin_lock_irqsave(&crtc->dev->event_lock, flags); in dpu_crtc_disable()
1123 drm_crtc_send_vblank_event(crtc, crtc->state->event); in dpu_crtc_disable()
1124 crtc->state->event = NULL; in dpu_crtc_disable()
1125 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in dpu_crtc_disable()
1128 pm_runtime_put_sync(crtc->dev->dev); in dpu_crtc_disable()
1131 static void dpu_crtc_enable(struct drm_crtc *crtc, in dpu_crtc_enable() argument
1134 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_enable()
1139 old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc); in dpu_crtc_enable()
1141 pm_runtime_get_sync(crtc->dev->dev); in dpu_crtc_enable()
1143 DRM_DEBUG_KMS("crtc%d\n", crtc->base.id); in dpu_crtc_enable()
1145 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) { in dpu_crtc_enable()
1148 * crtc is being used in video mode. in dpu_crtc_enable()
1153 dpu_crtc_frame_event_cb, (void *)crtc); in dpu_crtc_enable()
1157 atomic_inc(&_dpu_crtc_get_kms(crtc)->bandwidth_ref); in dpu_crtc_enable()
1159 trace_dpu_crtc_enable(DRMID(crtc), true, dpu_crtc); in dpu_crtc_enable()
1163 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) in dpu_crtc_enable()
1164 dpu_encoder_assign_crtc(encoder, crtc); in dpu_crtc_enable()
1168 drm_crtc_vblank_on(crtc); in dpu_crtc_enable()
1173 struct drm_crtc *crtc = cstate->crtc; in dpu_crtc_needs_dirtyfb() local
1179 drm_for_each_encoder_mask (encoder, crtc->dev, cstate->encoder_mask) { in dpu_crtc_needs_dirtyfb()
1188 static int dpu_crtc_atomic_check(struct drm_crtc *crtc, in dpu_crtc_atomic_check() argument
1192 crtc); in dpu_crtc_atomic_check()
1193 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_atomic_check()
1204 DRM_DEBUG_ATOMIC("crtc%d -> enable %d, active %d, skip atomic_check\n", in dpu_crtc_atomic_check()
1205 crtc->base.id, crtc_state->enable, in dpu_crtc_atomic_check()
1218 rc = _dpu_crtc_check_and_setup_lm_bounds(crtc, crtc_state); in dpu_crtc_atomic_check()
1240 atomic_inc(&_dpu_crtc_get_kms(crtc)->bandwidth_ref); in dpu_crtc_atomic_check()
1242 rc = dpu_core_perf_crtc_check(crtc, crtc_state); in dpu_crtc_atomic_check()
1244 DPU_ERROR("crtc%d failed performance check %d\n", in dpu_crtc_atomic_check()
1245 crtc->base.id, rc); in dpu_crtc_atomic_check()
1252 int dpu_crtc_vblank(struct drm_crtc *crtc, bool en) in dpu_crtc_vblank() argument
1254 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_vblank()
1260 * Normally we would iterate through encoder_mask in crtc state to find in dpu_crtc_vblank()
1264 * Instead, we "assign" a crtc to the encoder in enable and clear it in in dpu_crtc_vblank()
1267 * currently assigned to our crtc. in dpu_crtc_vblank()
1269 * Note also that this function cannot be called while crtc is disabled in dpu_crtc_vblank()
1274 list_for_each_entry(enc, &crtc->dev->mode_config.encoder_list, head) { in dpu_crtc_vblank()
1275 trace_dpu_crtc_vblank_enable(DRMID(crtc), DRMID(enc), en, in dpu_crtc_vblank()
1278 dpu_encoder_toggle_vblank_for_crtc(enc, crtc, en); in dpu_crtc_vblank()
1291 struct drm_crtc *crtc; in _dpu_debugfs_status_show() local
1301 crtc = &dpu_crtc->base; in _dpu_debugfs_status_show()
1303 drm_modeset_lock_all(crtc->dev); in _dpu_debugfs_status_show()
1304 cstate = to_dpu_crtc_state(crtc->state); in _dpu_debugfs_status_show()
1306 mode = &crtc->state->adjusted_mode; in _dpu_debugfs_status_show()
1309 seq_printf(s, "crtc:%d width:%d height:%d\n", crtc->base.id, in _dpu_debugfs_status_show()
1323 drm_atomic_crtc_for_each_plane(plane, crtc) { in _dpu_debugfs_status_show()
1395 drm_modeset_unlock_all(crtc->dev); in _dpu_debugfs_status_show()
1404 struct drm_crtc *crtc = s->private; in dpu_crtc_debugfs_state_show() local
1405 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_debugfs_state_show()
1407 seq_printf(s, "client type: %d\n", dpu_crtc_get_client_type(crtc)); in dpu_crtc_debugfs_state_show()
1408 seq_printf(s, "intf_mode: %d\n", dpu_crtc_get_intf_mode(crtc)); in dpu_crtc_debugfs_state_show()
1419 static int _dpu_crtc_init_debugfs(struct drm_crtc *crtc) in _dpu_crtc_init_debugfs() argument
1421 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in _dpu_crtc_init_debugfs()
1424 crtc->debugfs_entry, in _dpu_crtc_init_debugfs()
1427 crtc->debugfs_entry, in _dpu_crtc_init_debugfs()
1434 static int _dpu_crtc_init_debugfs(struct drm_crtc *crtc) in _dpu_crtc_init_debugfs() argument
1440 static int dpu_crtc_late_register(struct drm_crtc *crtc) in dpu_crtc_late_register() argument
1442 return _dpu_crtc_init_debugfs(crtc); in dpu_crtc_late_register()
1471 /* initialize crtc */
1477 struct drm_crtc *crtc = NULL; in dpu_crtc_init() local
1485 crtc = &dpu_crtc->base; in dpu_crtc_init()
1486 crtc->dev = dev; in dpu_crtc_init()
1503 drm_crtc_init_with_planes(dev, crtc, plane, cursor, &dpu_crtc_funcs, in dpu_crtc_init()
1506 drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs); in dpu_crtc_init()
1509 drm_crtc_enable_color_mgmt(crtc, 0, true, 0); in dpu_crtc_init()
1511 /* save user friendly CRTC name for later */ in dpu_crtc_init()
1512 snprintf(dpu_crtc->name, DPU_CRTC_NAME_SIZE, "crtc%u", crtc->base.id); in dpu_crtc_init()
1517 ret = drm_self_refresh_helper_init(crtc); in dpu_crtc_init()
1520 crtc->name, ret); in dpu_crtc_init()
1524 DRM_DEBUG_KMS("%s: successfully initialized crtc\n", dpu_crtc->name); in dpu_crtc_init()
1525 return crtc; in dpu_crtc_init()