2023-10-04 06:53:46

by Andreas Kemnade

[permalink] [raw]
Subject: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

Drop omap36xx compatible as done in other omap3630 devices.
This has apparently fallen through the lattice.

Signed-off-by: Andreas Kemnade <[email protected]>
---
arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
index b6b27e93857f..3661340009e7 100644
--- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
@@ -11,7 +11,7 @@

/ {
model = "OMAP3 GTA04";
- compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
+ compatible = "goldelico,gta04", "ti,omap3630", "ti,omap3";
cpus {
cpu@0 {
cpu0-supply = <&vcc>;
--
2.39.2


2023-10-04 11:04:19

by Andreas Kemnade

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

On Wed, 4 Oct 2023 12:50:16 +0200
"H. Nikolaus Schaller" <[email protected]> wrote:

> Hi Andreas,
>
> > Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <[email protected]>:
> >
> > Drop omap36xx compatible as done in other omap3630 devices.
> > This has apparently fallen through the lattice.
> >
> > Signed-off-by: Andreas Kemnade <[email protected]>
> > ---
> > arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > index b6b27e93857f..3661340009e7 100644
> > --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > @@ -11,7 +11,7 @@
> >
> > / {
> > model = "OMAP3 GTA04";
> > - compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>
> there seem to be some more references to ti,omap36xx:
>
> arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi: compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";

apperently all the dtsi are fallen through the lattice when handling the dts.


> arch/arm/mach-omap2/board-generic.c: "ti,omap36xx",
> drivers/clk/ti/dpll.c: of_machine_is_compatible("ti,omap36xx")) &&
> drivers/cpufreq/ti-cpufreq.c: { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
>
> So are you sure that we can remove it without replacement or code fixes in dpll and cpufreq (board-generic is probably no issue)?
>
see discussion of:

commit e341f338180c84cd98af3016cf5bcfde45a041fb
Author: Andrew Davis <[email protected]>
Date: Thu Feb 16 09:33:38 2023 -0600

ARM: dts: omap: Drop ti,omap36xx compatible

all the places also basically check for omap36xx || omap3630.

Regards,
Andreas

2023-10-04 11:39:26

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible



> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <[email protected]>:
>
> On Wed, 4 Oct 2023 12:50:16 +0200
> "H. Nikolaus Schaller" <[email protected]> wrote:
>
>> Hi Andreas,
>>
>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <[email protected]>:
>>>
>>> Drop omap36xx compatible as done in other omap3630 devices.
>>> This has apparently fallen through the lattice.
>>>
>>> Signed-off-by: Andreas Kemnade <[email protected]>
>>> ---
>>> arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>> index b6b27e93857f..3661340009e7 100644
>>> --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>> +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>> @@ -11,7 +11,7 @@
>>>
>>> / {
>>> model = "OMAP3 GTA04";
>>> - compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>>
>> there seem to be some more references to ti,omap36xx:
>>
>> arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi: compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>
> apperently all the dtsi are fallen through the lattice when handling the dts.
>
>
>> arch/arm/mach-omap2/board-generic.c: "ti,omap36xx",
>> drivers/clk/ti/dpll.c: of_machine_is_compatible("ti,omap36xx")) &&
>> drivers/cpufreq/ti-cpufreq.c: { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
>>
>> So are you sure that we can remove it without replacement or code fixes in dpll and cpufreq (board-generic is probably no issue)?
>>
> see discussion of:
>
> commit e341f338180c84cd98af3016cf5bcfde45a041fb
> Author: Andrew Davis <[email protected]>
> Date: Thu Feb 16 09:33:38 2023 -0600
>
> ARM: dts: omap: Drop ti,omap36xx compatible

Ah, I wasn't aware of this.

>
> all the places also basically check for omap36xx || omap3630.


Yes, I have checked but drivers/cpufreq/ti-cpufreq.c seems to be an
exception (unless I am missing some other patch).

Generally it could be good to remove the double checks
for omap36xx || omap3630 in code? Is this planned as well?

BR,
Nikolaus

2023-10-04 11:55:11

by Andreas Kemnade

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

On Wed, 4 Oct 2023 13:39:03 +0200
"H. Nikolaus Schaller" <[email protected]> wrote:

> > Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <[email protected]>:
> >
> > On Wed, 4 Oct 2023 12:50:16 +0200
> > "H. Nikolaus Schaller" <[email protected]> wrote:
> >
> >> Hi Andreas,
> >>
> >>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <[email protected]>:
> >>>
> >>> Drop omap36xx compatible as done in other omap3630 devices.
> >>> This has apparently fallen through the lattice.
> >>>
> >>> Signed-off-by: Andreas Kemnade <[email protected]>
> >>> ---
> >>> arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> >>> index b6b27e93857f..3661340009e7 100644
> >>> --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> >>> +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> >>> @@ -11,7 +11,7 @@
> >>>
> >>> / {
> >>> model = "OMAP3 GTA04";
> >>> - compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
> >>
> >> there seem to be some more references to ti,omap36xx:
> >>
> >> arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi: compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";
> >
> > apperently all the dtsi are fallen through the lattice when handling the dts.
> >
> >
> >> arch/arm/mach-omap2/board-generic.c: "ti,omap36xx",
> >> drivers/clk/ti/dpll.c: of_machine_is_compatible("ti,omap36xx")) &&
> >> drivers/cpufreq/ti-cpufreq.c: { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
> >>
> >> So are you sure that we can remove it without replacement or code fixes in dpll and cpufreq (board-generic is probably no issue)?
> >>
> > see discussion of:
> >
> > commit e341f338180c84cd98af3016cf5bcfde45a041fb
> > Author: Andrew Davis <[email protected]>
> > Date: Thu Feb 16 09:33:38 2023 -0600
> >
> > ARM: dts: omap: Drop ti,omap36xx compatible
>
> Ah, I wasn't aware of this.
>
> >
> > all the places also basically check for omap36xx || omap3630.
>
>
> Yes, I have checked but drivers/cpufreq/ti-cpufreq.c seems to be an
> exception (unless I am missing some other patch).
>
No:
{ .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
{ .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },

The bindings also only specify omap3630.

Regards,
Andreas

2023-10-04 12:43:13

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible



> Am 04.10.2023 um 13:54 schrieb Andreas Kemnade <[email protected]>:
>
> On Wed, 4 Oct 2023 13:39:03 +0200
> "H. Nikolaus Schaller" <[email protected]> wrote:
>
>>> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <[email protected]>:
>>>
>>> On Wed, 4 Oct 2023 12:50:16 +0200
>>> "H. Nikolaus Schaller" <[email protected]> wrote:
>>>
>>>> Hi Andreas,
>>>>
>>>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <[email protected]>:
>>>>>
>>>>> Drop omap36xx compatible as done in other omap3630 devices.
>>>>> This has apparently fallen through the lattice.
>>>>>
>>>>> Signed-off-by: Andreas Kemnade <[email protected]>
>>>>> ---
>>>>> arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>> index b6b27e93857f..3661340009e7 100644
>>>>> --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>> +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>> @@ -11,7 +11,7 @@
>>>>>
>>>>> / {
>>>>> model = "OMAP3 GTA04";
>>>>> - compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>>>>
>>>> there seem to be some more references to ti,omap36xx:
>>>>
>>>> arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi: compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>>>
>>> apperently all the dtsi are fallen through the lattice when handling the dts.
>>>
>>>
>>>> arch/arm/mach-omap2/board-generic.c: "ti,omap36xx",
>>>> drivers/clk/ti/dpll.c: of_machine_is_compatible("ti,omap36xx")) &&
>>>> drivers/cpufreq/ti-cpufreq.c: { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
>>>>
>>>> So are you sure that we can remove it without replacement or code fixes in dpll and cpufreq (board-generic is probably no issue)?
>>>>
>>> see discussion of:
>>>
>>> commit e341f338180c84cd98af3016cf5bcfde45a041fb
>>> Author: Andrew Davis <[email protected]>
>>> Date: Thu Feb 16 09:33:38 2023 -0600
>>>
>>> ARM: dts: omap: Drop ti,omap36xx compatible
>>
>> Ah, I wasn't aware of this.
>>
>>>
>>> all the places also basically check for omap36xx || omap3630.
>>
>>
>> Yes, I have checked but drivers/cpufreq/ti-cpufreq.c seems to be an
>> exception (unless I am missing some other patch).
>>
> No:
> { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
> { .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },

Well, in v6.6-rc4 I see:

static const struct of_device_id ti_cpufreq_of_match[] = {
{ .compatible = "ti,am33xx", .data = &am3x_soc_data, },
{ .compatible = "ti,am3517", .data = &am3517_soc_data, },
{ .compatible = "ti,am43", .data = &am4x_soc_data, },
{ .compatible = "ti,dra7", .data = &dra7_soc_data },
{ .compatible = "ti,omap34xx", .data = &omap34xx_soc_data, },
{ .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
{ .compatible = "ti,am625", .data = &am625_soc_data, },
{ .compatible = "ti,am62a7", .data = &am625_soc_data, },
/* legacy */
{ .compatible = "ti,omap3430", .data = &omap34xx_soc_data, },
{ .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },
{},
};

Either the "/* legacy */" or the "ti,omap36xx" seems as if it should be removed.
But it seems to break the systematic approach of this table.

> The bindings also only specify omap3630.

What I think is that the background was (before bindings documentation
was invented) that there are drivers covering all variants of omap36xx
(incl. am37xx and dm37xx) and some parts specific to a single version.

So maybe it could have been missing in the bindings?

Anyways it seems to need some cleanup to remove all references to
omap36xx before it is forgotten...

BR,
Nikolaus

2023-10-04 12:51:18

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible



> Am 04.10.2023 um 14:42 schrieb H. Nikolaus Schaller <[email protected]>:
>
>
>
>> Am 04.10.2023 um 13:54 schrieb Andreas Kemnade <[email protected]>:
>>
>> On Wed, 4 Oct 2023 13:39:03 +0200
>> "H. Nikolaus Schaller" <[email protected]> wrote:
>>
>>>> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <[email protected]>:
>>>>
>>>> On Wed, 4 Oct 2023 12:50:16 +0200
>>>> "H. Nikolaus Schaller" <[email protected]> wrote:
>>>>
>>>>> Hi Andreas,
>>>>>
>>>>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <[email protected]>:
>>>>>>
>>>>>> Drop omap36xx compatible as done in other omap3630 devices.
>>>>>> This has apparently fallen through the lattice.
>>>>>>
>>>>>> Signed-off-by: Andreas Kemnade <[email protected]>
>>>>>> ---
>>>>>> arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
>>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>>> index b6b27e93857f..3661340009e7 100644
>>>>>> --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>>> +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
>>>>>> @@ -11,7 +11,7 @@
>>>>>>
>>>>>> / {
>>>>>> model = "OMAP3 GTA04";
>>>>>> - compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>>>>>
>>>>> there seem to be some more references to ti,omap36xx:
>>>>>
>>>>> arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi: compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>>>>
>>>> apperently all the dtsi are fallen through the lattice when handling the dts.
>>>>
>>>>
>>>>> arch/arm/mach-omap2/board-generic.c: "ti,omap36xx",
>>>>> drivers/clk/ti/dpll.c: of_machine_is_compatible("ti,omap36xx")) &&
>>>>> drivers/cpufreq/ti-cpufreq.c: { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
>>>>>
>>>>> So are you sure that we can remove it without replacement or code fixes in dpll and cpufreq (board-generic is probably no issue)?
>>>>>
>>>> see discussion of:
>>>>
>>>> commit e341f338180c84cd98af3016cf5bcfde45a041fb
>>>> Author: Andrew Davis <[email protected]>
>>>> Date: Thu Feb 16 09:33:38 2023 -0600
>>>>
>>>> ARM: dts: omap: Drop ti,omap36xx compatible
>>>
>>> Ah, I wasn't aware of this.
>>>
>>>>
>>>> all the places also basically check for omap36xx || omap3630.
>>>
>>>
>>> Yes, I have checked but drivers/cpufreq/ti-cpufreq.c seems to be an
>>> exception (unless I am missing some other patch).
>>>
>> No:
>> { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
>> { .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },
>
> Well, in v6.6-rc4 I see:
>
> static const struct of_device_id ti_cpufreq_of_match[] = {
> { .compatible = "ti,am33xx", .data = &am3x_soc_data, },
> { .compatible = "ti,am3517", .data = &am3517_soc_data, },
> { .compatible = "ti,am43", .data = &am4x_soc_data, },
> { .compatible = "ti,dra7", .data = &dra7_soc_data },
> { .compatible = "ti,omap34xx", .data = &omap34xx_soc_data, },
> { .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
> { .compatible = "ti,am625", .data = &am625_soc_data, },
> { .compatible = "ti,am62a7", .data = &am625_soc_data, },
> /* legacy */
> { .compatible = "ti,omap3430", .data = &omap34xx_soc_data, },
> { .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },
> {},
> };
>
> Either the "/* legacy */" or the "ti,omap36xx" seems as if it should be removed.
> But it seems to break the systematic approach of this table.
>
>> The bindings also only specify omap3630.
>
> What I think is that the background was (before bindings documentation
> was invented) that there are drivers covering all variants of omap36xx
> (incl. am37xx and dm37xx) and some parts specific to a single version.

Ah, there is indeed an issue with removing omap36xx and replacing by
omap3630.

What about the PVR/SGX driver. This needs a compatible that can distinguish
between the DM3725 and DM3730. The first is w/o SGX and the second one
with. Having all summarized as omap3630 does not allow to load the
PVR/SGX driver based on the board specific compatible entry.

AFAIR this was the original idea behind

compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";

Only with this we can make the SGX driver depend on "ti,omap3630" and all
other general omap36xx stuff on "ti,omap36xx".

So it seems as if there was a reason to have both, and the omap36xx is not
completely superflous to be dropped.

BR,
Nikolaus

2023-10-07 06:44:55

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

* H. Nikolaus Schaller <[email protected]> [231004 12:50]:
> What about the PVR/SGX driver. This needs a compatible that can distinguish
> between the DM3725 and DM3730. The first is w/o SGX and the second one
> with. Having all summarized as omap3630 does not allow to load the
> PVR/SGX driver based on the board specific compatible entry.
>
> AFAIR this was the original idea behind
>
> compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";

I think we already handle this, see drivers/bus/ti-sysc.c and search for
DIS_SGX and similar flags for other accelerators. So I think this patch is
safe to apply?

Regards,

Tony

2023-10-07 06:54:46

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

Hi Tony,

> Am 07.10.2023 um 08:44 schrieb Tony Lindgren <[email protected]>:
>
> * H. Nikolaus Schaller <[email protected]> [231004 12:50]:
>> What about the PVR/SGX driver. This needs a compatible that can distinguish
>> between the DM3725 and DM3730. The first is w/o SGX and the second one
>> with. Having all summarized as omap3630 does not allow to load the
>> PVR/SGX driver based on the board specific compatible entry.
>>
>> AFAIR this was the original idea behind
>>
>> compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
>
> I think we already handle this, see drivers/bus/ti-sysc.c and search for
> DIS_SGX and similar flags for other accelerators.

Ah, ok. This means that the kernel module isn't loaded if the flags of the chip
are not available. Then we will indeed have no need to describe such variances
in the DTS.

> So I think this patch is
> safe to apply?

Looks so (especially as I only have omap3630 based devices with SGX).

BR and thanks,
Nikolaus

2023-10-07 06:58:27

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

* H. Nikolaus Schaller <[email protected]> [231007 06:54]:
> Hi Tony,
>
> > Am 07.10.2023 um 08:44 schrieb Tony Lindgren <[email protected]>:
> >
> > * H. Nikolaus Schaller <[email protected]> [231004 12:50]:
> >> What about the PVR/SGX driver. This needs a compatible that can distinguish
> >> between the DM3725 and DM3730. The first is w/o SGX and the second one
> >> with. Having all summarized as omap3630 does not allow to load the
> >> PVR/SGX driver based on the board specific compatible entry.
> >>
> >> AFAIR this was the original idea behind
> >>
> >> compatible = "goldelico,gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
> >
> > I think we already handle this, see drivers/bus/ti-sysc.c and search for
> > DIS_SGX and similar flags for other accelerators.
>
> Ah, ok. This means that the kernel module isn't loaded if the flags of the chip
> are not available. Then we will indeed have no need to describe such variances
> in the DTS.
>
> > So I think this patch is
> > safe to apply?
>
> Looks so (especially as I only have omap3630 based devices with SGX).

OK applying into omap-for-v6.7/dt then.

Thanks,

Tony