On Tue, Nov 30, 2010 at 04:21:47PM +0100, Arnd Bergmann wrote:
On Tuesday 30 November 2010, Linus Walleij wrote:
2010/11/26 Arnd Bergmann arnd@arndb.de:
- When you say that the devices are static, I hope you do not mean
static in the C language sense. We used to allow devices to be declared as "static struct" and registered using platform_device_register (or other bus specific functions). This is no longer valid and we are removing the existing users, do not add new ones. When creating a platform device, use platform_device_register_simple or platform_device_register_resndata.
Is this part of the generic ARM runtime multi-platform kernel and device trees shebang?
The Ux500 still isn't in that sector, it needs extensive rewriting of arch/arm/mach-ux500 to be done first, so as to support e.g. U8500 and U5500 with a single kernel image.
Trying to skin that cat that as part of this review is a bit too much to ask IMO, I'd rather have the author of this driver adapt to whatever platform data registration mechanism is in place for the merge window. Else it needs fixing as part of a bigger endavour to root out compile-time platform configuration.
The 'no static devices' rule is something that Greg brought up at the embedded developer session during PlumbersConf this year, I wasn't aware of the problem before that either.
It is not related to the multi-platform kernel work and it's not ARM specific.
Maybe Greg can give a short explanation of the impact of this. AFAIR, static device definitions still work, but there are plans to remove that capability in the future.
There's lots of static devices, not only platform devices, in the ARM tree. It's going to be a hell of a lot of work to fix this all up properly.
I hope that the capability for static devices won't disappear until the huge pile of work on ARM has been completed.