devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	devicetree@vger.kernel.org, Wynter Woods <wynter@nextthing.co>,
	Mike Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Hans de Goede <hdegoede@redhat.com>,
	linux-sunxi@googlegroups.com,
	Alexander Kaplan <alex@nextthing.co>,
	Chen-Yu Tsai <wens@csie.org>,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 13/26] drm/fb_cma_helper: Remove implicit call to disable_unused_functions
Date: Fri, 15 Jan 2016 01:13:05 +0200	[thread overview]
Message-ID: <2014724.QmjXVju9UW@avalon> (raw)
In-Reply-To: <1452785109-6172-14-git-send-email-maxime.ripard@free-electrons.com>

Hi Maxime,

Thank you for the patch.

On Thursday 14 January 2016 16:24:56 Maxime Ripard wrote:
> The drm_fbdev_cma_init function always calls the
> drm_helper_disable_unused_functions. Since it's part of the usual probe
> process, all the drivers using that helper will end up having their encoder
> and CRTC disable functions called at probe if their device has not been
> reported as enabled.
> 
> This could be fixed by reading out from the registers the current state of
> the device if it is enabled, but even that will not handle the case where
> the device is actually disabled.
> 
> Moreover, the drivers using the atomic modesetting expect that their enable
> and disable callback to be called when the device is already enabled or
> disabled (respectively).
> 
> We can however fix this issue by moving the call to
> drm_helper_disable_unused_functions out of drm_fbdev_cma_init and make the
> drivers needing it (all the drivers calling drm_fbdev_cma_init and not
> using the atomic modesetting) explicitly call it.

I'd rather add it to all drivers that call drm_fbdev_cma_init(). All the 
atomic ones must have special code to cope with it that could be rendered 
useless by the removal of the drm_helper_disable_unused_functions() call. That 
code should be removed too, and it would be easier to check drivers one by one 
and fixing them individually (outside of this patch series, unless you insist 
;-)) when removing the explicit drm_helper_disable_unused_functions() call. 
Other than that the patch looks fine to me.

> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/drm_fb_cma_helper.c | 3 ---
>  drivers/gpu/drm/imx/imx-drm-core.c  | 1 +
>  drivers/gpu/drm/sti/sti_drv.c       | 1 +
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c | 1 +
>  4 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c
> b/drivers/gpu/drm/drm_fb_cma_helper.c index c19a62561183..daa98d881142
> 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -348,9 +348,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct
> drm_device *dev,
> 
>  	}
> 
> -	/* disable all the possible outputs/crtcs before entering KMS mode */
> -	drm_helper_disable_unused_functions(dev);
> -
>  	ret = drm_fb_helper_initial_config(helper, preferred_bpp);
>  	if (ret < 0) {
>  		dev_err(dev->dev, "Failed to set initial hw configuration.\n");
> diff --git a/drivers/gpu/drm/imx/imx-drm-core.c
> b/drivers/gpu/drm/imx/imx-drm-core.c index 7b990b4e96d2..e1db57791fc9
> 100644
> --- a/drivers/gpu/drm/imx/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/imx-drm-core.c
> @@ -312,6 +312,7 @@ static int imx_drm_driver_load(struct drm_device *drm,
> unsigned long flags) dev_warn(drm->dev, "Invalid legacyfb_depth. 
> Defaulting to 16bpp\n"); legacyfb_depth = 16;
>  	}
> +	drm_helper_disable_unused_functions(drm);
>  	imxdrm->fbhelper = drm_fbdev_cma_init(drm, legacyfb_depth,
>  				drm->mode_config.num_crtc, MAX_CRTC);
>  	if (IS_ERR(imxdrm->fbhelper)) {
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 1469987949d8..506b5626f3ed 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -160,6 +160,7 @@ static int sti_load(struct drm_device *dev, unsigned
> long flags)
> 
>  	drm_mode_config_reset(dev);
> 
> +	drm_helper_disable_unused_functions(dev);
>  	drm_fbdev_cma_init(dev, 32,
>  			   dev->mode_config.num_crtc,
>  			   dev->mode_config.num_connector);
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> b/drivers/gpu/drm/tilcdc/tilcdc_drv.c index 876cad58b1f9..24be31d69701
> 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -294,6 +294,7 @@ static int tilcdc_load(struct drm_device *dev, unsigned
> long flags) break;
>  	}
> 
> +	drm_helper_disable_unused_functions(dev);
>  	priv->fbdev = drm_fbdev_cma_init(dev, bpp,
>  			dev->mode_config.num_crtc,
>  			dev->mode_config.num_connector);

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2016-01-14 23:13 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-14 15:24 [PATCH v2 00/26] drm: Add Allwinner A10 display engine support Maxime Ripard
     [not found] ` <1452785109-6172-1-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-14 15:24   ` [PATCH v2 01/26] reset: Move DT cell size check to the core Maxime Ripard
     [not found]     ` <1452785109-6172-2-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15 15:50       ` Philipp Zabel
2016-01-14 15:24   ` [PATCH v2 02/26] reset: Make reset_control_ops const Maxime Ripard
     [not found]     ` <1452785109-6172-3-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15 15:50       ` Philipp Zabel
2016-01-14 15:24   ` [PATCH v2 03/26] clk: Add regmap support Maxime Ripard
     [not found]     ` <1452785109-6172-4-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-28  7:56       ` Stephen Boyd
2016-01-14 15:24   ` [PATCH v2 04/26] clk: composite: Add unregister function Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 05/26] clk: sunxi: Add display and TCON0 clocks driver Maxime Ripard
     [not found]     ` <1452785109-6172-6-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:01       ` Rob Herring
2016-01-16 14:08       ` Priit Laes
2016-01-16 15:29       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v65=EVTQo8KFMECVR4=94i0rt0V1H07hWKyXShSZxGYKEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-03 20:18           ` Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 06/26] clk: sunxi: Add PLL3 clock Maxime Ripard
     [not found]     ` <1452785109-6172-7-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:02       ` Rob Herring
2016-01-16 16:05       ` Chen-Yu Tsai
2016-02-03 20:27         ` Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 07/26] clk: sunxi: Add TCON channel1 clock Maxime Ripard
     [not found]     ` <1452785109-6172-8-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:03       ` Rob Herring
2016-01-16 16:36       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v65_jsmiQ6DNCznFuQCcWxqs1N2fYJ-8OiUJ_BR+jf314w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-03 20:29           ` Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 08/26] clk: sun5i: add DRAM gates Maxime Ripard
     [not found]     ` <1452785109-6172-9-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:04       ` Rob Herring
