drm/i915: Use drm_i915_gem_object as the preferred type
A glorified s/obj_priv/obj/ with a net reduction of over a 100 lines and many characters! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Esse commit está contido em:
@@ -376,24 +376,23 @@ static int intel_overlay_continue(struct intel_overlay *overlay,
|
||||
|
||||
static void intel_overlay_release_old_vid_tail(struct intel_overlay *overlay)
|
||||
{
|
||||
struct drm_gem_object *obj = &overlay->old_vid_bo->base;
|
||||
struct drm_i915_gem_object *obj = overlay->old_vid_bo;
|
||||
|
||||
i915_gem_object_unpin(obj);
|
||||
drm_gem_object_unreference(obj);
|
||||
drm_gem_object_unreference(&obj->base);
|
||||
|
||||
overlay->old_vid_bo = NULL;
|
||||
}
|
||||
|
||||
static void intel_overlay_off_tail(struct intel_overlay *overlay)
|
||||
{
|
||||
struct drm_gem_object *obj;
|
||||
struct drm_i915_gem_object *obj = overlay->vid_bo;
|
||||
|
||||
/* never have the overlay hw on without showing a frame */
|
||||
BUG_ON(!overlay->vid_bo);
|
||||
obj = &overlay->vid_bo->base;
|
||||
|
||||
i915_gem_object_unpin(obj);
|
||||
drm_gem_object_unreference(obj);
|
||||
drm_gem_object_unreference(&obj->base);
|
||||
overlay->vid_bo = NULL;
|
||||
|
||||
overlay->crtc->overlay = NULL;
|
||||
@@ -764,13 +763,12 @@ static u32 overlay_cmd_reg(struct put_image_params *params)
|
||||
}
|
||||
|
||||
static int intel_overlay_do_put_image(struct intel_overlay *overlay,
|
||||
struct drm_gem_object *new_bo,
|
||||
struct drm_i915_gem_object *new_bo,
|
||||
struct put_image_params *params)
|
||||
{
|
||||
int ret, tmp_width;
|
||||
struct overlay_registers *regs;
|
||||
bool scale_changed = false;
|
||||
struct drm_i915_gem_object *bo_priv = to_intel_bo(new_bo);
|
||||
struct drm_device *dev = overlay->dev;
|
||||
|
||||
BUG_ON(!mutex_is_locked(&dev->struct_mutex));
|
||||
@@ -825,7 +823,7 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
|
||||
regs->SWIDTHSW = calc_swidthsw(overlay->dev,
|
||||
params->offset_Y, tmp_width);
|
||||
regs->SHEIGHT = params->src_h;
|
||||
regs->OBUF_0Y = bo_priv->gtt_offset + params-> offset_Y;
|
||||
regs->OBUF_0Y = new_bo->gtt_offset + params-> offset_Y;
|
||||
regs->OSTRIDE = params->stride_Y;
|
||||
|
||||
if (params->format & I915_OVERLAY_YUV_PLANAR) {
|
||||
@@ -839,8 +837,8 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
|
||||
params->src_w/uv_hscale);
|
||||
regs->SWIDTHSW |= max_t(u32, tmp_U, tmp_V) << 16;
|
||||
regs->SHEIGHT |= (params->src_h/uv_vscale) << 16;
|
||||
regs->OBUF_0U = bo_priv->gtt_offset + params->offset_U;
|
||||
regs->OBUF_0V = bo_priv->gtt_offset + params->offset_V;
|
||||
regs->OBUF_0U = new_bo->gtt_offset + params->offset_U;
|
||||
regs->OBUF_0V = new_bo->gtt_offset + params->offset_V;
|
||||
regs->OSTRIDE |= params->stride_UV << 16;
|
||||
}
|
||||
|
||||
@@ -857,7 +855,7 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
|
||||
goto out_unpin;
|
||||
|
||||
overlay->old_vid_bo = overlay->vid_bo;
|
||||
overlay->vid_bo = to_intel_bo(new_bo);
|
||||
overlay->vid_bo = new_bo;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -970,7 +968,7 @@ static int check_overlay_scaling(struct put_image_params *rec)
|
||||
|
||||
static int check_overlay_src(struct drm_device *dev,
|
||||
struct drm_intel_overlay_put_image *rec,
|
||||
struct drm_gem_object *new_bo)
|
||||
struct drm_i915_gem_object *new_bo)
|
||||
{
|
||||
int uv_hscale = uv_hsubsampling(rec->flags);
|
||||
int uv_vscale = uv_vsubsampling(rec->flags);
|
||||
@@ -1055,7 +1053,7 @@ static int check_overlay_src(struct drm_device *dev,
|
||||
return -EINVAL;
|
||||
|
||||
tmp = rec->stride_Y*rec->src_height;
|
||||
if (rec->offset_Y + tmp > new_bo->size)
|
||||
if (rec->offset_Y + tmp > new_bo->base.size)
|
||||
return -EINVAL;
|
||||
break;
|
||||
|
||||
@@ -1066,12 +1064,12 @@ static int check_overlay_src(struct drm_device *dev,
|
||||
return -EINVAL;
|
||||
|
||||
tmp = rec->stride_Y * rec->src_height;
|
||||
if (rec->offset_Y + tmp > new_bo->size)
|
||||
if (rec->offset_Y + tmp > new_bo->base.size)
|
||||
return -EINVAL;
|
||||
|
||||
tmp = rec->stride_UV * (rec->src_height / uv_vscale);
|
||||
if (rec->offset_U + tmp > new_bo->size ||
|
||||
rec->offset_V + tmp > new_bo->size)
|
||||
if (rec->offset_U + tmp > new_bo->base.size ||
|
||||
rec->offset_V + tmp > new_bo->base.size)
|
||||
return -EINVAL;
|
||||
break;
|
||||
}
|
||||
@@ -1114,7 +1112,7 @@ int intel_overlay_put_image(struct drm_device *dev, void *data,
|
||||
struct intel_overlay *overlay;
|
||||
struct drm_mode_object *drmmode_obj;
|
||||
struct intel_crtc *crtc;
|
||||
struct drm_gem_object *new_bo;
|
||||
struct drm_i915_gem_object *new_bo;
|
||||
struct put_image_params *params;
|
||||
int ret;
|
||||
|
||||
@@ -1153,8 +1151,8 @@ int intel_overlay_put_image(struct drm_device *dev, void *data,
|
||||
}
|
||||
crtc = to_intel_crtc(obj_to_crtc(drmmode_obj));
|
||||
|
||||
new_bo = drm_gem_object_lookup(dev, file_priv,
|
||||
put_image_rec->bo_handle);
|
||||
new_bo = to_intel_bo(drm_gem_object_lookup(dev, file_priv,
|
||||
put_image_rec->bo_handle));
|
||||
if (!new_bo) {
|
||||
ret = -ENOENT;
|
||||
goto out_free;
|
||||
@@ -1245,7 +1243,7 @@ int intel_overlay_put_image(struct drm_device *dev, void *data,
|
||||
out_unlock:
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
mutex_unlock(&dev->mode_config.mutex);
|
||||
drm_gem_object_unreference_unlocked(new_bo);
|
||||
drm_gem_object_unreference_unlocked(&new_bo->base);
|
||||
out_free:
|
||||
kfree(params);
|
||||
|
||||
@@ -1398,7 +1396,7 @@ void intel_setup_overlay(struct drm_device *dev)
|
||||
{
|
||||
drm_i915_private_t *dev_priv = dev->dev_private;
|
||||
struct intel_overlay *overlay;
|
||||
struct drm_gem_object *reg_bo;
|
||||
struct drm_i915_gem_object *reg_bo;
|
||||
struct overlay_registers *regs;
|
||||
int ret;
|
||||
|
||||
@@ -1413,7 +1411,7 @@ void intel_setup_overlay(struct drm_device *dev)
|
||||
reg_bo = i915_gem_alloc_object(dev, PAGE_SIZE);
|
||||
if (!reg_bo)
|
||||
goto out_free;
|
||||
overlay->reg_bo = to_intel_bo(reg_bo);
|
||||
overlay->reg_bo = reg_bo;
|
||||
|
||||
if (OVERLAY_NEEDS_PHYSICAL(dev)) {
|
||||
ret = i915_gem_attach_phys_object(dev, reg_bo,
|
||||
@@ -1423,14 +1421,14 @@ void intel_setup_overlay(struct drm_device *dev)
|
||||
DRM_ERROR("failed to attach phys overlay regs\n");
|
||||
goto out_free_bo;
|
||||
}
|
||||
overlay->flip_addr = overlay->reg_bo->phys_obj->handle->busaddr;
|
||||
overlay->flip_addr = reg_bo->phys_obj->handle->busaddr;
|
||||
} else {
|
||||
ret = i915_gem_object_pin(reg_bo, PAGE_SIZE, true);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to pin overlay register bo\n");
|
||||
goto out_free_bo;
|
||||
}
|
||||
overlay->flip_addr = overlay->reg_bo->gtt_offset;
|
||||
overlay->flip_addr = reg_bo->gtt_offset;
|
||||
|
||||
ret = i915_gem_object_set_to_gtt_domain(reg_bo, true);
|
||||
if (ret) {
|
||||
@@ -1462,7 +1460,7 @@ void intel_setup_overlay(struct drm_device *dev)
|
||||
out_unpin_bo:
|
||||
i915_gem_object_unpin(reg_bo);
|
||||
out_free_bo:
|
||||
drm_gem_object_unreference(reg_bo);
|
||||
drm_gem_object_unreference(®_bo->base);
|
||||
out_free:
|
||||
kfree(overlay);
|
||||
return;
|
||||
|
Referência em uma nova issue
Block a user