media: aspeed: remove source buffer allocation before mode detection
authorJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Fri, 31 May 2019 22:15:46 +0000 (18:15 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 5 Jun 2019 19:54:00 +0000 (15:54 -0400)
Mode detection doesn't require source buffer allocation so this
commit removes that.

Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/aspeed-video.c

index c0b8891..d6708dd 100644 (file)
@@ -731,27 +731,6 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
        det->height = MIN_HEIGHT;
        video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
 
-       /*
-        * Since we need max buffer size for detection, free the second source
-        * buffer first.
-        */
-       if (video->srcs[1].size)
-               aspeed_video_free_buf(video, &video->srcs[1]);
-
-       if (video->srcs[0].size < VE_MAX_SRC_BUFFER_SIZE) {
-               if (video->srcs[0].size)
-                       aspeed_video_free_buf(video, &video->srcs[0]);
-
-               if (!aspeed_video_alloc_buf(video, &video->srcs[0],
-                                           VE_MAX_SRC_BUFFER_SIZE)) {
-                       dev_err(video->dev,
-                               "Failed to allocate source buffers\n");
-                       return;
-               }
-       }
-
-       aspeed_video_write(video, VE_SRC0_ADDR, video->srcs[0].dma);
-
        do {
                if (tries) {
                        set_current_state(TASK_INTERRUPTIBLE);
@@ -871,20 +850,14 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
 
        size *= 4;
 
-       if (size == video->srcs[0].size / 2) {
-               aspeed_video_write(video, VE_SRC1_ADDR,
-                                  video->srcs[0].dma + size);
-       } else if (size == video->srcs[0].size) {
-               if (!aspeed_video_alloc_buf(video, &video->srcs[1], size))
-                       goto err_mem;
-
-               aspeed_video_write(video, VE_SRC1_ADDR, video->srcs[1].dma);
-       } else {
-               aspeed_video_free_buf(video, &video->srcs[0]);
+       if (size != video->srcs[0].size) {
+               if (video->srcs[0].size)
+                       aspeed_video_free_buf(video, &video->srcs[0]);
+               if (video->srcs[1].size)
+                       aspeed_video_free_buf(video, &video->srcs[1]);
 
                if (!aspeed_video_alloc_buf(video, &video->srcs[0], size))
                        goto err_mem;
-
                if (!aspeed_video_alloc_buf(video, &video->srcs[1], size))
                        goto err_mem;