2022-03-16 05:58:59

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/

On Tue, Mar 15, 2022 at 09:27:36AM +0100, Mauro Carvalho Chehab wrote:
> Em Tue, 15 Mar 2022 08:54:25 +0200
> Laurent Pinchart <[email protected]> escreveu:
>
> > Hi Mauro,
> >
> > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote:
> > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej Škrabec escreveu:
> > >
> > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho Chehab
> > > > napisal(a):
> > > > > As the end goal is to have platform drivers split by vendor,
> > > > > rename sunxi/ to allwinner/.
> > > > >
> > > > > Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> > > >
> > > > I would rather not do that. Everything related to Allwinner is called sunxi,
> > > > albeit there are a few outliers. This is similar to Amlogic/meson situation.
> > >
> > > The rationale of having one directory per manufacturer is that, if drivers
> > > for newer platforms with different names from the same manufacturers are
> > > added, those will still fit under allwinner/ and amlogic/.
> > >
> > > The Kconfig names for sunxi and meson didn't change, nor the driver's name.
> > > Also, the directories under allwinner preserve sun<x>i name on them:
> > >
> > > drivers/media/platform/allwinner/
> > > ├── sun4i-csi
> > > ├── sun6i-csi
> > > ├── sun8i-di
> > > └── sun8i-rotate
> > >
> > > and so the directory under amlogic/:
> > >
> > > drivers/media/platform/amlogic/
> > > └── meson-ge2d
> > >
> > > Now, if Allinner decides to release a new platforms named after another star,
> > > let's say, "Vega" and "Rigel", it would be just a matter of adding
> > > "vega/" and "rigel/" directories under allwinner. No need to touch
> > > media/platform/Kconfig and media/platform/Makefile. Everything will happen
> > > on much more smaller vendor-specific Kconfig/Makefile.
> >
> > But the day Allwinner changes its name to Noloser, we'll have a similar
> > problem.
>
> Not really. It will still be a single directory per vendor (whatever
> name it is).
>
> > Thnk about Freescale vs. NXP, or Altera bought by Intel.
>
> Yeah, when some drivers move from one vendor to another one that
> already exists there, we should probably move the directories, in
> order to keep things well organized.

I'm not sure we should. We still have arch/arm64/boot/dts/freescale/ for
instance. We can answer that question later though, when confronted with
the situation.

> The worse case scenario is really if, let's say, TI decides to sell their
> omap architecture to NXP, keeping the rest. On such case, the best would
> be to move platform/ti/omap* to the directory of its newer owner.
>
> That's said, when things like that happen, there are usually a change
> at MAINTAINERS, as e-mails, mailing lists and contact people will
> likely change. So, this will very likely generate patches anyway.
>
> > No
> > naming scheme is totally future-proof. If the accepted standard through
> > the kernel is to use sunxi to refer to Allwinner SoCs, I don't think
> > it's a bit idea to go with that.
>
> I'm not too concerned about the name here, but rather about the
> process. Needing to do reorg like this is painful, as it causes
> all pending work to fail merging against upstream, requiring rebases.
> So, we should avoid needing to re-do it by trying our best to avoid
> the need of another global change like that in the future.

Most of the pain we'll go through in the immediate future comes from the
fact that we never really cared about this. I think renames (of vendors
or product lines) will be infrequent enough that picking sunxi for
Allwinner drivers wouldn't be an issue.

There's a similar think with Renesas, which had an SH product line and
then moved to ARM, creating R-Mobile and R-Car (among other product
liens). That's why we still have drivers/dma/sh/ for Renesas DMA
drivers.

> By organizing entries per vendor, while we may need to do puntual
> per-vendor adjustments when they rename and change IP with other
> vendors, the global platform Kconfig/Make will contain a single entry
> per vendor. I can't foresee any need to change this in the future,
> if we take care of keeping the entries there properly sorted.
>
> With regards to naming the per-vendor directory, while I do prefer to have
> the directories named after the vendor, and not after a vendor's nick
> name, It should also be ok to use a vendor's nick name, provided that
> such name is meant to be used by all their current and future IP.
>
> Not sure if "sunxi" is actually a vendor's nick name. It sounds
> much likely that it is, instead, a brand name that covers their
> current media-related SoC.
>
> Can someone from the vendor shed a light on it?

Maybe we can let the Allwinner upstream community tell us what name to
pick ? I'm sure they know better than us :-)

--
Regards,

Laurent Pinchart


2022-03-17 04:59:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/

Em Tue, 15 Mar 2022 10:35:05 +0200
Laurent Pinchart <[email protected]> escreveu:

> On Tue, Mar 15, 2022 at 09:27:36AM +0100, Mauro Carvalho Chehab wrote:
> > Em Tue, 15 Mar 2022 08:54:25 +0200
> > Laurent Pinchart <[email protected]> escreveu:
> >
> > > Hi Mauro,
> > >
> > > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote:
> > > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej Škrabec escreveu:
> > > >
> > > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho Chehab
> > > > > napisal(a):
> > > > > > As the end goal is to have platform drivers split by vendor,
> > > > > > rename sunxi/ to allwinner/.
> > > > > >
> > > > > > Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> > > > >
> > > > > I would rather not do that. Everything related to Allwinner is called sunxi,
> > > > > albeit there are a few outliers. This is similar to Amlogic/meson situation.
> > > >
> > > > The rationale of having one directory per manufacturer is that, if drivers
> > > > for newer platforms with different names from the same manufacturers are
> > > > added, those will still fit under allwinner/ and amlogic/.
> > > >
> > > > The Kconfig names for sunxi and meson didn't change, nor the driver's name.
> > > > Also, the directories under allwinner preserve sun<x>i name on them:
> > > >
> > > > drivers/media/platform/allwinner/
> > > > ├── sun4i-csi
> > > > ├── sun6i-csi
> > > > ├── sun8i-di
> > > > └── sun8i-rotate
> > > >
> > > > and so the directory under amlogic/:
> > > >
> > > > drivers/media/platform/amlogic/
> > > > └── meson-ge2d
> > > >
> > > > Now, if Allinner decides to release a new platforms named after another star,
> > > > let's say, "Vega" and "Rigel", it would be just a matter of adding
> > > > "vega/" and "rigel/" directories under allwinner. No need to touch
> > > > media/platform/Kconfig and media/platform/Makefile. Everything will happen
> > > > on much more smaller vendor-specific Kconfig/Makefile.
> > >
> > > But the day Allwinner changes its name to Noloser, we'll have a similar
> > > problem.
> >
> > Not really. It will still be a single directory per vendor (whatever
> > name it is).
> >
> > > Thnk about Freescale vs. NXP, or Altera bought by Intel.
> >
> > Yeah, when some drivers move from one vendor to another one that
> > already exists there, we should probably move the directories, in
> > order to keep things well organized.
>
> I'm not sure we should. We still have arch/arm64/boot/dts/freescale/ for
> instance. We can answer that question later though, when confronted with
> the situation.

It would be messy if some drivers under a

media/platform/vendor_a/

directory would actually belong to vendor_b, which also has its own
media/platform/vendor_b/ directory.

On such case, I do think we should move stuff. Now, if everything
under a "media/platform/vendor_a/" directory are now property of
a vendor_c which doesn't have yet any directory there, I don't see
and problems on not renaming - and even adding new drivers there
that would belong to vendor_c.

