Lines 182-187
struct local_i915_gem_caching {
Link Here
|
182 |
#define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching) |
182 |
#define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching) |
183 |
#define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching) |
183 |
#define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching) |
184 |
|
184 |
|
|
|
185 |
struct local_i915_gem_mmap { |
186 |
uint32_t handle; |
187 |
uint32_t pad; |
188 |
uint64_t offset; |
189 |
uint64_t size; |
190 |
uint64_t addr_ptr; |
191 |
}; |
192 |
#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap) |
193 |
|
185 |
struct local_i915_gem_mmap2 { |
194 |
struct local_i915_gem_mmap2 { |
186 |
uint32_t handle; |
195 |
uint32_t handle; |
187 |
uint32_t pad; |
196 |
uint32_t pad; |
Lines 514-528
retry_wc:
Link Here
|
514 |
|
523 |
|
515 |
static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo) |
524 |
static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo) |
516 |
{ |
525 |
{ |
517 |
struct drm_i915_gem_mmap mmap_arg; |
526 |
struct local_i915_gem_mmap arg; |
518 |
int err; |
527 |
int err; |
519 |
|
528 |
|
520 |
retry: |
529 |
retry: |
521 |
VG_CLEAR(mmap_arg); |
530 |
VG_CLEAR(arg); |
522 |
mmap_arg.handle = bo->handle; |
531 |
arg.handle = bo->handle; |
523 |
mmap_arg.offset = 0; |
532 |
arg.offset = 0; |
524 |
mmap_arg.size = bytes(bo); |
533 |
arg.size = bytes(bo); |
525 |
if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) { |
534 |
if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) { |
526 |
assert(err != EINVAL); |
535 |
assert(err != EINVAL); |
527 |
|
536 |
|
528 |
if (__kgem_throttle_retire(kgem, 0)) |
537 |
if (__kgem_throttle_retire(kgem, 0)) |
Lines 536-545
retry:
Link Here
|
536 |
return NULL; |
545 |
return NULL; |
537 |
} |
546 |
} |
538 |
|
547 |
|
539 |
VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo))); |
548 |
VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo))); |
540 |
|
549 |
|
541 |
DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle)); |
550 |
DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle)); |
542 |
return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr; |
551 |
return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr; |
543 |
} |
552 |
} |
544 |
|
553 |
|
545 |
static int gem_write(int fd, uint32_t handle, |
554 |
static int gem_write(int fd, uint32_t handle, |