Re: [PATCH] Revert "drm/sun4i: Remove R40 display pipeline compatibles"

From: Sean Paul
Date: Thu Sep 27 2018 - 04:37:12 EST


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@xxxxxxxx>
> ---
>
> 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
>

--
Sean Paul, Software Engineer, Google / Chromium OS