From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> This series aims to eliminate the DDI encoder->type shenanigans. Afterwards encoder->type will permanently be "DDI" for DDI DP/HDMI ports, and "EDP" for DDI eDP ports. To figure out in which mode we want to drive the port we use the output_types bitmask, which for DDI will be computed by the new .compute_output_type() encoder hook. Originally (some years ago?) I simply planned to avoid this role switching for the DDI encoders by splitting each encoders into two two separate instances (which is how the pre-DDI platforms work). I even posted a patch series achieving this. But the series didn't land before LSPCON happened and at that point I figured that we actually might want to switch the encoder mode as needed. So I came up with this alternative apporach (and introduced the output_types bitmask). Unfortunately I never managed to land the remaining bits. Having a single encoder per DDI port does have the benefit of giving userspace a hint that there's no way to enable both the DP and HDMI connectors handing off it at the same time. With pre-DDI platforms userspace has no idea which connectors are tied to the same port. So one might argue that this is indeed the better approach. Since I last posted this stuff a lot has changed in the DDI code (BXT and CNL at least, can't recall if SKL was a thing when I originally posted this stuff). So this series actually turned out into a rather massive "clean up DDI" series. I regret it ending up this big, but I don't think I want to start spliting it up at this point. So I'll just offer my apologies and post the series as is. The patches shouldn't be too tricky to read since it's basically just refactoring all over. Entire series is available here: git://github.com/vsyrjala/linux.git ddi_output_types Ville Syrjälä (29): drm/i915: Replace some spaces with tabs drm/i915: Shrink bxt_ddi_buf_trans drm/i915: Shrink cnl_ddi_buf_trans drm/i915: Dump 'output_types' in crtc state dump drm/i915: Extract intel_ddi_clk_disable() drm/i915: Extract intel_disable_ddi_buf() drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable() drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp() drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants drm/i915: Plump crtc_state etc. directly to intel_ddi_pre_enable_{dp,hdmi}() drm/i915: Split intel_enable_ddi() into DP and HDMI variants drm/i915: Relocate intel_ddi_get_buf_trans_*() functions drm/i915: Extract intel_ddi_get_buf_trans_hdmi() drm/i915: Pass the encoder type explicitly to skl_set_iboost() drm/i915: Pass the level to intel_prepare_hdmi_ddi_buffers() drm/i915: Integrate BXT into intel_ddi_dp_voltage_max() drm/i915: Pass encoder type to cnl_ddi_vswing_sequence() explicitly drm/i915: Kill off the BXT buf_trans default_index drm/i915: Don't use encoder->type in intel_ddi_set_pipe_settings() drm/i915: Pass crtc state to intel_prepare_dp_ddi_buffers() drm/i915: Start using output_types for DPLL selection drm/i915: Stop using encoder->type in intel_ddi_enable_transcoder_func() drm/i915: Centralize the SKL DDI A/E vs. B/C/D buf trans handling drm/i915: Stop frobbing with DDI encoder->type drm/i915: Unify error handling for missing DDI buf trans tables drm/i915: Clear up the types we use for DDI buf trans level/n_entries drm/i915: Replace most intel_ddi_get_encoder_port() alls with encoder->port drm/i915: Pass a crtc state to ddi post_disable from MST code drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 973 ++++++++++++++++++---------------- drivers/gpu/drm/i915/intel_display.c | 59 ++- drivers/gpu/drm/i915/intel_dp.c | 19 +- drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 36 +- drivers/gpu/drm/i915/intel_drv.h | 7 +- drivers/gpu/drm/i915/intel_hdmi.c | 10 +- drivers/gpu/drm/i915/intel_opregion.c | 2 +- 9 files changed, 603 insertions(+), 507 deletions(-) -- 2.13.5 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx