drm/i915: move vblank_enabled to display substruct
authorJani Nikula <jani.nikula@intel.com>
Mon, 8 Apr 2024 18:08:39 +0000 (21:08 +0300)
committerJani Nikula <jani.nikula@intel.com>
Tue, 9 Apr 2024 08:31:12 +0000 (11:31 +0300)
The info is related to display, and should be placed under
i915->display. Start a new irq sub-substruct.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/eb89ed70020ea78396e1fec6f1a97693f2bdb96b.1712599670.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display_core.h
drivers/gpu/drm/i915/display/intel_display_irq.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/xe/xe_device_types.h

index eed9be8e9f492e5ed2c00b8baaef33062f04d02b..52f7d6e0324f4e94e052cc2ade63723ab0a85e73 100644 (file)
@@ -447,6 +447,11 @@ struct intel_display {
                bool false_color;
        } ips;
 
+       struct {
+               /* For i915gm/i945gm vblank irq workaround */
+               u8 vblank_enabled;
+       } irq;
+
        struct {
                wait_queue_head_t waitqueue;
 
index f846c5b108b50518c38e6bac506528222b45e5e1..6219b1a622102e9c62b309df3299f95adbc7ae4e 100644 (file)
@@ -1203,7 +1203,7 @@ int i8xx_enable_vblank(struct drm_crtc *crtc)
 
 int i915gm_enable_vblank(struct drm_crtc *crtc)
 {
-       struct drm_i915_private *dev_priv = to_i915(crtc->dev);
+       struct drm_i915_private *i915 = to_i915(crtc->dev);
 
        /*
         * Vblank interrupts fail to wake the device up from C2+.
@@ -1211,8 +1211,8 @@ int i915gm_enable_vblank(struct drm_crtc *crtc)
         * the problem. There is a small power cost so we do this
         * only when vblank interrupts are actually enabled.
         */
-       if (dev_priv->vblank_enabled++ == 0)
-               intel_uncore_write(&dev_priv->uncore, SCPD0, _MASKED_BIT_ENABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
+       if (i915->display.irq.vblank_enabled++ == 0)
+               intel_uncore_write(&i915->uncore, SCPD0, _MASKED_BIT_ENABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
 
        return i8xx_enable_vblank(crtc);
 }
@@ -1315,12 +1315,12 @@ void i8xx_disable_vblank(struct drm_crtc *crtc)
 
 void i915gm_disable_vblank(struct drm_crtc *crtc)
 {
-       struct drm_i915_private *dev_priv = to_i915(crtc->dev);
+       struct drm_i915_private *i915 = to_i915(crtc->dev);
 
        i8xx_disable_vblank(crtc);
 
-       if (--dev_priv->vblank_enabled == 0)
-               intel_uncore_write(&dev_priv->uncore, SCPD0, _MASKED_BIT_DISABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
+       if (--i915->display.irq.vblank_enabled == 0)
+               intel_uncore_write(&i915->uncore, SCPD0, _MASKED_BIT_DISABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
 }
 
 void i965_disable_vblank(struct drm_crtc *crtc)
index ac8ad18c5fc23e51ea45ffc0a0c9ae7614c776ee..a835537315383ff09427e0bc629c1f9f775a6856 100644 (file)
@@ -348,9 +348,6 @@ struct drm_i915_private {
 
        struct intel_pxp *pxp;
 
-       /* For i915gm/i945gm vblank irq workaround */
-       u8 vblank_enabled;
-
        bool irq_enabled;
 
        struct i915_pmu pmu;
index 9ef462328618cdb2067a398cc3a5e9cfd30c129c..e19b022a095f14d2d56adbff7cbcce8512998d17 100644 (file)
@@ -516,7 +516,6 @@ struct xe_device {
                unsigned int hpll_freq;
                unsigned int czclk_freq;
                unsigned int fsb_freq, mem_freq, is_ddr3;
-               u8 vblank_enabled;
        };
        struct {
                const char *dmc_firmware_path;