2016-01-14 15:24   ` [PATCH v2 09/26] ARM: sun5i: dt: Add pll3 and pll7 clocks Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 10/26] ARM: sun5i: a13: Add display and TCON clocks Maxime Ripard
     [not found]     ` <1452785109-6172-11-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-16 17:06       ` Chen-Yu Tsai
2016-02-03 20:31         ` Maxime Ripard
2016-02-05  9:49           ` Chen-Yu Tsai
2016-01-14 15:24   ` [PATCH v2 11/26] ARM: sun5i: Add DRAM gates Maxime Ripard
     [not found]     ` <1452785109-6172-12-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-16 17:10       ` Chen-Yu Tsai
2016-02-03 20:36         ` Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 12/26] ARM: sun5i: Add TV encoder gate to the DTSI Maxime Ripard
     [not found]     ` <1452785109-6172-13-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-16 17:12       ` Chen-Yu Tsai
2016-01-14 15:24   ` [PATCH v2 13/26] drm/fb_cma_helper: Remove implicit call to disable_unused_functions Maxime Ripard
2016-01-14 23:13     ` Laurent Pinchart [this message]
2016-01-15 10:17       ` Daniel Vetter
2016-01-24 22:19         ` Laurent Pinchart
2016-01-24 22:19         ` Laurent Pinchart
     [not found]         ` <20160115101730.GH19130-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2016-01-24 22:19           ` Laurent Pinchart
2016-01-24 22:19         ` Laurent Pinchart
2016-01-24 22:19         ` Laurent Pinchart
     [not found]         ` <1484612.l42nGNbAu5@avalon>
2016-01-25  7:29           ` Daniel Vetter
2016-01-25 19:02             ` Laurent Pinchart
2016-01-25 19:02             ` Laurent Pinchart
2016-01-25 19:02             ` Laurent Pinchart
     [not found]             ` <20160125072938.GI11240-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2016-01-25 19:02               ` Laurent Pinchart
2016-01-25 19:02             ` Laurent Pinchart
2016-01-14 15:24   ` [PATCH v2 14/26] drm/modes: Rewrite the command line parser Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 15/26] drm/modes: Support modes names on the command line Maxime Ripard
2016-01-14 15:24   ` [PATCH v2 16/26] drm: Add Allwinner A10 Display Engine support Maxime Ripard
     [not found]     ` <1452785109-6172-17-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-16 15:11       ` Priit Laes
     [not found]         ` <1452957104.12419.12.camel-q/aMd4JkU83YtjvyW6yDsg@public.gmane.org>
2016-01-17 12:58           ` [linux-sunxi] " Priit Laes
2016-01-19 15:38         ` Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 17/26] drm: sun4i: Add DT bindings documentation Maxime Ripard
     [not found]     ` <1452785109-6172-18-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:15       ` Rob Herring
2016-02-03 19:59         ` Maxime Ripard
2016-02-03 20:19           ` Rob Herring
2016-02-03 20:47             ` Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 18/26] drm: sun4i: Add RGB output Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 19/26] drm: sun4i: Add composite output Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 20/26] drm: sun4i: tv: Add PAL output standard Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 21/26] drm: sun4i: tv: Add NTSC " Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 22/26] ARM: sun5i: r8: Add display blocks to the DTSI Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 23/26] ARM: sun5i: chip: Enable the TV Encoder Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 24/26] devicetree: Add olimex vendor prefix Maxime Ripard
     [not found]     ` <1452785109-6172-25-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:15       ` Rob Herring
2016-01-15  6:41         ` Stefan Wahren
     [not found]           ` <1957693252.53435.d0a9f334-1bed-484f-886a-05dfab0e0dfa.open-xchange-7tX72C7vayboQLBSYMtkGA@public.gmane.org>
2016-01-15  8:05             ` Maxime Ripard
2016-01-14 15:25   ` [PATCH v2 25/26] drm/panel: simple: Add timings for the Olimex LCD-OLinuXino-4.3TS Maxime Ripard
     [not found]     ` <1452785109-6172-26-git-send-email-maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-01-15  3:17       ` Rob Herring
2016-01-14 15:25   ` [PATCH v2 26/26] DO NOT MERGE: ARM: sun5i: chip: Enable the LCD panel Maxime Ripard
2016-02-20 13:45   ` [PATCH v2 00/26] drm: Add Allwinner A10 display engine support Priit Laes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2014724.QmjXVju9UW@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=alex@nextthing.co \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hdegoede@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@codeaurora.org \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=wens@csie.org \
    --cc=wynter@nextthing.co \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).