>
> > The worse case scenario is really if, let's say, TI decides to sell their
> > omap architecture to NXP, keeping the rest. On such case, the best would
> > be to move platform/ti/omap* to the directory of its newer owner.
> >
> > That's said, when things like that happen, there are usually a change
> > at MAINTAINERS, as e-mails, mailing lists and contact people will
> > likely change. So, this will very likely generate patches anyway.
> >
> > > No
> > > naming scheme is totally future-proof. If the accepted standard through
> > > the kernel is to use sunxi to refer to Allwinner SoCs, I don't think
> > > it's a bit idea to go with that.
> >
> > I'm not too concerned about the name here, but rather about the
> > process. Needing to do reorg like this is painful, as it causes
> > all pending work to fail merging against upstream, requiring rebases.
> > So, we should avoid needing to re-do it by trying our best to avoid
> > the need of another global change like that in the future.
>
> Most of the pain we'll go through in the immediate future comes from the
> fact that we never really cared about this.

Nah, we had other reorgs in the past, also trying to better organize
stuff, like splitting M2M from V4L and DVB platform drivers.

The thing is that the number of entries at platform/ increased
a lot, and that justifies a major change.

> I think renames (of vendors
> or product lines) will be infrequent enough that picking sunxi for
> Allwinner drivers wouldn't be an issue.

Agreed.

> There's a similar think with Renesas, which had an SH product line and
> then moved to ARM, creating R-Mobile and R-Car (among other product
> liens). That's why we still have drivers/dma/sh/ for Renesas DMA
> drivers.
>
> > By organizing entries per vendor, while we may need to do puntual
> > per-vendor adjustments when they rename and change IP with other
> > vendors, the global platform Kconfig/Make will contain a single entry
> > per vendor. I can't foresee any need to change this in the future,
> > if we take care of keeping the entries there properly sorted.
> >
> > With regards to naming the per-vendor directory, while I do prefer to have
> > the directories named after the vendor, and not after a vendor's nick
> > name, It should also be ok to use a vendor's nick name, provided that
> > such name is meant to be used by all their current and future IP.
> >
> > Not sure if "sunxi" is actually a vendor's nick name. It sounds
> > much likely that it is, instead, a brand name that covers their
> > current media-related SoC.
> >
> > Can someone from the vendor shed a light on it?
>
> Maybe we can let the Allwinner upstream community tell us what name to
> pick ? I'm sure they know better than us :-)

Works for me.

Thanks,
Mauro

2022-03-17 05:21:02

by Jernej Škrabec

[permalink] [raw]
Subject: Re: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/

Dne torek, 15. marec 2022 ob 09:35:05 CET je Laurent Pinchart napisal(a):
> On Tue, Mar 15, 2022 at 09:27:36AM +0100, Mauro Carvalho Chehab wrote:
> > Em Tue, 15 Mar 2022 08:54:25 +0200
> > Laurent Pinchart <[email protected]> escreveu:
> >
> > > Hi Mauro,
> > >
> > > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote:
> > > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej Škrabec escreveu:
> > > >
> > > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho
Chehab
> > > > > napisal(a):
> > > > > > As the end goal is to have platform drivers split by vendor,
> > > > > > rename sunxi/ to allwinner/.
> > > > > >
> > > > > > Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> > > > >
> > > > > I would rather not do that. Everything related to Allwinner is
called sunxi,
> > > > > albeit there are a few outliers. This is similar to Amlogic/meson
situation.
> > > >
> > > > The rationale of having one directory per manufacturer is that, if
drivers
> > > > for newer platforms with different names from the same manufacturers
are
> > > > added, those will still fit under allwinner/ and amlogic/.
> > > >
> > > > The Kconfig names for sunxi and meson didn't change, nor the driver's
name.
> > > > Also, the directories under allwinner preserve sun<x>i name on them:
> > > >
> > > > drivers/media/platform/allwinner/
> > > > ├── sun4i-csi
> > > > ├── sun6i-csi
> > > > ├── sun8i-di
> > > > └── sun8i-rotate
> > > >
> > > > and so the directory under amlogic/:
> > > >
> > > > drivers/media/platform/amlogic/
> > > > └── meson-ge2d
> > > >
> > > > Now, if Allinner decides to release a new platforms named after
another star,
> > > > let's say, "Vega" and "Rigel", it would be just a matter of adding
> > > > "vega/" and "rigel/" directories under allwinner. No need to touch
> > > > media/platform/Kconfig and media/platform/Makefile. Everything will
happen
> > > > on much more smaller vendor-specific Kconfig/Makefile.
> > >
> > > But the day Allwinner changes its name to Noloser, we'll have a similar
> > > problem.
> >
> > Not really. It will still be a single directory per vendor (whatever
> > name it is).
> >
> > > Thnk about Freescale vs. NXP, or Altera bought by Intel.
> >
> > Yeah, when some drivers move from one vendor to another one that
> > already exists there, we should probably move the directories, in
> > order to keep things well organized.
>
> I'm not sure we should. We still have arch/arm64/boot/dts/freescale/ for
> instance. We can answer that question later though, when confronted with
> the situation.
>
> > The worse case scenario is really if, let's say, TI decides to sell their
> > omap architecture to NXP, keeping the rest. On such case, the best would
> > be to move platform/ti/omap* to the directory of its newer owner.
> >
> > That's said, when things like that happen, there are usually a change
> > at MAINTAINERS, as e-mails, mailing lists and contact people will
> > likely change. So, this will very likely generate patches anyway.
> >
> > > No
> > > naming scheme is totally future-proof. If the accepted standard through
> > > the kernel is to use sunxi to refer to Allwinner SoCs, I don't think
> > > it's a bit idea to go with that.
> >
> > I'm not too concerned about the name here, but rather about the
> > process. Needing to do reorg like this is painful, as it causes
> > all pending work to fail merging against upstream, requiring rebases.
> > So, we should avoid needing to re-do it by trying our best to avoid
> > the need of another global change like that in the future.
>
> Most of the pain we'll go through in the immediate future comes from the
> fact that we never really cared about this. I think renames (of vendors
> or product lines) will be infrequent enough that picking sunxi for
> Allwinner drivers wouldn't be an issue.
>
> There's a similar think with Renesas, which had an SH product line and
> then moved to ARM, creating R-Mobile and R-Car (among other product
> liens). That's why we still have drivers/dma/sh/ for Renesas DMA
> drivers.
>
> > By organizing entries per vendor, while we may need to do puntual
> > per-vendor adjustments when they rename and change IP with other
> > vendors, the global platform Kconfig/Make will contain a single entry
> > per vendor. I can't foresee any need to change this in the future,
> > if we take care of keeping the entries there properly sorted.
> >
> > With regards to naming the per-vendor directory, while I do prefer to have
> > the directories named after the vendor, and not after a vendor's nick
> > name, It should also be ok to use a vendor's nick name, provided that
> > such name is meant to be used by all their current and future IP.
> >
> > Not sure if "sunxi" is actually a vendor's nick name. It sounds
> > much likely that it is, instead, a brand name that covers their
> > current media-related SoC.
> >
> > Can someone from the vendor shed a light on it?

Allwinner (as a company) isn't directly involved in maintaining upstream Linux
support. Drivers are provided by linux-sunxi community, sometimes by cleaning
up vendor drivers or more often by writing them from scratch.

That being said, "sunxi" is extensively used in vendor kernel, most often it's
directory name containing vendor specific driver. It's derived from SoC family
name, like sun4i, sun5i, sun5i, sun50i, etc. where number is replaced with X.

sunxi is synonym for Allwinner basically from the start. Community build
around these SoCs is called linux-sunxi and even entry in MAINTAINERS contains
both names: "ARM/Allwinner sunXi SoC support". Note that sunxi is not limited
to ARM SoCs. RISC-V family is called sun20i.

Hope this helps.

Best regards,
Jernej

>
> Maybe we can let the Allwinner upstream community tell us what name to
> pick ? I'm sure they know better than us :-)



>
> --
> Regards,
>
> Laurent Pinchart
>