Lines Matching +full:dp +full:- +full:connector
1 // SPDX-License-Identifier: MIT
49 return to_intel_display(node->minor->dev); in node_to_intel_display()
54 struct intel_display *display = node_to_intel_display(m->private); in intel_display_caps()
59 intel_display_params_dump(&display->params, display->drm->driver->name, &p); in intel_display_caps()
66 struct intel_display *display = node_to_intel_display(m->private); in i915_frontbuffer_tracking()
68 spin_lock(&display->fb_tracking.lock); in i915_frontbuffer_tracking()
71 display->fb_tracking.busy_bits); in i915_frontbuffer_tracking()
74 display->fb_tracking.flip_bits); in i915_frontbuffer_tracking()
76 spin_unlock(&display->fb_tracking.lock); in i915_frontbuffer_tracking()
83 struct intel_display *display = node_to_intel_display(m->private); in i915_sr_status()
84 struct drm_i915_private *dev_priv = to_i915(display->drm); in i915_sr_status()
91 /* no global SR status; inspect per-plane WM */; in i915_sr_status()
94 else if (display->platform.i965gm || display->platform.g4x || in i915_sr_status()
95 display->platform.i945g || display->platform.i945gm) in i915_sr_status()
97 else if (display->platform.i915gm) in i915_sr_status()
99 else if (display->platform.pineview) in i915_sr_status()
101 else if (display->platform.valleyview || display->platform.cherryview) in i915_sr_status()
106 seq_printf(m, "self-refresh: %s\n", str_enabled_disabled(sr_enabled)); in i915_sr_status()
113 struct intel_display *display = node_to_intel_display(m->private); in i915_gem_framebuffer_info()
117 fbdev_fb = intel_fbdev_framebuffer(display->fbdev.fbdev); in i915_gem_framebuffer_info()
120 fbdev_fb->base.width, in i915_gem_framebuffer_info()
121 fbdev_fb->base.height, in i915_gem_framebuffer_info()
122 fbdev_fb->base.format->depth, in i915_gem_framebuffer_info()
123 fbdev_fb->base.format->cpp[0] * 8, in i915_gem_framebuffer_info()
124 fbdev_fb->base.modifier, in i915_gem_framebuffer_info()
125 drm_framebuffer_read_refcount(&fbdev_fb->base)); in i915_gem_framebuffer_info()
126 intel_bo_describe(m, intel_fb_bo(&fbdev_fb->base)); in i915_gem_framebuffer_info()
130 mutex_lock(&display->drm->mode_config.fb_lock); in i915_gem_framebuffer_info()
131 drm_for_each_fb(drm_fb, display->drm) { in i915_gem_framebuffer_info()
137 fb->base.width, in i915_gem_framebuffer_info()
138 fb->base.height, in i915_gem_framebuffer_info()
139 fb->base.format->depth, in i915_gem_framebuffer_info()
140 fb->base.format->cpp[0] * 8, in i915_gem_framebuffer_info()
141 fb->base.modifier, in i915_gem_framebuffer_info()
142 drm_framebuffer_read_refcount(&fb->base)); in i915_gem_framebuffer_info()
143 intel_bo_describe(m, intel_fb_bo(&fb->base)); in i915_gem_framebuffer_info()
146 mutex_unlock(&display->drm->mode_config.fb_lock); in i915_gem_framebuffer_info()
153 struct intel_display *display = node_to_intel_display(m->private); in i915_power_domain_info()
175 struct intel_display *display = node_to_intel_display(m->private); in intel_encoder_info()
177 struct drm_connector *connector; in intel_encoder_info() local
180 encoder->base.base.id, encoder->base.name); in intel_encoder_info()
182 drm_connector_list_iter_begin(display->drm, &conn_iter); in intel_encoder_info()
183 drm_for_each_connector_iter(connector, &conn_iter) { in intel_encoder_info()
185 connector->state; in intel_encoder_info()
187 if (conn_state->best_encoder != &encoder->base) in intel_encoder_info()
190 seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n", in intel_encoder_info()
191 connector->base.id, connector->name); in intel_encoder_info()
197 struct intel_connector *connector) in intel_panel_info() argument
201 if (list_empty(&connector->panel.fixed_modes)) in intel_panel_info()
206 list_for_each_entry(fixed_mode, &connector->panel.fixed_modes, head) in intel_panel_info()
210 static void intel_dp_info(struct seq_file *m, struct intel_connector *connector) in intel_dp_info() argument
212 struct intel_encoder *intel_encoder = intel_attached_encoder(connector); in intel_dp_info()
215 seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]); in intel_dp_info()
217 str_yes_no(connector->base.display_info.has_audio)); in intel_dp_info()
219 drm_dp_downstream_debug(m, intel_dp->dpcd, intel_dp->downstream_ports, in intel_dp_info()
220 connector->detect_edid, &intel_dp->aux); in intel_dp_info()
224 struct intel_connector *connector) in intel_dp_mst_info() argument
226 bool has_audio = connector->base.display_info.has_audio; in intel_dp_mst_info()
232 struct intel_connector *connector) in intel_hdmi_info() argument
234 bool has_audio = connector->base.display_info.has_audio; in intel_hdmi_info()
240 struct drm_connector *connector) in intel_connector_info() argument
242 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_connector_info()
245 seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n", in intel_connector_info()
246 connector->base.id, connector->name, in intel_connector_info()
247 drm_get_connector_status_name(connector->status)); in intel_connector_info()
249 if (connector->status == connector_status_disconnected) in intel_connector_info()
253 connector->display_info.width_mm, in intel_connector_info()
254 connector->display_info.height_mm); in intel_connector_info()
256 drm_get_subpixel_order_name(connector->display_info.subpixel_order)); in intel_connector_info()
257 seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev); in intel_connector_info()
259 switch (connector->connector_type) { in intel_connector_info()
262 if (intel_connector->mst.dp) in intel_connector_info()
276 seq_printf(m, "\tmax bpc: %u\n", connector->display_info.bpc); in intel_connector_info()
281 list_for_each_entry(mode, &connector->modes, head) in intel_connector_info()
322 if (plane_state->uapi.visible) in plane_visibility()
325 if (plane_state->is_y_plane) in plane_visibility()
334 to_intel_plane_state(plane->base.state); in intel_plane_uapi_info()
335 const struct drm_framebuffer *fb = plane_state->uapi.fb; in intel_plane_uapi_info()
339 src = drm_plane_state_src(&plane_state->uapi); in intel_plane_uapi_info()
340 dst = drm_plane_state_dest(&plane_state->uapi); in intel_plane_uapi_info()
343 plane_state->uapi.rotation); in intel_plane_uapi_info()
347 seq_printf(m, "%d] %p4cc,0x%llx,%dx%d", fb->base.id, in intel_plane_uapi_info()
348 &fb->format->format, fb->modifier, fb->width, in intel_plane_uapi_info()
349 fb->height); in intel_plane_uapi_info()
356 if (plane_state->planar_linked_plane) in intel_plane_uapi_info()
358 plane_state->planar_linked_plane->base.base.id, plane_state->planar_linked_plane->base.name, in intel_plane_uapi_info()
359 plane_state->is_y_plane ? "Y plane" : "UV plane"); in intel_plane_uapi_info()
365 to_intel_plane_state(plane->base.state); in intel_plane_hw_info()
366 const struct drm_framebuffer *fb = plane_state->hw.fb; in intel_plane_hw_info()
373 plane_state->hw.rotation); in intel_plane_hw_info()
377 fb->base.id, &fb->format->format, in intel_plane_hw_info()
378 fb->modifier, fb->width, fb->height, in intel_plane_hw_info()
379 str_yes_no(plane_state->uapi.visible), in intel_plane_hw_info()
380 DRM_RECT_FP_ARG(&plane_state->uapi.src), in intel_plane_hw_info()
381 DRM_RECT_ARG(&plane_state->uapi.dst), in intel_plane_hw_info()
387 struct intel_display *display = node_to_intel_display(m->private); in intel_plane_info()
390 for_each_intel_plane_on_crtc(display->drm, crtc, plane) { in intel_plane_info()
392 plane->base.base.id, plane->base.name, in intel_plane_info()
393 plane_type(plane->base.type)); in intel_plane_info()
402 to_intel_crtc_state(crtc->base.state); in intel_scaler_info()
403 int num_scalers = crtc->num_scalers; in intel_scaler_info()
410 crtc_state->scaler_state.scaler_users, in intel_scaler_info()
411 crtc_state->scaler_state.scaler_id, in intel_scaler_info()
412 crtc_state->hw.scaling_filter); in intel_scaler_info()
416 &crtc_state->scaler_state.scalers[i]; in intel_scaler_info()
419 i, str_yes_no(sc->in_use), sc->mode); in intel_scaler_info()
436 for (row = 0; row < ARRAY_SIZE(crtc->debug.vbl.times); row++) in crtc_updates_info()
437 count += crtc->debug.vbl.times[row]; in crtc_updates_info()
442 for (row = 0; row < ARRAY_SIZE(crtc->debug.vbl.times); row++) { in crtc_updates_info()
461 if (crtc->debug.vbl.times[row]) { in crtc_updates_info()
462 x = ilog2(crtc->debug.vbl.times[row]); in crtc_updates_info()
471 hdr, crtc->debug.vbl.min); in crtc_updates_info()
473 hdr, crtc->debug.vbl.max); in crtc_updates_info()
475 hdr, div64_u64(crtc->debug.vbl.sum, count)); in crtc_updates_info()
477 hdr, VBLANK_EVASION_TIME_US, crtc->debug.vbl.over); in crtc_updates_info()
482 crtc_updates_info(m, m->private, ""); in crtc_updates_show()
488 return single_open(file, crtc_updates_show, inode->i_private); in crtc_updates_open()
495 struct seq_file *m = file->private_data; in crtc_updates_write()
496 struct intel_crtc *crtc = m->private; in crtc_updates_write()
499 memset(&crtc->debug.vbl, 0, sizeof(crtc->debug.vbl)); in crtc_updates_write()
515 debugfs_create_file("i915_update_info", 0644, crtc->base.debugfs_entry, in crtc_updates_add()
533 struct intel_display *display = node_to_intel_display(m->private); in intel_crtc_info()
536 to_intel_crtc_state(crtc->base.state); in intel_crtc_info()
540 crtc->base.base.id, crtc->base.name); in intel_crtc_info()
543 str_yes_no(crtc_state->uapi.enable), in intel_crtc_info()
544 str_yes_no(crtc_state->uapi.active), in intel_crtc_info()
545 DRM_MODE_ARG(&crtc_state->uapi.mode)); in intel_crtc_info()
548 str_yes_no(crtc_state->hw.enable), str_yes_no(crtc_state->hw.active)); in intel_crtc_info()
550 DRM_MODE_ARG(&crtc_state->hw.adjusted_mode)); in intel_crtc_info()
552 DRM_MODE_ARG(&crtc_state->hw.pipe_mode)); in intel_crtc_info()
555 DRM_RECT_ARG(&crtc_state->pipe_src), in intel_crtc_info()
556 str_yes_no(crtc_state->dither), crtc_state->pipe_bpp); in intel_crtc_info()
560 if (crtc_state->joiner_pipes) in intel_crtc_info()
562 crtc_state->joiner_pipes, in intel_crtc_info()
567 for_each_intel_encoder_mask(display->drm, encoder, in intel_crtc_info()
568 crtc_state->uapi.encoder_mask) in intel_crtc_info()
574 str_yes_no(!crtc->cpu_fifo_underrun_disabled), in intel_crtc_info()
575 str_yes_no(!crtc->pch_fifo_underrun_disabled)); in intel_crtc_info()
582 struct intel_display *display = node_to_intel_display(m->private); in i915_display_info()
583 struct drm_i915_private *dev_priv = to_i915(display->drm); in i915_display_info()
585 struct drm_connector *connector; in i915_display_info() local
589 wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm); in i915_display_info()
591 drm_modeset_lock_all(display->drm); in i915_display_info()
594 seq_printf(m, "---------\n"); in i915_display_info()
595 for_each_intel_crtc(display->drm, crtc) in i915_display_info()
599 seq_printf(m, "Connector info\n"); in i915_display_info()
600 seq_printf(m, "--------------\n"); in i915_display_info()
601 drm_connector_list_iter_begin(display->drm, &conn_iter); in i915_display_info()
602 drm_for_each_connector_iter(connector, &conn_iter) in i915_display_info()
603 intel_connector_info(m, connector); in i915_display_info()
606 drm_modeset_unlock_all(display->drm); in i915_display_info()
608 intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref); in i915_display_info()
615 struct intel_display *display = node_to_intel_display(m->private); in i915_display_capabilities()
626 struct intel_display *display = node_to_intel_display(m->private); in i915_shared_dplls_info()
631 drm_modeset_lock_all(display->drm); in i915_shared_dplls_info()
633 drm_printf(&p, "PLL refclks: non-SSC: %d kHz, SSC: %d kHz\n", in i915_shared_dplls_info()
634 display->dpll.ref_clks.nssc, in i915_shared_dplls_info()
635 display->dpll.ref_clks.ssc); in i915_shared_dplls_info()
638 drm_printf(&p, "DPLL%i: %s, id: %i\n", pll->index, in i915_shared_dplls_info()
639 pll->info->name, pll->info->id); in i915_shared_dplls_info()
641 pll->state.pipe_mask, pll->active_mask, in i915_shared_dplls_info()
642 str_yes_no(pll->on)); in i915_shared_dplls_info()
644 intel_dpll_dump_hw_state(display, &p, &pll->state.hw_state); in i915_shared_dplls_info()
646 drm_modeset_unlock_all(display->drm); in i915_shared_dplls_info()
653 struct intel_display *display = node_to_intel_display(m->private); in i915_ddb_info()
658 return -ENODEV; in i915_ddb_info()
660 drm_modeset_lock_all(display->drm); in i915_ddb_info()
662 seq_printf(m, "%-15s%8s%8s%8s\n", "", "Start", "End", "Size"); in i915_ddb_info()
664 for_each_intel_crtc(display->drm, crtc) { in i915_ddb_info()
666 to_intel_crtc_state(crtc->base.state); in i915_ddb_info()
667 enum pipe pipe = crtc->pipe; in i915_ddb_info()
673 entry = &crtc_state->wm.skl.plane_ddb[plane_id]; in i915_ddb_info()
674 seq_printf(m, " Plane%-8d%8u%8u%8u\n", plane_id + 1, in i915_ddb_info()
675 entry->start, entry->end, in i915_ddb_info()
679 entry = &crtc_state->wm.skl.plane_ddb[PLANE_CURSOR]; in i915_ddb_info()
680 seq_printf(m, " %-13s%8u%8u%8u\n", "Cursor", entry->start, in i915_ddb_info()
681 entry->end, skl_ddb_entry_size(entry)); in i915_ddb_info()
684 drm_modeset_unlock_all(display->drm); in i915_ddb_info()
693 struct drm_i915_private *i915 = to_i915(display->drm); in intel_lpsp_power_well_enabled()
697 wakeref = intel_runtime_pm_get(&i915->runtime_pm); in intel_lpsp_power_well_enabled()
700 intel_runtime_pm_put(&i915->runtime_pm, wakeref); in intel_lpsp_power_well_enabled()
707 struct intel_display *display = node_to_intel_display(m->private); in i915_lpsp_status()
714 } else if (display->platform.haswell || display->platform.broadwell) { in i915_lpsp_status()
728 struct intel_display *display = node_to_intel_display(m->private); in i915_dp_mst_info()
731 struct drm_connector *connector; in i915_dp_mst_info() local
734 drm_connector_list_iter_begin(display->drm, &conn_iter); in i915_dp_mst_info()
735 drm_for_each_connector_iter(connector, &conn_iter) { in i915_dp_mst_info()
736 if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) in i915_dp_mst_info()
739 intel_encoder = intel_attached_encoder(to_intel_connector(connector)); in i915_dp_mst_info()
740 if (!intel_encoder || intel_encoder->type == INTEL_OUTPUT_DP_MST) in i915_dp_mst_info()
744 if (!intel_dp_mst_source_support(&dig_port->dp)) in i915_dp_mst_info()
748 dig_port->base.base.base.id, in i915_dp_mst_info()
749 dig_port->base.base.name); in i915_dp_mst_info()
750 drm_dp_mst_dump_topology(m, &dig_port->dp.mst.mgr); in i915_dp_mst_info()
762 struct intel_display *display = filp->private_data; in i915_fifo_underrun_reset_write()
774 for_each_intel_crtc(display->drm, crtc) { in i915_fifo_underrun_reset_write()
778 ret = drm_modeset_lock_single_interruptible(&crtc->base.mutex); in i915_fifo_underrun_reset_write()
782 crtc_state = to_intel_crtc_state(crtc->base.state); in i915_fifo_underrun_reset_write()
783 commit = crtc_state->uapi.commit; in i915_fifo_underrun_reset_write()
785 ret = wait_for_completion_interruptible(&commit->hw_done); in i915_fifo_underrun_reset_write()
787 ret = wait_for_completion_interruptible(&commit->flip_done); in i915_fifo_underrun_reset_write()
790 if (!ret && crtc_state->hw.active) { in i915_fifo_underrun_reset_write()
791 drm_dbg_kms(display->drm, in i915_fifo_underrun_reset_write()
792 "Re-arming FIFO underruns on pipe %c\n", in i915_fifo_underrun_reset_write()
793 pipe_name(crtc->pipe)); in i915_fifo_underrun_reset_write()
798 drm_modeset_unlock(&crtc->base.mutex); in i915_fifo_underrun_reset_write()
832 struct drm_i915_private *i915 = to_i915(display->drm); in intel_display_debugfs_register()
833 struct drm_minor *minor = display->drm->primary; in intel_display_debugfs_register()
835 debugfs_create_file("i915_fifo_underrun_reset", 0644, minor->debugfs_root, in intel_display_debugfs_register()
840 minor->debugfs_root, minor); in intel_display_debugfs_register()
856 struct intel_connector *connector = m->private; in i915_lpsp_capability_show() local
857 struct intel_display *display = to_intel_display(connector); in i915_lpsp_capability_show()
858 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_lpsp_capability_show()
859 int connector_type = connector->base.connector_type; in i915_lpsp_capability_show()
863 return -ENODEV; in i915_lpsp_capability_show()
865 if (connector->base.status != connector_status_connected) in i915_lpsp_capability_show()
866 return -ENODEV; in i915_lpsp_capability_show()
869 lpsp_capable = encoder->port <= PORT_B; in i915_lpsp_capability_show()
876 lpsp_capable = encoder->port <= PORT_B; in i915_lpsp_capability_show()
881 lpsp_capable = (encoder->port == PORT_A && in i915_lpsp_capability_show()
885 else if (display->platform.haswell || display->platform.broadwell) in i915_lpsp_capability_show()
896 struct intel_connector *connector = m->private; in i915_dsc_fec_support_show() local
897 struct intel_display *display = to_intel_display(connector); in i915_dsc_fec_support_show()
909 ret = drm_modeset_lock(&display->drm->mode_config.connection_mutex, in i915_dsc_fec_support_show()
912 if (ret == -EDEADLK && !drm_modeset_backoff(&ctx)) { in i915_dsc_fec_support_show()
918 crtc = connector->base.state->crtc; in i915_dsc_fec_support_show()
919 if (connector->base.status != connector_status_connected || !crtc) { in i915_dsc_fec_support_show()
920 ret = -ENODEV; in i915_dsc_fec_support_show()
923 ret = drm_modeset_lock(&crtc->mutex, &ctx); in i915_dsc_fec_support_show()
924 if (ret == -EDEADLK) { in i915_dsc_fec_support_show()
934 intel_dp = intel_attached_dp(connector); in i915_dsc_fec_support_show()
935 crtc_state = to_intel_crtc_state(crtc->state); in i915_dsc_fec_support_show()
937 str_yes_no(crtc_state->dsc.compression_enable)); in i915_dsc_fec_support_show()
939 str_yes_no(drm_dp_sink_supports_dsc(connector->dp.dsc_dpcd))); in i915_dsc_fec_support_show()
941 str_yes_no(drm_dp_dsc_sink_supports_format(connector->dp.dsc_dpcd, in i915_dsc_fec_support_show()
943 str_yes_no(drm_dp_dsc_sink_supports_format(connector->dp.dsc_dpcd, in i915_dsc_fec_support_show()
945 str_yes_no(drm_dp_dsc_sink_supports_format(connector->dp.dsc_dpcd, in i915_dsc_fec_support_show()
948 drm_dp_dsc_sink_bpp_incr(connector->dp.dsc_dpcd)); in i915_dsc_fec_support_show()
950 drm_dp_dsc_sink_max_slice_count((connector->dp.dsc_dpcd), intel_dp_is_edp(intel_dp))); in i915_dsc_fec_support_show()
952 str_yes_no(intel_dp->force_dsc_en)); in i915_dsc_fec_support_show()
955 str_yes_no(drm_dp_sink_supports_fec(connector->dp.fec_capability))); in i915_dsc_fec_support_show()
968 struct seq_file *m = file->private_data; in i915_dsc_fec_support_write()
969 struct intel_connector *connector = m->private; in i915_dsc_fec_support_write() local
970 struct intel_display *display = to_intel_display(connector); in i915_dsc_fec_support_write()
971 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_fec_support_write()
979 drm_dbg(display->drm, in i915_dsc_fec_support_write()
986 drm_dbg(display->drm, "Got %s for DSC Enable\n", in i915_dsc_fec_support_write()
988 intel_dp->force_dsc_en = dsc_enable; in i915_dsc_fec_support_write()
998 inode->i_private); in i915_dsc_fec_support_open()
1012 struct intel_connector *connector = m->private; in i915_dsc_bpc_show() local
1013 struct intel_display *display = to_intel_display(connector); in i915_dsc_bpc_show()
1014 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_bpc_show()
1020 return -ENODEV; in i915_dsc_bpc_show()
1022 ret = drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex); in i915_dsc_bpc_show()
1026 crtc = connector->base.state->crtc; in i915_dsc_bpc_show()
1027 if (connector->base.status != connector_status_connected || !crtc) { in i915_dsc_bpc_show()
1028 ret = -ENODEV; in i915_dsc_bpc_show()
1032 crtc_state = to_intel_crtc_state(crtc->state); in i915_dsc_bpc_show()
1033 seq_printf(m, "Input_BPC: %d\n", crtc_state->dsc.config.bits_per_component); in i915_dsc_bpc_show()
1035 out: drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in i915_dsc_bpc_show()
1044 struct seq_file *m = file->private_data; in i915_dsc_bpc_write()
1045 struct intel_connector *connector = m->private; in i915_dsc_bpc_write() local
1046 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_bpc_write()
1055 intel_dp->force_dsc_bpc = dsc_bpc; in i915_dsc_bpc_write()
1064 return single_open(file, i915_dsc_bpc_show, inode->i_private); in i915_dsc_bpc_open()
1078 struct intel_connector *connector = m->private; in i915_dsc_output_format_show() local
1079 struct intel_display *display = to_intel_display(connector); in i915_dsc_output_format_show()
1080 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_output_format_show()
1086 return -ENODEV; in i915_dsc_output_format_show()
1088 ret = drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex); in i915_dsc_output_format_show()
1092 crtc = connector->base.state->crtc; in i915_dsc_output_format_show()
1093 if (connector->base.status != connector_status_connected || !crtc) { in i915_dsc_output_format_show()
1094 ret = -ENODEV; in i915_dsc_output_format_show()
1098 crtc_state = to_intel_crtc_state(crtc->state); in i915_dsc_output_format_show()
1100 intel_output_format_name(crtc_state->output_format)); in i915_dsc_output_format_show()
1102 out: drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in i915_dsc_output_format_show()
1111 struct seq_file *m = file->private_data; in i915_dsc_output_format_write()
1112 struct intel_connector *connector = m->private; in i915_dsc_output_format_write() local
1113 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_output_format_write()
1122 intel_dp->force_dsc_output_format = dsc_output_format; in i915_dsc_output_format_write()
1131 return single_open(file, i915_dsc_output_format_show, inode->i_private); in i915_dsc_output_format_open()
1145 struct intel_connector *connector = m->private; in i915_dsc_fractional_bpp_show() local
1146 struct intel_display *display = to_intel_display(connector); in i915_dsc_fractional_bpp_show()
1147 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_fractional_bpp_show()
1153 return -ENODEV; in i915_dsc_fractional_bpp_show()
1155 ret = drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex); in i915_dsc_fractional_bpp_show()
1159 crtc = connector->base.state->crtc; in i915_dsc_fractional_bpp_show()
1160 if (connector->base.status != connector_status_connected || !crtc) { in i915_dsc_fractional_bpp_show()
1161 ret = -ENODEV; in i915_dsc_fractional_bpp_show()
1165 intel_dp = intel_attached_dp(connector); in i915_dsc_fractional_bpp_show()
1167 str_yes_no(intel_dp->force_dsc_fractional_bpp_en)); in i915_dsc_fractional_bpp_show()
1170 drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in i915_dsc_fractional_bpp_show()
1179 struct seq_file *m = file->private_data; in i915_dsc_fractional_bpp_write()
1180 struct intel_connector *connector = m->private; in i915_dsc_fractional_bpp_write() local
1181 struct intel_display *display = to_intel_display(connector); in i915_dsc_fractional_bpp_write()
1182 struct intel_encoder *encoder = intel_attached_encoder(connector); in i915_dsc_fractional_bpp_write()
1190 drm_dbg(display->drm, in i915_dsc_fractional_bpp_write()
1197 drm_dbg(display->drm, "Got %s for DSC Fractional BPP Enable\n", in i915_dsc_fractional_bpp_write()
1199 intel_dp->force_dsc_fractional_bpp_en = dsc_fractional_bpp_enable; in i915_dsc_fractional_bpp_write()
1209 return single_open(file, i915_dsc_fractional_bpp_show, inode->i_private); in i915_dsc_fractional_bpp_open()
1223 * Example usage: cat /sys/kernel/debug/dri/0/crtc-0/i915_current_bpc
1227 struct intel_crtc *crtc = m->private; in i915_current_bpc_show()
1231 ret = drm_modeset_lock_single_interruptible(&crtc->base.mutex); in i915_current_bpc_show()
1235 crtc_state = to_intel_crtc_state(crtc->base.state); in i915_current_bpc_show()
1236 seq_printf(m, "Current: %u\n", crtc_state->pipe_bpp / 3); in i915_current_bpc_show()
1238 drm_modeset_unlock(&crtc->base.mutex); in i915_current_bpc_show()
1247 struct intel_crtc *crtc = m->private; in intel_crtc_pipe_show()
1249 seq_printf(m, "%c\n", pipe_name(crtc->pipe)); in intel_crtc_pipe_show()
1257 struct intel_connector *connector = m->private; in i915_joiner_show() local
1259 seq_printf(m, "%d\n", connector->force_joined_pipes); in i915_joiner_show()
1268 struct seq_file *m = file->private_data; in i915_joiner_write()
1269 struct intel_connector *connector = m->private; in i915_joiner_write() local
1270 struct intel_display *display = to_intel_display(connector); in i915_joiner_write()
1285 connector->force_joined_pipes = force_joined_pipes; in i915_joiner_write()
1289 connector->force_joined_pipes = force_joined_pipes; in i915_joiner_write()
1295 return -EINVAL; in i915_joiner_write()
1305 return single_open(file, i915_joiner_show, inode->i_private); in i915_joiner_open()
1318 * intel_connector_debugfs_add - add i915 specific connector debugfs files
1319 * @connector: pointer to a registered intel_connector
1324 void intel_connector_debugfs_add(struct intel_connector *connector) in intel_connector_debugfs_add() argument
1326 struct intel_display *display = to_intel_display(connector); in intel_connector_debugfs_add()
1327 struct dentry *root = connector->base.debugfs_entry; in intel_connector_debugfs_add()
1328 int connector_type = connector->base.connector_type; in intel_connector_debugfs_add()
1330 /* The connector must have been registered beforehands. */ in intel_connector_debugfs_add()
1334 intel_drrs_connector_debugfs_add(connector); in intel_connector_debugfs_add()
1335 intel_hdcp_connector_debugfs_add(connector); in intel_connector_debugfs_add()
1336 intel_pps_connector_debugfs_add(connector); in intel_connector_debugfs_add()
1337 intel_psr_connector_debugfs_add(connector); in intel_connector_debugfs_add()
1338 intel_alpm_lobf_debugfs_add(connector); in intel_connector_debugfs_add()
1339 intel_dp_link_training_debugfs_add(connector); in intel_connector_debugfs_add()
1342 ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst.dp) || in intel_connector_debugfs_add()
1345 connector, &i915_dsc_fec_support_fops); in intel_connector_debugfs_add()
1348 connector, &i915_dsc_bpc_fops); in intel_connector_debugfs_add()
1351 connector, &i915_dsc_output_format_fops); in intel_connector_debugfs_add()
1354 connector, &i915_dsc_fractional_bpp_fops); in intel_connector_debugfs_add()
1359 intel_dp_has_joiner(intel_attached_dp(connector))) { in intel_connector_debugfs_add()
1361 connector, &i915_joiner_fops); in intel_connector_debugfs_add()
1370 connector, &i915_lpsp_capability_fops); in intel_connector_debugfs_add()
1374 * intel_crtc_debugfs_add - add i915 specific crtc debugfs files
1381 struct dentry *root = crtc->base.debugfs_entry; in intel_crtc_debugfs_add()