Re: [PATCH 00/29] drm/i915: Eliminate DDI encoder->type frobbery redux

Jani Nikula
2017-09-18T19:04:14Z

On Mon, 18 Sep 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> 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@intel.com>

>
> 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