RE: [PATCH 3/6] [media] s5p-mfc: Core support for MFC v7

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arun,

I have read your patches. They seem alright, I back comments made by Hans
and Sylwester. I have one question, which follows inline.

Best wishes,
-- 
Kamil Debski
Linux Kernel Developer
Samsung R&D Institute Poland

> -----Original Message-----
> From: Arun Kumar K [mailto:arun.kk@xxxxxxxxxxx]
> Sent: Monday, June 10, 2013 3:23 PM
> To: linux-media@xxxxxxxxxxxxxxx
> Cc: k.debski@xxxxxxxxxxx; jtp.park@xxxxxxxxxxx; s.nawrocki@xxxxxxxxxxx;
> avnd.kiran@xxxxxxxxxxx; arunkk.samsung@xxxxxxxxx
> Subject: [PATCH 3/6] [media] s5p-mfc: Core support for MFC v7
> 
> Adds variant data and core support for the MFC v7 firmware
> 
> Signed-off-by: Arun Kumar K <arun.kk@xxxxxxxxxxx>
> ---
>  drivers/media/platform/s5p-mfc/s5p_mfc.c        |   32
> +++++++++++++++++++++++
>  drivers/media/platform/s5p-mfc/s5p_mfc_common.h |    2 ++
>  2 files changed, 34 insertions(+)
> 
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c
> b/drivers/media/platform/s5p-mfc/s5p_mfc.c
> index d12faa6..d6be52f 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
> @@ -1391,6 +1391,32 @@ static struct s5p_mfc_variant mfc_drvdata_v6 = {
>  	.fw_name        = "s5p-mfc-v6.fw",
>  };
> 
> +struct s5p_mfc_buf_size_v6 mfc_buf_size_v7 = {
> +	.dev_ctx	= MFC_CTX_BUF_SIZE_V7,
> +	.h264_dec_ctx	= MFC_H264_DEC_CTX_BUF_SIZE_V7,
> +	.other_dec_ctx	= MFC_OTHER_DEC_CTX_BUF_SIZE_V7,
> +	.h264_enc_ctx	= MFC_H264_ENC_CTX_BUF_SIZE_V7,
> +	.other_enc_ctx	= MFC_OTHER_ENC_CTX_BUF_SIZE_V7,
> +};
> +
> +struct s5p_mfc_buf_size buf_size_v7 = {
> +	.fw	= MAX_FW_SIZE_V7,
> +	.cpb	= MAX_CPB_SIZE_V7,
> +	.priv	= &mfc_buf_size_v7,
> +};
> +
> +struct s5p_mfc_buf_align mfc_buf_align_v7 = {
> +	.base = 0,
> +};
> +
> +static struct s5p_mfc_variant mfc_drvdata_v7 = {
> +	.version	= MFC_VERSION_V7,
> +	.port_num	= MFC_NUM_PORTS_V7,
> +	.buf_size	= &buf_size_v7,
> +	.buf_align	= &mfc_buf_align_v7,
> +	.fw_name        = "s5p-mfc-v7.fw",
> +};
> +
>  static struct platform_device_id mfc_driver_ids[] = {
>  	{
>  		.name = "s5p-mfc",
> @@ -1401,6 +1427,9 @@ static struct platform_device_id mfc_driver_ids[]
> = {
>  	}, {
>  		.name = "s5p-mfc-v6",
>  		.driver_data = (unsigned long)&mfc_drvdata_v6,
> +	}, {
> +		.name = "s5p-mfc-v7",
> +		.driver_data = (unsigned long)&mfc_drvdata_v7,
>  	},
>  	{},
>  };
> @@ -1413,6 +1442,9 @@ static const struct of_device_id
> exynos_mfc_match[] = {
>  	}, {
>  		.compatible = "samsung,mfc-v6",
>  		.data = &mfc_drvdata_v6,
> +	}, {
> +		.compatible = "samsung,mfc-v7",
> +		.data = &mfc_drvdata_v7,
>  	},
>  	{},
>  };
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> index ef4074c..7281de2 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> @@ -24,6 +24,7 @@
>  #include <media/videobuf2-core.h>
>  #include "regs-mfc.h"
>  #include "regs-mfc-v6.h"
> +#include "regs-mfc-v7.h"
> 
>  /* Definitions related to MFC memory */
> 
> @@ -684,5 +685,6 @@ void set_work_bit_irqsave(struct s5p_mfc_ctx *ctx);
>  				(dev->variant->port_num ? 1 : 0) : 0) : 0)
>  #define IS_TWOPORT(dev)		(dev->variant->port_num == 2 ? 1 :
0)
>  #define IS_MFCV6(dev)		(dev->variant->version >= 0x60 ? 1 :
0)
> +#define IS_MFCV7(dev)		(dev->variant->version >= 0x70 ? 1 :
0)

According to this, MFC v7 is also detected as MFC v6. Was this intended?
I think that it would be much better to use this in code:
	if (IS_MFCV6(dev) || IS_MFCV7(dev))
And change the define to detect only single MFC revision:
	#define IS_MFCV6(dev)		(dev->variant->version >= 0x60 &&
dev->variant->version < 0x70)

Other possibility I see is to change the name of the check. Although
IS_MFCV6_OR_NEWER(dev) seems too long :)

> 
>  #endif /* S5P_MFC_COMMON_H_ */
> --
> 1.7.9.5


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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux