]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/vga: Convert VGA code to intel_display
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 6 Sep 2024 14:33:04 +0000 (17:33 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 11 Sep 2024 12:27:02 +0000 (15:27 +0300)
struct intel_display will replace struct drm_i915_private as
the main thing for display code. Convert the VGA code to
use it (as much as possible at this stage).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240906143306.15937-5-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_display_driver.c
drivers/gpu/drm/i915/display/intel_display_power_well.c
drivers/gpu/drm/i915/display/intel_vga.c
drivers/gpu/drm/i915/display/intel_vga.h
drivers/gpu/drm/i915/i915_suspend.c

index 434e52f450ff225027cf4091b3b2a21b874f8acb..f8da72af2107d95eaae9db1d73d8856975fa3e9c 100644 (file)
@@ -221,7 +221,7 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
 
        intel_bios_init(display);
 
-       ret = intel_vga_register(i915);
+       ret = intel_vga_register(display);
        if (ret)
                goto cleanup_bios;
 
@@ -275,7 +275,7 @@ cleanup_vga_client_pw_domain_dmc:
        intel_dmc_fini(i915);
        intel_power_domains_driver_remove(i915);
 cleanup_vga:
-       intel_vga_unregister(i915);
+       intel_vga_unregister(display);
 cleanup_bios:
        intel_bios_driver_remove(display);
 
@@ -458,7 +458,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
        intel_hti_init(display);
 
        /* Just disable it once at startup */
-       intel_vga_disable(i915);
+       intel_vga_disable(display);
        intel_setup_outputs(i915);
 
        ret = intel_dp_tunnel_mgr_init(display);
@@ -625,7 +625,7 @@ void intel_display_driver_remove_nogem(struct drm_i915_private *i915)
 
        intel_power_domains_driver_remove(i915);
 
-       intel_vga_unregister(i915);
+       intel_vga_unregister(display);
 
        intel_bios_driver_remove(display);
 }
@@ -683,12 +683,13 @@ __intel_display_driver_resume(struct drm_i915_private *i915,
                              struct drm_atomic_state *state,
                              struct drm_modeset_acquire_ctx *ctx)
 {
+       struct intel_display *display = &i915->display;
        struct drm_crtc_state *crtc_state;
        struct drm_crtc *crtc;
        int ret, i;
 
        intel_modeset_setup_hw_state(i915, ctx);
-       intel_vga_redisable(i915);
+       intel_vga_redisable(display);
 
        if (!state)
                return 0;
index 1f0084ca62485cd70ef42d44e411a893c8586432..a5d9b17e03a26e3ad8cb20899c6a4600c3faa73c 100644 (file)
@@ -187,8 +187,10 @@ int intel_power_well_refcount(struct i915_power_well *power_well)
 static void hsw_power_well_post_enable(struct drm_i915_private *dev_priv,
                                       u8 irq_pipe_mask, bool has_vga)
 {
+       struct intel_display *display = &dev_priv->display;
+
        if (has_vga)
-               intel_vga_reset_io_mem(dev_priv);
+               intel_vga_reset_io_mem(display);
 
        if (irq_pipe_mask)
                gen8_irq_power_well_post_enable(dev_priv, irq_pipe_mask);
@@ -1248,7 +1250,7 @@ static void vlv_display_power_well_init(struct drm_i915_private *dev_priv)
                        intel_crt_reset(&encoder->base);
        }
 
-       intel_vga_redisable_power_on(dev_priv);
+       intel_vga_redisable_power_on(display);
 
        intel_pps_unlock_regs_wa(display);
 }
index 0b5916c15307e3dd3ac1c8d8b2c67dc1d6e29e44..2c76a0176a3570551962b2cf799bf19592bc961e 100644 (file)
 #include "intel_de.h"
 #include "intel_vga.h"
 
-static i915_reg_t intel_vga_cntrl_reg(struct drm_i915_private *i915)
+static i915_reg_t intel_vga_cntrl_reg(struct intel_display *display)
 {
+       struct drm_i915_private *i915 = to_i915(display->drm);
+
        if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
                return VLV_VGACNTRL;
-       else if (DISPLAY_VER(i915) >= 5)
+       else if (DISPLAY_VER(display) >= 5)
                return CPU_VGACNTRL;
        else
                return VGACNTRL;
 }
 
 /* Disable the VGA plane that we never use */
