drm/i915/dvo: Use intel_de_rmw() for DVO enable/disable
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 22 Nov 2022 12:08:23 +0000 (14:08 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 23 Nov 2022 14:07:09 +0000 (16:07 +0200)
Replace the hand rolled RMW with intel_de_rmw() in the DVO
port enable/disable functions. Also switch to intel_de_posting_read()
for the posting read (though maybe it should be just be nuked...).

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

index a5c464c82e5c1308ab8e8e4ea46fac6b450fa606..c590a92205f0d93f6a470450f30ac9ba23d38bd4 100644 (file)
@@ -185,11 +185,11 @@ static void intel_disable_dvo(struct intel_atomic_state *state,
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
        struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
        enum port port = encoder->port;
-       u32 temp = intel_de_read(i915, DVO(port));
 
        intel_dvo->dev.dev_ops->dpms(&intel_dvo->dev, false);
-       intel_de_write(i915, DVO(port), temp & ~DVO_ENABLE);
-       intel_de_read(i915, DVO(port));
+
+       intel_de_rmw(i915, DVO(port), DVO_ENABLE, 0);
+       intel_de_posting_read(i915, DVO(port));
 }
 
 static void intel_enable_dvo(struct intel_atomic_state *state,
@@ -200,14 +200,13 @@ static void intel_enable_dvo(struct intel_atomic_state *state,
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
        struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
        enum port port = encoder->port;
-       u32 temp = intel_de_read(i915, DVO(port));
 
        intel_dvo->dev.dev_ops->mode_set(&intel_dvo->dev,
                                         &pipe_config->hw.mode,
                                         &pipe_config->hw.adjusted_mode);
 
-       intel_de_write(i915, DVO(port), temp | DVO_ENABLE);
-       intel_de_read(i915, DVO(port));
+       intel_de_rmw(i915, DVO(port), 0, DVO_ENABLE);
+       intel_de_posting_read(i915, DVO(port));
 
        intel_dvo->dev.dev_ops->dpms(&intel_dvo->dev, true);
 }