|
@@ -39,9 +39,8 @@ int radeon_gem_object_init(struct drm_gem_object *obj)
|
|
|
|
|
|
void radeon_gem_object_free(struct drm_gem_object *gobj)
|
|
void radeon_gem_object_free(struct drm_gem_object *gobj)
|
|
{
|
|
{
|
|
- struct radeon_bo *robj = gobj->driver_private;
|
|
|
|
|
|
+ struct radeon_bo *robj = gem_to_radeon_bo(gobj);
|
|
|
|
|
|
- gobj->driver_private = NULL;
|
|
|
|
if (robj) {
|
|
if (robj) {
|
|
radeon_bo_unref(&robj);
|
|
radeon_bo_unref(&robj);
|
|
}
|
|
}
|
|
@@ -79,7 +78,7 @@ int radeon_gem_object_create(struct radeon_device *rdev, int size,
|
|
int radeon_gem_object_pin(struct drm_gem_object *obj, uint32_t pin_domain,
|
|
int radeon_gem_object_pin(struct drm_gem_object *obj, uint32_t pin_domain,
|
|
uint64_t *gpu_addr)
|
|
uint64_t *gpu_addr)
|
|
{
|
|
{
|
|
- struct radeon_bo *robj = obj->driver_private;
|
|
|
|
|
|
+ struct radeon_bo *robj = gem_to_radeon_bo(obj);
|
|
int r;
|
|
int r;
|
|
|
|
|
|
r = radeon_bo_reserve(robj, false);
|
|
r = radeon_bo_reserve(robj, false);
|
|
@@ -92,7 +91,7 @@ int radeon_gem_object_pin(struct drm_gem_object *obj, uint32_t pin_domain,
|
|
|
|
|
|
void radeon_gem_object_unpin(struct drm_gem_object *obj)
|
|
void radeon_gem_object_unpin(struct drm_gem_object *obj)
|
|
{
|
|
{
|
|
- struct radeon_bo *robj = obj->driver_private;
|
|
|
|
|
|
+ struct radeon_bo *robj = gem_to_radeon_bo(obj);
|
|
int r;
|
|
int r;
|
|
|
|
|
|
r = radeon_bo_reserve(robj, false);
|
|
r = radeon_bo_reserve(robj, false);
|
|
@@ -110,7 +109,7 @@ int radeon_gem_set_domain(struct drm_gem_object *gobj,
|
|
int r;
|
|
int r;
|
|
|
|
|
|
/* FIXME: reeimplement */
|
|
/* FIXME: reeimplement */
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
/* work out where to validate the buffer to */
|
|
/* work out where to validate the buffer to */
|
|
domain = wdomain;
|
|
domain = wdomain;
|
|
if (!domain) {
|
|
if (!domain) {
|
|
@@ -224,7 +223,7 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,
|
|
if (gobj == NULL) {
|
|
if (gobj == NULL) {
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
}
|
|
}
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
|
|
|
|
r = radeon_gem_set_domain(gobj, args->read_domains, args->write_domain);
|
|
r = radeon_gem_set_domain(gobj, args->read_domains, args->write_domain);
|
|
|
|
|
|
@@ -243,7 +242,7 @@ int radeon_mode_dumb_mmap(struct drm_file *filp,
|
|
if (gobj == NULL) {
|
|
if (gobj == NULL) {
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
}
|
|
}
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
*offset_p = radeon_bo_mmap_offset(robj);
|
|
*offset_p = radeon_bo_mmap_offset(robj);
|
|
drm_gem_object_unreference_unlocked(gobj);
|
|
drm_gem_object_unreference_unlocked(gobj);
|
|
return 0;
|
|
return 0;
|
|
@@ -270,7 +269,7 @@ int radeon_gem_busy_ioctl(struct drm_device *dev, void *data,
|
|
if (gobj == NULL) {
|
|
if (gobj == NULL) {
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
}
|
|
}
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
r = radeon_bo_wait(robj, &cur_placement, true);
|
|
r = radeon_bo_wait(robj, &cur_placement, true);
|
|
switch (cur_placement) {
|
|
switch (cur_placement) {
|
|
case TTM_PL_VRAM:
|
|
case TTM_PL_VRAM:
|
|
@@ -300,7 +299,7 @@ int radeon_gem_wait_idle_ioctl(struct drm_device *dev, void *data,
|
|
if (gobj == NULL) {
|
|
if (gobj == NULL) {
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
}
|
|
}
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
r = radeon_bo_wait(robj, NULL, false);
|
|
r = radeon_bo_wait(robj, NULL, false);
|
|
/* callback hw specific functions if any */
|
|
/* callback hw specific functions if any */
|
|
if (robj->rdev->asic->ioctl_wait_idle)
|
|
if (robj->rdev->asic->ioctl_wait_idle)
|
|
@@ -321,7 +320,7 @@ int radeon_gem_set_tiling_ioctl(struct drm_device *dev, void *data,
|
|
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
|
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
|
if (gobj == NULL)
|
|
if (gobj == NULL)
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
- robj = gobj->driver_private;
|
|
|
|
|
|
+ robj = gem_to_radeon_bo(gobj);
|
|
r = radeon_bo_set_tiling_flags(robj, args->tiling_flags, args->pitch);
|
|
r = radeon_bo_set_tiling_flags(robj, args->tiling_flags, args->pitch);
|
|
drm_gem_object_unreference_unlocked(gobj);
|
|
drm_gem_object_unreference_unlocked(gobj);
|
|
return r;
|
|
return r;
|
|
@@ -339,7 +338,7 @@ int radeon_gem_get_tiling_ioctl(struct drm_device *dev, void *data,
|
|
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
|
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
|
if (gobj == NULL)
|
|
if (gobj == NULL)
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
- rbo = gobj->driver_private;
|
|
|
|
|
|
+ rbo = gem_to_radeon_bo(gobj);
|
|
r = radeon_bo_reserve(rbo, false);
|
|
r = radeon_bo_reserve(rbo, false);
|
|
if (unlikely(r != 0))
|
|
if (unlikely(r != 0))
|
|
goto out;
|
|
goto out;
|