Re: [PATCH 18/18] arm64: apple: Add initial Mac Mini 2020 (M1) devicetree

From: Hector Martin
Date: Mon Feb 08 2021 - 19:50:21 EST


On 09/02/2021 04.14, Rob Herring wrote:
Does there need to be a legal entity behind 'The Asahi Linux
Contributors' to be valid?

I don't think so, this seems to be common practice in other open source projects, and recommended these days.

Some recent discussion on the subject from the Linux Foundation:

https://www.linuxfoundation.org/en/blog/copyright-notices-in-open-source-software-projects/

From a more practical standpoint, if we want to relicense something in
say 5 years from now, who do we ask for an okay?

I thought that's what Git history was for; certainly we aren't keeping file headers up to date every time someone touches a file (which for anything other than trivial changes gives them a copyright interest in a portion of the file).

Asahi Linux's policy for bespoke projects is to use "The Asahi Linux Contributors" for this reason, acknowledging that the copyright headers aren't up to date anyway (also the years...), and implicitly directing people to the orignal project (which is where Git history is kept and contains the true record of copyright owneship).

I'm not trying to shake up how we handle copyright lines in the kernel here, of course; if you prefer some nominal copyright line from "whoever first wrote the file or most of it" I can do that. But it certainly won't be the only person you have to ask if you want to relicense, if anyone else touched the file in a nontrivial way :)

There are a few examples of this style in the tree, mostly pulled from other projects:

arch/arm/oprofile/common.c
drivers/gpu/drm/vgem/vgem_drv.[ch]
drivers/md/dm-verity-target.c
drivers/md/dm-verity.h

I guess Rob will comment on the dt-bindings more... but for me a generic
"arm-platform" is too generic. What's the point of it? I didn't see any
of such generic compatibles in other platforms.

This is a hack for patches #11/#12 to use, and I expect it will go away once
we figure out how to properly handle that problem (which needs further
discussion). Sorry for the noise, this should not be there in the final
version.

I was going to ask on this. If you have a user of it, I'm okay with it.
Generally though, 3 or 4 levels of compatible don't really have users.

The pattern here was board, soc, "arm-platform"; the first two seem to be a common (and useful) pattern, and I hope I can get rid of the third once we solve #11/#12 in a saner way.

It's a WIP to be more consistent around node names. For actual
clock controllers we have 'clock-controller(@.*)?'. There's not really
something established for 'fixed-clock'. We probably should define
something, but that goes in the schema first.

What do you suggest for this series?


+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ clock-output-names = "clk24";

What clock is it? Part of board or SoC? Isn't it a work-around for
missing clock drivers?

The clock topology isn't entirely known yet; I'm submitting this as an
initial bring-up patchset and indeed there should be a clockchip driver in
the future. The UART driver wants a clock to be able to calculate baud
rates. I figured we can get away with a fixed-clock for now while that part
of the SoC gets figured out.

That is normal. It does break compatibility between an old kernel
and new DT. There's not really a good way to avoid that.

Ack. I hope we can basically acknowledge breaking DT changes without too much fuss at this early stage of bring-up, until things calm down a bit and we have real users who would complain :) (not that I won't try to avoid it).

--
Hector Martin (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub