Quoting Guenter Roeck (2019-01-23 10:01:55) > On Wed, Jan 23, 2019 at 02:25:53PM -0300, Paul Cercueil wrote: > > Hi, > > > > Le mer. 23 janv. 2019 à 11:31, Guenter Roeck <linux@xxxxxxxxxxxx> a écrit : > > >On 1/23/19 4:58 AM, Mathieu Malaterre wrote: > > >>On Wed, Dec 12, 2018 at 11:09 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> > > >>wrote: > > >>> > > >>>From: Maarten ter Huurne <maarten@xxxxxxxxxxxxxx> > > >>> > > >>>OST is the OS Timer, a 64-bit timer/counter with buffered reading. > > >>> > > >>>SoCs before the JZ4770 had (if any) a 32-bit OST; the JZ4770 and > > >>>JZ4780 have a 64-bit OST. > > >>> > > >>>This driver will register both a clocksource and a sched_clock to the > > >>>system. > > >>> > > >>>Signed-off-by: Maarten ter Huurne <maarten@xxxxxxxxxxxxxx> > > >>>Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> > > >>>--- > > >>> > > >>>Notes: > > >>> v5: New patch > > >>> > > >>> v6: - Get rid of SoC IDs; pass pointer to ingenic_ost_soc_info > > >>>as > > >>> devicetree match data instead. > > >>> - Use device_get_match_data() instead of the of_* variant > > >>> - Handle error of dev_get_regmap() properly > > >>> > > >>> v7: Fix section mismatch by using > > >>>builtin_platform_driver_probe() > > >>> > > >>> v8: builtin_platform_driver_probe() does not work anymore in > > >>> 4.20-rc6? The probe function won't be called. Work around > > >>>this > > >>> for now by using late_initcall. > > >>> > > > > > >Did anyone notice this ? Either something is wrong with the driver, or > > >with the kernel core. Hacking around it seems like the worst possible > > >"solution". > > > > I can confirm it still happens on 5.0-rc3. > > > > Just to explain what I'm doing: > > > > My ingenic-timer driver probes with builtin_platform_driver_probe (this > > works), > > and then calls of_platform_populate to probe its children. This driver, > > ingenic-ost, is one of them, and will fail to probe with > > builtin_platform_driver_probe. > > > > The big question is _why_ it fails to probe. > Are you sharing the device tree node between a 'normal' platform device driver and something more low level DT that marks the device's backing DT node as OF_POPULATED early on? That's my only guess why it's not working.