[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