linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] add support rk3126 vop support
@ 2017-11-14 11:27 Sandy Huang
  2017-11-14 11:27 ` [PATCH 1/2] dt-bindings: add document for rk3126-vop Sandy Huang
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sandy Huang @ 2017-11-14 11:27 UTC (permalink / raw)
  To: linux-arm-kernel

The following patch add support RK3126 vop support, there is only one
VOP at RK3126, and the RK3126 VOP register layout is similar with RK3036,
so some feature can reuse with RK3036.

Sandy Huang (2):
  dt-bindings: add document for rk3126-vop
  drm/rockchip: vop: add rk3126 vop support

 .../bindings/display/rockchip/rockchip-vop.txt     |  1 +
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c        | 30 ++++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_vop_reg.h        |  6 +++++
 3 files changed, 37 insertions(+)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] dt-bindings: add document for rk3126-vop
  2017-11-14 11:27 [PATCH 0/2] add support rk3126 vop support Sandy Huang
@ 2017-11-14 11:27 ` Sandy Huang
  2017-11-16  4:36   ` Rob Herring
  2017-11-14 11:27 ` [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support Sandy Huang
  2017-11-16  9:47 ` [PATCH 0/2] add support " Sandy Huang
  2 siblings, 1 reply; 7+ messages in thread
From: Sandy Huang @ 2017-11-14 11:27 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
---
 Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt
index 5d835d9..eeda359 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt
@@ -7,6 +7,7 @@ buffer to an external LCD interface.
 Required properties:
 - compatible: value should be one of the following
 		"rockchip,rk3036-vop";
+		"rockchip,rk3126-vop";
 		"rockchip,rk3288-vop";
 		"rockchip,rk3368-vop";
 		"rockchip,rk3366-vop";
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support
  2017-11-14 11:27 [PATCH 0/2] add support rk3126 vop support Sandy Huang
  2017-11-14 11:27 ` [PATCH 1/2] dt-bindings: add document for rk3126-vop Sandy Huang
@ 2017-11-14 11:27 ` Sandy Huang
  2017-11-16  5:59   ` Mark yao
  2017-11-16  6:00   ` Mark yao
  2017-11-16  9:47 ` [PATCH 0/2] add support " Sandy Huang
  2 siblings, 2 replies; 7+ messages in thread
From: Sandy Huang @ 2017-11-14 11:27 UTC (permalink / raw)
  To: linux-arm-kernel

RK3126 vop register layout is similar with rk3036, so some feature
can reuse with rk3036.

RK3126 support two overlay plane and one hwc plane, max output
resolution is 1080p. it support IOMMU, and its IOMMU same as
rk3288's

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
---
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 30 +++++++++++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_vop_reg.h |  6 ++++++
 2 files changed, 36 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
index 4a39049..2e4eea3 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
@@ -149,6 +149,34 @@ static const struct vop_data rk3036_vop = {
 	.win_size = ARRAY_SIZE(rk3036_vop_win_data),
 };
 
+static const struct vop_win_phy rk3126_win1_data = {
+	.data_formats = formats_win_lite,
+	.nformats = ARRAY_SIZE(formats_win_lite),
+	.enable = VOP_REG(RK3036_SYS_CTRL, 0x1, 1),
+	.format = VOP_REG(RK3036_SYS_CTRL, 0x7, 6),
+	.rb_swap = VOP_REG(RK3036_SYS_CTRL, 0x1, 19),
+	.dsp_info = VOP_REG(RK3126_WIN1_DSP_INFO, 0x0fff0fff, 0),
+	.dsp_st = VOP_REG(RK3126_WIN1_DSP_ST, 0x1fff1fff, 0),
+	.yrgb_mst = VOP_REG(RK3126_WIN1_MST, 0xffffffff, 0),
+	.yrgb_vir = VOP_REG(RK3036_WIN1_VIR, 0xffff, 0),
+};
+
+static const struct vop_win_data rk3126_vop_win_data[] = {
+	{ .base = 0x00, .phy = &rk3036_win0_data,
+	  .type = DRM_PLANE_TYPE_PRIMARY },
+	{ .base = 0x00, .phy = &rk3126_win1_data,
+	  .type = DRM_PLANE_TYPE_CURSOR },
+};
+
+static const struct vop_data rk3126_vop = {
+	.intr = &rk3036_intr,
+	.common = &rk3036_common,
+	.modeset = &rk3036_modeset,
+	.output = &rk3036_output,
+	.win = rk3126_vop_win_data,
+	.win_size = ARRAY_SIZE(rk3126_vop_win_data),
+};
+
 static const struct vop_scl_extension rk3288_win_full_scl_ext = {
 	.cbcr_vsd_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 31),
 	.cbcr_vsu_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 30),
