On Fri, 13 Feb 2015, Bob Paauwe <bob.j.paa...@intel.com> wrote:
> Human readable name for each output type to correspond with names
> used in the ACPI property tables.

Could you not use drm_connector and drm_encoder type and name fields?

BR,
Jani.

>
> Signed-off-by: Bob Paauwe <bob.j.paa...@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 57 
> ++++++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_drv.h     |  1 +
>  2 files changed, 58 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 3b0fe9f..de6de83 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12440,6 +12440,63 @@ static bool intel_crt_present(struct drm_device *dev)
>       return true;
>  }
>  
> +/*
> + * Provide a name for the various outputs.
> + */
> +const char *intel_output_name(struct intel_connector *connector)
> +{
> +     int output;
> +     static const char *names[] = {
> +             [INTEL_OUTPUT_UNUSED] = "Unused",
> +             [INTEL_OUTPUT_ANALOG] = "Analog",
> +             [INTEL_OUTPUT_DVO] = "DVO",
> +             [INTEL_OUTPUT_SDVO] = "SDVO",
> +             [INTEL_OUTPUT_LVDS] = "LVDS",
> +             [INTEL_OUTPUT_TVOUT] = "TV",
> +             [INTEL_OUTPUT_HDMI] = "HDMI",
> +             [INTEL_OUTPUT_DISPLAYPORT] = "DisplayPort",
> +             [INTEL_OUTPUT_EDP] = "eDP",
> +             [INTEL_OUTPUT_DSI] = "DSI",
> +             [INTEL_OUTPUT_UNKNOWN] = "Unknown",
> +     };
> +     static const char *name_ex[] = {
> +             [0] = "HDMI_A",
> +             [1] = "HDMI_B",
> +             [2] = "HDMI_C",
> +             [3] = "HDMI_D",
> +             [4] = "DisplayPort_A",
> +             [5] = "DisplayPort_B",
> +             [6] = "DisplayPort_C",
> +             [7] = "DisplayPort_D",
> +             [8] = "eDP_A",
> +             [9] = "eDP_B",
> +             [10] = "eDP_C",
> +             [11] = "eDP_D",
> +     };
> +
> +     if (!connector || !connector->encoder)
> +             return "Unknown";
> +
> +     switch (connector->encoder->type) {
> +     case INTEL_OUTPUT_HDMI:
> +     case INTEL_OUTPUT_DISPLAYPORT:
> +     case INTEL_OUTPUT_EDP:
> +             output = ((connector->encoder->type - INTEL_OUTPUT_HDMI) * 4) +
> +                     enc_to_dig_port(&connector->encoder->base)->port;
> +
> +             if (output < 0 || output >= ARRAY_SIZE(name_ex))
> +                     return "Invalid";
> +
> +             return name_ex[output];
> +     default:
> +             if (output < 0 || output >= ARRAY_SIZE(names) || !names[output])
> +                     return "Invalid";
> +
> +             return names[output];
> +     }
> +}
> +
> +
>  static void intel_setup_outputs(struct drm_device *dev)
>  {
>       struct drm_i915_private *dev_priv = dev->dev_private;
> diff --git a/drivers/gpu/drm/i915/intel_drv.h 
> b/drivers/gpu/drm/i915/intel_drv.h
> index aefd95e..4c81ee9 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -893,6 +893,7 @@ void i915_audio_component_cleanup(struct drm_i915_private 
> *dev_priv);
>  
>  /* intel_display.c */
>  extern const struct drm_plane_funcs intel_plane_funcs;
> +const char *intel_output_name(struct intel_connector *intel_connector);
>  bool intel_has_pending_fb_unpin(struct drm_device *dev);
>  int intel_pch_rawclk(struct drm_device *dev);
>  void intel_mark_busy(struct drm_device *dev);
> -- 
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to