drm/i915: Mark ns2501 as LVDS without a fixed mode
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 21 Jan 2020 17:10:55 +0000 (19:10 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 4 Feb 2020 21:32:18 +0000 (23:32 +0200)
ns2501 has a builtin scaler so it doesn't need a fixed mode, but
let's still mark it as LVDS instead of TMDS/DVI to make life less
confusing.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200121171100.4370-7-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_dvo.c

index 6ab84be5409dc1c4012ae14154e6802ae55b401e..7bcd390a56b21d76d904c05c792d2ec8a4ae027e 100644 (file)
@@ -44,6 +44,7 @@
 #define INTEL_DVO_CHIP_LVDS    1
 #define INTEL_DVO_CHIP_TMDS    2
 #define INTEL_DVO_CHIP_TVOUT   4
+#define INTEL_DVO_CHIP_LVDS_NO_FIXED   5
 
 #define SIL164_ADDR    0x38
 #define CH7xxx_ADDR    0x76
@@ -101,13 +102,13 @@ static const struct intel_dvo_device intel_dvo_devices[] = {
                .dev_ops = &ch7017_ops,
        },
        {
-               .type = INTEL_DVO_CHIP_TMDS,
+               .type = INTEL_DVO_CHIP_LVDS_NO_FIXED,
                .name = "ns2501",
                .dvo_reg = DVOB,
                .dvo_srcdim_reg = DVOB_SRCDIM,
                .slave_addr = NS2501_ADDR,
                .dev_ops = &ns2501_ops,
-       }
+       },
 };
 
 struct intel_dvo {
@@ -507,17 +508,19 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
                intel_encoder->port = port;
                intel_encoder->pipe_mask = ~0;
 
-               switch (dvo->type) {
-               case INTEL_DVO_CHIP_TMDS:
+               if (dvo->type != INTEL_DVO_CHIP_LVDS)
                        intel_encoder->cloneable = (1 << INTEL_OUTPUT_ANALOG) |
                                (1 << INTEL_OUTPUT_DVO);
+
+               switch (dvo->type) {
+               case INTEL_DVO_CHIP_TMDS:
                        drm_connector_init(&dev_priv->drm, connector,
                                           &intel_dvo_connector_funcs,
                                           DRM_MODE_CONNECTOR_DVII);
                        encoder_type = DRM_MODE_ENCODER_TMDS;
                        break;
+               case INTEL_DVO_CHIP_LVDS_NO_FIXED:
                case INTEL_DVO_CHIP_LVDS:
-                       intel_encoder->cloneable = 0;
                        drm_connector_init(&dev_priv->drm, connector,
                                           &intel_dvo_connector_funcs,
                                           DRM_MODE_CONNECTOR_LVDS);