@@ -510,6 +538,8 @@ static const struct vop_data rk3328_vop = {
 static const struct of_device_id vop_driver_dt_match[] = {
 	{ .compatible = "rockchip,rk3036-vop",
 	  .data = &rk3036_vop },
+	{ .compatible = "rockchip,rk3126-vop",
+	  .data = &rk3126_vop },
 	{ .compatible = "rockchip,rk3288-vop",
 	  .data = &rk3288_vop },
 	{ .compatible = "rockchip,rk3368-vop",
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
index 4a4799f..f81b510 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
@@ -878,4 +878,10 @@
 #define RK3036_HWC_LUT_ADDR		0x800
 /* rk3036 register definition end */
 
+/* rk3126 register definition */
+#define RK3126_WIN1_MST			0x4c
+#define RK3126_WIN1_DSP_INFO		0x50
+#define RK3126_WIN1_DSP_ST		0x54
+/* rk3126 register definition end */
+
 #endif /* _ROCKCHIP_VOP_REG_H */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 1/2] dt-bindings: add document for rk3126-vop
  2017-11-14 11:27 ` [PATCH 1/2] dt-bindings: add document for rk3126-vop Sandy Huang
@ 2017-11-16  4:36   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2017-11-16  4:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 14, 2017 at 07:27:34PM +0800, Sandy Huang wrote:
> Signed-off-by: Sandy Huang <hjc@rock-chips.com>
> ---
>  Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt | 1 +
>  1 file changed, 1 insertion(+)

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support
  2017-11-14 11:27 ` [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support Sandy Huang
@ 2017-11-16  5:59   ` Mark yao
  2017-11-16  6:00   ` Mark yao
  1 sibling, 0 replies; 7+ messages in thread
From: Mark yao @ 2017-11-16  5:59 UTC (permalink / raw)
  To: linux-arm-kernel

On 2017?11?14? 19:27, Sandy Huang wrote:
> RK3126 vop register layout is similar with rk3036, so some feature
> can reuse with rk3036.
>
> RK3126 support two overlay plane and one hwc plane, max output
> resolution is 1080p. it support IOMMU, and its IOMMU same as
> rk3288's
>
> Signed-off-by: Sandy Huang <hjc@rock-chips.com>

Looks good.

Reviewed-by:? Mark Yao <mark.yao@rock-chips.com>

> ---
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 30 +++++++++++++++++++++++++++++
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.h |  6 ++++++
>   2 files changed, 36 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> index 4a39049..2e4eea3 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> @@ -149,6 +149,34 @@ static const struct vop_data rk3036_vop = {
>   	.win_size = ARRAY_SIZE(rk3036_vop_win_data),
>   };
>   
> +static const struct vop_win_phy rk3126_win1_data = {
> +	.data_formats = formats_win_lite,
> +	.nformats = ARRAY_SIZE(formats_win_lite),
> +	.enable = VOP_REG(RK3036_SYS_CTRL, 0x1, 1),
> +	.format = VOP_REG(RK3036_SYS_CTRL, 0x7, 6),
> +	.rb_swap = VOP_REG(RK3036_SYS_CTRL, 0x1, 19),
> +	.dsp_info = VOP_REG(RK3126_WIN1_DSP_INFO, 0x0fff0fff, 0),
> +	.dsp_st = VOP_REG(RK3126_WIN1_DSP_ST, 0x1fff1fff, 0),
> +	.yrgb_mst = VOP_REG(RK3126_WIN1_MST, 0xffffffff, 0),
> +	.yrgb_vir = VOP_REG(RK3036_WIN1_VIR, 0xffff, 0),
> +};
> +
> +static const struct vop_win_data rk3126_vop_win_data[] = {
> +	{ .base = 0x00, .phy = &rk3036_win0_data,
> +	  .type = DRM_PLANE_TYPE_PRIMARY },
> +	{ .base = 0x00, .phy = &rk3126_win1_data,
> +	  .type = DRM_PLANE_TYPE_CURSOR },
> +};
> +
> +static const struct vop_data rk3126_vop = {
> +	.intr = &rk3036_intr,
> +	.common = &rk3036_common,
> +	.modeset = &rk3036_modeset,
> +	.output = &rk3036_output,
> +	.win = rk3126_vop_win_data,
> +	.win_size = ARRAY_SIZE(rk3126_vop_win_data),
> +};
> +
>   static const struct vop_scl_extension rk3288_win_full_scl_ext = {
>   	.cbcr_vsd_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 31),
>   	.cbcr_vsu_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 30),
> @@ -510,6 +538,8 @@ static const struct vop_data rk3328_vop = {
>   static const struct of_device_id vop_driver_dt_match[] = {
>   	{ .compatible = "rockchip,rk3036-vop",
>   	  .data = &rk3036_vop },
> +	{ .compatible = "rockchip,rk3126-vop",
> +	  .data = &rk3126_vop },
>   	{ .compatible = "rockchip,rk3288-vop",
>   	  .data = &rk3288_vop },
>   	{ .compatible = "rockchip,rk3368-vop",
> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> index 4a4799f..f81b510 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> @@ -878,4 +878,10 @@
>   #define RK3036_HWC_LUT_ADDR		0x800
>   /* rk3036 register definition end */
>   
> +/* rk3126 register definition */
> +#define RK3126_WIN1_MST			0x4c
> +#define RK3126_WIN1_DSP_INFO		0x50
> +#define RK3126_WIN1_DSP_ST		0x54
> +/* rk3126 register definition end */
> +
>   #endif /* _ROCKCHIP_VOP_REG_H */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support
  2017-11-14 11:27 ` [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support Sandy Huang
  2017-11-16  5:59   ` Mark yao
@ 2017-11-16  6:00   ` Mark yao
  1 sibling, 0 replies; 7+ messages in thread
From: Mark yao @ 2017-11-16  6:00 UTC (permalink / raw)
  To: linux-arm-kernel

On 2017?11?14? 19:27, Sandy Huang wrote:
> RK3126 vop register layout is similar with rk3036, so some feature
> can reuse with rk3036.
>
> RK3126 support two overlay plane and one hwc plane, max output
> resolution is 1080p. it support IOMMU, and its IOMMU same as
> rk3288's
>
> Signed-off-by: Sandy Huang <hjc@rock-chips.com>

Looks good.
Reviewed-by:? Mark Yao <mark.yao@rock-chips.com>

> ---
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 30 +++++++++++++++++++++++++++++
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.h |  6 ++++++
>   2 files changed, 36 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> index 4a39049..2e4eea3 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
> @@ -149,6 +149,34 @@ static const struct vop_data rk3036_vop = {
>   	.win_size = ARRAY_SIZE(rk3036_vop_win_data),
>   };
>   
> +static const struct vop_win_phy rk3126_win1_data = {
> +	.data_formats = formats_win_lite,
> +	.nformats = ARRAY_SIZE(formats_win_lite),
> +	.enable = VOP_REG(RK3036_SYS_CTRL, 0x1, 1),
> +	.format = VOP_REG(RK3036_SYS_CTRL, 0x7, 6),
> +	.rb_swap = VOP_REG(RK3036_SYS_CTRL, 0x1, 19),
> +	.dsp_info = VOP_REG(RK3126_WIN1_DSP_INFO, 0x0fff0fff, 0),
> +	.dsp_st = VOP_REG(RK3126_WIN1_DSP_ST, 0x1fff1fff, 0),
> +	.yrgb_mst = VOP_REG(RK3126_WIN1_MST, 0xffffffff, 0),
> +	.yrgb_vir = VOP_REG(RK3036_WIN1_VIR, 0xffff, 0),
> +};
> +
> +static const struct vop_win_data rk3126_vop_win_data[] = {
> +	{ .base = 0x00, .phy = &rk3036_win0_data,
> +	  .type = DRM_PLANE_TYPE_PRIMARY },
> +	{ .base = 0x00, .phy = &rk3126_win1_data,
> +	  .type = DRM_PLANE_TYPE_CURSOR },
> +};
> +
> +static const struct vop_data rk3126_vop = {
> +	.intr = &rk3036_intr,
> +	.common = &rk3036_common,
> +	.modeset = &rk3036_modeset,
> +	.output = &rk3036_output,
> +	.win = rk3126_vop_win_data,
> +	.win_size = ARRAY_SIZE(rk3126_vop_win_data),
> +};
> +
>   static const struct vop_scl_extension rk3288_win_full_scl_ext = {
>   	.cbcr_vsd_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 31),
>   	.cbcr_vsu_mode = VOP_REG(RK3288_WIN0_CTRL1, 0x1, 30),
> @@ -510,6 +538,8 @@ static const struct vop_data rk3328_vop = {
>   static const struct of_device_id vop_driver_dt_match[] = {
>   	{ .compatible = "rockchip,rk3036-vop",
>   	  .data = &rk3036_vop },
> +	{ .compatible = "rockchip,rk3126-vop",
> +	  .data = &rk3126_vop },
>   	{ .compatible = "rockchip,rk3288-vop",
>   	  .data = &rk3288_vop },
>   	{ .compatible = "rockchip,rk3368-vop",
> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> index 4a4799f..f81b510 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
> @@ -878,4 +878,10 @@
>   #define RK3036_HWC_LUT_ADDR		0x800
>   /* rk3036 register definition end */
>   
> +/* rk3126 register definition */
> +#define RK3126_WIN1_MST			0x4c
> +#define RK3126_WIN1_DSP_INFO		0x50
> +#define RK3126_WIN1_DSP_ST		0x54
> +/* rk3126 register definition end */
> +
>   #endif /* _ROCKCHIP_VOP_REG_H */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 0/2] add support rk3126 vop support
  2017-11-14 11:27 [PATCH 0/2] add support rk3126 vop support Sandy Huang
  2017-11-14 11:27 ` [PATCH 1/2] dt-bindings: add document for rk3126-vop Sandy Huang
  2017-11-14 11:27 ` [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support Sandy Huang
@ 2017-11-16  9:47 ` Sandy Huang
  2 siblings, 0 replies; 7+ messages in thread
From: Sandy Huang @ 2017-11-16  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

pushed to drm-misc-next.

? 2017/11/14 19:27, Sandy Huang ??:
> The following patch add support RK3126 vop support, there is only one
> VOP at RK3126, and the RK3126 VOP register layout is similar with RK3036,
> so some feature can reuse with RK3036.
> 
> Sandy Huang (2):
>    dt-bindings: add document for rk3126-vop
>    drm/rockchip: vop: add rk3126 vop support
> 
>   .../bindings/display/rockchip/rockchip-vop.txt     |  1 +
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.c        | 30 ++++++++++++++++++++++
>   drivers/gpu/drm/rockchip/rockchip_vop_reg.h        |  6 +++++
>   3 files changed, 37 insertions(+)
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-11-16  9:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-14 11:27 [PATCH 0/2] add support rk3126 vop support Sandy Huang
2017-11-14 11:27 ` [PATCH 1/2] dt-bindings: add document for rk3126-vop Sandy Huang
2017-11-16  4:36   ` Rob Herring
2017-11-14 11:27 ` [PATCH 2/2] drm/rockchip: vop: add rk3126 vop support Sandy Huang
2017-11-16  5:59   ` Mark yao
2017-11-16  6:00   ` Mark yao
2017-11-16  9:47 ` [PATCH 0/2] add support " Sandy Huang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).