Re: [PATCH 06/25] ARM: tegra: Fix compatible string for Tegra30+ timer

Dmitry Osipenko
2021-12-13T16:44:53Z

13.12.2021 19:04, Thierry Reding пишет:
> On Fri, Dec 10, 2021 at 06:23:34PM +0300, Dmitry Osipenko wrote:
>> 10.12.2021 16:42, Thierry Reding пишет:
>>> On Thu, Dec 09, 2021 at 10:36:43PM +0300, Dmitry Osipenko wrote:
>>>> 09.12.2021 20:33, Thierry Reding пишет:
>>>>> From: Thierry Reding <treding@nvidia.com>
>>>>>
>>>>> The TKE (time-keeping engine) found on Tegra30 and later is not
>>>>> backwards compatible with the version found on Tegra20, so update the
>>>>> compatible string list accordingly.
>>>>>
>>>>> Signed-off-by: Thierry Reding <treding@nvidia.com>
>>>>> ---
>>>>> arch/arm/boot/dts/tegra114.dtsi | 2 +-
>>>>> arch/arm/boot/dts/tegra124.dtsi | 2 +-
>>>>> arch/arm/boot/dts/tegra30.dtsi | 2 +-
>>>>> 3 files changed, 3 insertions(+), 3 deletions(-)
>> ...
>>>>> timer@60005000 {
>>>>> - compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
>>>>> + compatible = "nvidia,tegra30-timer";
>>>>> reg = <0x60005000 0x400>;
>>>>> interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
>>>>> <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
>>>>>
>>>>
>>>> What exactly is incompatible? IIRC, T30+ is a superset of T20. This
>>>> patch should be wrong, also see [1].
>>>
>>> As the comment in that location explains, Tegra114 and later have an
>>> architectural timer that is preferred over the legacy timer. So while
>>> this doesn't technically make Tegra114 incompatible (in terms of
>>> register programming, etc.) with Tegra20, in practice we don't want
>>> Tegra20 behaviour on Tegra114 and later.
>>
>> So the T114 timer code works using the T20 code and we prefer to use the
>> ARCH timer on T114+ in the driver, what is the problem then? Where is
>> the incompatibility?
>
> It's the priority that's set differently for Tegra20 and Tegra30. On
> Tegra114 and later, the Tegra timer has lower priority so that the
> architected timer takes precedence. It's not exactly an
> incompatibilitity, but there's no good way to describe it otherwise.

Priority is a property of the Linux kernel driver, it's not a hardware
property. This whole patch is incorrect and should be dropped, IMO.