[PATCH v3 07/11] drm: omapdrm: Register omapdrm platform device in omapdss driver

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Sep 28 08:56:37 UTC 2017


Hi Tomi,

On Thursday, 28 September 2017 11:03:32 EEST Tomi Valkeinen wrote:
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> On 11/08/17 16:49, Laurent Pinchart wrote:
> > The omapdrm platform device is a virtual device created for the sole
> > purpose of handling the omapdss/omapdrm driver split. It should
> > eventually be removed. As a first step to ease refactoring move its
> > registration from platform code to driver code.
> > 
> > The omapdrm driver name must be changed internally to avoid probing both
> > the device registered in platform code and the device registered in the
> > omapdss driver, as that would otherwise break bisection.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> > ---
> > Changes since v1:
> > 
> > - Drop the CONFIG_DRM_OMAP conditional compilation
> > - Unregister the platform device at exit time
> > ---
> > 
> >  drivers/gpu/drm/omapdrm/dss/core.c | 15 +++++++++++++++
> >  drivers/gpu/drm/omapdrm/omap_drv.c |  2 +-
> >  2 files changed, 16 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/dss/core.c
> > b/drivers/gpu/drm/omapdrm/dss/core.c index 4dabe32c7098..8678d8b4efce
> > 100644
> > --- a/drivers/gpu/drm/omapdrm/dss/core.c
> > +++ b/drivers/gpu/drm/omapdrm/dss/core.c
> > @@ -22,6 +22,7 @@
> > 
> >  #define DSS_SUBSYS_NAME "CORE"
> > 
> > +#include <linux/dma-mapping.h>
> > 
> >  #include <linux/kernel.h>
> >  #include <linux/module.h>
> >  #include <linux/clk.h>
> > 
> > @@ -103,6 +104,14 @@ static void (*dss_output_drv_unreg_funcs[])(void) = {
> > 
> >  	dss_uninit_platform_driver,
> >  
> >  };
> > 
> > +static struct platform_device omap_drm_device = {
> > +	.dev = {
> > +		.coherent_dma_mask = DMA_BIT_MASK(32),
> > +	},
> > +	.name = "omapdrm_",
> > +	.id = 0,
> > +};
> > +
> > 
> >  static int __init omap_dss_init(void)
> >  {
> >  
> >  	int r;
> > 
> > @@ -118,6 +127,10 @@ static int __init omap_dss_init(void)
> > 
> >  			goto err_reg;
> >  	
> >  	}
> > 
> > +	r = platform_device_register(&omap_drm_device);
> > +	if (r)
> > +		goto err_reg;
> > +
> 
> Was there a reason to create the omapdrm device in omap_dss_init (i.e.
> module_init), instead of omapdss's probe? Now the omapdrm device is
> always created even if there's no DSS device on the SoC.

Not really, no.

Do you think this requires a quick -stable fix ? I'm working on a patch series 
that will remove the omapdrm device completely.

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list