All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: <intel-gfx@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 4/6] drm/i915/vga: Convert VGA code to intel_display
Date: Fri, 6 Sep 2024 11:12:52 -0400	[thread overview]
Message-ID: <Ztsb9OxzNdULmYn-@intel.com> (raw)
In-Reply-To: <20240906143306.15937-5-ville.syrjala@linux.intel.com>

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
> 

  reply	other threads:[~2024-09-06 15:13 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-06 14:33 [PATCH 0/6] drm/i915: Some intel_display conversions Ville Syrjala
2024-09-06 14:33 ` [PATCH 1/6] drm/i915/cdclk: Add missing braces Ville Syrjala
2024-09-06 15:10   ` Rodrigo Vivi
2024-09-06 15:19   ` Jani Nikula
2024-09-06 14:33 ` [PATCH 2/6] drm/i915/cdclk: Convert CDCLK code to intel_display Ville Syrjala
2024-09-06 15:09   ` Rodrigo Vivi
2024-09-06 15:18   ` Jani Nikula
2024-09-06 16:17     ` Ville Syrjälä
2024-09-06 14:33 ` [PATCH 3/6] drm/i915/power: Convert low level DC state " Ville Syrjala
2024-09-06 15:10   ` Rodrigo Vivi
2024-09-06 14:33 ` [PATCH 4/6] drm/i915/vga: Convert VGA " Ville Syrjala
2024-09-06 15:12   ` Rodrigo Vivi [this message]
2024-09-06 14:33 ` [PATCH 5/6] drm/i915/power: Convert "i830 power well" " Ville Syrjala
2024-09-06 15:13   ` Rodrigo Vivi
2024-09-06 14:33 ` [PATCH 6/6] drm/i915/dmc: Convert DMC " Ville Syrjala
2024-09-06 15:16   ` Rodrigo Vivi
2024-09-06 14:38 ` ✓ CI.Patch_applied: success for drm/i915: Some intel_display conversions Patchwork
2024-09-06 14:39 ` ✗ CI.checkpatch: warning " Patchwork
2024-09-06 14:40 ` ✓ CI.KUnit: success " Patchwork
2024-09-06 14:57 ` ✓ CI.Build: " Patchwork
2024-09-06 15:02 ` ✓ CI.Hooks: " Patchwork
2024-09-06 15:03 ` ✗ CI.checksparse: warning " Patchwork
2024-09-06 15:43 ` ✗ Fi.CI.CHECKPATCH: " Patchwork
2024-09-06 15:43 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-09-06 15:45 ` ✓ CI.BAT: success " Patchwork
2024-09-06 16:08 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-09-09 14:15   ` Ville Syrjälä
2024-09-10  8:14     ` Illipilli, TejasreeX
2024-09-09 10:12 ` ✗ CI.FULL: " Patchwork
2024-09-10  5:34 ` ✓ Fi.CI.BAT: success " Patchwork
2024-09-11  0:54 ` ✗ Fi.CI.IGT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Ztsb9OxzNdULmYn-@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.