Re: [PATCH v8 05/26] clocksource: Add driver for the Ingenic JZ47xx OST

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Le jeu. 24 janv. 2019 à 19:53, Paul Cercueil <paul@xxxxxxxxxxxxxxx> a écrit :


Le jeu. 24 janv. 2019 à 19:46, Stephen Boyd <sboyd@xxxxxxxxxx> a écrit :
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?


In the ingenic-timer driver introduced in patch [04/26], inside the probe function.

Anything new on this? It still happens on 5.0-rc7.
It probes with late_initcall, and not with device_initcall.
I have no clue what's going on.

-Paul





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux