2015-07-08 07:13:56

by Alexandre Courbot

[permalink] [raw]
Subject: [PATCH] nouveau/ttm: fix tiled system memory with Maxwell

Add Maxwell to the switch statement that sets node->memtype, otherwise
all tiling information is ignored for buffers in system memory.

While we are at it, make that switch statement explicitly complain the
next time we meet a non-handled card family.

Signed-off-by: Alexandre Courbot <[email protected]>
---
drm/nouveau/nouveau_ttm.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drm/nouveau/nouveau_ttm.c b/drm/nouveau/nouveau_ttm.c
index 18f449715788..69bec1058039 100644
--- a/drm/nouveau/nouveau_ttm.c
+++ b/drm/nouveau/nouveau_ttm.c
@@ -175,15 +175,24 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
node->page_shift = 12;

switch (drm->device.info.family) {
+ case NV_DEVICE_INFO_V0_TNT:
+ case NV_DEVICE_INFO_V0_CELSIUS:
+ case NV_DEVICE_INFO_V0_KELVIN:
+ case NV_DEVICE_INFO_V0_RANKINE:
+ case NV_DEVICE_INFO_V0_CURIE:
+ break;
case NV_DEVICE_INFO_V0_TESLA:
if (drm->device.info.chipset != 0x50)
node->memtype = (nvbo->tile_flags & 0x7f00) >> 8;
break;
case NV_DEVICE_INFO_V0_FERMI:
case NV_DEVICE_INFO_V0_KEPLER:
+ case NV_DEVICE_INFO_V0_MAXWELL:
node->memtype = (nvbo->tile_flags & 0xff00) >> 8;
break;
default:
+ NV_WARN(drm, "%s: unhandled family type %x\n",
+ drm->device.info.family);
break;
}

--
2.4.4


2015-07-09 08:16:49

by Alexandre Courbot

[permalink] [raw]
Subject: Re: [PATCH] nouveau/ttm: fix tiled system memory with Maxwell

Withdrawing this patch which triggered a warning due to a missing
argument to NV_WARN. Sent v2 which addresses this. Sorry for the
noise.

On Wed, Jul 8, 2015 at 4:13 PM, Alexandre Courbot <[email protected]> wrote:
> Add Maxwell to the switch statement that sets node->memtype, otherwise
> all tiling information is ignored for buffers in system memory.
>
> While we are at it, make that switch statement explicitly complain the
> next time we meet a non-handled card family.
>
> Signed-off-by: Alexandre Courbot <[email protected]>
> ---
> drm/nouveau/nouveau_ttm.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drm/nouveau/nouveau_ttm.c b/drm/nouveau/nouveau_ttm.c
> index 18f449715788..69bec1058039 100644
> --- a/drm/nouveau/nouveau_ttm.c
> +++ b/drm/nouveau/nouveau_ttm.c
> @@ -175,15 +175,24 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
> node->page_shift = 12;
>
> switch (drm->device.info.family) {
> + case NV_DEVICE_INFO_V0_TNT:
> + case NV_DEVICE_INFO_V0_CELSIUS:
> + case NV_DEVICE_INFO_V0_KELVIN:
> + case NV_DEVICE_INFO_V0_RANKINE:
> + case NV_DEVICE_INFO_V0_CURIE:
> + break;
> case NV_DEVICE_INFO_V0_TESLA:
> if (drm->device.info.chipset != 0x50)
> node->memtype = (nvbo->tile_flags & 0x7f00) >> 8;
> break;
> case NV_DEVICE_INFO_V0_FERMI:
> case NV_DEVICE_INFO_V0_KEPLER:
> + case NV_DEVICE_INFO_V0_MAXWELL:
> node->memtype = (nvbo->tile_flags & 0xff00) >> 8;
> break;
> default:
> + NV_WARN(drm, "%s: unhandled family type %x\n",
> + drm->device.info.family);
> break;
> }
>
> --
> 2.4.4
>