65,7 → 65,7 |
|
retry: |
r = radeon_bo_create(rdev, size, alignment, kernel, initial_domain, |
flags, NULL, &robj); |
flags, NULL, NULL, &robj); |
if (r) { |
if (r != -ERESTARTSYS) { |
if (initial_domain == RADEON_GEM_DOMAIN_VRAM) { |
91,7 → 91,7 |
{ |
struct radeon_bo *robj; |
uint32_t domain; |
int r; |
long r; |
|
/* FIXME: reeimplement */ |
robj = gem_to_radeon_bo(gobj); |
229,9 → 229,10 |
return r; |
} |
|
int radeon_mode_dumb_mmap(struct drm_file *filp, |
static int radeon_mode_mmap(struct drm_file *filp, |
struct drm_device *dev, |
uint32_t handle, uint64_t *offset_p) |
uint32_t handle, bool dumb, |
uint64_t *offset_p) |
{ |
struct drm_gem_object *gobj; |
struct radeon_bo *robj; |
240,6 → 241,14 |
if (gobj == NULL) { |
return -ENOENT; |
} |
|
/* |
* We don't allow dumb mmaps on objects created using another |
* interface. |
*/ |
WARN_ONCE(dumb && !(gobj->dumb || gobj->import_attach), |
"Illegal dumb map of GPU buffer.\n"); |
|
robj = gem_to_radeon_bo(gobj); |
*offset_p = radeon_bo_mmap_offset(robj); |
drm_gem_object_unreference_unlocked(gobj); |
251,7 → 260,8 |
{ |
struct drm_radeon_gem_mmap *args = data; |
|
return radeon_mode_dumb_mmap(filp, dev, args->handle, &args->addr_ptr); |
return radeon_mode_mmap(filp, dev, args->handle, false, |
&args->addr_ptr); |
} |
|
int radeon_gem_busy_ioctl(struct drm_device *dev, void *data, |
283,8 → 293,9 |
struct drm_radeon_gem_wait_idle *args = data; |
struct drm_gem_object *gobj; |
struct radeon_bo *robj; |
int r; |
int r = 0; |
uint32_t cur_placement = 0; |
long ret; |
|
gobj = drm_gem_object_lookup(dev, filp, args->handle); |
if (gobj == NULL) { |