drm/i915: Add icl mipi dsi properties
authorVandita Kulkarni <vandita.kulkarni@intel.com>
Thu, 27 Jun 2019 15:24:57 +0000 (20:54 +0530)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 9 Jul 2019 14:29:58 +0000 (17:29 +0300)
Add scaling and panel orientation properties for
icl mipi dsi.

v2: Add platform specific function (Ville)
v3: Remove redundant check and update scaler call (Jani, Ville)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190627152457.26146-1-vandita.kulkarni@intel.com
drivers/gpu/drm/i915/display/icl_dsi.c
drivers/gpu/drm/i915/display/vlv_dsi.c

index b8673debf9322ac06edc95950f8b5505108284d0..3cf95c34143cd4d6b2fd91567180ccf0bb339fa8 100644 (file)
@@ -1508,6 +1508,26 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
        intel_dsi_log_params(intel_dsi);
 }
 
+static void icl_dsi_add_properties(struct intel_connector *connector)
+{
+       u32 allowed_scalers;
+
+       allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) |
+                          BIT(DRM_MODE_SCALE_FULLSCREEN) |
+                          BIT(DRM_MODE_SCALE_CENTER);
+
+       drm_connector_attach_scaling_mode_property(&connector->base,
+                                                  allowed_scalers);
+
+       connector->base.state->scaling_mode = DRM_MODE_SCALE_ASPECT;
+
+       connector->base.display_info.panel_orientation =
+                       intel_dsi_get_panel_orientation(connector);
+       drm_connector_init_panel_orientation_property(&connector->base,
+                               connector->panel.fixed_mode->hdisplay,
+                               connector->panel.fixed_mode->vdisplay);
+}
+
 void icl_dsi_init(struct drm_i915_private *dev_priv)
 {
        struct drm_device *dev = &dev_priv->drm;
@@ -1601,6 +1621,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
        }
 
        icl_dphy_param_init(intel_dsi);
+
+       icl_dsi_add_properties(intel_connector);
        return;
 
 err:
index e272d826210abb9f6f9ea0f5e8463eaa3a15c226..c8002ffd29e79f08f4535f6bdcfb784d64505efd 100644 (file)
@@ -1644,7 +1644,7 @@ vlv_dsi_get_panel_orientation(struct intel_connector *connector)
        return intel_dsi_get_panel_orientation(connector);
 }
 
-static void intel_dsi_add_properties(struct intel_connector *connector)
+static void vlv_dsi_add_properties(struct intel_connector *connector)
 {
        struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 
@@ -1983,7 +1983,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
        intel_panel_init(&intel_connector->panel, fixed_mode, NULL);
        intel_panel_setup_backlight(connector, INVALID_PIPE);
 
-       intel_dsi_add_properties(intel_connector);
+       vlv_dsi_add_properties(intel_connector);
 
        return;