Quoting Paul Cercueil (2019-01-24 12:46:28) > > > Le jeu. 24 janv. 2019 à 16:28, Stephen Boyd <sboyd@xxxxxxxxxx> a > écrit : > > 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. > > I do, but I clear the OF_POPULATED flag so that it is then probed as a > normal platform device, and it's not on this driver's node but its > parent. > Where do you clear the OF_POPULATED flag?