From: Daniel Vetter <daniel@ffwll.ch>
To: ville.syrjala@linux.intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/6] drm/i915: Implement GPU reset for 915/945
Date: Tue, 25 Nov 2014 13:54:43 +0100 [thread overview]
Message-ID: <20141125125443.GF25711@phenom.ffwll.local> (raw)
In-Reply-To: <1416599670-21914-4-git-send-email-ville.syrjala@linux.intel.com>
On Fri, Nov 21, 2014 at 09:54:27PM +0200, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> 915/945 have the same reset registers as 965, so share the code.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
I didn't find the gmch docs anywhere for these. Care to share?
Anyway, merged the first 6 patches from this series to dinq, thanks.
-Daniel
> ---
> drivers/gpu/drm/i915/i915_drv.c | 3 ++-
> drivers/gpu/drm/i915/i915_reg.h | 2 +-
> drivers/gpu/drm/i915/intel_uncore.c | 24 ++++++++++++------------
> 3 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 68e4239..44abd7b 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -881,7 +881,8 @@ int i915_reset(struct drm_device *dev)
> if (INTEL_INFO(dev)->gen > 5)
> intel_reset_gt_powersave(dev);
>
> - if (IS_GEN4(dev) && !IS_G4X(dev)) {
> + if ((IS_GEN3(dev) && !IS_G33(dev)) ||
> + (IS_GEN4(dev) && !IS_G4X(dev))) {
> intel_runtime_pm_disable_interrupts(dev_priv);
> intel_runtime_pm_enable_interrupts(dev_priv);
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index ff1e36f..5446758 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -78,7 +78,7 @@
>
>
> /* Graphics reset regs */
> -#define I965_GDRST 0xc0 /* PCI config register */
> +#define I915_GDRST 0xc0 /* PCI config register */
> #define GRDOM_FULL (0<<2)
> #define GRDOM_RENDER (1<<2)
> #define GRDOM_MEDIA (3<<2)
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 6516fa1..54f8265 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1345,27 +1345,27 @@ int i915_get_reset_stats_ioctl(struct drm_device *dev,
> return 0;
> }
>
> -static int i965_reset_complete(struct drm_device *dev)
> +static int i915_reset_complete(struct drm_device *dev)
> {
> u8 gdrst;
> - pci_read_config_byte(dev->pdev, I965_GDRST, &gdrst);
> + pci_read_config_byte(dev->pdev, I915_GDRST, &gdrst);
> return (gdrst & GRDOM_RESET_STATUS) == 0;
> }
>
> -static int i965_do_reset(struct drm_device *dev)
> +static int i915_do_reset(struct drm_device *dev)
> {
> /* assert reset for at least 20 usec */
> - pci_write_config_byte(dev->pdev, I965_GDRST, GRDOM_RESET_ENABLE);
> + pci_write_config_byte(dev->pdev, I915_GDRST, GRDOM_RESET_ENABLE);
> udelay(20);
> - pci_write_config_byte(dev->pdev, I965_GDRST, 0);
> + pci_write_config_byte(dev->pdev, I915_GDRST, 0);
>
> - return wait_for(i965_reset_complete(dev), 500);
> + return wait_for(i915_reset_complete(dev), 500);
> }
>
> static int g4x_reset_complete(struct drm_device *dev)
> {
> u8 gdrst;
> - pci_read_config_byte(dev->pdev, I965_GDRST, &gdrst);
> + pci_read_config_byte(dev->pdev, I915_GDRST, &gdrst);
> return (gdrst & GRDOM_RESET_ENABLE) == 0;
> }
>
> @@ -1374,7 +1374,7 @@ static int g4x_do_reset(struct drm_device *dev)
> struct drm_i915_private *dev_priv = dev->dev_private;
> int ret;
>
> - pci_write_config_byte(dev->pdev, I965_GDRST,
> + pci_write_config_byte(dev->pdev, I915_GDRST,
> GRDOM_RENDER | GRDOM_RESET_ENABLE);
> ret = wait_for(g4x_reset_complete(dev), 500);
> if (ret)
> @@ -1384,7 +1384,7 @@ static int g4x_do_reset(struct drm_device *dev)
> I915_WRITE(VDECCLK_GATE_D, I915_READ(VDECCLK_GATE_D) | VCP_UNIT_CLOCK_GATE_DISABLE);
> POSTING_READ(VDECCLK_GATE_D);
>
> - pci_write_config_byte(dev->pdev, I965_GDRST,
> + pci_write_config_byte(dev->pdev, I915_GDRST,
> GRDOM_MEDIA | GRDOM_RESET_ENABLE);
> ret = wait_for(g4x_reset_complete(dev), 500);
> if (ret)
> @@ -1394,7 +1394,7 @@ static int g4x_do_reset(struct drm_device *dev)
> I915_WRITE(VDECCLK_GATE_D, I915_READ(VDECCLK_GATE_D) & ~VCP_UNIT_CLOCK_GATE_DISABLE);
> POSTING_READ(VDECCLK_GATE_D);
>
> - pci_write_config_byte(dev->pdev, I965_GDRST, 0);
> + pci_write_config_byte(dev->pdev, I915_GDRST, 0);
>
> return 0;
> }
> @@ -1452,8 +1452,8 @@ int intel_gpu_reset(struct drm_device *dev)
> return ironlake_do_reset(dev);
> else if (IS_G4X(dev))
> return g4x_do_reset(dev);
> - else if (IS_GEN4(dev))
> - return i965_do_reset(dev);
> + else if (IS_GEN4(dev) || (IS_GEN3(dev) && !IS_G33(dev)))
> + return i915_do_reset(dev);
> else
> return -ENODEV;
> }
> --
> 2.0.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-11-25 12:54 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-21 19:54 [PATCH 0/6] drm/i915: Implement gen3/4 GPU reset ville.syrjala
2014-11-21 19:54 ` [PATCH 1/6] drm/i915: Fix gen4 " ville.syrjala
2014-11-22 11:05 ` Chris Wilson
2014-11-24 12:57 ` Ville Syrjälä
2014-11-21 19:54 ` [PATCH 2/6] drm/i915: Restore the display config after a GPU reset on gen4 ville.syrjala
2014-11-21 19:54 ` [PATCH 3/6] drm/i915: Implement GPU reset for 915/945 ville.syrjala
2014-11-25 12:54 ` Daniel Vetter [this message]
2014-11-21 19:54 ` [PATCH 4/6] drm/i915: Implement GPU reset for g33 ville.syrjala
2014-11-21 19:54 ` [PATCH 5/6] drm/i915: Grab modeset locks for GPU rest on pre-ctg ville.syrjala
2014-11-21 20:49 ` Daniel Vetter
2014-11-21 21:10 ` Ville Syrjälä
2014-11-24 9:34 ` Daniel Vetter
2014-11-24 13:17 ` Ville Syrjälä
2014-11-24 16:28 ` [PATCH v2 " ville.syrjala
2014-11-21 19:54 ` [PATCH 6/6] drm/i915: Disable crtcs gracefully before GPU reset on gen3/4 ville.syrjala
2014-11-24 10:02 ` [PATCH 6/6] drm/i915: Disable crtcs gracefully before shuang.he
2014-11-24 16:28 ` [PATCH 7/6] drm/i915: Deal with video overlay on GPU reset ville.syrjala
2014-11-25 12:35 ` Daniel Vetter
2014-11-26 15:07 ` [PATCH v2 " ville.syrjala
2014-11-26 18:10 ` Daniel Vetter
2014-11-27 12:04 ` Dave Gordon
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=20141125125443.GF25711@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=intel-gfx@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox