Re: [PATCH 01/15] [media] marvell-ccic: use internal variable replace global frame stats variable

2012-11-27 Thread Guennadi Liakhovetski
Hi Albert

On Fri, 23 Nov 2012, Albert Wang wrote:

 From: Libin Yang lby...@marvell.com
 
 This patch replaces the global frame stats variables by using
 internal variables in mcam_camera structure.
 
 Signed-off-by: Albert Wang twan...@marvell.com
 Signed-off-by: Libin Yang lby...@marvell.com

Thanks for doing this work! Looks good just one remark below.

 ---
  drivers/media/platform/marvell-ccic/mcam-core.c |   30 
 ++-
  drivers/media/platform/marvell-ccic/mcam-core.h |9 +++
  2 files changed, 22 insertions(+), 17 deletions(-)

[snip]

 diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h 
 b/drivers/media/platform/marvell-ccic/mcam-core.h
 index bd6acba..e226de4 100755
 --- a/drivers/media/platform/marvell-ccic/mcam-core.h
 +++ b/drivers/media/platform/marvell-ccic/mcam-core.h
 @@ -73,6 +73,14 @@ static inline int mcam_buffer_mode_supported(enum 
 mcam_buffer_mode mode)
   }
  }
  
 +/*
 + * Basic frame states
 + */
 +struct mmp_frame_state {

I think this should be struct mcam_frame_state - don't think we need to 
introduce a whole new namespace in this header just because of this 
struct.

 + unsigned int frames;
 + unsigned int singles;
 + unsigned int delivered;
 +};
  
  /*
   * A description of one of our devices.
 @@ -108,6 +116,7 @@ struct mcam_camera {
   unsigned long flags;/* Buffer status, mainly (dev_lock) */
   int users;  /* How many open FDs */
  
 + struct mmp_frame_state frame_state; /* Frame state counter */
   /*
* Subsystem structures.
*/
 -- 
 1.7.9.5

Thanks
Guennadi
---
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 01/15] [media] marvell-ccic: use internal variable replace global frame stats variable

2012-11-27 Thread Albert Wang
Hi, Guennadi

Nice to hear you again after holidays. :)

-Original Message-
From: Guennadi Liakhovetski [mailto:g.liakhovet...@gmx.de]
Sent: Tuesday, 27 November, 2012 18:16
To: Albert Wang
Cc: cor...@lwn.net; linux-media@vger.kernel.org; Libin Yang
Subject: Re: [PATCH 01/15] [media] marvell-ccic: use internal variable replace 
global frame
stats variable

Hi Albert

On Fri, 23 Nov 2012, Albert Wang wrote:

 From: Libin Yang lby...@marvell.com

 This patch replaces the global frame stats variables by using internal
 variables in mcam_camera structure.

 Signed-off-by: Albert Wang twan...@marvell.com
 Signed-off-by: Libin Yang lby...@marvell.com

Thanks for doing this work! Looks good just one remark below.

 ---
  drivers/media/platform/marvell-ccic/mcam-core.c |   30 
 ++-
  drivers/media/platform/marvell-ccic/mcam-core.h |9 +++
  2 files changed, 22 insertions(+), 17 deletions(-)

[snip]

 diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h
 b/drivers/media/platform/marvell-ccic/mcam-core.h
 index bd6acba..e226de4 100755
 --- a/drivers/media/platform/marvell-ccic/mcam-core.h
 +++ b/drivers/media/platform/marvell-ccic/mcam-core.h
 @@ -73,6 +73,14 @@ static inline int mcam_buffer_mode_supported(enum
mcam_buffer_mode mode)
  }
  }

 +/*
 + * Basic frame states
 + */
 +struct mmp_frame_state {

I think this should be struct mcam_frame_state - don't think we need to 
introduce a whole
new namespace in this header just because of this struct.

Yes, you are right. We should keep same namespace in this header.
Maybe we did a typo.

 +unsigned int frames;
 +unsigned int singles;
 +unsigned int delivered;
 +};

  /*
   * A description of one of our devices.
 @@ -108,6 +116,7 @@ struct mcam_camera {
  unsigned long flags;/* Buffer status, mainly (dev_lock) */
  int users;  /* How many open FDs */

 +struct mmp_frame_state frame_state; /* Frame state counter */
  /*
   * Subsystem structures.
   */
 --
 1.7.9.5

Thanks
Guennadi
---
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 01/15] [media] marvell-ccic: use internal variable replace global frame stats variable

2012-11-23 Thread Albert Wang
From: Libin Yang lby...@marvell.com

This patch replaces the global frame stats variables by using
internal variables in mcam_camera structure.

Signed-off-by: Albert Wang twan...@marvell.com
Signed-off-by: Libin Yang lby...@marvell.com
---
 drivers/media/platform/marvell-ccic/mcam-core.c |   30 ++-
 drivers/media/platform/marvell-ccic/mcam-core.h |9 +++
 2 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c 
b/drivers/media/platform/marvell-ccic/mcam-core.c
index ce2b7b4..7012913f 100755
--- a/drivers/media/platform/marvell-ccic/mcam-core.c
+++ b/drivers/media/platform/marvell-ccic/mcam-core.c
@@ -30,13 +30,6 @@
 
 #include mcam-core.h
 
-/*
- * Basic frame stats - to be deleted shortly
- */
-static int frames;
-static int singles;
-static int delivered;
-
 #ifdef MCAM_MODE_VMALLOC
 /*
  * Internal DMA buffer management.  Since the controller cannot do S/G I/O,
@@ -367,10 +360,10 @@ static void mcam_frame_tasklet(unsigned long data)
if (!test_bit(bufno, cam-flags))
continue;
if (list_empty(cam-buffers)) {
-   singles++;
+   cam-frame_state.singles++;
break;  /* Leave it valid, hope for better later */
}
-   delivered++;
+   cam-frame_state.delivered++;
clear_bit(bufno, cam-flags);
buf = list_first_entry(cam-buffers, struct mcam_vb_buffer,
queue);
@@ -452,7 +445,7 @@ static void mcam_set_contig_buffer(struct mcam_camera *cam, 
int frame)
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);
-   singles++;
+   cam-frame_state.singles++;
return;
}
/*
@@ -485,7 +478,7 @@ static void mcam_dma_contig_done(struct mcam_camera *cam, 
int frame)
struct mcam_vb_buffer *buf = cam-vb_bufs[frame];
 
if (!test_bit(CF_SINGLE_BUFFER, cam-flags)) {
-   delivered++;
+   cam-frame_state.delivered++;
mcam_buffer_done(cam, frame, buf-vb_buf);
}
mcam_set_contig_buffer(cam, frame);
@@ -578,13 +571,13 @@ static void mcam_dma_sg_done(struct mcam_camera *cam, int 
frame)
 */
} else {
set_bit(CF_SG_RESTART, cam-flags);
-   singles++;
+   cam-frame_state.singles++;
cam-vb_bufs[0] = NULL;
}
/*
 * Now we can give the completed frame back to user space.
 */
-   delivered++;
+   cam-frame_state.delivered++;
mcam_buffer_done(cam, frame, buf-vb_buf);
 }
 
@@ -1545,7 +1538,9 @@ static int mcam_v4l_open(struct file *filp)
 
filp-private_data = cam;
 
-   frames = singles = delivered = 0;
+   cam-frame_state.frames = 0;
+   cam-frame_state.singles = 0;
+   cam-frame_state.delivered = 0;
mutex_lock(cam-s_mutex);
if (cam-users == 0) {
ret = mcam_setup_vb2(cam);
@@ -1566,8 +1561,9 @@ static int mcam_v4l_release(struct file *filp)
 {
struct mcam_camera *cam = filp-private_data;
 
-   cam_dbg(cam, Release, %d frames, %d singles, %d delivered\n, frames,
-   singles, delivered);
+   cam_dbg(cam, Release, %d frames, %d singles, %d delivered\n,
+   cam-frame_state.frames, cam-frame_state.singles,
+   cam-frame_state.delivered);
mutex_lock(cam-s_mutex);
(cam-users)--;
if (cam-users == 0) {
@@ -1660,7 +1656,7 @@ static void mcam_frame_complete(struct mcam_camera *cam, 
int frame)
clear_bit(CF_DMA_ACTIVE, cam-flags);
cam-next_buf = frame;
cam-buf_seq[frame] = ++(cam-sequence);
-   frames++;
+   cam-frame_state.frames++;
/*
 * This should never happen
 */
diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h 
b/drivers/media/platform/marvell-ccic/mcam-core.h
index bd6acba..e226de4 100755
--- a/drivers/media/platform/marvell-ccic/mcam-core.h
+++ b/drivers/media/platform/marvell-ccic/mcam-core.h
@@ -73,6 +73,14 @@ static inline int mcam_buffer_mode_supported(enum 
mcam_buffer_mode mode)
}
 }
 
+/*
+ * Basic frame states
+ */
+struct mmp_frame_state {
+   unsigned int frames;
+   unsigned int singles;
+   unsigned int delivered;
+};
 
 /*
  * A description of one of our devices.
@@ -108,6 +116,7 @@ struct mcam_camera {
unsigned long flags;/* Buffer status, mainly (dev_lock) */
int users;  /* How many open FDs */
 
+   struct mmp_frame_state frame_state; /* Frame state counter */
/*
 * Subsystem structures.
 */
-- 
1.7.9.5

--
To unsubscribe from