staging: msvdx: remove unused mb concealment support
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Fri, 27 Apr 2012 14:23:54 +0000 (17:23 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 3 Jul 2012 09:30:54 +0000 (12:30 +0300)
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
drivers/staging/mrst/imgv/psb_msvdxinit.c

index cfdf08a..cda82c5 100644 (file)
@@ -825,171 +825,6 @@ static ssize_t psb_msvdx_pmstate_show(struct device *dev,
 
 static DEVICE_ATTR(msvdx_pmstate, 0444, psb_msvdx_pmstate_show, NULL);
 
-static void psb_msvdx_conceal_mb(char * ec_start, char * ref_start,
-                                uint32_t start_err_mb, uint32_t end_err_mb,
-                                uint32_t pic_width_mb, uint32_t stride,
-                                uint32_t mb_width, uint32_t mb_height)
-{
-       int i, offset_start, offset_end, size, full_line_start, full_line_end, extra_line_start, extra_line_end;
-       char *src, *dst;
-
-       (void)offset_end;
-       (void)offset_start;
-
-       full_line_start = (start_err_mb / pic_width_mb) * stride * mb_height;
-       full_line_end = ((end_err_mb + 1) / pic_width_mb) * stride * mb_height;
-       extra_line_start = (start_err_mb % pic_width_mb) * mb_width;
-       extra_line_end = (end_err_mb + 1) % pic_width_mb * mb_width;
-       if (extra_line_start != 0) {
-               size = stride - extra_line_start;
-               src = ref_start + full_line_start + extra_line_start;
-               dst = ec_start + full_line_start + extra_line_start;
-               for (i = 0; i < mb_height; i++) {
-                       memcpy(dst, src, size);
-                       //memset(dst, 255, size);
-                       src += stride;
-                       dst += stride;
-               }
-               full_line_start += stride * mb_height;
-       }
-       src = ref_start + full_line_start;
-       dst = ec_start + full_line_start;
-       size =  full_line_end - full_line_start;
-       memcpy(dst, src, size);
-       //memset(dst, 255, size);
-       if (extra_line_end != 0) {
-               size = extra_line_end;
-               src = ref_start + full_line_end;
-               dst = ec_start + full_line_end;
-               for (i = 0; i < mb_height; i++) {
-                       memcpy(dst, src, size);
-                       //memset(dst, 255, size);
-                       src += stride;
-                       dst += stride;
-               }
-       }
-}
-
-
-static void psb_msvdx_error_concealment(struct work_struct *data)
-{
-       uint32_t i;
-       int ret;
-       struct msvdx_private *msvdx_priv = container_of(data, struct msvdx_private, ec_work);
-       drm_psb_msvdx_frame_info_t *ec_frame = NULL;
-       drm_psb_msvdx_frame_info_t *ref_frame = NULL;
-       static struct ttm_bo_kmap_obj ec_kmap, ref_kmap;
-       struct ttm_buffer_object *ec_bo = NULL;
-       struct ttm_buffer_object *ref_bo = NULL;
-       struct ttm_object_file *tfile = msvdx_priv->tfile;
-       drm_psb_msvdx_decode_status_t *decode_status = NULL;
-       bool is_iomem;
-       char *ec_start, *ref_start;
-
-       if (msvdx_priv->ec_fence > 0)
-               msvdx_priv->ref_pic_fence = msvdx_priv->ec_fence - 1;
-       else {
-               DRM_ERROR("Can't do error concealment for the first frame.\n");
-               return;
-       }
-
-       /*get the frame_info struct for error concealment frame*/
-       for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-               if (msvdx_priv->frame_info[i].fence == msvdx_priv->ec_fence) {
-                       ec_frame = &msvdx_priv->frame_info[i];
-                       break;
-               }
-       }
-       if (!ec_frame) {
-               DRM_ERROR("MSVDX: didn't find frame_info which matched the ec fence\n");
-               return;
-       }
-       decode_status = &ec_frame->decode_status;
-       ec_bo = ttm_buffer_object_lookup(tfile, ec_frame->handle);
-       if (unlikely(ec_bo == NULL)) {
-               printk(KERN_ERR " : Could not find buffer object for setstatus.\n");
-               return;
-       }
-       ret = ttm_bo_reserve(ec_bo, true, true, false, 0);
-       if (ret) {
-               DRM_ERROR("MSVDX ERROR CONCEALMENT: reserver failed.\n");
-               return;
-       }
-       ret = ttm_bo_kmap(ec_bo,
-                         0,
-                         (ec_frame->buffer_size +
-                          PAGE_SIZE - 1) >> PAGE_SHIFT,
-                         &ec_kmap);
-       if (ret) {
-               printk("MSVDX ERROR CONCEALMENT: ec kmap failed, %d.\n", ret);
-               return;
-       }
-       ec_start = (unsigned char *) ttm_kmap_obj_virtual(&ec_kmap,
-                       &is_iomem);
-
-       /*get the frame_info struct for reference frame*/
-       for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-               if (msvdx_priv->frame_info[i].fence == msvdx_priv->ref_pic_fence) {
-                       ref_frame = &msvdx_priv->frame_info[i];
-                       break;
-               }
-       }
-       if (!ref_frame) {
-               DRM_ERROR("MSVDX: didn't find frame_info which matched the ref fence\n");
-               return;
-       }
-       ref_bo = ttm_buffer_object_lookup(tfile, ref_frame->handle);
-       if (unlikely(ref_bo == NULL)) {
-               printk(KERN_ERR " : Could not find buffer object for setstatus.\n");
-       }
-       ret = ttm_bo_reserve(ref_bo, true, true, false, 0);
-       if (ret) {
-               DRM_ERROR("MSVDX ERROR CONCEALMENT: reserver failed.\n");
-               return;
-       }
-       ret = ttm_bo_kmap(ref_bo,
-                         0,
-                         (ref_frame->buffer_size +
-                          PAGE_SIZE - 1) >> PAGE_SHIFT,
-                         &ref_kmap);
-       if (ret) {
-               printk("MSVDX ERROR CONCEALMENT: ref kmap failed, %d.\n", ret);
-               return;
-       }
-       ref_start = (unsigned char *) ttm_kmap_obj_virtual(&ref_kmap,
-                       &is_iomem);
-
-       /*copy missing mb from ref picture to ec picture*/
-       for (i = 0; i < decode_status->num_error_slice; i++) {
-               if ((decode_status->start_error_mb_list[i] >= ec_frame->size_mb) ||
-                   (decode_status->end_error_mb_list[i] >= ec_frame->size_mb) ||
-                   (decode_status->start_error_mb_list[i] > decode_status->end_error_mb_list[i]))
-                       continue;
-               psb_msvdx_conceal_mb(ec_start, ref_start,
-                                    decode_status->start_error_mb_list[i],
-                                    decode_status->end_error_mb_list[i],
-                                    ec_frame->picture_width_mb, ec_frame->buffer_stride,
-                                    16, 16);
-               psb_msvdx_conceal_mb(ec_start + ec_frame->buffer_size * 2 / 3,
-                                    ref_start + ec_frame->buffer_size * 2 / 3,
-                                    decode_status->start_error_mb_list[i],
-                                    decode_status->end_error_mb_list[i],
-                                    ec_frame->picture_width_mb, ec_frame->buffer_stride,
-                                    16, 8);
-       }
-
-       ttm_bo_kunmap(&ec_kmap);
-       ttm_bo_kunmap(&ref_kmap);
-       ttm_bo_unreserve(ec_bo);
-       ttm_bo_unreserve(ref_bo);
-
-       if (ec_bo)
-               ttm_bo_unref(&ec_bo);
-       if (ref_bo)
-               ttm_bo_unref(&ref_bo);
-
-}
-
 int psb_msvdx_init(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;