[Nouveau] [libdrm 01/13] nouveau: move more abi16-specific logic into abi16.c
Emil Velikov
emil.l.velikov at gmail.com
Thu Nov 26 12:21:40 PST 2015
Hi Ben,
On 26 November 2015 at 07:13, Ben Skeggs <skeggsb at gmail.com> wrote:
> From: Ben Skeggs <bskeggs at redhat.com>
>
> Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
> ---
> nouveau/abi16.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
> nouveau/nouveau.c | 56 +++++++------------------------------------------
> nouveau/private.h | 7 ++-----
> 3 files changed, 67 insertions(+), 58 deletions(-)
>
> diff --git a/nouveau/abi16.c b/nouveau/abi16.c
> index 59bc436..8f24ba2 100644
> --- a/nouveau/abi16.c
> +++ b/nouveau/abi16.c
> +drm_private bool
> +abi16_object(struct nouveau_object *obj, int (**func)(struct nouveau_object *))
> +{
> + struct nouveau_object *parent = obj->parent;
> +
> + if ((parent->length != 0 && parent->oclass == NOUVEAU_DEVICE_CLASS)) {
> + if (obj->oclass == NOUVEAU_FIFO_CHANNEL_CLASS) {
> + struct nouveau_device *dev = (void *)parent;
> + if (dev->chipset < 0xc0)
> + *func = abi16_chan_nv04;
> + else
> + if (dev->chipset < 0xe0)
> + *func = abi16_chan_nvc0;
> + else
> + *func = abi16_chan_nve0;
> + return true;
> + }
> + } else
> + if ((parent->length != 0 &&
> + parent->oclass == NOUVEAU_FIFO_CHANNEL_CLASS)) {
> + if (obj->oclass == NOUVEAU_NOTIFIER_CLASS) {
> + *func = abi16_ntfy;
> + return true;
> + }
> +
> + *func = abi16_engobj;
> + return false;
Surely this is meant to be true, right ?
> + }
> +
> + *func = NULL;
> + return false;
> +}
> +
> +drm_private void
> abi16_bo_info(struct nouveau_bo *bo, struct drm_nouveau_gem_info *info)
> {
> struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
> diff --git a/nouveau/nouveau.c b/nouveau/nouveau.c
> index 97fd77b..8a0be2f 100644
> --- a/nouveau/nouveau.c
> +++ b/nouveau/nouveau.c
> @@ -135,6 +135,7 @@ nouveau_device_wrap(int fd, int close, struct nouveau_device **pdev)
> nvdev->gart_limit_percent = 80;
> DRMINITLISTHEAD(&nvdev->bo_list);
> nvdev->base.object.oclass = NOUVEAU_DEVICE_CLASS;
> + nvdev->base.object.length = ~0;
There are no hints about this and it's use in abi16_object - worth
splitting out or mentioning it in the commit message ?
-Emil
More information about the Nouveau
mailing list