-void intel_vga_disable(struct drm_i915_private *dev_priv)
+void intel_vga_disable(struct intel_display *display)
 {
-       struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
-       i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
+       struct pci_dev *pdev = to_pci_dev(display->drm->dev);
+       i915_reg_t vga_reg = intel_vga_cntrl_reg(display);
        u8 sr1;
 
-       if (intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)
+       if (intel_de_read(display, vga_reg) & VGA_DISP_DISABLE)
                return;
 
        /* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */
@@ -42,23 +44,24 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
        vga_put(pdev, VGA_RSRC_LEGACY_IO);
        udelay(300);
 
-       intel_de_write(dev_priv, vga_reg, VGA_DISP_DISABLE);
-       intel_de_posting_read(dev_priv, vga_reg);
+       intel_de_write(display, vga_reg, VGA_DISP_DISABLE);
+       intel_de_posting_read(display, vga_reg);
 }
 
-void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
+void intel_vga_redisable_power_on(struct intel_display *display)
 {
-       i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
+       i915_reg_t vga_reg = intel_vga_cntrl_reg(display);
 
-       if (!(intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)) {
-               drm_dbg_kms(&dev_priv->drm,
+       if (!(intel_de_read(display, vga_reg) & VGA_DISP_DISABLE)) {
+               drm_dbg_kms(display->drm,
                            "Something enabled VGA plane, disabling it\n");
-               intel_vga_disable(dev_priv);
+               intel_vga_disable(display);
        }
 }
 
-void intel_vga_redisable(struct drm_i915_private *i915)
+void intel_vga_redisable(struct intel_display *display)
 {
+       struct drm_i915_private *i915 = to_i915(display->drm);
        intel_wakeref_t wakeref;
 
        /*
@@ -74,14 +77,14 @@ void intel_vga_redisable(struct drm_i915_private *i915)
        if (!wakeref)
                return;
 
-       intel_vga_redisable_power_on(i915);
+       intel_vga_redisable_power_on(display);
 
        intel_display_power_put(i915, POWER_DOMAIN_VGA, wakeref);
 }
 
-void intel_vga_reset_io_mem(struct drm_i915_private *i915)
+void intel_vga_reset_io_mem(struct intel_display *display)
 {
-       struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
+       struct pci_dev *pdev = to_pci_dev(display->drm->dev);
 
        /*
         * After we re-enable the power well, if we touch VGA register 0x3d5
@@ -98,10 +101,10 @@ void intel_vga_reset_io_mem(struct drm_i915_private *i915)
        vga_put(pdev, VGA_RSRC_LEGACY_IO);
 }
 
-int intel_vga_register(struct drm_i915_private *i915)
+int intel_vga_register(struct intel_display *display)
 {
 
-       struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
+       struct pci_dev *pdev = to_pci_dev(display->drm->dev);
        int ret;
 
        /*
@@ -119,9 +122,9 @@ int intel_vga_register(struct drm_i915_private *i915)
        return 0;
 }
 
-void intel_vga_unregister(struct drm_i915_private *i915)
+void intel_vga_unregister(struct intel_display *display)
 {
-       struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
+       struct pci_dev *pdev = to_pci_dev(display->drm->dev);
 
        vga_client_unregister(pdev);
 }
index ba5b55b917f08372a693a444ef88712a05750f8c..824dfc32a1992772c573b58bf7dbf43377b78067 100644 (file)
@@ -6,13 +6,13 @@
 #ifndef __INTEL_VGA_H__
 #define __INTEL_VGA_H__
 
-struct drm_i915_private;
+struct intel_display;
 
-void intel_vga_reset_io_mem(struct drm_i915_private *i915);
-void intel_vga_disable(struct drm_i915_private *i915);
-void intel_vga_redisable(struct drm_i915_private *i915);
-void intel_vga_redisable_power_on(struct drm_i915_private *i915);
-int intel_vga_register(struct drm_i915_private *i915);
-void intel_vga_unregister(struct drm_i915_private *i915);
+void intel_vga_reset_io_mem(struct intel_display *display);
+void intel_vga_disable(struct intel_display *display);
+void intel_vga_redisable(struct intel_display *display);
+void intel_vga_redisable_power_on(struct intel_display *display);
+int intel_vga_register(struct intel_display *display);
+void intel_vga_unregister(struct intel_display *display);
 
 #endif /* __INTEL_VGA_H__ */
index f8373a461f176db30363b4c993082eabec587aa6..9d3d9b9830320c59a2997efe270c851c22a61a93 100644 (file)
@@ -118,6 +118,7 @@ void i915_save_display(struct drm_i915_private *dev_priv)
 
 void i915_restore_display(struct drm_i915_private *dev_priv)
 {
+       struct intel_display *display = &dev_priv->display;
        struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
 
        if (!HAS_DISPLAY(dev_priv))
@@ -134,7 +135,7 @@ void i915_restore_display(struct drm_i915_private *dev_priv)
                intel_de_write(dev_priv, DSPARB(dev_priv),
                               dev_priv->regfile.saveDSPARB);
 
-       intel_vga_redisable(dev_priv);
+       intel_vga_redisable(display);
 
        intel_gmbus_reset(dev_priv);
 }