Message ID | 20220415142055.30873-1-sven@svenpeter.dev |
---|---|
Headers | show |
Series | Apple M1 (Pro/Max) NVMe driver | expand |
On Fri, Apr 15, 2022 at 04:20:55PM +0200, Sven Peter wrote: > +++ b/drivers/nvme/host/apple.c > @@ -0,0 +1,1597 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Apple ANS NVM Express device driver > + * Copyright The Asahi Linux Contributors Is that actually a valid legal entity? > +#include <linux/io-64-nonatomic-lo-hi.h> Does this controller still not support 64-bit MMIO accesses like the old Apple PCIe controllers or is this just a leftover? The rest of the code looks fine to me: Reviewed-by: Christoph Hellwig <hch@lst.de>
On 19/04/2022 14.31, Christoph Hellwig wrote: > On Fri, Apr 15, 2022 at 04:20:55PM +0200, Sven Peter wrote: >> +++ b/drivers/nvme/host/apple.c >> @@ -0,0 +1,1597 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * Apple ANS NVM Express device driver >> + * Copyright The Asahi Linux Contributors > > Is that actually a valid legal entity? It does not have to be. See here for the rationale behind this style of copyright line: https://www.linuxfoundation.org/blog/copyright-notices-in-open-source-software-projects/ TL;DR name- and year-ful copyright lines are basically useless, as they become out of date almost immediately after they are applied. This way we acknowledge that the files have multiple contributors (and that the copyright line isn't trying to be an exhaustive list thereof). This style is so far rare, but not unheard of, in the kernel; there is prior art (e.g. grep for 'Chromium OS Authors'). (I get to re-tell this story every time we upstream to a new subsystem; I think it's the sixth time or so :-) )
On Tue, Apr 19, 2022, at 07:31, Christoph Hellwig wrote: > On Fri, Apr 15, 2022 at 04:20:55PM +0200, Sven Peter wrote: >> +++ b/drivers/nvme/host/apple.c >> @@ -0,0 +1,1597 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * Apple ANS NVM Express device driver >> + * Copyright The Asahi Linux Contributors > > Is that actually a valid legal entity? > >> +#include <linux/io-64-nonatomic-lo-hi.h> > > Does this controller still not support 64-bit MMIO accesses like > the old Apple PCIe controllers or is this just a leftover? I just checked again and 64-bit accesses seem to work fine. I'll remove the lo_hi_* calls and this include. > > The rest of the code looks fine to me: > > Reviewed-by: Christoph Hellwig <hch@lst.de> Thanks! Sven
On Tue, Apr 19, 2022 at 11:47 AM Sven Peter <sven@svenpeter.dev> wrote: > On Tue, Apr 19, 2022, at 07:31, Christoph Hellwig wrote: > > On Fri, Apr 15, 2022 at 04:20:55PM +0200, Sven Peter wrote: > >> +++ b/drivers/nvme/host/apple.c > >> @@ -0,0 +1,1597 @@ > >> +// SPDX-License-Identifier: GPL-2.0 > >> +/* > >> + * Apple ANS NVM Express device driver > >> + * Copyright The Asahi Linux Contributors > > > > Is that actually a valid legal entity? > > > >> +#include <linux/io-64-nonatomic-lo-hi.h> > > > > Does this controller still not support 64-bit MMIO accesses like > > the old Apple PCIe controllers or is this just a leftover? > > I just checked again and 64-bit accesses seem to work fine. > I'll remove the lo_hi_* calls and this include. If you remove the #include, it is no longer possible to compile-test this on all 32-bit architectures, though that is probably fine as long as the Kconfig file has the right dependencies, like depends on ARCH_APPLE || (COMPILE_TEST && 64BIT) I'd prefer to keep the #include here, but I don't mind the dependency if Christoph prefers it that way. Arnd
On Tue, Apr 19, 2022 at 11:52:15AM +0200, Arnd Bergmann wrote: > > I just checked again and 64-bit accesses seem to work fine. > > I'll remove the lo_hi_* calls and this include. > > If you remove the #include, it is no longer possible to compile-test > this on all 32-bit architectures, though that is probably fine as long > as the Kconfig file has the right dependencies, like > > depends on ARCH_APPLE || (COMPILE_TEST && 64BIT) > > I'd prefer to keep the #include here, but I don't mind the dependency > if Christoph prefers it that way. So thre's really two steps here: 1) stop uing lo_hi_readq diretly which forces 32-bit access even on 64-bit platforms 2) stop using the io-64-nonatomic headers entirely I definitively want 1) done if the hardware does not require it. Trying to cater to 32-bit build tests on hardware that has no chance of ever being used there by including the header seems a bit silly, but if it makes folks happy I can live with it. > > Arnd ---end quoted text---
On Wed, Apr 20, 2022 at 6:34 AM hch@lst.de <hch@lst.de> wrote: > On Tue, Apr 19, 2022 at 11:52:15AM +0200, Arnd Bergmann wrote: > > > I just checked again and 64-bit accesses seem to work fine. > > > I'll remove the lo_hi_* calls and this include. > > > > If you remove the #include, it is no longer possible to compile-test > > this on all 32-bit architectures, though that is probably fine as long > > as the Kconfig file has the right dependencies, like > > > > depends on ARCH_APPLE || (COMPILE_TEST && 64BIT) > > > > I'd prefer to keep the #include here, but I don't mind the dependency > > if Christoph prefers it that way. > > So thre's really two steps here: > > 1) stop uing lo_hi_readq diretly which forces 32-bit access even on > 64-bit platforms > 2) stop using the io-64-nonatomic headers entirely > > I definitively want 1) done if the hardware does not require it. Yes, of cours.e > Trying to cater to 32-bit build tests on hardware that has no chance of > ever being used there by including the header seems a bit silly, but if > it makes folks happy I can live with it. As I said, I don't have a strong opinion either, it's either a trivial change in Kconfig or a trivial header inclusion and I'd pick the header one because it's more obvious what this is for without adding a comment. Arnd