All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Jyri Sarha <jsarha@ti.com>
Cc: tomi.valkeinen@ti.com, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH RFC 6/9] drm/omap: dss: Move platform_device_register from core.c to dss.c probe
Date: Tue, 27 Feb 2018 16:46:40 +0200	[thread overview]
Message-ID: <4235558.Q8LYdxuuu4@avalon> (raw)
In-Reply-To: <d75c8732adfd071c5561fddd93413ccabb53ea90.1518780268.git.jsarha@ti.com>

Hi Jyri,

Thank you for the patch.

On Friday, 16 February 2018 13:25:07 EET Jyri Sarha wrote:
> Register the omapdrm device when we know that dss device probe going
> to succeed. This avoids DSS6 and DSS2 omapdrm device registration from
> colliding with each other.
> 
> Signed-off-by: Jyri Sarha <jsarha@ti.com>
> ---
>  drivers/gpu/drm/omapdrm/dss/core.c | 26 ++------------------------
>  drivers/gpu/drm/omapdrm/dss/dss.c  | 19 +++++++++++++++++++
>  2 files changed, 21 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/core.c
> b/drivers/gpu/drm/omapdrm/dss/core.c index acef7ec..6c9f667 100644
> --- a/drivers/gpu/drm/omapdrm/dss/core.c
> +++ b/drivers/gpu/drm/omapdrm/dss/core.c
> @@ -45,36 +45,14 @@ static struct platform_driver * const omap_dss_drivers[]
> = { #endif
>  };
> 
> -static struct platform_device *omap_drm_device;
> -
>  static int __init omap_dss_init(void)
>  {
> -	int r;
> -
> -	r = platform_register_drivers(omap_dss_drivers,
> -				      ARRAY_SIZE(omap_dss_drivers));
> -	if (r)
> -		goto err_reg;
> -
> -	omap_drm_device = platform_device_register_simple("omapdrm", 0, NULL, 0);
> -	if (IS_ERR(omap_drm_device)) {
> -		r = PTR_ERR(omap_drm_device);
> -		goto err_reg;
> -	}
> -
> -	return 0;
> -
> -err_reg:
> -	platform_unregister_drivers(omap_dss_drivers,
> -				    ARRAY_SIZE(omap_dss_drivers));
> -
> -	return r;
> +	return platform_register_drivers(omap_dss_drivers,
> +					 ARRAY_SIZE(omap_dss_drivers));
>  }
> 
>  static void __exit omap_dss_exit(void)
>  {
> -	platform_device_unregister(omap_drm_device);
> -
>  	platform_unregister_drivers(omap_dss_drivers,
>  				    ARRAY_SIZE(omap_dss_drivers));
>  }
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c
> b/drivers/gpu/drm/omapdrm/dss/dss.c index 5752328..dda3237 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -1314,6 +1314,17 @@ static const struct soc_device_attribute
> dss_soc_devices[] = { { /* sentinel */ }
>  };
> 
> +static struct platform_device *omap_drm_device;

Let's store this in the dss_device structure instead of adding a new global 
variable. I've spent enough time chasing the globals, I don't want any new one 
:-)

> +static int initialize_omapdrm_device(void)
> +{
> +	omap_drm_device = platform_device_register_simple("omapdrm", 0, NULL, 0);
> +	if (IS_ERR(omap_drm_device))
> +		return PTR_ERR(omap_drm_device);
> +
> +	return 0;
> +}
> +
>  static int dss_bind(struct device *dev)
>  {
>  	struct dss_device *dss = dev_get_drvdata(dev);
> @@ -1323,6 +1334,12 @@ static int dss_bind(struct device *dev)
>  	if (r)
>  		return r;
> 
> +	r = initialize_omapdrm_device();
> +	if (r) {
> +		component_unbind_all(dev, NULL);
> +		return r;
> +	}
> +

Should this be called after omapdss_gather_components() and omapdss_set_dss() 
to make sure the omapdrm probe won't be deferred by the DSS not being 
initialized ?

>  	pm_set_vt_switch(0);
> 
>  	omapdss_gather_components(dev);
> @@ -1335,6 +1352,8 @@ static void dss_unbind(struct device *dev)
>  {
>  	omapdss_set_dss(NULL);
> 
> +	platform_device_unregister(omap_drm_device);
> +

Same here, should this be called before omapdss_set_dss() for symmetry ?

>  	component_unbind_all(dev, NULL);
>  }

-- 
Regards,

Laurent Pinchart

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

  reply	other threads:[~2018-02-27 14:45 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-16 11:25 [PATCH RFC 0/9] drm/omap: DSS6 with dynamically allocated objects Jyri Sarha
2018-02-16 11:25 ` [PATCH RFC 1/9] drm/omap: Update omapdss API to allow alternative DSS implementations Jyri Sarha
2018-02-19 12:01   ` Tomi Valkeinen
2018-02-27 14:27     ` Laurent Pinchart
2018-02-16 11:25 ` [PATCH RFC 2/9] drm/omap: Fail probe if irq registration fails Jyri Sarha
2018-02-27 14:27   ` Laurent Pinchart
2018-02-16 11:25 ` [PATCH RFC 3/9] drm/omap: Add ovl_name() and mgr_name() to dispc_ops Jyri Sarha
2018-02-27 14:35   ` Laurent Pinchart
2018-02-28 11:37     ` Tomi Valkeinen
2018-02-28 13:23       ` Laurent Pinchart
2018-02-28 14:05         ` Tomi Valkeinen
2018-02-28 14:24           ` Laurent Pinchart
2018-02-28 14:31             ` Tomi Valkeinen
2018-02-16 11:25 ` [PATCH RFC 4/9] drm/omap: Make omapdss API more generic Jyri Sarha
2018-02-19 12:41   ` Tomi Valkeinen
2018-02-16 11:25 ` [PATCH RFC 5/9] drm/omap: move common stuff from dss.h to omapdss.h Jyri Sarha
2018-02-19 12:06   ` Tomi Valkeinen
2018-02-27 14:42   ` Laurent Pinchart
2018-02-16 11:25 ` [PATCH RFC 6/9] drm/omap: dss: Move platform_device_register from core.c to dss.c probe Jyri Sarha
2018-02-27 14:46   ` Laurent Pinchart [this message]
2018-02-16 11:25 ` [PATCH RFC 7/9] drm/omap: dss: platform_register_drivers() to dss.c and remove core.c Jyri Sarha
2018-02-27 14:48   ` Laurent Pinchart
2018-02-16 11:25 ` [PATCH RFC 8/9] drm/omap: add TI DSS6 driver Jyri Sarha
2018-02-16 11:25 ` [PATCH RFC 9/9] drm/omap: boot-init: add k2g-dss Jyri Sarha
2018-02-27 14:15   ` Laurent Pinchart
2018-02-27 14:15     ` Laurent Pinchart

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=4235558.Q8LYdxuuu4@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=tomi.valkeinen@ti.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.