Re: [PATCH v8 05/26] clocksource: Add driver for the Ingenic JZ47xx OST
From: Paul Cercueil <paul@crapouillou.net>
Date: 2019-01-24 22:53:38
Also in:
linux-clk, linux-devicetree, linux-mips, linux-pwm, linux-watchdog, lkml
Le jeu. 24 janv. 2019 à 19:46, Stephen Boyd [off-list ref] a écrit :
Quoting Paul Cercueil (2019-01-24 12:46:28)quoted
Le jeu. 24 janv. 2019 à 16:28, Stephen Boyd [off-list ref] 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 >> [off-list ref] a écrit : >> > >On 1/23/19 4:58 AM, Mathieu Malaterre wrote: >> > >>On Wed, Dec 12, 2018 at 11:09 PM Paul Cercueil >> [off-list ref] >> > >>wrote: >> > >>> >> > >>>From: Maarten ter Huurne [off-list ref] >> > >>> >> > >>>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 [off-list ref] >> > >>>Signed-off-by: Paul Cercueil [off-list ref] >> > >>>--- >> > >>> >> > >>>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?
In the ingenic-timer driver introduced in patch [04/26], inside the probe function.