Message ID | 20240906143306.15937-5-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Some intel_display conversions | expand |
On Fri, Sep 06, 2024 at 05:33:04PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > 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> > --- > .../drm/i915/display/intel_display_driver.c | 11 ++--- > .../i915/display/intel_display_power_well.c | 6 ++- > drivers/gpu/drm/i915/display/intel_vga.c | 45 ++++++++++--------- > drivers/gpu/drm/i915/display/intel_vga.h | 14 +++--- > drivers/gpu/drm/i915/i915_suspend.c | 3 +- > 5 files changed, 43 insertions(+), 36 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c > index 434e52f450ff..f8da72af2107 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_driver.c > +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c > @@ -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 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915) > 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; > diff --git a/drivers/gpu/drm/i915/display/intel_display_power_well.c b/drivers/gpu/drm/i915/display/intel_display_power_well.c > index 1f0084ca6248..a5d9b17e03a2 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power_well.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c > @@ -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; I was going to say that it would be probably good to replace the function argument.. > + > 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); but then I noticed it is still used internally... but anyway, I believe it is already a step towards the right direction and we replace the inner cases as we go... Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > @@ -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); > } > diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c > index 0b5916c15307..2c76a0176a35 100644 > --- a/drivers/gpu/drm/i915/display/intel_vga.c > +++ b/drivers/gpu/drm/i915/display/intel_vga.c > @@ -14,24 +14,26 @@ > #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); > } > diff --git a/drivers/gpu/drm/i915/display/intel_vga.h b/drivers/gpu/drm/i915/display/intel_vga.h > index ba5b55b917f0..824dfc32a199 100644 > --- a/drivers/gpu/drm/i915/display/intel_vga.h > +++ b/drivers/gpu/drm/i915/display/intel_vga.h > @@ -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__ */ > diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c > index f8373a461f17..9d3d9b983032 100644 > --- a/drivers/gpu/drm/i915/i915_suspend.c > +++ b/drivers/gpu/drm/i915/i915_suspend.c > @@ -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); > } > -- > 2.44.2 >
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c index 434e52f450ff..f8da72af2107 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c @@ -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 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915) 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; diff --git a/drivers/gpu/drm/i915/display/intel_display_power_well.c b/drivers/gpu/drm/i915/display/intel_display_power_well.c index 1f0084ca6248..a5d9b17e03a2 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power_well.c +++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c @@ -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); } diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c index 0b5916c15307..2c76a0176a35 100644 --- a/drivers/gpu/drm/i915/display/intel_vga.c +++ b/drivers/gpu/drm/i915/display/intel_vga.c @@ -14,24 +14,26 @@ #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); } diff --git a/drivers/gpu/drm/i915/display/intel_vga.h b/drivers/gpu/drm/i915/display/intel_vga.h index ba5b55b917f0..824dfc32a199 100644 --- a/drivers/gpu/drm/i915/display/intel_vga.h +++ b/drivers/gpu/drm/i915/display/intel_vga.h @@ -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__ */ diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index f8373a461f17..9d3d9b983032 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c @@ -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); }