2022-06-21 20:03:12

by Bob Beckett

[permalink] [raw]
Subject: [PATCH v8 02/10] drm/i915: limit ttm to dma32 for i965G[M]

i965G[M] cannot relocate objects above 4GiB.
Ensure ttm uses dma32 on these systems.

Signed-off-by: Robert Beckett <[email protected]>
---
drivers/gpu/drm/i915/intel_region_ttm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_region_ttm.c b/drivers/gpu/drm/i915/intel_region_ttm.c
index 62ff77445b01..fd2ecfdd8fa1 100644
--- a/drivers/gpu/drm/i915/intel_region_ttm.c
+++ b/drivers/gpu/drm/i915/intel_region_ttm.c
@@ -32,10 +32,15 @@
int intel_region_ttm_device_init(struct drm_i915_private *dev_priv)
{
struct drm_device *drm = &dev_priv->drm;
+ bool use_dma32 = false;
+
+ /* i965g[m] cannot relocate objects above 4GiB. */
+ if (IS_I965GM(dev_priv) || IS_I965G(dev_priv))
+ use_dma32 = true;

return ttm_device_init(&dev_priv->bdev, i915_ttm_driver(),
drm->dev, drm->anon_inode->i_mapping,
- drm->vma_offset_manager, false, false);
+ drm->vma_offset_manager, false, use_dma32);
}

/**
--
2.25.1


2022-06-22 11:39:16

by Thomas Hellström

[permalink] [raw]
Subject: Re: [PATCH v8 02/10] drm/i915: limit ttm to dma32 for i965G[M]


On 6/21/22 22:00, Robert Beckett wrote:
> i965G[M] cannot relocate objects above 4GiB.
> Ensure ttm uses dma32 on these systems.
>
> Signed-off-by: Robert Beckett <[email protected]>

LGTM.

Reviewed-by: Thomas Hellström <[email protected]>


> ---
> drivers/gpu/drm/i915/intel_region_ttm.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_region_ttm.c b/drivers/gpu/drm/i915/intel_region_ttm.c
> index 62ff77445b01..fd2ecfdd8fa1 100644
> --- a/drivers/gpu/drm/i915/intel_region_ttm.c
> +++ b/drivers/gpu/drm/i915/intel_region_ttm.c
> @@ -32,10 +32,15 @@
> int intel_region_ttm_device_init(struct drm_i915_private *dev_priv)
> {
> struct drm_device *drm = &dev_priv->drm;
> + bool use_dma32 = false;
> +
> + /* i965g[m] cannot relocate objects above 4GiB. */
> + if (IS_I965GM(dev_priv) || IS_I965G(dev_priv))
> + use_dma32 = true;
>
> return ttm_device_init(&dev_priv->bdev, i915_ttm_driver(),
> drm->dev, drm->anon_inode->i_mapping,
> - drm->vma_offset_manager, false, false);
> + drm->vma_offset_manager, false, use_dma32);
> }
>
> /**