mbox series

[v4,0/4] soc: ti: Add module build support to the socinfo

Message ID 20221108181144.433087-1-nfrayer@baylibre.com
Headers show
Series soc: ti: Add module build support to the socinfo | expand

Message

Nicolas Frayer Nov. 8, 2022, 6:11 p.m. UTC
In order for the TI K3 SoC info driver to be built as a module, the
following changes have been made:
- Converted memory allocations to devm and added the remove callback
- Added necessary code to build the driver as a module
- UDMA: Added deferred probe when soc_device_match() fails because the
socinfo driver is built as a module and hasn't probed yet
- MDIO: Same as the UDMA driver, return deferred probe if
soc_device_match() returns null

v2->v3:
dropped module conversion part of this series while other driver
dependencies on socinfo are worked out.
A dependency issue is introduced by changing subsys_initcall()
to module_platform_driver(). Some drivers using the socinfo information
probe before the socinfo driver itself and it makes their probe fail.

v3->v4:
reintegrated the module build support and added patches for udma and mdio
drivers to allow for deferred probe if socinfo hasn't probed yet.

Nicolas Frayer (4):
  soc: ti: Convert allocations to devm
  soc: ti: Add module build support
  dmaengine: ti: k3-udma: Deferring probe when soc_device_match()
    returns NULL
  net: ethernet: ti: davinci_mdio: Deferring probe when
    soc_device_match() returns NULL

 arch/arm64/Kconfig.platforms           |  1 -
 drivers/dma/ti/k3-udma.c               |  2 +-
 drivers/net/ethernet/ti/davinci_mdio.c |  4 +++
 drivers/soc/ti/Kconfig                 |  3 +-
 drivers/soc/ti/k3-socinfo.c            | 47 ++++++++++++++++----------
 5 files changed, 37 insertions(+), 20 deletions(-)

Comments

Randy Dunlap Nov. 8, 2022, 6:18 p.m. UTC | #1
Hi--

On 11/8/22 10:11, Nicolas Frayer wrote:
> Added module build support for the TI K3 SoC info driver.
> 
> Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com>
> ---
>  arch/arm64/Kconfig.platforms |  1 -
>  drivers/soc/ti/Kconfig       |  3 ++-
>  drivers/soc/ti/k3-socinfo.c  | 11 +++++++++++
>  3 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> index 76580b932e44..4f2f92eb499f 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -130,7 +130,6 @@ config ARCH_K3
>  	select TI_SCI_PROTOCOL
>  	select TI_SCI_INTR_IRQCHIP
>  	select TI_SCI_INTA_IRQCHIP
> -	select TI_K3_SOCINFO
>  	help
>  	  This enables support for Texas Instruments' K3 multicore SoC
>  	  architecture.
> diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
> index 7e2fb1c16af1..1a730c057cce 100644
> --- a/drivers/soc/ti/Kconfig
> +++ b/drivers/soc/ti/Kconfig
> @@ -74,7 +74,8 @@ config TI_K3_RINGACC
>  	  If unsure, say N.
>  
>  config TI_K3_SOCINFO
> -	bool
> +	tristate "TI K3 SoC info driver"
> +	default y

Maybe
	default ARCH_K3
?

>  	depends on ARCH_K3 || COMPILE_TEST
>  	select SOC_BUS
>  	select MFD_SYSCON
Nicolas Frayer Nov. 24, 2022, 9:04 a.m. UTC | #2
Hi Randy,

Le mar. 8 nov. 2022 à 19:18, Randy Dunlap <rdunlap@infradead.org> a écrit :
>
> Hi--
>
> On 11/8/22 10:11, Nicolas Frayer wrote:
> > Added module build support for the TI K3 SoC info driver.
> >
> > Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com>
> > ---
> >  arch/arm64/Kconfig.platforms |  1 -
> >  drivers/soc/ti/Kconfig       |  3 ++-
> >  drivers/soc/ti/k3-socinfo.c  | 11 +++++++++++
> >  3 files changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> > index 76580b932e44..4f2f92eb499f 100644
> > --- a/arch/arm64/Kconfig.platforms
> > +++ b/arch/arm64/Kconfig.platforms
> > @@ -130,7 +130,6 @@ config ARCH_K3
> >       select TI_SCI_PROTOCOL
> >       select TI_SCI_INTR_IRQCHIP
> >       select TI_SCI_INTA_IRQCHIP
> > -     select TI_K3_SOCINFO
> >       help
> >         This enables support for Texas Instruments' K3 multicore SoC
> >         architecture.
> > diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
> > index 7e2fb1c16af1..1a730c057cce 100644
> > --- a/drivers/soc/ti/Kconfig
> > +++ b/drivers/soc/ti/Kconfig
> > @@ -74,7 +74,8 @@ config TI_K3_RINGACC
> >         If unsure, say N.
> >
> >  config TI_K3_SOCINFO
> > -     bool
> > +     tristate "TI K3 SoC info driver"
> > +     default y
>
> Maybe
>         default ARCH_K3
> ?

You're correct this should be defaulted to ARCH_K3.
This series will be dropped as it introduces dependency issues with
consumer drivers.

>
> >       depends on ARCH_K3 || COMPILE_TEST
> >       select SOC_BUS
> >       select MFD_SYSCON
>
>
> --
> ~Randy
Thanks,
Nicolas