diff mbox series

ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible

Message ID 20231004065323.2408615-1-andreas@kemnade.info (mailing list archive)
State New, archived
Headers show
Series ARM: dts: omap3-gta04: Drop superfluous omap36xx compatible | expand

Commit Message

Andreas Kemnade Oct. 4, 2023, 6:53 a.m. UTC
Drop omap36xx compatible as done in other omap3630 devices.
This has apparently fallen through the lattice.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andreas Kemnade Oct. 4, 2023, 11:03 a.m. UTC | #1
On Wed, 4 Oct 2023 12:50:16 +0200
"H. Nikolaus Schaller" <hns@goldelico.com> wrote:

> Hi Andreas,
> 
> > Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <andreas@kemnade.info>:
> > 
> > Drop omap36xx compatible as done in other omap3630 devices.
> > This has apparently fallen through the lattice.
> > 
> > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> > ---
> > 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 <afd@ti.com>
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
H. Nikolaus Schaller Oct. 4, 2023, 11:39 a.m. UTC | #2
> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <andreas@kemnade.info>:
> 
> On Wed, 4 Oct 2023 12:50:16 +0200
> "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
> 
>> Hi Andreas,
>> 
>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <andreas@kemnade.info>:
>>> 
>>> Drop omap36xx compatible as done in other omap3630 devices.
>>> This has apparently fallen through the lattice.
>>> 
>>> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
>>> ---
>>> 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 <afd@ti.com>
> 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
Andreas Kemnade Oct. 4, 2023, 11:54 a.m. UTC | #3
On Wed, 4 Oct 2023 13:39:03 +0200
"H. Nikolaus Schaller" <hns@goldelico.com> wrote:

> > Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <andreas@kemnade.info>:
> > 
> > On Wed, 4 Oct 2023 12:50:16 +0200
> > "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
> >   
> >> Hi Andreas,
> >>   
> >>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <andreas@kemnade.info>:
> >>> 
> >>> Drop omap36xx compatible as done in other omap3630 devices.
> >>> This has apparently fallen through the lattice.
> >>> 
> >>> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> >>> ---
> >>> 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 <afd@ti.com>
> > 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
H. Nikolaus Schaller Oct. 4, 2023, 12:42 p.m. UTC | #4
> Am 04.10.2023 um 13:54 schrieb Andreas Kemnade <andreas@kemnade.info>:
> 
> On Wed, 4 Oct 2023 13:39:03 +0200
> "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
> 
>>> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <andreas@kemnade.info>:
>>> 
>>> On Wed, 4 Oct 2023 12:50:16 +0200
>>> "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
>>> 
>>>> Hi Andreas,
>>>> 
>>>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <andreas@kemnade.info>:
>>>>> 
>>>>> Drop omap36xx compatible as done in other omap3630 devices.
>>>>> This has apparently fallen through the lattice.
>>>>> 
>>>>> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
>>>>> ---
>>>>> 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 <afd@ti.com>
>>> 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
H. Nikolaus Schaller Oct. 4, 2023, 12:50 p.m. UTC | #5
> Am 04.10.2023 um 14:42 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
> 
> 
> 
>> Am 04.10.2023 um 13:54 schrieb Andreas Kemnade <andreas@kemnade.info>:
>> 
>> On Wed, 4 Oct 2023 13:39:03 +0200
>> "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
>> 
>>>> Am 04.10.2023 um 13:03 schrieb Andreas Kemnade <andreas@kemnade.info>:
>>>> 
>>>> On Wed, 4 Oct 2023 12:50:16 +0200
>>>> "H. Nikolaus Schaller" <hns@goldelico.com> wrote:
>>>> 
>>>>> Hi Andreas,
>>>>> 
>>>>>> Am 04.10.2023 um 08:53 schrieb Andreas Kemnade <andreas@kemnade.info>:
>>>>>> 
>>>>>> Drop omap36xx compatible as done in other omap3630 devices.
>>>>>> This has apparently fallen through the lattice.
>>>>>> 
>>>>>> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
>>>>>> ---
>>>>>> 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 <afd@ti.com>
>>>> 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
Tony Lindgren Oct. 7, 2023, 6:44 a.m. UTC | #6
* H. Nikolaus Schaller <hns@goldelico.com> [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
H. Nikolaus Schaller Oct. 7, 2023, 6:54 a.m. UTC | #7
Hi Tony,

> Am 07.10.2023 um 08:44 schrieb Tony Lindgren <tony@atomide.com>:
> 
> * H. Nikolaus Schaller <hns@goldelico.com> [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
Tony Lindgren Oct. 7, 2023, 6:58 a.m. UTC | #8
* H. Nikolaus Schaller <hns@goldelico.com> [231007 06:54]:
> Hi Tony,
> 
> > Am 07.10.2023 um 08:44 schrieb Tony Lindgren <tony@atomide.com>:
> > 
> > * H. Nikolaus Schaller <hns@goldelico.com> [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
diff mbox series

Patch

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>;