Searched refs:gem (Results 1 - 106 of 106) sorted by relevance

/linux-4.4.14/drivers/gpu/drm/tegra/
H A DMakefile5 gem.o \
H A Dgem.c21 #include "gem.h"
31 struct drm_device *drm = obj->gem.dev; tegra_bo_put()
34 drm_gem_object_unreference(&obj->gem); tegra_bo_put()
75 struct drm_device *drm = obj->gem.dev; tegra_bo_get()
78 drm_gem_object_reference(&obj->gem); tegra_bo_get()
107 err = drm_mm_insert_node_generic(&tegra->mm, bo->mm, bo->gem.size, tegra_bo_iommu_map()
160 err = drm_gem_object_init(drm, &bo->gem, size); tegra_bo_alloc_object()
164 err = drm_gem_create_mmap_offset(&bo->gem); tegra_bo_alloc_object()
171 drm_gem_object_release(&bo->gem); tegra_bo_alloc_object()
180 drm_gem_put_pages(&bo->gem, bo->pages, true, true); tegra_bo_free()
184 dma_free_writecombine(drm->dev, bo->gem.size, bo->vaddr, tegra_bo_free()
194 bo->pages = drm_gem_get_pages(&bo->gem); tegra_bo_get_pages()
198 bo->num_pages = bo->gem.size >> PAGE_SHIFT; tegra_bo_get_pages()
220 drm_gem_put_pages(&bo->gem, bo->pages, false, false); tegra_bo_get_pages()
240 size_t size = bo->gem.size; tegra_bo_alloc()
278 drm_gem_object_release(&bo->gem); tegra_bo_create()
296 err = drm_gem_handle_create(file, &bo->gem, handle); tegra_bo_create_with_handle()
298 tegra_bo_free_object(&bo->gem); tegra_bo_create_with_handle()
302 drm_gem_object_unreference_unlocked(&bo->gem); tegra_bo_create_with_handle()
351 bo->gem.import_attach = attach; tegra_bo_import()
362 drm_gem_object_release(&bo->gem); tegra_bo_import()
367 void tegra_bo_free_object(struct drm_gem_object *gem) tegra_bo_free_object() argument
369 struct tegra_drm *tegra = gem->dev->dev_private; tegra_bo_free_object()
370 struct tegra_bo *bo = to_tegra_bo(gem); tegra_bo_free_object()
375 if (gem->import_attach) { tegra_bo_free_object()
376 dma_buf_unmap_attachment(gem->import_attach, bo->sgt, tegra_bo_free_object()
378 drm_prime_gem_destroy(gem, NULL); tegra_bo_free_object()
380 tegra_bo_free(gem->dev, bo); tegra_bo_free_object()
383 drm_gem_object_release(gem); tegra_bo_free_object()
408 struct drm_gem_object *gem; tegra_bo_dumb_map_offset() local
413 gem = drm_gem_object_lookup(drm, file, handle); tegra_bo_dumb_map_offset()
414 if (!gem) { tegra_bo_dumb_map_offset()
420 bo = to_tegra_bo(gem); tegra_bo_dumb_map_offset()
422 *offset = drm_vma_node_offset_addr(&bo->gem.vma_node); tegra_bo_dumb_map_offset()
424 drm_gem_object_unreference(gem); tegra_bo_dumb_map_offset()
433 struct drm_gem_object *gem = vma->vm_private_data; tegra_bo_fault() local
434 struct tegra_bo *bo = to_tegra_bo(gem); tegra_bo_fault()
469 struct drm_gem_object *gem; tegra_drm_mmap() local
477 gem = vma->vm_private_data; tegra_drm_mmap()
478 bo = to_tegra_bo(gem); tegra_drm_mmap()
486 ret = dma_mmap_writecombine(gem->dev->dev, vma, bo->vaddr, tegra_drm_mmap()
487 bo->paddr, gem->size); tegra_drm_mmap()
510 struct drm_gem_object *gem = attach->dmabuf->priv; tegra_gem_prime_map_dma_buf() local
511 struct tegra_bo *bo = to_tegra_bo(gem); tegra_gem_prime_map_dma_buf()
535 sg_dma_len(sgt->sgl) = gem->size; tegra_gem_prime_map_dma_buf()
550 struct drm_gem_object *gem = attach->dmabuf->priv; tegra_gem_prime_unmap_dma_buf() local
551 struct tegra_bo *bo = to_tegra_bo(gem); tegra_gem_prime_unmap_dma_buf()
594 struct drm_gem_object *gem = buf->priv; tegra_gem_prime_vmap() local
595 struct tegra_bo *bo = to_tegra_bo(gem); tegra_gem_prime_vmap()
618 struct drm_gem_object *gem, tegra_gem_prime_export()
624 exp_info.size = gem->size; tegra_gem_prime_export()
626 exp_info.priv = gem; tegra_gem_prime_export()
637 struct drm_gem_object *gem = buf->priv; tegra_gem_prime_import() local
639 if (gem->dev == drm) { tegra_gem_prime_import()
640 drm_gem_object_reference(gem); tegra_gem_prime_import()
641 return gem; tegra_gem_prime_import()
649 return &bo->gem; tegra_gem_prime_import()
617 tegra_gem_prime_export(struct drm_device *drm, struct drm_gem_object *gem, int flags) tegra_gem_prime_export() argument
H A Dgem.h34 struct drm_gem_object gem; member in struct:tegra_bo
50 static inline struct tegra_bo *to_tegra_bo(struct drm_gem_object *gem) to_tegra_bo() argument
52 return container_of(gem, struct tegra_bo, gem); to_tegra_bo()
62 void tegra_bo_free_object(struct drm_gem_object *gem);
73 struct drm_gem_object *gem,
H A Dfb.c14 #include "gem.h"
72 drm_gem_object_unreference_unlocked(&bo->gem); tegra_fb_destroy()
86 return drm_gem_handle_create(file, &fb->planes[0]->gem, handle); tegra_fb_create_handle()
138 struct drm_gem_object *gem; tegra_fb_create() local
150 gem = drm_gem_object_lookup(drm, file, cmd->handles[i]); tegra_fb_create()
151 if (!gem) { tegra_fb_create()
161 if (gem->size < size) { tegra_fb_create()
166 planes[i] = to_tegra_bo(gem); tegra_fb_create()
179 drm_gem_object_unreference_unlocked(&planes[i]->gem); tegra_fb_create()
230 drm_gem_object_unreference_unlocked(&bo->gem); tegra_fbdev_probe()
239 drm_gem_object_unreference_unlocked(&bo->gem); tegra_fbdev_probe()
H A Ddrm.c17 #include "gem.h"
273 struct drm_gem_object *gem; host1x_bo_lookup() local
276 gem = drm_gem_object_lookup(drm, file, handle); host1x_bo_lookup()
277 if (!gem) host1x_bo_lookup()
281 drm_gem_object_unreference(gem); host1x_bo_lookup()
284 bo = to_tegra_bo(gem); host1x_bo_lookup()
465 struct drm_gem_object *gem; tegra_gem_mmap() local
468 gem = drm_gem_object_lookup(drm, file, args->handle); tegra_gem_mmap()
469 if (!gem) tegra_gem_mmap()
472 bo = to_tegra_bo(gem); tegra_gem_mmap()
474 args->offset = drm_vma_node_offset_addr(&bo->gem.vma_node); tegra_gem_mmap()
476 drm_gem_object_unreference(gem); tegra_gem_mmap()
643 struct drm_gem_object *gem; tegra_gem_set_tiling() local
677 gem = drm_gem_object_lookup(drm, file, args->handle); tegra_gem_set_tiling()
678 if (!gem) tegra_gem_set_tiling()
681 bo = to_tegra_bo(gem); tegra_gem_set_tiling()
686 drm_gem_object_unreference(gem); tegra_gem_set_tiling()
695 struct drm_gem_object *gem; tegra_gem_get_tiling() local
699 gem = drm_gem_object_lookup(drm, file, args->handle); tegra_gem_get_tiling()
700 if (!gem) tegra_gem_get_tiling()
703 bo = to_tegra_bo(gem); tegra_gem_get_tiling()
726 drm_gem_object_unreference(gem); tegra_gem_get_tiling()
735 struct drm_gem_object *gem; tegra_gem_set_flags() local
741 gem = drm_gem_object_lookup(drm, file, args->handle); tegra_gem_set_flags()
742 if (!gem) tegra_gem_set_flags()
745 bo = to_tegra_bo(gem); tegra_gem_set_flags()
751 drm_gem_object_unreference(gem); tegra_gem_set_flags()
760 struct drm_gem_object *gem; tegra_gem_get_flags() local
763 gem = drm_gem_object_lookup(drm, file, args->handle); tegra_gem_get_flags()
764 if (!gem) tegra_gem_get_flags()
767 bo = to_tegra_bo(gem); tegra_gem_get_flags()
773 drm_gem_object_unreference(gem); tegra_gem_get_flags()
H A Dgr2d.c12 #include "gem.h"
H A Ddrm.h23 #include "gem.h"
H A Dgr3d.c19 #include "gem.h"
H A Ddc.c19 #include "gem.h"
/linux-4.4.14/drivers/gpu/drm/nouveau/
H A Dnouveau_gem.h13 nouveau_gem_object(struct drm_gem_object *gem) nouveau_gem_object() argument
15 return gem ? container_of(gem, struct nouveau_bo, gem) : NULL; nouveau_gem_object()
H A Dnouveau_gem.c36 nouveau_gem_object_del(struct drm_gem_object *gem) nouveau_gem_object_del() argument
38 struct nouveau_bo *nvbo = nouveau_gem_object(gem); nouveau_gem_object_del()
48 if (gem->import_attach) nouveau_gem_object_del()
49 drm_prime_gem_destroy(gem, nvbo->bo.sg); nouveau_gem_object_del()
51 drm_gem_object_release(gem); nouveau_gem_object_del()
54 gem->filp = NULL; nouveau_gem_object_del()
62 nouveau_gem_object_open(struct drm_gem_object *gem, struct drm_file *file_priv) nouveau_gem_object_open() argument
65 struct nouveau_bo *nvbo = nouveau_gem_object(gem); nouveau_gem_object_open()
147 nouveau_gem_object_close(struct drm_gem_object *gem, struct drm_file *file_priv) nouveau_gem_object_close() argument
150 struct nouveau_bo *nvbo = nouveau_gem_object(gem); nouveau_gem_object_close()
212 /* Initialize the embedded gem-object. We return a single gem-reference nouveau_gem_new()
214 ret = drm_gem_object_init(dev, &nvbo->gem, nvbo->bo.mem.size); nouveau_gem_new()
220 nvbo->bo.persistent_swap_storage = nvbo->gem.filp; nouveau_gem_new()
225 nouveau_gem_info(struct drm_file *file_priv, struct drm_gem_object *gem, nouveau_gem_info() argument
229 struct nouveau_bo *nvbo = nouveau_gem_object(gem); nouveau_gem_info()
276 ret = drm_gem_handle_create(file_priv, &nvbo->gem, &req->info.handle); nouveau_gem_ioctl_new()
278 ret = nouveau_gem_info(file_priv, &nvbo->gem, &req->info); nouveau_gem_ioctl_new()
284 drm_gem_object_unreference_unlocked(&nvbo->gem); nouveau_gem_ioctl_new()
289 nouveau_gem_set_domain(struct drm_gem_object *gem, uint32_t read_domains, nouveau_gem_set_domain() argument
292 struct nouveau_bo *nvbo = nouveau_gem_object(gem); nouveau_gem_set_domain()
353 drm_gem_object_unreference_unlocked(&nvbo->gem); validate_fini_no_ticket()
388 struct drm_gem_object *gem; validate_init() local
391 gem = drm_gem_object_lookup(dev, file_priv, b->handle); validate_init()
392 if (!gem) { validate_init()
397 nvbo = nouveau_gem_object(gem); validate_init()
400 drm_gem_object_unreference_unlocked(gem); validate_init()
407 drm_gem_object_unreference_unlocked(gem); validate_init()
478 ret = nouveau_gem_set_domain(&nvbo->gem, b->read_domains, list_for_each_entry()
696 req->vram_available = drm->gem.vram_available; nouveau_gem_ioctl_pushbuf()
697 req->gart_available = drm->gem.gart_available; nouveau_gem_ioctl_pushbuf()
861 struct drm_gem_object *gem; nouveau_gem_ioctl_cpu_prep() local
867 gem = drm_gem_object_lookup(dev, file_priv, req->handle); nouveau_gem_ioctl_cpu_prep()
868 if (!gem) nouveau_gem_ioctl_cpu_prep()
870 nvbo = nouveau_gem_object(gem); nouveau_gem_ioctl_cpu_prep()
886 drm_gem_object_unreference_unlocked(gem); nouveau_gem_ioctl_cpu_prep()
896 struct drm_gem_object *gem; nouveau_gem_ioctl_cpu_fini() local
899 gem = drm_gem_object_lookup(dev, file_priv, req->handle); nouveau_gem_ioctl_cpu_fini()
900 if (!gem) nouveau_gem_ioctl_cpu_fini()
902 nvbo = nouveau_gem_object(gem); nouveau_gem_ioctl_cpu_fini()
905 drm_gem_object_unreference_unlocked(gem); nouveau_gem_ioctl_cpu_fini()
914 struct drm_gem_object *gem; nouveau_gem_ioctl_info() local
917 gem = drm_gem_object_lookup(dev, file_priv, req->handle); nouveau_gem_ioctl_info()
918 if (!gem) nouveau_gem_ioctl_info()
921 ret = nouveau_gem_info(file_priv, gem, req); nouveau_gem_ioctl_info()
922 drm_gem_object_unreference_unlocked(gem); nouveau_gem_ioctl_info()
H A Dnouveau_bo.h34 * gem reference to it! For debugging, use gem.filp != NULL to test
36 struct drm_gem_object gem; member in struct:nouveau_bo
H A Dnouveau_prime.c79 /* Initialize the embedded gem-object. We return a single gem-reference nouveau_gem_prime_import_sg_table()
81 ret = drm_gem_object_init(dev, &nvbo->gem, nvbo->bo.mem.size); nouveau_gem_prime_import_sg_table()
87 return &nvbo->gem; nouveau_gem_prime_import_sg_table()
H A Dnouveau_display.c225 drm_gem_object_unreference_unlocked(&fb->nvbo->gem); nouveau_user_framebuffer_destroy()
238 return drm_gem_handle_create(file_priv, &fb->nvbo->gem, handle); nouveau_user_framebuffer_create_handle()
278 struct drm_gem_object *gem; nouveau_user_framebuffer_create() local
281 gem = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]); nouveau_user_framebuffer_create()
282 if (!gem) nouveau_user_framebuffer_create()
289 ret = nouveau_framebuffer_init(dev, nouveau_fb, mode_cmd, nouveau_gem_object(gem)); nouveau_user_framebuffer_create()
298 drm_gem_object_unreference(gem); nouveau_user_framebuffer_create()
906 ret = drm_gem_handle_create(file_priv, &bo->gem, &args->handle); nouveau_display_dumb_create()
907 drm_gem_object_unreference_unlocked(&bo->gem); nouveau_display_dumb_create()
916 struct drm_gem_object *gem; nouveau_display_dumb_map_offset() local
918 gem = drm_gem_object_lookup(dev, file_priv, handle); nouveau_display_dumb_map_offset()
919 if (gem) { nouveau_display_dumb_map_offset()
920 struct nouveau_bo *bo = nouveau_gem_object(gem); nouveau_display_dumb_map_offset()
922 drm_gem_object_unreference_unlocked(gem); nouveau_display_dumb_map_offset()
H A Dnouveau_ttm.c398 drm->gem.vram_available = drm->device.info.ram_user; nouveau_ttm_init()
401 drm->gem.vram_available >> PAGE_SHIFT); nouveau_ttm_init()
412 drm->gem.gart_available = nvxx_mmu(&drm->device)->limit; nouveau_ttm_init()
414 drm->gem.gart_available = drm->agp.size; nouveau_ttm_init()
418 drm->gem.gart_available >> PAGE_SHIFT); nouveau_ttm_init()
424 NV_INFO(drm, "VRAM: %d MiB\n", (u32)(drm->gem.vram_available >> 20)); nouveau_ttm_init()
425 NV_INFO(drm, "GART: %d MiB\n", (u32)(drm->gem.gart_available >> 20)); nouveau_ttm_init()
H A Dnouveau_abi16.c136 drm_gem_object_unreference_unlocked(&chan->ntfy->gem); nouveau_abi16_chan_fini()
208 getparam->value = drm->gem.vram_available; nouveau_abi16_ioctl_getparam()
211 getparam->value = drm->gem.gart_available; nouveau_abi16_ioctl_getparam()
325 ret = drm_gem_handle_create(file_priv, &chan->ntfy->gem, nouveau_abi16_ioctl_channel_alloc()
H A Dnouveau_drm.h140 } gem; member in struct:nouveau_drm
H A Dnouveau_bo.c135 if (unlikely(nvbo->gem.filp)) nouveau_bo_del_ttm()
365 drm->gem.vram_available -= bo->mem.size; nouveau_bo_pin()
368 drm->gem.gart_available -= bo->mem.size; nouveau_bo_pin()
403 drm->gem.vram_available += bo->mem.size; nouveau_bo_unpin()
406 drm->gem.gart_available += bo->mem.size; nouveau_bo_unpin()
1345 return drm_vma_node_verify_access(&nvbo->gem.vma_node, filp); nouveau_bo_verify_access()
H A Dnv50_display.c1302 struct drm_gem_object *gem = NULL; nv50_crtc_cursor_set() local
1310 gem = drm_gem_object_lookup(dev, file_priv, handle); nv50_crtc_cursor_set()
1311 if (unlikely(!gem)) nv50_crtc_cursor_set()
1313 nvbo = nouveau_gem_object(gem); nv50_crtc_cursor_set()
1323 drm_gem_object_unreference_unlocked(gem); nv50_crtc_cursor_set()
H A Dnouveau_fbcon.c476 drm_gem_object_unreference_unlocked(&nouveau_fb->nvbo->gem); nouveau_fbcon_destroy()
/linux-4.4.14/drivers/gpu/drm/exynos/
H A Dexynos_drm_gem.h24 * @base: a gem object.
25 * - a new handle to this gem object would be created
60 /* destroy a buffer with gem object */
63 /* create a new buffer with gem object */
69 * request gem object creation and buffer allocation as the size
77 * get dma address from gem handle and this function could be used for
79 * with this function call, gem object reference count would be increased.
86 * put dma address from gem handle and this function could be used for
88 * with this function call, gem object reference count would be decreased.
98 /* get buffer information to memory region allocated by gem. */
102 /* get buffer size to gem handle. */
107 /* free gem object. */
H A Dexynos_drm_fb.h25 /* get gem object of a drm framebuffer */
H A Dexynos_drm_fb.c35 * @exynos_gem: array of exynos specific gem object containing a gem object.
61 DRM_ERROR("cannot use this gem memory type for fb.\n"); check_fb_gem_memory_type()
169 DRM_ERROR("failed to lookup gem object\n"); exynos_user_fb_create()
H A Dexynos_drm_gem.c141 DRM_DEBUG_KMS("gem handle = 0x%x\n", *handle); exynos_drm_gem_handle_create()
166 /* release file pointer to gem object. */ exynos_drm_gem_destroy()
181 DRM_ERROR("failed to lookup gem object.\n"); exynos_drm_gem_get_size()
208 DRM_ERROR("failed to initialize gem object\n"); exynos_drm_gem_init()
291 DRM_ERROR("failed to lookup gem object.\n"); exynos_drm_gem_get_dma_addr()
308 DRM_ERROR("failed to lookup gem object.\n"); exynos_drm_gem_put_dma_addr()
359 DRM_ERROR("failed to lookup gem object.\n"); exynos_drm_gem_get_ioctl()
461 DRM_ERROR("failed to lookup gem object.\n"); exynos_drm_gem_dumb_map_offset()
H A Dexynos_drm_plane.c134 DRM_DEBUG_KMS("gem object is null\n"); exynos_plane_atomic_check()
H A Dexynos_drm_ipp.h86 * @handles: Y, Cb, Cr each gem object handle.
H A Dexynos_drm_ipp.c66 * @buf_info: gem objects and dma address, size.
467 * It basically verifies provided gem object handles ipp_validate_mem_node()
530 /* put gem buffer */ for_each_ipp_planar()
H A Dexynos_drm_g2d.c840 * commands in run_cmdlist have been completed so unmap all gem g2d_free_runqueue_node()
1364 * unmap all gem objects not completed. g2d_close()
/linux-4.4.14/drivers/gpu/drm/qxl/
H A Dqxl_gem.c68 mutex_lock(&qdev->gem.mutex); qxl_gem_object_create()
69 list_add_tail(&qbo->list, &qdev->gem.objects); qxl_gem_object_create()
70 mutex_unlock(&qdev->gem.mutex); qxl_gem_object_create()
116 INIT_LIST_HEAD(&qdev->gem.objects); qxl_gem_init()
H A Dqxl_object.c39 mutex_lock(&qdev->gem.mutex); qxl_ttm_bo_destroy()
41 mutex_unlock(&qdev->gem.mutex); qxl_ttm_bo_destroy()
271 if (list_empty(&qdev->gem.objects)) qxl_bo_force_delete()
274 list_for_each_entry_safe(bo, n, &qdev->gem.objects, list) { qxl_bo_force_delete()
278 mutex_lock(&qdev->gem.mutex); qxl_bo_force_delete()
280 mutex_unlock(&qdev->gem.mutex); qxl_bo_force_delete()
H A Dqxl_ioctl.c30 * TODO: allocating a new gem(in qxl_bo) for each request.
53 DRM_ERROR("%s: failed to create gem ret=%d\n", qxl_alloc_ioctl()
417 DRM_ERROR("%s: failed to create gem ret=%d\n", qxl_alloc_surf_ioctl()
H A Dqxl_debugfs.c60 list_for_each_entry(bo, &qdev->gem.objects, list) { qxl_debugfs_buffers_info()
H A Dqxl_kms.c130 mutex_init(&qdev->gem.mutex); qxl_device_init()
134 INIT_LIST_HEAD(&qdev->gem.objects); qxl_device_init()
H A Dqxl_drv.h102 /* Protected by gem.mutex */
263 struct qxl_gem gem; member in struct:qxl_device
H A Dqxl_display.c1049 DRM_ERROR("%s: failed to create gem ret=%d\n", __func__, ret); qxl_create_monitors_object()
/linux-4.4.14/drivers/gpu/drm/bochs/
H A Dbochs.h103 struct drm_gem_object gem; member in struct:bochs_bo
113 static inline struct bochs_bo *gem_to_bochs_bo(struct drm_gem_object *gem) gem_to_bochs_bo() argument
115 return container_of(gem, struct bochs_bo, gem); gem_to_bochs_bo()
H A Dbochs_mm.c79 drm_gem_object_release(&bo->gem); bochs_bo_ttm_destroy()
131 return drm_vma_node_verify_access(&bochsbo->gem.vma_node, filp); bochs_bo_verify_access()
363 ret = drm_gem_object_init(dev, &bochsbo->gem, size); bochs_bo_create()
406 *obj = &bochsbo->gem; bochs_gem_create()
/linux-4.4.14/drivers/gpu/drm/gma500/
H A Dgem.c34 struct gtt_range *gtt = container_of(obj, struct gtt_range, gem); psb_gem_free_object()
109 r = psb_gtt_alloc_range(dev, size, "gem", 0, PAGE_SIZE); psb_gem_create()
115 if (drm_gem_object_init(dev, &r->gem, size) != 0) { psb_gem_create()
122 mapping_set_gfp_mask(r->gem.filp->f_mapping, GFP_KERNEL | __GFP_DMA32); psb_gem_create()
124 ret = drm_gem_handle_create(file, &r->gem, &handle); psb_gem_create()
127 &r->gem, size); psb_gem_create()
128 drm_gem_object_release(&r->gem); psb_gem_create()
133 drm_gem_object_unreference_unlocked(&r->gem); psb_gem_create()
188 r = container_of(obj, struct gtt_range, gem); /* Get the gtt range */ psb_gem_fault()
H A Dgtt.h47 struct drm_gem_object gem; /* GEM high level stuff */ member in struct:gtt_range
H A Dframebuffer.c324 drm_gem_private_object_init(dev, &backing->gem, aligned_size); psbfb_alloc()
472 drm_gem_object_unreference(&backing->gem); psbfb_create()
505 r = container_of(obj, struct gtt_range, gem); psb_user_framebuffer_create()
572 drm_gem_object_unreference(&psbfb->gtt->gem); psb_fbdev_destroy()
652 return drm_gem_handle_create(file_priv, &r->gem, handle); psb_user_framebuffer_create_handle()
670 drm_gem_object_unreference_unlocked(&r->gem); psb_user_framebuffer_destroy()
H A Dgtt.c209 pages = drm_gem_get_pages(&gt->gem); psb_gtt_attach_pages()
213 gt->npage = gt->gem.size / PAGE_SIZE; psb_gtt_attach_pages()
230 drm_gem_put_pages(&gt->gem, gt->pages, true, false); psb_gtt_detach_pages()
247 struct drm_device *dev = gt->gem.dev; psb_gtt_pin()
285 struct drm_device *dev = gt->gem.dev; psb_gtt_unpin()
359 gt->gem.dev = dev; psb_gtt_alloc_range()
H A Dgma_display.c363 struct gtt_range, gem); gma_crtc_cursor_set()
392 gt = container_of(obj, struct gtt_range, gem); gma_crtc_cursor_set()
442 gt = container_of(gma_crtc->cursor_obj, struct gtt_range, gem); gma_crtc_cursor_set()
H A Dpsb_drv.h743 /* gem.c */
/linux-4.4.14/drivers/net/ethernet/sun/
H A Dsungem.c86 #define GEM_MODULE_NAME "gem"
118 static u16 __sungem_phy_read(struct gem *gp, int phy_addr, int reg) __sungem_phy_read()
146 struct gem *gp = netdev_priv(dev); _sungem_phy_read()
150 static inline u16 sungem_phy_read(struct gem *gp, int reg) sungem_phy_read()
155 static void __sungem_phy_write(struct gem *gp, int phy_addr, int reg, u16 val) __sungem_phy_write()
179 struct gem *gp = netdev_priv(dev); _sungem_phy_write()
183 static inline void sungem_phy_write(struct gem *gp, int reg, u16 val) sungem_phy_write()
188 static inline void gem_enable_ints(struct gem *gp) gem_enable_ints()
194 static inline void gem_disable_ints(struct gem *gp) gem_disable_ints()
201 static void gem_get_cell(struct gem *gp) gem_get_cell()
215 static void gem_put_cell(struct gem *gp) gem_put_cell()
228 static inline void gem_netif_stop(struct gem *gp) gem_netif_stop()
235 static inline void gem_netif_start(struct gem *gp) gem_netif_start()
245 static void gem_schedule_reset(struct gem *gp) gem_schedule_reset()
251 static void gem_handle_mif_event(struct gem *gp, u32 reg_val, u32 changed_bits) gem_handle_mif_event()
257 static int gem_pcs_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_pcs_interrupt()
307 static int gem_txmac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_txmac_interrupt()
360 static int gem_rxmac_reset(struct gem *gp) gem_rxmac_reset()
460 static int gem_rxmac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_rxmac_interrupt()
494 static int gem_mac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_mac_interrupt()
515 static int gem_mif_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_mif_interrupt()
528 static int gem_pci_interrupt(struct net_device *dev, struct gem *gp, u32 gem_status) gem_pci_interrupt()
591 static int gem_abnormal_irq(struct net_device *dev, struct gem *gp, u32 gem_status) gem_abnormal_irq()
644 static __inline__ void gem_tx(struct net_device *dev, struct gem *gp, u32 gem_status) gem_tx()
714 static __inline__ void gem_post_rxds(struct gem *gp, int limit) gem_post_rxds()
758 static int gem_rx(struct gem *gp, int work_to_do) gem_rx()
884 struct gem *gp = container_of(napi, struct gem, napi); gem_poll()
935 struct gem *gp = netdev_priv(dev); gem_interrupt()
963 struct gem *gp = netdev_priv(dev); gem_poll_controller()
973 struct gem *gp = netdev_priv(dev); gem_tx_timeout()
1001 struct gem *gp = netdev_priv(dev); gem_start_xmit()
1116 static void gem_pcs_reset(struct gem *gp) gem_pcs_reset()
1136 static void gem_pcs_reinit_adv(struct gem *gp) gem_pcs_reinit_adv()
1181 static void gem_reset(struct gem *gp) gem_reset()
1209 static void gem_start_dma(struct gem *gp) gem_start_dma()
1233 static void gem_stop_dma(struct gem *gp) gem_stop_dma()
1254 static void gem_begin_auto_negotiation(struct gem *gp, struct ethtool_cmd *ep) gem_begin_auto_negotiation()
1339 static int gem_set_link_modes(struct gem *gp) gem_set_link_modes()
1450 static int gem_mdio_link_not_up(struct gem *gp) gem_mdio_link_not_up()
1496 struct gem *gp = (struct gem *) data; gem_link_timer()
1567 static void gem_clean_rings(struct gem *gp) gem_clean_rings()
1617 static void gem_init_rings(struct gem *gp) gem_init_rings()
1666 static void gem_init_phy(struct gem *gp) gem_init_phy()
1743 static void gem_init_dma(struct gem *gp) gem_init_dma()
1780 static u32 gem_setup_multicast(struct gem *gp) gem_setup_multicast()
1812 static void gem_init_mac(struct gem *gp) gem_init_mac()
1894 static void gem_init_pause_thresholds(struct gem *gp) gem_init_pause_thresholds()
1938 static int gem_check_invariants(struct gem *gp) gem_check_invariants()
2054 static void gem_reinit_chip(struct gem *gp) gem_reinit_chip()
2074 static void gem_stop_phy(struct gem *gp, int wol) gem_stop_phy()
2143 struct gem *gp = netdev_priv(dev); gem_do_start()
2196 struct gem *gp = netdev_priv(dev); gem_do_stop()
2248 struct gem *gp = container_of(work, struct gem, reset_task); gem_reset_task()
2315 struct gem *gp = netdev_priv(dev); gem_suspend()
2352 struct gem *gp = netdev_priv(dev); gem_resume()
2386 struct gem *gp = netdev_priv(dev); gem_get_stats()
2423 struct gem *gp = netdev_priv(dev); gem_set_mac_address()
2448 struct gem *gp = netdev_priv(dev); gem_set_multicast()
2489 struct gem *gp = netdev_priv(dev); gem_change_mtu()
2515 struct gem *gp = netdev_priv(dev); gem_get_drvinfo()
2524 struct gem *gp = netdev_priv(dev); gem_get_settings()
2583 struct gem *gp = netdev_priv(dev); gem_set_settings()
2614 struct gem *gp = netdev_priv(dev); gem_nway_reset()
2630 struct gem *gp = netdev_priv(dev); gem_get_msglevel()
2636 struct gem *gp = netdev_priv(dev); gem_set_msglevel()
2648 struct gem *gp = netdev_priv(dev); gem_get_wol()
2662 struct gem *gp = netdev_priv(dev); gem_set_wol()
2684 struct gem *gp = netdev_priv(dev); gem_ioctl()
2765 static int gem_get_device_address(struct gem *gp) gem_get_device_address()
2793 struct gem *gp = netdev_priv(dev); gem_remove_one()
2831 struct gem *gp; gem_init_one()
H A Dsungem.h975 struct gem { struct
H A Dcassini.c23 * the gem chip:
/linux-4.4.14/drivers/gpu/drm/radeon/
H A Dradeon_prime.c76 mutex_lock(&rdev->gem.mutex); radeon_gem_prime_import_sg_table()
77 list_add_tail(&bo->list, &rdev->gem.objects); radeon_gem_prime_import_sg_table()
78 mutex_unlock(&rdev->gem.mutex); radeon_gem_prime_import_sg_table()
H A Dradeon_gem.c86 mutex_lock(&rdev->gem.mutex); radeon_gem_object_create()
87 list_add_tail(&robj->list, &rdev->gem.objects); radeon_gem_object_create()
88 mutex_unlock(&rdev->gem.mutex); radeon_gem_object_create()
128 INIT_LIST_HEAD(&rdev->gem.objects); radeon_gem_init()
258 /* create a gem object to contain this object in */ radeon_gem_create_ioctl()
315 /* create a gem object to contain this object in */ radeon_gem_userptr_ioctl()
776 mutex_lock(&rdev->gem.mutex); radeon_debugfs_gem_info()
777 list_for_each_entry(rbo, &rdev->gem.objects, list) { radeon_debugfs_gem_info()
799 mutex_unlock(&rdev->gem.mutex); radeon_debugfs_gem_info()
H A Dradeon_object.c80 mutex_lock(&bo->rdev->gem.mutex); radeon_ttm_bo_destroy()
82 mutex_unlock(&bo->rdev->gem.mutex); radeon_ttm_bo_destroy()
431 if (list_empty(&rdev->gem.objects)) { radeon_bo_force_delete()
435 list_for_each_entry_safe(bo, n, &rdev->gem.objects, list) { radeon_bo_force_delete()
439 mutex_lock(&bo->rdev->gem.mutex); radeon_bo_force_delete()
441 mutex_unlock(&bo->rdev->gem.mutex); radeon_bo_force_delete()
H A Dradeon_kms.c186 mutex_lock(&rdev->gem.mutex); radeon_set_filp_rights()
197 mutex_unlock(&rdev->gem.mutex); radeon_set_filp_rights()
733 mutex_lock(&rdev->gem.mutex); radeon_driver_preclose_kms()
738 mutex_unlock(&rdev->gem.mutex); radeon_driver_preclose_kms()
H A Dradeon_cs.c106 DRM_ERROR("gem object lookup failed 0x%x\n", radeon_cs_parser_relocs()
H A Dradeon_device.c1311 mutex_init(&rdev->gem.mutex); radeon_device_init()
1448 DRM_ERROR("registering gem debugfs failed (%d).\n", r); radeon_device_init()
H A Dradeon_pm.c148 if (list_empty(&rdev->gem.objects)) radeon_unmap_vram_bos()
151 list_for_each_entry_safe(bo, n, &rdev->gem.objects, list) { radeon_unmap_vram_bos()
H A Dradeon.h484 /* Protected by gem.mutex */
2387 struct radeon_gem gem; member in struct:radeon_device
/linux-4.4.14/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_prime.c76 mutex_lock(&adev->gem.mutex); amdgpu_gem_prime_import_sg_table()
77 list_add_tail(&bo->list, &adev->gem.objects); amdgpu_gem_prime_import_sg_table()
78 mutex_unlock(&adev->gem.mutex); amdgpu_gem_prime_import_sg_table()
H A Damdgpu_gem.c88 mutex_lock(&adev->gem.mutex); amdgpu_gem_object_create()
89 list_add_tail(&robj->list, &adev->gem.objects); amdgpu_gem_object_create()
90 mutex_unlock(&adev->gem.mutex); amdgpu_gem_object_create()
97 INIT_LIST_HEAD(&adev->gem.objects); amdgpu_gem_init()
180 /* create a gem object to contain this object in */ amdgpu_gem_create_ioctl()
247 /* create a gem object to contain this object in */ amdgpu_gem_userptr_ioctl()
702 mutex_lock(&adev->gem.mutex); amdgpu_debugfs_gem_info()
703 list_for_each_entry(rbo, &adev->gem.objects, list) { amdgpu_debugfs_gem_info()
725 mutex_unlock(&adev->gem.mutex); amdgpu_debugfs_gem_info()
H A Damdgpu_object.c100 mutex_lock(&bo->adev->gem.mutex); amdgpu_ttm_bo_destroy()
102 mutex_unlock(&bo->adev->gem.mutex); amdgpu_ttm_bo_destroy()
477 if (list_empty(&adev->gem.objects)) { amdgpu_bo_force_delete()
481 list_for_each_entry_safe(bo, n, &adev->gem.objects, list) { amdgpu_bo_force_delete()
485 mutex_lock(&bo->adev->gem.mutex); amdgpu_bo_force_delete()
487 mutex_unlock(&bo->adev->gem.mutex); amdgpu_bo_force_delete()
H A Damdgpu.h520 /* Protected by gem.mutex */
2035 struct amdgpu_gem gem; member in struct:amdgpu_device
H A Damdgpu_device.c1418 mutex_init(&adev->gem.mutex); amdgpu_device_init()
1542 DRM_ERROR("registering gem debugfs failed (%d).\n", r); amdgpu_device_init()
/linux-4.4.14/include/drm/
H A Ddrm_gem.h46 * handle_count - gem file_priv handle count of this object
98 * Pointer to the dma-buf associated with this gem object (either
100 * loop when the last gem handle for this object is released.
109 * Any foreign dma_buf imported as a gem object has this set to the
111 * of a gem object.
116 * Note that the drm gem/prime core does not depend upon drivers setting
/linux-4.4.14/include/uapi/drm/
H A Dexynos_drm.h26 * @handle: returned a handle to created gem object.
27 * - this handle will be set by gem module of kernel side.
36 * A structure to gem information.
38 * @handle: a handle to gem object created.
41 * @size: size to memory region allocated by gem and this size would
287 /* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */
/linux-4.4.14/drivers/gpu/drm/shmobile/
H A Dshmob_drm_plane.c49 struct drm_gem_cma_object *gem; shmob_drm_plane_compute_base() local
53 gem = drm_fb_cma_get_gem_obj(fb, 0); shmob_drm_plane_compute_base()
54 splane->dma[0] = gem->paddr + fb->offsets[0] shmob_drm_plane_compute_base()
59 gem = drm_fb_cma_get_gem_obj(fb, 1); shmob_drm_plane_compute_base()
60 splane->dma[1] = gem->paddr + fb->offsets[1] shmob_drm_plane_compute_base()
H A Dshmob_drm_crtc.c309 struct drm_gem_cma_object *gem; shmob_drm_crtc_compute_base() local
313 gem = drm_fb_cma_get_gem_obj(fb, 0); shmob_drm_crtc_compute_base()
314 scrtc->dma[0] = gem->paddr + fb->offsets[0] shmob_drm_crtc_compute_base()
319 gem = drm_fb_cma_get_gem_obj(fb, 1); shmob_drm_crtc_compute_base()
320 scrtc->dma[1] = gem->paddr + fb->offsets[1] shmob_drm_crtc_compute_base()
/linux-4.4.14/drivers/gpu/drm/fsl-dcu/
H A Dfsl_dcu_drm_plane.c84 struct drm_gem_cma_object *gem; fsl_dcu_drm_plane_atomic_update() local
95 gem = drm_fb_cma_get_gem_obj(fb, 0); fsl_dcu_drm_plane_atomic_update()
137 DCU_CTRLDESCLN(index, 3), gem->paddr); fsl_dcu_drm_plane_atomic_update()
/linux-4.4.14/drivers/gpu/drm/rockchip/
H A Drockchip_drm_gem.h39 /* mmap a gem object to userspace. */
H A Drockchip_drm_gem.c155 * size and create a gem handle on it
203 DRM_ERROR("failed to lookup gem object.\n"); rockchip_gem_dumb_map_offset()
H A Drockchip_drm_vop.c864 DRM_ERROR("fail to get rockchip gem object from framebuffer\n"); vop_update_plane_event()
/linux-4.4.14/drivers/gpu/drm/rcar-du/
H A Drcar_du_plane.c54 struct drm_gem_cma_object *gem; rcar_du_plane_setup_fb() local
90 gem = drm_fb_cma_get_gem_obj(fb, 0); rcar_du_plane_setup_fb()
91 rcar_du_plane_write(rgrp, index, PnDSA0R, gem->paddr + fb->offsets[0]); rcar_du_plane_setup_fb()
102 gem = drm_fb_cma_get_gem_obj(fb, 1); rcar_du_plane_setup_fb()
104 gem->paddr + fb->offsets[1]); rcar_du_plane_setup_fb()
/linux-4.4.14/drivers/gpu/drm/omapdrm/
H A Domap_gem_dmabuf.c192 * Importing dmabuf exported from out own gem increases omap_gem_prime_import()
193 * refcount on gem itself instead of f_count of dmabuf. omap_gem_prime_import()
H A Domap_debugfs.c79 {"gem", gem_show, 0},
/linux-4.4.14/drivers/gpu/drm/udl/
H A Dudl_drv.c45 /* gem hooks */
/linux-4.4.14/drivers/gpu/drm/ast/
H A Dast_ttm.c101 drm_gem_object_release(&bo->gem); ast_bo_ttm_destroy()
153 return drm_vma_node_verify_access(&astbo->gem.vma_node, filp); ast_bo_verify_access()
326 ret = drm_gem_object_init(dev, &astbo->gem, size); ast_bo_create()
H A Dast_drv.h324 struct drm_gem_object gem; member in struct:ast_bo
328 #define gem_to_ast_bo(gobj) container_of((gobj), struct ast_bo, gem)
H A Dast_main.c515 *obj = &astbo->gem; ast_gem_create()
/linux-4.4.14/drivers/gpu/drm/cirrus/
H A Dcirrus_ttm.c101 drm_gem_object_release(&bo->gem); cirrus_bo_ttm_destroy()
153 return drm_vma_node_verify_access(&cirrusbo->gem.vma_node, filp); cirrus_bo_verify_access()
330 ret = drm_gem_object_init(dev, &cirrusbo->gem, size); cirrus_bo_create()
H A Dcirrus_drv.h167 struct drm_gem_object gem; member in struct:cirrus_bo
171 #define gem_to_cirrus_bo(gobj) container_of((gobj), struct cirrus_bo, gem)
H A Dcirrus_main.c235 *obj = &cirrusbo->gem; cirrus_gem_create()
/linux-4.4.14/drivers/gpu/drm/mgag200/
H A Dmgag200_ttm.c101 drm_gem_object_release(&bo->gem); mgag200_bo_ttm_destroy()
153 return drm_vma_node_verify_access(&mgabo->gem.vma_node, filp); mgag200_bo_verify_access()
326 ret = drm_gem_object_init(dev, &mgabo->gem, size); mgag200_bo_create()
H A Dmgag200_drv.h227 struct drm_gem_object gem; member in struct:mgag200_bo
231 #define gem_to_mga_bo(gobj) container_of((gobj), struct mgag200_bo, gem)
H A Dmgag200_main.c298 *obj = &astbo->gem; mgag200_gem_create()
/linux-4.4.14/drivers/gpu/drm/i915/
H A Di915_gem_dmabuf.c286 * Importing dmabuf exported from out own gem increases i915_gem_prime_import()
287 * refcount on gem itself instead of f_count of dmabuf. i915_gem_prime_import()
H A Di915_guc_submission.c40 * To simplify the implementation, we allocate one gem object that contains all
641 * gem_allocate_guc_obj() - Allocate gem object for GuC usage
645 * This is a wrapper to create a gem obj. In order to use it inside GuC, the
679 * gem_release_guc_obj() - Release gem object allocated for GuC usage
680 * @obj: gem obj to be released
H A Di915_debugfs.c1981 seq_printf(m, "Context on %s with no gem object\n", i915_dump_lrc_obj()
H A Di915_drv.h2015 * Frontbuffer tracking bits. Set in obj->frontbuffer_bits while a gem bo is
H A Di915_irq.c2458 * After all the gem state is reset, increment the reset i915_reset_and_wakeup()
/linux-4.4.14/drivers/gpu/drm/
H A Ddrm_prime.c58 * Drivers should detect this situation and return back the gem object
454 * protection of dev->object_name_lock to ensure that a racing gem close drm_gem_prime_handle_to_fd()
468 * and that is invariant as long as a userspace gem handle exists. drm_gem_prime_handle_to_fd()
511 * Importing dmabuf exported from out own gem increases drm_gem_prime_import()
512 * refcount on gem itself instead of f_count of dmabuf. drm_gem_prime_import()
H A Ddrm_gem.c292 * drm_gem_dumb_destroy - dumb fb callback helper for gem based drivers
298 * gem to manage their backing storage.
365 * drm_gem_handle_create - create a gem handle for an object
446 * This reads the page-array of the shmem-backing storage of the given gem
H A Ddrm_gem_cma_helper.c2 * drm gem CMA (contiguous memory allocator) helper functions
/linux-4.4.14/drivers/gpu/drm/armada/
H A Darmada_gem.c280 DRM_ERROR("failed to lookup gem object\n"); armada_gem_dumb_map_offset()
310 /* Private driver gem ioctls */ armada_gem_create_ioctl()
563 * refcount on the gem object itself. armada_gem_prime_import()
/linux-4.4.14/drivers/gpu/drm/atmel-hlcdc/
H A Datmel_hlcdc_layer.c460 struct drm_gem_cma_object *gem; atmel_hlcdc_layer_update_set_fb() local
463 gem = drm_fb_cma_get_gem_obj(fb, i); atmel_hlcdc_layer_update_set_fb()
464 dscr->addr = gem->paddr + offsets[i]; atmel_hlcdc_layer_update_set_fb()
/linux-4.4.14/drivers/net/ethernet/cadence/
H A Dmacb.c569 * network engine about the macb/gem being halted. macb_tx_error_task()
579 * macb/gem must be halted to write TBQP register macb_tx_error_task()
1113 bp->hw_stats.gem.rx_overruns++; macb_interrupt()
1935 u32 *p = &bp->hw_stats.gem.tx_octets_31_0; gem_update_stats()
1955 struct gem_stats *hwstat = &bp->hw_stats.gem; gem_get_stats()
2251 /* is it macb or gem ? macb_probe_queues()
2397 /* Checksum offload is only available on gem with packet buffer */ macb_init()
2799 { .compatible = "cdns,pc302-gem", .data = &pc302gem_config },
2800 { .compatible = "cdns,gem", .data = &pc302gem_config },
2801 { .compatible = "atmel,sama5d2-gem", .data = &sama5d2_config },
2802 { .compatible = "atmel,sama5d3-gem", .data = &sama5d3_config },
2803 { .compatible = "atmel,sama5d4-gem", .data = &sama5d4_config },
2806 { .compatible = "cdns,zynqmp-gem", .data = &zynqmp_config},
2807 { .compatible = "cdns,zynq-gem", .data = &zynq_config },
H A Dmacb.h679 /* list of gem statistic registers. The names MUST match the
814 struct gem_stats gem; member in union:macb::__anon6647
/linux-4.4.14/drivers/gpu/drm/nouveau/dispnv04/
H A Dcrtc.c994 struct drm_gem_object *gem; nv04_crtc_cursor_set() local
1005 gem = drm_gem_object_lookup(dev, file_priv, buffer_handle); nv04_crtc_cursor_set()
1006 if (!gem) nv04_crtc_cursor_set()
1008 cursor = nouveau_gem_object(gem); nv04_crtc_cursor_set()
1024 drm_gem_object_unreference_unlocked(gem); nv04_crtc_cursor_set()
/linux-4.4.14/drivers/gpu/drm/tilcdc/
H A Dtilcdc_crtc.c92 struct drm_gem_cma_object *gem; update_scanout() local
96 gem = drm_fb_cma_get_gem_obj(fb, 0); update_scanout()
98 tilcdc_crtc->start = gem->paddr + fb->offsets[0] + update_scanout()
/linux-4.4.14/drivers/gpu/drm/virtio/
H A Dvirtgpu_ioctl.c275 /* use a gem reference since unref list undoes them */ virtio_gpu_resource_create_ioctl()
H A Dvirtgpu_vq.c416 /* just create gem objects for userspace and long lived objects,
/linux-4.4.14/drivers/char/agp/
H A Dintel-gtt.c11 * With gem this does not make much sense anymore, just needlessly complicates
55 * For chipsets that need to support old ums (non-gem) code, this
/linux-4.4.14/arch/arm/crypto/
H A Dsha512-armv4.pl636 $code =~ s/\`([^\`]*)\`/eval $1/gem;
H A Dbsaes-armv7.pl2459 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
/linux-4.4.14/drivers/gpu/drm/msm/dsi/
H A Ddsi_host.c845 pr_err("%s: failed to allocate gem, %d\n", __func__, ret); dsi_tx_buf_alloc()
1510 pr_err("%s: alloc tx gem obj failed, %d\n", __func__, ret); msm_dsi_host_modeset_init()
/linux-4.4.14/drivers/gpu/drm/msm/
H A Dmsm_drv.c634 {"gem", show_locked, 0, msm_gem_show},
/linux-4.4.14/drivers/ide/
H A Dpmac.c130 * internal PCI bus and it's clock is controlled like gem or fw. It
/linux-4.4.14/drivers/ata/
H A Dpata_macio.c103 * controlled like gem or fw. It appears to be an evolution of keylargo
/linux-4.4.14/net/key/
H A Daf_key.c9 * Authors: Maxim Giryaev <gem@asplinux.ru>
/linux-4.4.14/drivers/scsi/
H A Dqla1280.c1615 * Yet another QLogic gem ;-( qla1280_chip_diag()
/linux-4.4.14/drivers/net/ethernet/broadcom/
H A Dtg3.c5371 /* XXX another gem from the Broadcom driver :( */ tg3_fiber_aneg_smachine()

Completed in 3312 milliseconds