Re: [PATCH] usb: dwc3: make USB_DWC3_EXYNOS independent

From: Arnd Bergmann
Date: Wed Mar 03 2021 - 13:52:08 EST


On Wed, Mar 3, 2021 at 4:46 PM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
> On 03/03/2021 16:09, Greg Kroah-Hartman wrote:
> > On Wed, Mar 03, 2021 at 06:56:38AM -0800, Guenter Roeck wrote:
> >> On 3/3/21 6:05 AM, Greg Kroah-Hartman wrote:
> >> [ ... ]
> >>>> Anyway, that's the convention or consensus so far for entire SoC. If we
> >>>> want to change it - sure, but let's make it for everyone, not for just
> >>>> this one USB driver.
> >>>
> >>> Great, let's change it for everyone, I don't see a need for ARCH_*
> >>> symbols except for people who want to make it simpler for their one
> >>> board type. And for that, use a defconfig.
> >>>
> >>
> >> I don't think that will work in practice. Many ARCH_ symbols for various
> >> architectures contradict with each other. Almost all watchdog drivers
> >> only _build_ for specific platforms/architectures.
> >
> > Great, that's horrible to hear, so much for a "generic arm64 kernel
> > binary" which I _thought_ was the goal.
> >
> > ugh, you would have thought we would have learned our lesson with
> > arm32...

I have no idea what you are talking about here. arm64 kernels have
always been generic, but you still need drivers for each piece of
hardware, we unfortunately can't stop SoC vendors from reinventing
the wheel with each new platform and then having to add yet another
driver for each subsystems.

> I think Guenter here refers to drivers which actually came from arm32
> and were not cleaned up to be build without machine-specific bits
> (arch/arm/mach-xxx).
>
> Most or all of the new code is made buildable outside of
> machine/ARCH_xxx (so COMPILE_TEST).

There are very few 32-bit arm platforms left that are mutually exclusive,
they are largely the ones that have not seen much maintenance in the
last ten years but still have users. Generally drivers for those platforms
don't have any remaining compile-time dependencies though.

Looking at watchdog drivers that can not coexist with others, I see:

- 21285_WATCHDOG (ARMv4 CATS from 1998)
- 977_WATCHDOG (ARMv4 netwinder from 1998)
- IXP4XX_WATCHDOG (Intel/ARMv5 network chip from 2002)
- IOP_WATCHDOG (Intel/ARMv5 storage chip from 2002)
- SA1100_WATCHDOG (Intel/ARMv4 mobile chip from 1998)
- EP93XX_WATCHDOG (Cirrus Logic ARMv4 embedded chip from 2003)
- SC520_WDT (AMD ELAN x86 chip from 2001)
- M54xx_WATCHDOG (m68k coldfire from early 2000s)
- ATH79_WDT (mips)
- RC32434_WDT (mips)
- INDYDOG (mips)
- WDT_MTX1 (mips)
- SIBYTE_WDOG (mips)
- AR7_WDT (mips)
- TXX9_WDT (mips)
- OCTEON_WDT (mips)
- LANTIQ_WDT (mips)
- LOONGSON1_WDT (mips)
- MT7621_WDT (mips)
- PIC32_WDT (mips)
- PIC32_DMT (mips)

Arnd