Revert "drm/sun4i: Remove R40 display pipeline compatibles"

Submitted by Chen-Yu Tsai on Sept. 21, 2018, 2:27 p.m.

Details

Message ID 20180921142743.8711-1-wens@csie.org
State New
Headers show
Series "Revert "drm/sun4i: Remove R40 display pipeline compatibles"" ( rev: 1 ) in DRI devel

Not browsing as part of any series.

Commit Message

Chen-Yu Tsai Sept. 21, 2018, 2:27 p.m.
This reverts commit 3510e7a7f91088159bfc67e8abdc9f9e77d28870.

During the 4.19 merge window for drm-misc, two patches critical to
supporting the display pipeline on the Allwinner R40 SoC were missed.
They were applied later but missed the merge window deadline. As a
result 4.19-rc1 kernel would crash on the R40 when it couldn't parse
the new device tree structure. We ended up removing support for the
R40 display pipeline for 4.19.

Since the missing patches are already merged for 4.20, we can now
revert the commit that removed support.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---

drm-misc-fixes, which contains the patch to be reverted, should be
merged into drm-misc-next before tihs patch is applied.

Also, checkpatch.pl is complaining that the R40 mixer compatibles are
missing from the device tree bindings. It seems the patch adding them
never made it in. Please apply if possible:

    https://patchwork.kernel.org/patch/10485815/

Thanks

---
 drivers/gpu/drm/sun4i/sun4i_drv.c      |  1 +
 drivers/gpu/drm/sun4i/sun8i_mixer.c    | 24 ++++++++++++++++++++++++
 drivers/gpu/drm/sun4i/sun8i_tcon_top.c |  1 +
 3 files changed, 26 insertions(+)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index 9027ddde4262..1e41c3f5fd6d 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -402,6 +402,7 @@  static const struct of_device_id sun4i_drv_of_table[] = {
 	{ .compatible = "allwinner,sun8i-a33-display-engine" },
 	{ .compatible = "allwinner,sun8i-a83t-display-engine" },
 	{ .compatible = "allwinner,sun8i-h3-display-engine" },
+	{ .compatible = "allwinner,sun8i-r40-display-engine" },
 	{ .compatible = "allwinner,sun8i-v3s-display-engine" },
 	{ .compatible = "allwinner,sun9i-a80-display-engine" },
 	{ .compatible = "allwinner,sun50i-a64-display-engine" },
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
index 091f6cf40353..8b3d02b146b7 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -545,6 +545,22 @@  static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = {
 	.vi_num		= 1,
 };
 
+static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = {
+	.ccsc		= 0,
+	.mod_rate	= 297000000,
+	.scaler_mask	= 0xf,
+	.ui_num		= 3,
+	.vi_num		= 1,
+};
+
+static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = {
+	.ccsc		= 1,
+	.mod_rate	= 297000000,
+	.scaler_mask	= 0x3,
+	.ui_num		= 1,
+	.vi_num		= 1,
+};
+
 static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = {
 	.vi_num = 2,
 	.ui_num = 1,
@@ -582,6 +598,14 @@  static const struct of_device_id sun8i_mixer_of_table[] = {
 		.compatible = "allwinner,sun8i-h3-de2-mixer-0",
 		.data = &sun8i_h3_mixer0_cfg,
 	},
+	{
+		.compatible = "allwinner,sun8i-r40-de2-mixer-0",
+		.data = &sun8i_r40_mixer0_cfg,
+	},
+	{
+		.compatible = "allwinner,sun8i-r40-de2-mixer-1",
+		.data = &sun8i_r40_mixer1_cfg,
+	},
 	{
 		.compatible = "allwinner,sun8i-v3s-de2-mixer",
 		.data = &sun8i_v3s_mixer_cfg,
diff --git a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
index 9831a9fe2cf4..3040a79f298f 100644
--- a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
+++ b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
@@ -252,6 +252,7 @@  static int sun8i_tcon_top_remove(struct platform_device *pdev)
 
 /* sun4i_drv uses this list to check if a device node is a TCON TOP */
 const struct of_device_id sun8i_tcon_top_of_table[] = {
+	{ .compatible = "allwinner,sun8i-r40-tcon-top" },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, sun8i_tcon_top_of_table);

Comments

On Fri, Sep 21, 2018 at 10:27:43PM +0800, Chen-Yu Tsai wrote:
> This reverts commit 3510e7a7f91088159bfc67e8abdc9f9e77d28870.
> 
> During the 4.19 merge window for drm-misc, two patches critical to
> supporting the display pipeline on the Allwinner R40 SoC were missed.
> They were applied later but missed the merge window deadline. As a
> result 4.19-rc1 kernel would crash on the R40 when it couldn't parse
> the new device tree structure. We ended up removing support for the
> R40 display pipeline for 4.19.
> 
> Since the missing patches are already merged for 4.20, we can now
> revert the commit that removed support.
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
> 
> drm-misc-fixes, which contains the patch to be reverted, should be
> merged into drm-misc-next before tihs patch is applied.
> 
> Also, checkpatch.pl is complaining that the R40 mixer compatibles are
> missing from the device tree bindings. It seems the patch adding them
> never made it in. Please apply if possible:
> 
>     https://patchwork.kernel.org/patch/10485815/

Applied both of these to drm-misc-next after backmerging rc5 to pick up the fix.

Sean

> 
> Thanks
> 
> ---
>  drivers/gpu/drm/sun4i/sun4i_drv.c      |  1 +
>  drivers/gpu/drm/sun4i/sun8i_mixer.c    | 24 ++++++++++++++++++++++++
>  drivers/gpu/drm/sun4i/sun8i_tcon_top.c |  1 +
>  3 files changed, 26 insertions(+)
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
> index 9027ddde4262..1e41c3f5fd6d 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
> @@ -402,6 +402,7 @@ static const struct of_device_id sun4i_drv_of_table[] = {
>  	{ .compatible = "allwinner,sun8i-a33-display-engine" },
>  	{ .compatible = "allwinner,sun8i-a83t-display-engine" },
>  	{ .compatible = "allwinner,sun8i-h3-display-engine" },
> +	{ .compatible = "allwinner,sun8i-r40-display-engine" },
>  	{ .compatible = "allwinner,sun8i-v3s-display-engine" },
>  	{ .compatible = "allwinner,sun9i-a80-display-engine" },
>  	{ .compatible = "allwinner,sun50i-a64-display-engine" },
> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
> index 091f6cf40353..8b3d02b146b7 100644
> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
> @@ -545,6 +545,22 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = {
>  	.vi_num		= 1,
>  };
>  
> +static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = {
> +	.ccsc		= 0,
> +	.mod_rate	= 297000000,
> +	.scaler_mask	= 0xf,
> +	.ui_num		= 3,
> +	.vi_num		= 1,
> +};
> +
> +static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = {
> +	.ccsc		= 1,
> +	.mod_rate	= 297000000,
> +	.scaler_mask	= 0x3,
> +	.ui_num		= 1,
> +	.vi_num		= 1,
> +};
> +
>  static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = {
>  	.vi_num = 2,
>  	.ui_num = 1,
> @@ -582,6 +598,14 @@ static const struct of_device_id sun8i_mixer_of_table[] = {
>  		.compatible = "allwinner,sun8i-h3-de2-mixer-0",
>  		.data = &sun8i_h3_mixer0_cfg,
>  	},
> +	{
> +		.compatible = "allwinner,sun8i-r40-de2-mixer-0",
> +		.data = &sun8i_r40_mixer0_cfg,
> +	},
> +	{
> +		.compatible = "allwinner,sun8i-r40-de2-mixer-1",
> +		.data = &sun8i_r40_mixer1_cfg,
> +	},
>  	{
>  		.compatible = "allwinner,sun8i-v3s-de2-mixer",
>  		.data = &sun8i_v3s_mixer_cfg,
> diff --git a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
> index 9831a9fe2cf4..3040a79f298f 100644
> --- a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
> +++ b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
> @@ -252,6 +252,7 @@ static int sun8i_tcon_top_remove(struct platform_device *pdev)
>  
>  /* sun4i_drv uses this list to check if a device node is a TCON TOP */
>  const struct of_device_id sun8i_tcon_top_of_table[] = {
> +	{ .compatible = "allwinner,sun8i-r40-tcon-top" },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, sun8i_tcon_top_of_table);
> -- 
> 2.19.0
>