RE: [PATCH 05/15] [media] marvell-ccic: refine mcam_set_contig_buffer function

2012-11-27 Thread Albert Wang
Hi, Guennadi


>-Original Message-
>From: Guennadi Liakhovetski [mailto:g.liakhovet...@gmx.de]
>Sent: Tuesday, 27 November, 2012 19:04
>To: Albert Wang
>Cc: cor...@lwn.net; linux-media@vger.kernel.org; Libin Yang
>Subject: Re: [PATCH 05/15] [media] marvell-ccic: refine mcam_set_contig_buffer 
>function
>
>On Fri, 23 Nov 2012, Albert Wang wrote:
>
>> From: Libin Yang 
>>
>> This patch refines mcam_set_contig_buffer() in mcam core
>>
>> Signed-off-by: Albert Wang 
>> Signed-off-by: Libin Yang 
>
>Looks good in general, just will have to be tested on currently supported 
>platforms,
>because it changes the order, in which registers are written.
>So, if this patch is not too important for you, maybe it would be better to 
>drop it, it doesn't
>seem to improve any functionality?
>
It didn't improve the functionality, just prepare for the 3 frame buffer 
support patch. :)

>If it is decided to use this, you can add my
>
>Acked-by: Guennadi Liakhovetski 
>
>Thanks
>Guennadi
>
>> ---
>>  drivers/media/platform/marvell-ccic/mcam-core.c |   21 ++---
>>  1 file changed, 10 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c
>> b/drivers/media/platform/marvell-ccic/mcam-core.c
>> index 760e8ea..67d4f2f 100755
>> --- a/drivers/media/platform/marvell-ccic/mcam-core.c
>> +++ b/drivers/media/platform/marvell-ccic/mcam-core.c
>> @@ -481,22 +481,21 @@ static void mcam_set_contig_buffer(struct mcam_camera
>*cam, int frame)
>>   */
>>  if (list_empty(&cam->buffers)) {
>>  buf = cam->vb_bufs[frame ^ 0x1];
>> -cam->vb_bufs[frame] = buf;
>> -mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
>> -vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
>>  set_bit(CF_SINGLE_BUFFER, &cam->flags);
>>  cam->frame_state.singles++;
>> -return;
>> +} else {
>> +/*
>> + * OK, we have a buffer we can use.
>> + */
>> +buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer,
>> +queue);
>> +list_del_init(&buf->queue);
>> +clear_bit(CF_SINGLE_BUFFER, &cam->flags);
>>  }
>> -/*
>> - * OK, we have a buffer we can use.
>> - */
>> -buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer, queue);
>> -list_del_init(&buf->queue);
>> +
>> +cam->vb_bufs[frame] = buf;
>>  mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
>>  vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
>> -cam->vb_bufs[frame] = buf;
>> -clear_bit(CF_SINGLE_BUFFER, &cam->flags);
>>  }
>>
>>  /*
>> --
>> 1.7.9.5
>>
>
>---
>Guennadi Liakhovetski, Ph.D.
>Freelance Open-Source Software Developer
>http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 05/15] [media] marvell-ccic: refine mcam_set_contig_buffer function

2012-11-27 Thread Guennadi Liakhovetski
On Fri, 23 Nov 2012, Albert Wang wrote:

> From: Libin Yang 
> 
> This patch refines mcam_set_contig_buffer() in mcam core
> 
> Signed-off-by: Albert Wang 
> Signed-off-by: Libin Yang 

Looks good in general, just will have to be tested on currently supported 
platforms, because it changes the order, in which registers are written. 
So, if this patch is not too important for you, maybe it would be better 
to drop it, it doesn't seem to improve any functionality?

If it is decided to use this, you can add my

Acked-by: Guennadi Liakhovetski 

Thanks
Guennadi

> ---
>  drivers/media/platform/marvell-ccic/mcam-core.c |   21 ++---
>  1 file changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c 
> b/drivers/media/platform/marvell-ccic/mcam-core.c
> index 760e8ea..67d4f2f 100755
> --- a/drivers/media/platform/marvell-ccic/mcam-core.c
> +++ b/drivers/media/platform/marvell-ccic/mcam-core.c
> @@ -481,22 +481,21 @@ static void mcam_set_contig_buffer(struct mcam_camera 
> *cam, int frame)
>*/
>   if (list_empty(&cam->buffers)) {
>   buf = cam->vb_bufs[frame ^ 0x1];
> - cam->vb_bufs[frame] = buf;
> - mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
> - vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
>   set_bit(CF_SINGLE_BUFFER, &cam->flags);
>   cam->frame_state.singles++;
> - return;
> + } else {
> + /*
> +  * OK, we have a buffer we can use.
> +  */
> + buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer,
> + queue);
> + list_del_init(&buf->queue);
> + clear_bit(CF_SINGLE_BUFFER, &cam->flags);
>   }
> - /*
> -  * OK, we have a buffer we can use.
> -  */
> - buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer, queue);
> - list_del_init(&buf->queue);
> +
> + cam->vb_bufs[frame] = buf;
>   mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
>   vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
> - cam->vb_bufs[frame] = buf;
> - clear_bit(CF_SINGLE_BUFFER, &cam->flags);
>  }
>  
>  /*
> -- 
> 1.7.9.5
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 05/15] [media] marvell-ccic: refine mcam_set_contig_buffer function

2012-11-23 Thread Albert Wang
From: Libin Yang 

This patch refines mcam_set_contig_buffer() in mcam core

Signed-off-by: Albert Wang 
Signed-off-by: Libin Yang 
---
 drivers/media/platform/marvell-ccic/mcam-core.c |   21 ++---
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c 
b/drivers/media/platform/marvell-ccic/mcam-core.c
index 760e8ea..67d4f2f 100755
--- a/drivers/media/platform/marvell-ccic/mcam-core.c
+++ b/drivers/media/platform/marvell-ccic/mcam-core.c
@@ -481,22 +481,21 @@ static void mcam_set_contig_buffer(struct mcam_camera 
*cam, int frame)
 */
if (list_empty(&cam->buffers)) {
buf = cam->vb_bufs[frame ^ 0x1];
-   cam->vb_bufs[frame] = buf;
-   mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
-   vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
set_bit(CF_SINGLE_BUFFER, &cam->flags);
cam->frame_state.singles++;
-   return;
+   } else {
+   /*
+* OK, we have a buffer we can use.
+*/
+   buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer,
+   queue);
+   list_del_init(&buf->queue);
+   clear_bit(CF_SINGLE_BUFFER, &cam->flags);
}
-   /*
-* OK, we have a buffer we can use.
-*/
-   buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer, queue);
-   list_del_init(&buf->queue);
+
+   cam->vb_bufs[frame] = buf;
mcam_reg_write(cam, frame == 0 ? REG_Y0BAR : REG_Y1BAR,
vb2_dma_contig_plane_dma_addr(&buf->vb_buf, 0));
-   cam->vb_bufs[frame] = buf;
-   clear_bit(CF_SINGLE_BUFFER, &cam->flags);
 }
 
 /*
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html