• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/gpu/drm/nouveau/

Lines Matching defs:gpuobj

108 	struct nouveau_gpuobj *ramht = chan->ramht ? chan->ramht->gpuobj : NULL;
119 (ref->gpuobj->engine << NV_RAMHT_CONTEXT_ENGINE_SHIFT);
124 (ref->gpuobj->engine << NV40_RAMHT_CONTEXT_ENGINE_SHIFT);
126 if (ref->gpuobj->engine == NVOBJ_ENGINE_DISPLAY) {
130 ((ref->gpuobj->engine <<
166 struct nouveau_gpuobj *ramht = chan->ramht ? chan->ramht->gpuobj : NULL;
207 struct nouveau_gpuobj *gpuobj;
217 gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL);
218 if (!gpuobj)
220 NV_DEBUG(dev, "gpuobj %p\n", gpuobj);
221 gpuobj->flags = flags;
222 gpuobj->im_channel = chan;
224 list_add_tail(&gpuobj->list, &dev_priv->gpuobj_list);
238 ret = engine->instmem.populate(dev, gpuobj, &size);
240 nouveau_gpuobj_del(dev, &gpuobj);
246 gpuobj->im_pramin = drm_mm_search_free(pramin, size, align, 0);
247 if (gpuobj->im_pramin)
248 gpuobj->im_pramin = drm_mm_get_block(gpuobj->im_pramin, size, align);
250 if (!gpuobj->im_pramin) {
251 nouveau_gpuobj_del(dev, &gpuobj);
256 ret = engine->instmem.bind(dev, gpuobj);
258 nouveau_gpuobj_del(dev, &gpuobj);
263 if (gpuobj->flags & NVOBJ_FLAG_ZERO_ALLOC) {
266 for (i = 0; i < gpuobj->im_pramin->size; i += 4)
267 nv_wo32(dev, gpuobj, i/4, 0);
271 *gpuobj_ret = gpuobj;
321 struct nouveau_gpuobj *gpuobj = NULL;
327 gpuobj = list_entry(entry, struct nouveau_gpuobj, list);
329 NV_ERROR(dev, "gpuobj %p still exists at takedown, refs=%d\n",
330 gpuobj, gpuobj->refcount);
331 gpuobj->refcount = 0;
332 nouveau_gpuobj_del(dev, &gpuobj);
341 struct nouveau_gpuobj *gpuobj;
344 NV_DEBUG(dev, "gpuobj %p\n", pgpuobj ? *pgpuobj : NULL);
348 gpuobj = *pgpuobj;
350 if (gpuobj->refcount != 0) {
351 NV_ERROR(dev, "gpuobj refcount is %d\n", gpuobj->refcount);
355 if (gpuobj->im_pramin && (gpuobj->flags & NVOBJ_FLAG_ZERO_FREE)) {
356 for (i = 0; i < gpuobj->im_pramin->size; i += 4)
357 nv_wo32(dev, gpuobj, i/4, 0);
361 if (gpuobj->dtor)
362 gpuobj->dtor(dev, gpuobj);
364 if (gpuobj->im_backing && !(gpuobj->flags & NVOBJ_FLAG_FAKE))
365 engine->instmem.clear(dev, gpuobj);
367 if (gpuobj->im_pramin) {
368 if (gpuobj->flags & NVOBJ_FLAG_FAKE)
369 kfree(gpuobj->im_pramin);
371 drm_mm_put_block(gpuobj->im_pramin);
374 list_del(&gpuobj->list);
377 kfree(gpuobj);
384 struct nouveau_gpuobj *gpuobj, uint32_t *inst)
391 *inst = gpuobj->im_pramin->start;
395 if (chan && gpuobj->im_channel != chan) {
397 gpuobj->im_channel->id, chan->id);
403 cpramin = chan->ramin->gpuobj;
404 *inst = gpuobj->im_pramin->start - cpramin->im_pramin->start;
409 if (!gpuobj->im_channel) {
411 if (!gpuobj->im_backing) {
412 NV_ERROR(dev, "AII, no VRAM backing gpuobj\n");
415 *inst = gpuobj->im_backing_start;
419 cpramin = gpuobj->im_channel->ramin->gpuobj;
421 (gpuobj->im_pramin->start - cpramin->im_pramin->start);
430 uint32_t handle, struct nouveau_gpuobj *gpuobj,
438 NV_DEBUG(dev, "ch%d h=0x%08x gpuobj=%p\n",
439 chan ? chan->id : -1, handle, gpuobj);
441 if (!dev_priv || !gpuobj || (ref_ret && *ref_ret != NULL))
447 if (gpuobj->engine == NVOBJ_ENGINE_SW && !gpuobj->im_pramin) {
451 ret = nouveau_gpuobj_instance_get(dev, chan, gpuobj, &instance);
460 ref->gpuobj = gpuobj;
477 ref->gpuobj->refcount++;
494 if (ref->gpuobj) {
495 ref->gpuobj->refcount--;
497 if (ref->gpuobj->refcount == 0) {
498 if (!(ref->gpuobj->flags & NVOBJ_FLAG_ALLOW_NO_REFS))
499 nouveau_gpuobj_del(dev, &ref->gpuobj);
514 struct nouveau_gpuobj *gpuobj = NULL;
517 ret = nouveau_gpuobj_new(dev, oc, size, align, flags, &gpuobj);
521 ret = nouveau_gpuobj_ref_add(dev, rc, handle, gpuobj, ref);
523 nouveau_gpuobj_del(dev, &gpuobj);
557 struct nouveau_gpuobj *gpuobj = NULL;
564 gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL);
565 if (!gpuobj)
567 NV_DEBUG(dev, "gpuobj %p\n", gpuobj);
568 gpuobj->im_channel = NULL;
569 gpuobj->flags = flags | NVOBJ_FLAG_FAKE;
571 list_add_tail(&gpuobj->list, &dev_priv->gpuobj_list);
574 gpuobj->im_pramin = kzalloc(sizeof(struct drm_mm_node),
576 if (!gpuobj->im_pramin) {
577 nouveau_gpuobj_del(dev, &gpuobj);
580 gpuobj->im_pramin->start = p_offset;
581 gpuobj->im_pramin->size = size;
585 gpuobj->im_backing = (struct nouveau_bo *)-1;
586 gpuobj->im_backing_start = b_offset;
589 if (gpuobj->flags & NVOBJ_FLAG_ZERO_ALLOC) {
590 for (i = 0; i < gpuobj->im_pramin->size; i += 4)
591 nv_wo32(dev, gpuobj, i/4, 0);
596 i = nouveau_gpuobj_ref_add(dev, NULL, 0, gpuobj, pref);
598 nouveau_gpuobj_del(dev, &gpuobj);
604 *pgpuobj = gpuobj;
651 int target, struct nouveau_gpuobj **gpuobj)
673 NVOBJ_FLAG_ZERO_FREE, gpuobj);
675 NV_ERROR(dev, "Error creating gpuobj: %d\n", ret);
687 nv_wo32(dev, *gpuobj, 0, ((1<<12) | (1<<13) |
692 nv_wo32(dev, *gpuobj, 1, size - 1);
693 nv_wo32(dev, *gpuobj, 2, frame | pte_flags);
694 nv_wo32(dev, *gpuobj, 3, frame | pte_flags);
707 nv_wo32(dev, *gpuobj, 0, flags0 | class);
708 nv_wo32(dev, *gpuobj, 1, lower_32_bits(limit));
709 nv_wo32(dev, *gpuobj, 2, lower_32_bits(offset));
710 nv_wo32(dev, *gpuobj, 3, ((upper_32_bits(limit) & 0xff) << 24) |
712 nv_wo32(dev, *gpuobj, 5, flags5);
717 (*gpuobj)->engine = NVOBJ_ENGINE_SW;
718 (*gpuobj)->class = class;
725 struct nouveau_gpuobj **gpuobj,
738 gpuobj);
743 *gpuobj = dev_priv->gart_info.sg_ctxdma;
750 ret = (*gpuobj != NULL) ? 0 : -EINVAL;
812 struct nouveau_gpuobj **gpuobj)
824 gpuobj);
826 NV_ERROR(dev, "Error creating gpuobj: %d\n", ret);
831 nv_wo32(dev, *gpuobj, 0, class);
832 nv_wo32(dev, *gpuobj, 5, 0x00010000);
836 nv_wo32(dev, *gpuobj, 0, 0x00001030);
837 nv_wo32(dev, *gpuobj, 1, 0xFFFFFFFF);
841 nv_wo32(dev, *gpuobj, 0, class);
843 nv_wo32(dev, *gpuobj, 2, 0x01000000);
847 nv_wo32(dev, *gpuobj, 0, class | 0x00080000);
849 nv_wo32(dev, *gpuobj, 0, class);
856 (*gpuobj)->engine = NVOBJ_ENGINE_GR;
857 (*gpuobj)->class = class;
866 struct nouveau_gpuobj *gpuobj;
872 gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL);
873 if (!gpuobj)
875 gpuobj->engine = NVOBJ_ENGINE_SW;
876 gpuobj->class = class;
878 list_add_tail(&gpuobj->list, &dev_priv->gpuobj_list);
879 *gpuobj_ret = gpuobj;
919 pramin = chan->ramin->gpuobj;
961 vm_offset += chan->ramin->gpuobj->im_pramin->start;
1105 struct nouveau_gpuobj *gpuobj;
1118 list_for_each_entry(gpuobj, &dev_priv->gpuobj_list, list) {
1119 if (!gpuobj->im_backing || (gpuobj->flags & NVOBJ_FLAG_FAKE))
1122 gpuobj->im_backing_suspend = vmalloc(gpuobj->im_pramin->size);
1123 if (!gpuobj->im_backing_suspend) {
1128 for (i = 0; i < gpuobj->im_pramin->size / 4; i++)
1129 gpuobj->im_backing_suspend[i] = nv_ro32(dev, gpuobj, i);
1139 struct nouveau_gpuobj *gpuobj;
1147 list_for_each_entry(gpuobj, &dev_priv->gpuobj_list, list) {
1148 if (!gpuobj->im_backing_suspend)
1151 vfree(gpuobj->im_backing_suspend);
1152 gpuobj->im_backing_suspend = NULL;
1160 struct nouveau_gpuobj *gpuobj;
1170 list_for_each_entry(gpuobj, &dev_priv->gpuobj_list, list) {
1171 if (!gpuobj->im_backing_suspend)
1174 for (i = 0; i < gpuobj->im_pramin->size / 4; i++)
1175 nv_wo32(dev, gpuobj, i, gpuobj->im_backing_suspend[i]);