aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/engine/disp
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:18 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:40:40 +1000
commit0710cc31482ae3711367c42e61580126c50c8ec0 (patch)
tree4a5214526e421b354047366348e6ab33b4eafdf6 /drivers/gpu/drm/nouveau/nvkm/engine/disp
parent19fef52d93518cc01fd284b55ee93c0a9967634f (diff)
drm/nouveau/dma: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
index 12b835fee0d5..36241cf9173e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
@@ -209,8 +209,9 @@ nv50_disp_dmac_create_(struct nvkm_object *parent,
struct nvkm_oclass *oclass, u64 pushbuf, int head,
int length, void **pobject)
{
+ struct nvkm_device *device = parent->engine->subdev.device;
struct nvkm_client *client = nvkm_client(parent);
- struct nvkm_handle *handle;
+ struct nvkm_dma *dma = device->dma;
struct nvkm_dmaobj *dmaobj;
struct nv50_disp_dmac *dmac;
int ret;
@@ -221,27 +222,19 @@ nv50_disp_dmac_create_(struct nvkm_object *parent,
if (ret)
return ret;
- handle = nvkm_client_search(client, pushbuf);
- if (!handle)
+ dmaobj = nvkm_dma_search(dma, client, pushbuf);
+ if (!dmaobj)
return -ENOENT;
- dmaobj = (void *)handle->object;
- switch (nv_mclass(dmaobj)) {
- case 0x0002:
- case 0x003d:
- if (dmaobj->limit - dmaobj->start != 0xfff)
- return -EINVAL;
+ if (dmaobj->limit - dmaobj->start != 0xfff)
+ return -EINVAL;
- switch (dmaobj->target) {
- case NV_MEM_TARGET_VRAM:
- dmac->push = 0x00000001 | dmaobj->start >> 8;
- break;
- case NV_MEM_TARGET_PCI_NOSNOOP:
- dmac->push = 0x00000003 | dmaobj->start >> 8;
- break;
- default:
- return -EINVAL;
- }
+ switch (dmaobj->target) {
+ case NV_MEM_TARGET_VRAM:
+ dmac->push = 0x00000001 | dmaobj->start >> 8;
+ break;
+ case NV_MEM_TARGET_PCI_NOSNOOP:
+ dmac->push = 0x00000003 | dmaobj->start >> 8;
break;
default:
return -EINVAL;