Lines Matching refs:drm_enc
231 struct drm_encoder *drm_enc; in dpu_encoder_get_drm_fmt() local
236 drm_enc = phys_enc->parent; in dpu_encoder_get_drm_fmt()
237 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_drm_fmt()
254 struct drm_encoder *drm_enc; in dpu_encoder_needs_periph_flush() local
260 drm_enc = phys_enc->parent; in dpu_encoder_needs_periph_flush()
261 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_needs_periph_flush()
263 priv = drm_enc->dev->dev_private; in dpu_encoder_needs_periph_flush()
274 bool dpu_encoder_is_widebus_enabled(const struct drm_encoder *drm_enc) in dpu_encoder_is_widebus_enabled() argument
277 struct msm_drm_private *priv = drm_enc->dev->dev_private; in dpu_encoder_is_widebus_enabled()
281 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_is_widebus_enabled()
298 bool dpu_encoder_is_dsc_enabled(const struct drm_encoder *drm_enc) in dpu_encoder_is_dsc_enabled() argument
300 const struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_is_dsc_enabled()
311 int dpu_encoder_get_crc_values_cnt(const struct drm_encoder *drm_enc) in dpu_encoder_get_crc_values_cnt() argument
316 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_crc_values_cnt()
333 void dpu_encoder_setup_misr(const struct drm_encoder *drm_enc) in dpu_encoder_setup_misr() argument
339 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_setup_misr()
358 int dpu_encoder_get_crc(const struct drm_encoder *drm_enc, u32 *crcs, int pos) in dpu_encoder_get_crc() argument
364 if (!drm_enc->crtc) { in dpu_encoder_get_crc()
365 DRM_ERROR("no crtc found for encoder %d\n", drm_enc->index); in dpu_encoder_get_crc()
369 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_crc()
535 int dpu_encoder_get_vsync_count(struct drm_encoder *drm_enc) in dpu_encoder_get_vsync_count() argument
537 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_vsync_count()
546 int dpu_encoder_get_linecount(struct drm_encoder *drm_enc) in dpu_encoder_get_linecount() argument
552 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_linecount()
621 bool dpu_encoder_use_dsc_merge(struct drm_encoder *drm_enc) in dpu_encoder_use_dsc_merge() argument
623 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_use_dsc_merge()
643 struct drm_dsc_config *dpu_encoder_get_dsc_config(struct drm_encoder *drm_enc) in dpu_encoder_get_dsc_config() argument
645 struct msm_drm_private *priv = drm_enc->dev->dev_private; in dpu_encoder_get_dsc_config()
646 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_get_dsc_config()
655 void dpu_encoder_update_topology(struct drm_encoder *drm_enc, in dpu_encoder_update_topology() argument
660 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_update_topology()
675 dsc = dpu_encoder_get_dsc_config(drm_enc); in dpu_encoder_update_topology()
694 connector = drm_atomic_get_new_connector_for_encoder(state, drm_enc); in dpu_encoder_update_topology()
718 bool dpu_encoder_needs_modeset(struct drm_encoder *drm_enc, struct drm_atomic_state *state) in dpu_encoder_needs_modeset() argument
723 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_needs_modeset()
725 if (!drm_enc || !state) in dpu_encoder_needs_modeset()
728 connector = drm_atomic_get_new_connector_for_encoder(state, drm_enc); in dpu_encoder_needs_modeset()
759 struct drm_encoder *drm_enc; in _dpu_encoder_update_vsync_source() local
774 drm_enc = &dpu_enc->base; in _dpu_encoder_update_vsync_source()
776 priv = drm_enc->dev->dev_private; in _dpu_encoder_update_vsync_source()
806 static void _dpu_encoder_irq_enable(struct drm_encoder *drm_enc) in _dpu_encoder_irq_enable() argument
811 if (!drm_enc) { in _dpu_encoder_irq_enable()
816 dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_irq_enable()
826 static void _dpu_encoder_irq_disable(struct drm_encoder *drm_enc) in _dpu_encoder_irq_disable() argument
831 if (!drm_enc) { in _dpu_encoder_irq_disable()
836 dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_irq_disable()
846 static void _dpu_encoder_resource_enable(struct drm_encoder *drm_enc) in _dpu_encoder_resource_enable() argument
852 dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_resource_enable()
853 priv = drm_enc->dev->dev_private; in _dpu_encoder_resource_enable()
856 trace_dpu_enc_rc_enable(DRMID(drm_enc)); in _dpu_encoder_resource_enable()
867 _dpu_encoder_irq_enable(drm_enc); in _dpu_encoder_resource_enable()
870 static void _dpu_encoder_resource_disable(struct drm_encoder *drm_enc) in _dpu_encoder_resource_disable() argument
876 dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_resource_disable()
877 priv = drm_enc->dev->dev_private; in _dpu_encoder_resource_disable()
880 trace_dpu_enc_rc_disable(DRMID(drm_enc)); in _dpu_encoder_resource_disable()
888 _dpu_encoder_irq_disable(drm_enc); in _dpu_encoder_resource_disable()
894 static int dpu_encoder_resource_control(struct drm_encoder *drm_enc, in dpu_encoder_resource_control() argument
901 if (!drm_enc || !drm_enc->dev || !drm_enc->crtc) { in dpu_encoder_resource_control()
905 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_resource_control()
906 priv = drm_enc->dev->dev_private; in dpu_encoder_resource_control()
919 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, dpu_enc->idle_pc_supported, in dpu_encoder_resource_control()
934 DRMID(drm_enc), sw_event); in dpu_encoder_resource_control()
940 DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
947 _dpu_encoder_irq_enable(drm_enc); in dpu_encoder_resource_control()
949 _dpu_encoder_resource_enable(drm_enc); in dpu_encoder_resource_control()
953 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
969 DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
978 if (dpu_crtc_frame_pending(drm_enc->crtc) > 1) { in dpu_encoder_resource_control()
980 DRMID(drm_enc)); in dpu_encoder_resource_control()
987 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1002 _dpu_encoder_irq_enable(drm_enc); in dpu_encoder_resource_control()
1008 DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1016 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1029 DRMID(drm_enc), sw_event); in dpu_encoder_resource_control()
1034 DRMID(drm_enc), sw_event, dpu_enc->rc_state); in dpu_encoder_resource_control()
1044 _dpu_encoder_resource_disable(drm_enc); in dpu_encoder_resource_control()
1048 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1060 DRMID(drm_enc), sw_event, dpu_enc->rc_state); in dpu_encoder_resource_control()
1071 DRMID(drm_enc), sw_event, dpu_enc->rc_state); in dpu_encoder_resource_control()
1077 _dpu_encoder_irq_disable(drm_enc); in dpu_encoder_resource_control()
1079 _dpu_encoder_resource_disable(drm_enc); in dpu_encoder_resource_control()
1083 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1091 DRM_ERROR("id:%u, unexpected sw_event: %d\n", DRMID(drm_enc), in dpu_encoder_resource_control()
1093 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1099 trace_dpu_enc_rc(DRMID(drm_enc), sw_event, in dpu_encoder_resource_control()
1110 void dpu_encoder_prepare_wb_job(struct drm_encoder *drm_enc, in dpu_encoder_prepare_wb_job() argument
1116 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_prepare_wb_job()
1132 void dpu_encoder_cleanup_wb_job(struct drm_encoder *drm_enc, in dpu_encoder_cleanup_wb_job() argument
1138 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_cleanup_wb_job()
1149 static void dpu_encoder_virt_atomic_mode_set(struct drm_encoder *drm_enc, in dpu_encoder_virt_atomic_mode_set() argument
1168 if (!drm_enc) { in dpu_encoder_virt_atomic_mode_set()
1173 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_virt_atomic_mode_set()
1176 priv = drm_enc->dev->dev_private; in dpu_encoder_virt_atomic_mode_set()
1187 trace_dpu_enc_mode_set(DRMID(drm_enc)); in dpu_encoder_virt_atomic_mode_set()
1192 drm_enc->crtc, in dpu_encoder_virt_atomic_mode_set()
1196 drm_enc->crtc, in dpu_encoder_virt_atomic_mode_set()
1201 drm_enc->crtc, in dpu_encoder_virt_atomic_mode_set()
1214 drm_enc->crtc, DPU_HW_BLK_CTL, hw_ctl, ARRAY_SIZE(hw_ctl)); in dpu_encoder_virt_atomic_mode_set()
1221 drm_enc->crtc, DPU_HW_BLK_DSC, in dpu_encoder_virt_atomic_mode_set()
1235 drm_enc->crtc, DPU_HW_BLK_CDM, in dpu_encoder_virt_atomic_mode_set()
1267 static void _dpu_encoder_virt_enable_helper(struct drm_encoder *drm_enc) in _dpu_encoder_virt_enable_helper() argument
1272 if (!drm_enc || !drm_enc->dev) { in _dpu_encoder_virt_enable_helper()
1277 dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_virt_enable_helper()
1308 void dpu_encoder_virt_runtime_resume(struct drm_encoder *drm_enc) in dpu_encoder_virt_runtime_resume() argument
1310 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_virt_runtime_resume()
1322 _dpu_encoder_virt_enable_helper(drm_enc); in dpu_encoder_virt_runtime_resume()
1328 static void dpu_encoder_virt_atomic_enable(struct drm_encoder *drm_enc, in dpu_encoder_virt_atomic_enable() argument
1335 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_virt_atomic_enable()
1336 dpu_enc->dsc = dpu_encoder_get_dsc_config(drm_enc); in dpu_encoder_virt_atomic_enable()
1344 dpu_enc->connector = drm_atomic_get_new_connector_for_encoder(state, drm_enc); in dpu_encoder_virt_atomic_enable()
1348 dpu_enc->wide_bus_en = dpu_encoder_is_widebus_enabled(drm_enc); in dpu_encoder_virt_atomic_enable()
1350 trace_dpu_enc_enable(DRMID(drm_enc), cur_mode->hdisplay, in dpu_encoder_virt_atomic_enable()
1360 ret = dpu_encoder_resource_control(drm_enc, DPU_ENC_RC_EVENT_KICKOFF); in dpu_encoder_virt_atomic_enable()
1367 _dpu_encoder_virt_enable_helper(drm_enc); in dpu_encoder_virt_atomic_enable()
1375 static void dpu_encoder_virt_atomic_disable(struct drm_encoder *drm_enc, in dpu_encoder_virt_atomic_disable() argument
1383 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_virt_atomic_disable()
1386 crtc = drm_atomic_get_old_crtc_for_encoder(state, drm_enc); in dpu_encoder_virt_atomic_disable()
1400 trace_dpu_enc_disable(DRMID(drm_enc)); in dpu_encoder_virt_atomic_disable()
1403 dpu_encoder_wait_for_tx_complete(drm_enc); in dpu_encoder_virt_atomic_disable()
1405 dpu_encoder_resource_control(drm_enc, DPU_ENC_RC_EVENT_PRE_STOP); in dpu_encoder_virt_atomic_disable()
1417 DPU_ERROR("enc%d timeout pending\n", drm_enc->base.id); in dpu_encoder_virt_atomic_disable()
1421 dpu_encoder_resource_control(drm_enc, DPU_ENC_RC_EVENT_STOP); in dpu_encoder_virt_atomic_disable()
1455 void dpu_encoder_vblank_callback(struct drm_encoder *drm_enc, in dpu_encoder_vblank_callback() argument
1461 if (!drm_enc || !phy_enc) in dpu_encoder_vblank_callback()
1465 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_vblank_callback()
1483 void dpu_encoder_underrun_callback(struct drm_encoder *drm_enc, in dpu_encoder_underrun_callback() argument
1494 msm_disp_snapshot_state(drm_enc->dev); in dpu_encoder_underrun_callback()
1496 trace_dpu_enc_underrun_cb(DRMID(drm_enc), in dpu_encoder_underrun_callback()
1506 void dpu_encoder_assign_crtc(struct drm_encoder *drm_enc, struct drm_crtc *crtc) in dpu_encoder_assign_crtc() argument
1508 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_assign_crtc()
1525 void dpu_encoder_toggle_vblank_for_crtc(struct drm_encoder *drm_enc, in dpu_encoder_toggle_vblank_for_crtc() argument
1528 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_toggle_vblank_for_crtc()
1532 trace_dpu_enc_vblank_cb(DRMID(drm_enc), enable); in dpu_encoder_toggle_vblank_for_crtc()
1557 struct drm_encoder *drm_enc, in dpu_encoder_frame_done_callback() argument
1560 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_frame_done_callback()
1572 trace_dpu_enc_frame_done_cb_not_busy(DRMID(drm_enc), event, in dpu_encoder_frame_done_callback()
1582 trace_dpu_enc_frame_done_cb(DRMID(drm_enc), i, in dpu_encoder_frame_done_callback()
1592 dpu_encoder_resource_control(drm_enc, in dpu_encoder_frame_done_callback()
1622 static void _dpu_encoder_trigger_flush(struct drm_encoder *drm_enc, in _dpu_encoder_trigger_flush() argument
1625 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_trigger_flush()
1644 if (drm_enc->encoder_type == DRM_MODE_ENCODER_VIRTUAL && in _dpu_encoder_trigger_flush()
1647 DRMID(drm_enc)); in _dpu_encoder_trigger_flush()
1660 trace_dpu_enc_trigger_flush(DRMID(drm_enc), in _dpu_encoder_trigger_flush()
1747 struct drm_encoder *drm_enc; in dpu_encoder_helper_hw_reset() local
1751 drm_enc = phys_enc->parent; in dpu_encoder_helper_hw_reset()
1756 DRM_DEBUG_KMS("id:%u ctl %d reset\n", DRMID(drm_enc), in dpu_encoder_helper_hw_reset()
1762 msm_disp_snapshot_state(drm_enc->dev); in dpu_encoder_helper_hw_reset()
1830 void dpu_encoder_trigger_kickoff_pending(struct drm_encoder *drm_enc) in dpu_encoder_trigger_kickoff_pending() argument
1838 if (!drm_enc) { in dpu_encoder_trigger_kickoff_pending()
1842 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_trigger_kickoff_pending()
1911 int dpu_encoder_vsync_time(struct drm_encoder *drm_enc, ktime_t *wakeup_time) in dpu_encoder_vsync_time() argument
1920 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_vsync_time()
1922 if (!drm_enc->crtc || !drm_enc->crtc->state) { in dpu_encoder_vsync_time()
1926 mode = &drm_enc->crtc->state->adjusted_mode; in dpu_encoder_vsync_time()
2061 void dpu_encoder_prepare_for_kickoff(struct drm_encoder *drm_enc) in dpu_encoder_prepare_for_kickoff() argument
2068 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_prepare_for_kickoff()
2070 trace_dpu_enc_prepare_kickoff(DRMID(drm_enc)); in dpu_encoder_prepare_for_kickoff()
2083 dpu_encoder_resource_control(drm_enc, DPU_ENC_RC_EVENT_KICKOFF); in dpu_encoder_prepare_for_kickoff()
2087 trace_dpu_enc_prepare_kickoff_reset(DRMID(drm_enc)); in dpu_encoder_prepare_for_kickoff()
2101 bool dpu_encoder_is_valid_for_commit(struct drm_encoder *drm_enc) in dpu_encoder_is_valid_for_commit() argument
2107 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_is_valid_for_commit()
2109 if (drm_enc->encoder_type == DRM_MODE_ENCODER_VIRTUAL) { in dpu_encoder_is_valid_for_commit()
2126 void dpu_encoder_start_frame_done_timer(struct drm_encoder *drm_enc) in dpu_encoder_start_frame_done_timer() argument
2131 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_start_frame_done_timer()
2133 drm_mode_vrefresh(&drm_enc->crtc->state->adjusted_mode); in dpu_encoder_start_frame_done_timer()
2146 void dpu_encoder_kickoff(struct drm_encoder *drm_enc) in dpu_encoder_kickoff() argument
2153 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_kickoff()
2155 trace_dpu_enc_kickoff(DRMID(drm_enc)); in dpu_encoder_kickoff()
2491 struct drm_encoder *drm_enc = s->private; in _dpu_encoder_status_show() local
2492 struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc); in _dpu_encoder_status_show()
2515 static void dpu_encoder_debugfs_init(struct drm_encoder *drm_enc, struct dentry *root) in dpu_encoder_debugfs_init() argument
2519 root, drm_enc, &_dpu_encoder_status_fops); in dpu_encoder_debugfs_init()
2595 uint32_t dpu_encoder_get_clones(struct drm_encoder *drm_enc) in dpu_encoder_get_clones() argument
2598 int type = drm_enc->encoder_type; in dpu_encoder_get_clones()
2599 uint32_t clone_mask = drm_encoder_mask(drm_enc); in dpu_encoder_get_clones()
2611 drm_for_each_encoder(curr, drm_enc->dev) { in dpu_encoder_get_clones()
2708 struct drm_encoder *drm_enc = &dpu_enc->base; in dpu_encoder_frame_done_timeout() local
2711 if (!drm_enc->dev) { in dpu_encoder_frame_done_timeout()
2718 DRMID(drm_enc), dpu_enc->frame_busy_mask[0]); in dpu_encoder_frame_done_timeout()
2721 DRM_DEBUG_KMS("id:%u invalid timeout\n", DRMID(drm_enc)); in dpu_encoder_frame_done_timeout()
2728 msm_disp_snapshot_state(drm_enc->dev); in dpu_encoder_frame_done_timeout()
2731 trace_dpu_enc_frame_done_timeout(DRMID(drm_enc), event); in dpu_encoder_frame_done_timeout()
2805 int dpu_encoder_wait_for_commit_done(struct drm_encoder *drm_enc) in dpu_encoder_wait_for_commit_done() argument
2810 if (!drm_enc) { in dpu_encoder_wait_for_commit_done()
2814 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_wait_for_commit_done()
2826 msm_disp_snapshot_state(drm_enc->dev); in dpu_encoder_wait_for_commit_done()
2846 int dpu_encoder_wait_for_tx_complete(struct drm_encoder *drm_enc) in dpu_encoder_wait_for_tx_complete() argument
2851 if (!drm_enc) { in dpu_encoder_wait_for_tx_complete()
2855 dpu_enc = to_dpu_encoder_virt(drm_enc); in dpu_encoder_wait_for_tx_complete()