diff mbox

[04/43] imx-drm: ipu-v3: Add solo/dual-lite IPU device type

Message ID 1402178205-22697-5-git-send-email-steve_longerbeam@mentor.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steve Longerbeam June 7, 2014, 9:56 p.m. UTC
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
---
 drivers/staging/imx-drm/ipu-v3/ipu-common.c |   18 ++++++++++++++++++
 include/linux/platform_data/imx-ipu-v3.h    |    1 +
 2 files changed, 19 insertions(+)

Comments

Sascha Hauer June 11, 2014, 5:37 a.m. UTC | #1
Hi Steve,

On Sat, Jun 07, 2014 at 02:56:06PM -0700, Steve Longerbeam wrote:
> Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
> ---
>  drivers/staging/imx-drm/ipu-v3/ipu-common.c |   18 ++++++++++++++++++
>  include/linux/platform_data/imx-ipu-v3.h    |    1 +
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-common.c b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> index f8e8c56..2d95a7c 100644
> --- a/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> +++ b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> @@ -829,10 +829,28 @@ static struct ipu_devtype ipu_type_imx6q = {
>  	.type = IPUV3H,
>  };
>  
> +static struct ipu_devtype ipu_type_imx6dl = {
> +	.name = "IPUv3HDL",
> +	.cm_ofs = 0x00200000,
> +	.cpmem_ofs = 0x00300000,
> +	.srm_ofs = 0x00340000,
> +	.tpm_ofs = 0x00360000,
> +	.csi0_ofs = 0x00230000,
> +	.csi1_ofs = 0x00238000,
> +	.disp0_ofs = 0x00240000,
> +	.disp1_ofs = 0x00248000,
> +	.smfc_ofs =  0x00250000,
> +	.ic_ofs = 0x00220000,
> +	.vdi_ofs = 0x00268000,
> +	.dc_tmpl_ofs = 0x00380000,
> +	.type = IPUV3HDL,
> +};

This breaks bisectibility. This patch must come after

[PATCH 08/43] imx-drm: ipu-v3: Add units required for video capture

Besides, is there any difference between IPUv3HDL and IPUv3H? Can't you
reuse it?

Sascha
Philipp Zabel June 11, 2014, 11:38 a.m. UTC | #2
Am Samstag, den 07.06.2014, 14:56 -0700 schrieb Steve Longerbeam:
> Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
> ---
>  drivers/staging/imx-drm/ipu-v3/ipu-common.c |   18 ++++++++++++++++++
>  include/linux/platform_data/imx-ipu-v3.h    |    1 +
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-common.c b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> index f8e8c56..2d95a7c 100644
> --- a/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> +++ b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
> @@ -829,10 +829,28 @@ static struct ipu_devtype ipu_type_imx6q = {
>  	.type = IPUV3H,
>  };
>  
> +static struct ipu_devtype ipu_type_imx6dl = {
> +	.name = "IPUv3HDL",
> +	.cm_ofs = 0x00200000,
> +	.cpmem_ofs = 0x00300000,
> +	.srm_ofs = 0x00340000,
> +	.tpm_ofs = 0x00360000,
> +	.csi0_ofs = 0x00230000,
> +	.csi1_ofs = 0x00238000,
> +	.disp0_ofs = 0x00240000,
> +	.disp1_ofs = 0x00248000,
> +	.smfc_ofs =  0x00250000,
> +	.ic_ofs = 0x00220000,
> +	.vdi_ofs = 0x00268000,
> +	.dc_tmpl_ofs = 0x00380000,
> +	.type = IPUV3HDL,
> +};

This just duplicates ipu_type_imx6. Do I understand correctly that this
new type was added just to account for the different input multiplexer
setup between i.MX6Q and i.MX6DL outside of the IPU?

This would not be necessary if we describe the multiplexers as separate
v4l2_subdev entities. The same applies to the following patch 05/43.

regards
Philipp

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

Patch

diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-common.c b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
index f8e8c56..2d95a7c 100644
--- a/drivers/staging/imx-drm/ipu-v3/ipu-common.c
+++ b/drivers/staging/imx-drm/ipu-v3/ipu-common.c
@@ -829,10 +829,28 @@  static struct ipu_devtype ipu_type_imx6q = {
 	.type = IPUV3H,
 };
 
+static struct ipu_devtype ipu_type_imx6dl = {
+	.name = "IPUv3HDL",
+	.cm_ofs = 0x00200000,
+	.cpmem_ofs = 0x00300000,
+	.srm_ofs = 0x00340000,
+	.tpm_ofs = 0x00360000,
+	.csi0_ofs = 0x00230000,
+	.csi1_ofs = 0x00238000,
+	.disp0_ofs = 0x00240000,
+	.disp1_ofs = 0x00248000,
+	.smfc_ofs =  0x00250000,
+	.ic_ofs = 0x00220000,
+	.vdi_ofs = 0x00268000,
+	.dc_tmpl_ofs = 0x00380000,
+	.type = IPUV3HDL,
+};
+
 static const struct of_device_id imx_ipu_dt_ids[] = {
 	{ .compatible = "fsl,imx51-ipu", .data = &ipu_type_imx51, },
 	{ .compatible = "fsl,imx53-ipu", .data = &ipu_type_imx53, },
 	{ .compatible = "fsl,imx6q-ipu", .data = &ipu_type_imx6q, },
+	{ .compatible = "fsl,imx6dl-ipu", .data = &ipu_type_imx6dl, },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, imx_ipu_dt_ids);
diff --git a/include/linux/platform_data/imx-ipu-v3.h b/include/linux/platform_data/imx-ipu-v3.h
index ca91dd9..8050277 100644
--- a/include/linux/platform_data/imx-ipu-v3.h
+++ b/include/linux/platform_data/imx-ipu-v3.h
@@ -23,6 +23,7 @@  enum ipuv3_type {
 	IPUV3EX,
 	IPUV3M,
 	IPUV3H,
+	IPUV3HDL,
 };
 
 #define IPU_PIX_FMT_GBR24	v4l2_fourcc('G', 'B', 'R', '3')