Re: [PATCH 13/15] [media] marvell-ccic: add dma burst mode support in marvell-ccic driver

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

 This patch adds the dma burst size config support for marvell-ccic.
 Developer can set the dma burst size in specified board driver.
 
 Signed-off-by: Libin Yang lby...@marvell.com
 Signed-off-by: Albert Wang twan...@marvell.com
 ---
  .../media/platform/marvell-ccic/mcam-core-soc.c|2 +-
  drivers/media/platform/marvell-ccic/mcam-core.h|7 ---
  drivers/media/platform/marvell-ccic/mmp-driver.c   |   11 +++
  include/media/mmp-camera.h |1 +
  4 files changed, 17 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/media/platform/marvell-ccic/mcam-core-soc.c 
 b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 index a0df8b4..518e6dc 100644
 --- a/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 +++ b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 @@ -100,7 +100,7 @@ static int mcam_camera_add_device(struct 
 soc_camera_device *icd)
   mcam_ctlr_stop(mcam);
   mcam_set_config_needed(mcam, 1);
   mcam_reg_write(mcam, REG_CTRL1,
 -C1_RESERVED | C1_DMAPOSTED);
 + mcam-burst |  C1_RESERVED | C1_DMAPOSTED);
   mcam_reg_write(mcam, REG_CLKCTRL,
   (mcam-mclk_src  29) | mcam-mclk_div);
   cam_dbg(mcam, camera: set sensor mclk = %dMHz\n, mcam-mclk_min);
 diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h 
 b/drivers/media/platform/marvell-ccic/mcam-core.h
 index e149aa3..999b581 100755
 --- a/drivers/media/platform/marvell-ccic/mcam-core.h
 +++ b/drivers/media/platform/marvell-ccic/mcam-core.h
 @@ -132,6 +132,7 @@ struct mcam_camera {
   short int use_smbus;/* SMBUS or straight I2c? */
   enum mcam_buffer_mode buffer_mode;
  
 + int burst;
   int mclk_min;
   int mclk_src;
   int mclk_div;
 @@ -419,9 +420,9 @@ int mcam_soc_camera_host_register(struct mcam_camera 
 *mcam);
  #define   C1_DESC_3WORD   0x0200 /* Three-word descriptors used */
  #defineC1_444ALPHA 0x00f0/* Alpha field in RGB444 */
  #defineC1_ALPHA_SHFT   20
 -#defineC1_DMAB32   0x/* 32-byte DMA burst */
 -#defineC1_DMAB16   0x0200/* 16-byte DMA burst */
 -#defineC1_DMAB64   0x0400/* 64-byte DMA burst */
 +#defineC1_DMAB64   0x/* 64-byte DMA burst */
 +#defineC1_DMAB128  0x0200/* 128-byte DMA burst */
 +#defineC1_DMAB256  0x0400/* 256-byte DMA burst */

Was this a bug in the driver or is it a different IP version?

Thanks
Guennadi

  #defineC1_DMAB_MASK0x0600
  #defineC1_TWOBUFS  0x0800/* Use only two DMA buffers */
  #defineC1_PWRDWN   0x1000/* Power down */
 diff --git a/drivers/media/platform/marvell-ccic/mmp-driver.c 
 b/drivers/media/platform/marvell-ccic/mmp-driver.c
 index bea7224..e840941 100755
 --- a/drivers/media/platform/marvell-ccic/mmp-driver.c
 +++ b/drivers/media/platform/marvell-ccic/mmp-driver.c
 @@ -365,6 +365,17 @@ static int mmpcam_probe(struct platform_device *pdev)
   mcam-dphy = (pdata-dphy);
   mcam-mipi_enabled = 0;
   mcam-lane = pdata-lane;
 + switch (pdata-dma_burst) {
 + case 128:
 + mcam-burst = C1_DMAB128;
 + break;
 + case 256:
 + mcam-burst = C1_DMAB256;
 + break;
 + default:
 + mcam-burst = C1_DMAB64;
 + break;
 + }
   INIT_LIST_HEAD(mcam-buffers);
  
   /*
 diff --git a/include/media/mmp-camera.h b/include/media/mmp-camera.h
 index 731f81f..7a5e63c 100755
 --- a/include/media/mmp-camera.h
 +++ b/include/media/mmp-camera.h
 @@ -11,6 +11,7 @@ struct mmp_camera_platform_data {
   int mclk_src;
   int mclk_div;
   int chip_id;
 + int dma_burst;
   /*
* MIPI support
*/
 -- 
 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 13/15] [media] marvell-ccic: add dma burst mode support in marvell-ccic driver

2012-11-27 Thread Albert Wang
Hi, Guennadi


-Original Message-
From: Guennadi Liakhovetski [mailto:g.liakhovet...@gmx.de]
Sent: Tuesday, 27 November, 2012 23:56
To: Albert Wang
Cc: cor...@lwn.net; linux-media@vger.kernel.org; Libin Yang
Subject: Re: [PATCH 13/15] [media] marvell-ccic: add dma burst mode support in
marvell-ccic driver

On Fri, 23 Nov 2012, Albert Wang wrote:

 This patch adds the dma burst size config support for marvell-ccic.
 Developer can set the dma burst size in specified board driver.

 Signed-off-by: Libin Yang lby...@marvell.com
 Signed-off-by: Albert Wang twan...@marvell.com
 ---
  .../media/platform/marvell-ccic/mcam-core-soc.c|2 +-
  drivers/media/platform/marvell-ccic/mcam-core.h|7 ---
  drivers/media/platform/marvell-ccic/mmp-driver.c   |   11 +++
  include/media/mmp-camera.h |1 +
  4 files changed, 17 insertions(+), 4 deletions(-)

 diff --git a/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 index a0df8b4..518e6dc 100644
 --- a/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 +++ b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
 @@ -100,7 +100,7 @@ static int mcam_camera_add_device(struct
soc_camera_device *icd)
  mcam_ctlr_stop(mcam);
  mcam_set_config_needed(mcam, 1);
  mcam_reg_write(mcam, REG_CTRL1,
 -   C1_RESERVED | C1_DMAPOSTED);
 +mcam-burst |  C1_RESERVED | C1_DMAPOSTED);
  mcam_reg_write(mcam, REG_CLKCTRL,
  (mcam-mclk_src  29) | mcam-mclk_div);
  cam_dbg(mcam, camera: set sensor mclk = %dMHz\n, mcam-mclk_min);
 diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h
 b/drivers/media/platform/marvell-ccic/mcam-core.h
 index e149aa3..999b581 100755
 --- a/drivers/media/platform/marvell-ccic/mcam-core.h
 +++ b/drivers/media/platform/marvell-ccic/mcam-core.h
 @@ -132,6 +132,7 @@ struct mcam_camera {
  short int use_smbus;/* SMBUS or straight I2c? */
  enum mcam_buffer_mode buffer_mode;

 +int burst;
  int mclk_min;
  int mclk_src;
  int mclk_div;
 @@ -419,9 +420,9 @@ int mcam_soc_camera_host_register(struct mcam_camera
*mcam);
  #define   C1_DESC_3WORD   0x0200/* Three-word descriptors used 
 */
  #define   C1_444ALPHA 0x00f0/* Alpha field in RGB444 */
  #define   C1_ALPHA_SHFT   20
 -#define   C1_DMAB32   0x/* 32-byte DMA burst */
 -#define   C1_DMAB16   0x0200/* 16-byte DMA burst */
 -#define   C1_DMAB64   0x0400/* 64-byte DMA burst */
 +#define   C1_DMAB64   0x/* 64-byte DMA burst */
 +#define   C1_DMAB128  0x0200/* 128-byte DMA burst */
 +#define   C1_DMAB256  0x0400/* 256-byte DMA burst */

Was this a bug in the driver or is it a different IP version?

I think it's a bug in old code. We didn't find the definition in our specs.

Thanks
Guennadi

  #define   C1_DMAB_MASK0x0600
  #define   C1_TWOBUFS  0x0800/* Use only two DMA buffers */
  #define   C1_PWRDWN   0x1000/* Power down */
 diff --git a/drivers/media/platform/marvell-ccic/mmp-driver.c
 b/drivers/media/platform/marvell-ccic/mmp-driver.c
 index bea7224..e840941 100755
 --- a/drivers/media/platform/marvell-ccic/mmp-driver.c
 +++ b/drivers/media/platform/marvell-ccic/mmp-driver.c
 @@ -365,6 +365,17 @@ static int mmpcam_probe(struct platform_device *pdev)
  mcam-dphy = (pdata-dphy);
  mcam-mipi_enabled = 0;
  mcam-lane = pdata-lane;
 +switch (pdata-dma_burst) {
 +case 128:
 +mcam-burst = C1_DMAB128;
 +break;
 +case 256:
 +mcam-burst = C1_DMAB256;
 +break;
 +default:
 +mcam-burst = C1_DMAB64;
 +break;
 +}
  INIT_LIST_HEAD(mcam-buffers);

  /*
 diff --git a/include/media/mmp-camera.h b/include/media/mmp-camera.h
 index 731f81f..7a5e63c 100755
 --- a/include/media/mmp-camera.h
 +++ b/include/media/mmp-camera.h
 @@ -11,6 +11,7 @@ struct mmp_camera_platform_data {
  int mclk_src;
  int mclk_div;
  int chip_id;
 +int dma_burst;
  /*
   * MIPI support
   */
 --
 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 13/15] [media] marvell-ccic: add dma burst mode support in marvell-ccic driver

2012-11-23 Thread Albert Wang
This patch adds the dma burst size config support for marvell-ccic.
Developer can set the dma burst size in specified board driver.

Signed-off-by: Libin Yang lby...@marvell.com
Signed-off-by: Albert Wang twan...@marvell.com
---
 .../media/platform/marvell-ccic/mcam-core-soc.c|2 +-
 drivers/media/platform/marvell-ccic/mcam-core.h|7 ---
 drivers/media/platform/marvell-ccic/mmp-driver.c   |   11 +++
 include/media/mmp-camera.h |1 +
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/marvell-ccic/mcam-core-soc.c 
b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
index a0df8b4..518e6dc 100644
--- a/drivers/media/platform/marvell-ccic/mcam-core-soc.c
+++ b/drivers/media/platform/marvell-ccic/mcam-core-soc.c
@@ -100,7 +100,7 @@ static int mcam_camera_add_device(struct soc_camera_device 
*icd)
mcam_ctlr_stop(mcam);
mcam_set_config_needed(mcam, 1);
mcam_reg_write(mcam, REG_CTRL1,
-  C1_RESERVED | C1_DMAPOSTED);
+   mcam-burst |  C1_RESERVED | C1_DMAPOSTED);
mcam_reg_write(mcam, REG_CLKCTRL,
(mcam-mclk_src  29) | mcam-mclk_div);
cam_dbg(mcam, camera: set sensor mclk = %dMHz\n, mcam-mclk_min);
diff --git a/drivers/media/platform/marvell-ccic/mcam-core.h 
b/drivers/media/platform/marvell-ccic/mcam-core.h
index e149aa3..999b581 100755
--- a/drivers/media/platform/marvell-ccic/mcam-core.h
+++ b/drivers/media/platform/marvell-ccic/mcam-core.h
@@ -132,6 +132,7 @@ struct mcam_camera {
short int use_smbus;/* SMBUS or straight I2c? */
enum mcam_buffer_mode buffer_mode;
 
+   int burst;
int mclk_min;
int mclk_src;
int mclk_div;
@@ -419,9 +420,9 @@ int mcam_soc_camera_host_register(struct mcam_camera *mcam);
 #define   C1_DESC_3WORD   0x0200   /* Three-word descriptors used */
 #define  C1_444ALPHA 0x00f0/* Alpha field in RGB444 */
 #define  C1_ALPHA_SHFT   20
-#define  C1_DMAB32   0x/* 32-byte DMA burst */
-#define  C1_DMAB16   0x0200/* 16-byte DMA burst */
-#define  C1_DMAB64   0x0400/* 64-byte DMA burst */
+#define  C1_DMAB64   0x/* 64-byte DMA burst */
+#define  C1_DMAB128  0x0200/* 128-byte DMA burst */
+#define  C1_DMAB256  0x0400/* 256-byte DMA burst */
 #define  C1_DMAB_MASK0x0600
 #define  C1_TWOBUFS  0x0800/* Use only two DMA buffers */
 #define  C1_PWRDWN   0x1000/* Power down */
diff --git a/drivers/media/platform/marvell-ccic/mmp-driver.c 
b/drivers/media/platform/marvell-ccic/mmp-driver.c
index bea7224..e840941 100755
--- a/drivers/media/platform/marvell-ccic/mmp-driver.c
+++ b/drivers/media/platform/marvell-ccic/mmp-driver.c
@@ -365,6 +365,17 @@ static int mmpcam_probe(struct platform_device *pdev)
mcam-dphy = (pdata-dphy);
mcam-mipi_enabled = 0;
mcam-lane = pdata-lane;
+   switch (pdata-dma_burst) {
+   case 128:
+   mcam-burst = C1_DMAB128;
+   break;
+   case 256:
+   mcam-burst = C1_DMAB256;
+   break;
+   default:
+   mcam-burst = C1_DMAB64;
+   break;
+   }
INIT_LIST_HEAD(mcam-buffers);
 
/*
diff --git a/include/media/mmp-camera.h b/include/media/mmp-camera.h
index 731f81f..7a5e63c 100755
--- a/include/media/mmp-camera.h
+++ b/include/media/mmp-camera.h
@@ -11,6 +11,7 @@ struct mmp_camera_platform_data {
int mclk_src;
int mclk_div;
int chip_id;
+   int dma_burst;
/*
 * MIPI support
 */
-- 
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