OSDN Git Service

drm/i915/lvds: Use intel_de_rmw()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 30 Jan 2023 18:05:34 +0000 (20:05 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 31 Jan 2023 09:24:06 +0000 (11:24 +0200)
Replace the hand rolled rmw stuff with intel_de_rmw().

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

index 49b6cdd..86a100e 100644 (file)
@@ -320,11 +320,9 @@ static void intel_enable_lvds(struct intel_atomic_state *state,
        struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(encoder);
        struct drm_i915_private *dev_priv = to_i915(dev);
 
-       intel_de_write(dev_priv, lvds_encoder->reg,
-                      intel_de_read(dev_priv, lvds_encoder->reg) | LVDS_PORT_EN);
+       intel_de_rmw(dev_priv, lvds_encoder->reg, 0, LVDS_PORT_EN);
 
-       intel_de_write(dev_priv, PP_CONTROL(0),
-                      intel_de_read(dev_priv, PP_CONTROL(0)) | PANEL_POWER_ON);
+       intel_de_rmw(dev_priv, PP_CONTROL(0), 0, PANEL_POWER_ON);
        intel_de_posting_read(dev_priv, lvds_encoder->reg);
 
        if (intel_de_wait_for_set(dev_priv, PP_STATUS(0), PP_ON, 5000))
@@ -342,14 +340,12 @@ static void intel_disable_lvds(struct intel_atomic_state *state,
        struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(encoder);
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
-       intel_de_write(dev_priv, PP_CONTROL(0),
-                      intel_de_read(dev_priv, PP_CONTROL(0)) & ~PANEL_POWER_ON);
+       intel_de_rmw(dev_priv, PP_CONTROL(0), PANEL_POWER_ON, 0);
        if (intel_de_wait_for_clear(dev_priv, PP_STATUS(0), PP_ON, 1000))
                drm_err(&dev_priv->drm,
                        "timed out waiting for panel to power off\n");
 
-       intel_de_write(dev_priv, lvds_encoder->reg,
-                      intel_de_read(dev_priv, lvds_encoder->reg) & ~LVDS_PORT_EN);
+       intel_de_rmw(dev_priv, lvds_encoder->reg, LVDS_PORT_EN, 0);
        intel_de_posting_read(dev_priv, lvds_encoder->reg);
 }