[PATCH] media: atmel-isi: increase the burst length to improve the performance

Guennadi Liakhovetski g.liakhovetski at gmx.de
Tue Nov 25 14:21:12 PST 2014


Hi Josh,

On Tue, 25 Nov 2014, Josh Wu wrote:

> The burst length could be BEATS_4/8/16. Before this patch, isi use default
> value BEATS_4. To imporve the performance we could set it to BEATS_16.
> 
> Otherwise sometime it would cause the ISI overflow error.

Without looking at datasheets - what does this bit do? Change the transfer 
length? What happens then if the data amount isn't a multiple of the 
transfer size?

Thanks
Guennadi

> 
> Reported-by: Bo Shen <voice.shen at atmel.com>
> Signed-off-by: Josh Wu <josh.wu at atmel.com>
> ---
>  drivers/media/platform/soc_camera/atmel-isi.c | 2 ++
>  include/media/atmel-isi.h                     | 4 ++++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c
> index ee5650f..fda587b 100644
> --- a/drivers/media/platform/soc_camera/atmel-isi.c
> +++ b/drivers/media/platform/soc_camera/atmel-isi.c
> @@ -839,6 +839,8 @@ static int isi_camera_set_bus_param(struct soc_camera_device *icd)
>  	if (isi->pdata.full_mode)
>  		cfg1 |= ISI_CFG1_FULL_MODE;
>  
> +	cfg1 |= ISI_CFG1_THMASK_BEATS_16;
> +
>  	isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS);
>  	isi_writel(isi, ISI_CFG1, cfg1);
>  
> diff --git a/include/media/atmel-isi.h b/include/media/atmel-isi.h
> index c2e5703..6008b09 100644
> --- a/include/media/atmel-isi.h
> +++ b/include/media/atmel-isi.h
> @@ -59,6 +59,10 @@
>  #define		ISI_CFG1_FRATE_DIV_MASK		(7 << 8)
>  #define ISI_CFG1_DISCR				(1 << 11)
>  #define ISI_CFG1_FULL_MODE			(1 << 12)
> +/* Definition for THMASK(ISI_V2) */
> +#define		ISI_CFG1_THMASK_BEATS_4		(0 << 13)
> +#define		ISI_CFG1_THMASK_BEATS_8		(1 << 13)
> +#define		ISI_CFG1_THMASK_BEATS_16	(2 << 13)
>  
>  /* Bitfields in CFG2 */
>  #define ISI_CFG2_GRAYSCALE			(1 << 13)
> -- 
> 1.9.1
> 



More information about the linux-arm-kernel mailing list