On Mon, 18 Sep 2017, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > 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. I reviewed the ones I replied to, maybe I'll continue when I'm less X_x. But I glanced over the rest, and, FWIW, the series is Acked-by: Jani Nikula <jani.nikula@xxxxxxxxx> > > 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(-) -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx