On 17/04/2019 13:50:25+0200, Romain Izard wrote: > On Mon, Apr 15, 2019 at 05:08:56PM +0200, Alexandre Belloni wrote: > > The TCBs that have children are using the proper DT bindings and don't need > > to be handled by tclib. > > > > Cc: Arnd Bergmann <[email protected]> > > Signed-off-by: Alexandre Belloni <[email protected]> > > --- > > drivers/misc/atmel_tclib.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c > > index 194f774ab3a1..c1f5aba1c6f2 100644 > > --- a/drivers/misc/atmel_tclib.c > > +++ b/drivers/misc/atmel_tclib.c > > @@ -111,6 +111,9 @@ static int __init tc_probe(struct platform_device *pdev) > > struct resource *r; > > unsigned int i; > > > > + if (of_get_child_count(pdev->dev.of_node)) > > + return 0; > > + > > irq = platform_get_irq(pdev, 0); > > if (irq < 0) > > return -EINVAL; > > This lead to a panic during shutdown, as tc_shutdown is called on the > device that has not been initialized and it has not been designed for > this. >
Yes, I saw that yesterday, the solution is to return -EBUSY instead of 0. That's what I had in my original series and I changed it before submitting to avoid the error message at boot but this was not a good idea. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com

