[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <PQHA7R.CIX6XS4CFLMM3@crapouillou.net>
Date: Mon, 14 Feb 2022 10:13:37 +0000
From: Paul Cercueil <paul@...pouillou.net>
To: "H. Nikolaus Schaller" <hns@...delico.com>
Cc: Andrzej Hajda <andrzej.hajda@...el.com>,
Neil Armstrong <narmstrong@...libre.com>,
Robert Foss <robert.foss@...aro.org>,
Paul Boddie <paul@...die.org.uk>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>,
Jernej Skrabec <jernej.skrabec@...il.com>,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>,
Maxime Ripard <maxime@...no.tech>,
Harry Wentland <harry.wentland@....com>,
Kieran Bingham <kieran.bingham+renesas@...asonboard.com>,
Jonas Karlman <jonas@...boo.se>, linux-kernel@...r.kernel.org,
dri-devel@...ts.freedesktop.org, linux-mips@...r.kernel.org,
letux-kernel@...nphoenux.org,
Ezequiel Garcia <ezequiel@...labora.com>
Subject: Re: [PATCH v15 1/7] drm/ingenic: Fix support for JZ4780 HDMI output
Hi,
Le sam., févr. 12 2022 at 16:50:49 +0100, H. Nikolaus Schaller
<hns@...delico.com> a écrit :
> From: Paul Boddie <paul@...die.org.uk>
>
> We have to make sure that
> - JZ_LCD_OSDC_ALPHAEN is set
> - plane f0 is disabled and not seen from user-space
Actually it will still be seen from user-space, but it won't be
possible to use it. So before applying I'll change this to:
"plane f0 is disabled as it's not working yet"
If that's OK with you.
Cheers,
-Paul
>
> Tested on MIPS Creator CI20 board.
>
> Signed-off-by: Paul Boddie <paul@...die.org.uk>
> Signed-off-by: Ezequiel Garcia <ezequiel@...labora.com>
> Signed-off-by: H. Nikolaus Schaller <hns@...delico.com>
> ---
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> index 7f10d6eed549d..dcf44cb00821f 100644
> --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> @@ -65,8 +65,10 @@ struct ingenic_dma_hwdescs {
> struct jz_soc_info {
> bool needs_dev_clk;
> bool has_osd;
> + bool has_alpha;
> bool map_noncoherent;
> bool use_extended_hwdesc;
> + bool plane_f0_not_working;
> unsigned int max_width, max_height;
> const u32 *formats_f0, *formats_f1;
> unsigned int num_formats_f0, num_formats_f1;
> @@ -453,7 +455,7 @@ static int ingenic_drm_plane_atomic_check(struct
> drm_plane *plane,
> if (!crtc)
> return 0;
>
> - if (plane == &priv->f0)
> + if (priv->soc_info->plane_f0_not_working && plane == &priv->f0)
> return -EINVAL;
>
> crtc_state = drm_atomic_get_existing_crtc_state(state,
> @@ -1055,6 +1057,7 @@ static int ingenic_drm_bind(struct device *dev,
> bool has_components)
> long parent_rate;
> unsigned int i, clone_mask = 0;
> int ret, irq;
> + u32 osdc = 0;
>
> soc_info = of_device_get_match_data(dev);
> if (!soc_info) {
> @@ -1312,7 +1315,10 @@ static int ingenic_drm_bind(struct device
> *dev, bool has_components)
>
> /* Enable OSD if available */
> if (soc_info->has_osd)
> - regmap_write(priv->map, JZ_REG_LCD_OSDC, JZ_LCD_OSDC_OSDEN);
> + osdc |= JZ_LCD_OSDC_OSDEN;
> + if (soc_info->has_alpha)
> + osdc |= JZ_LCD_OSDC_ALPHAEN;
> + regmap_write(priv->map, JZ_REG_LCD_OSDC, osdc);
>
> mutex_init(&priv->clk_mutex);
> priv->clock_nb.notifier_call = ingenic_drm_update_pixclk;
> @@ -1511,7 +1517,9 @@ static const struct jz_soc_info jz4770_soc_info
> = {
> static const struct jz_soc_info jz4780_soc_info = {
> .needs_dev_clk = true,
> .has_osd = true,
> + .has_alpha = true,
> .use_extended_hwdesc = true,
> + .plane_f0_not_working = true, /* REVISIT */
> .max_width = 4096,
> .max_height = 2048,
> .formats_f1 = jz4770_formats_f1,
> --
> 2.33.0
>
Powered by blists - more mailing lists