On Sat, Jul 13, 2024, at 05:38, Dmitry Torokhov wrote: > On Fri, Jul 12, 2024 at 08:41:58AM +0200, Arnd Bergmann wrote: >> On Fri, Jul 12, 2024, at 07:31, Dmitry Torokhov wrote: >> > @@ -684,6 +685,7 @@ struct platform_device pxa27x_device_gpio = { >> > .platform_data = &pxa2xx_gpio_info, >> > }, >> > }; >> > +#endif /* CONFIG_PXA25x || CONFIG_PXA27x */ >> > >> > static struct resource pxa_dma_resource[] = { >> > [0] = { >> > >> > If you are OK with this I'll submit proper patch. >> >> Right, that's probably the easiest way. I was trying a more >> elaborate change (see below), but there is a good chance I >> introduce another regression in that, so let's go with >> your patch. Please send it directly to soc@xxxxxxxxxx >> Cc:linux-arm-kernel and I'll pick it up. > > Done. Merged now in preparation for my pull requests, thanks! >> One more thing I noticed: if you are doing more patches >> to convert devices in board files to use software nodes, >> we should probably try to move them away from static >> platform_device definitions towards a dynamic >> platform_device_register_simple() or similar interface >> at the same time. > > Sometimes platform_device_register_full() which operates on > platform_device_info structure is very handy, but in general > what is the issue with statically defined devices (when they > are never unregistered)? Greg has been asking for this for many years, but it has been unrealistic in the past because of the large number of board files using static platform devices. As far as I understand it, having static platform devices prevents us from better enforcing lifetime management rules on device objects. Adding Greg to Cc in case he has something to add. The other point of course is static memory usage: a platform device structure in .data is much larger than a platform_device_info, and this adds up in a kernel that tries to support lots of boards. Arnd