2022-08-18 22:04:46

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 0/4] ARM: footbridge: cleanups

From: Arnd Bergmann <[email protected]>

I had an older patch to remove the addin mode for footbridge,
which nobody is using any more, and I found a few other small
cleanups that are worth doing here.

Footbridge is now the only platform with a custom __virt_to_bus()
for ISA DMA, and a custom phys_to_dma() for PCI devices. Both
just add a fixed offset, so there is probably a better way
of doing the same without a custom helper function.

Arnd

Arnd Bergmann (4):
ARM: footbridge: remove addin mode
ARM: footbridge: remove leftover from personal-server
ARM: footbridge: move isa-dma support into footbridge
ARM: footbridge: limit CONFIG_ISA to CATS

arch/arm/Kconfig | 5 --
arch/arm/include/asm/hardware/dec21285.h | 13 ----
arch/arm/kernel/Makefile | 1 -
arch/arm/mach-footbridge/Kconfig | 30 +-------
arch/arm/mach-footbridge/Makefile | 5 +-
arch/arm/mach-footbridge/common.c | 73 ++-----------------
arch/arm/mach-footbridge/dc21285.c | 61 +++++-----------
.../arm/{kernel => mach-footbridge}/dma-isa.c | 7 +-
arch/arm/mach-footbridge/dma.c | 58 ---------------
.../mach-footbridge/include/mach/isa-dma.h | 14 +---
.../arm/mach-footbridge/include/mach/memory.h | 22 ------
arch/arm/mach-footbridge/isa.c | 14 ++--
drivers/tty/serial/21285.c | 3 -
13 files changed, 42 insertions(+), 264 deletions(-)
rename arch/arm/{kernel => mach-footbridge}/dma-isa.c (98%)
delete mode 100644 arch/arm/mach-footbridge/dma.c

--
2.29.2

Cc: Russell King <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: Marc Zyngier <[email protected]>


2022-08-18 22:06:00

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 4/4] ARM: footbridge: limit CONFIG_ISA to CATS

From: Arnd Bergmann <[email protected]>

The CONFIG_ISA option is only used for actual add-in cards, not
on-board devices. NetWinder has no hardware support for those,
and ebsa285 appears to not support them in Linux, as the XBUS
is not set up that way and there is no support for a PCI-ISA
bridge.

CATS on the other hand has four ISA slots connected to a PCI-ISA
bridge device.

Signed-off-by: Arnd Bergmann <[email protected]>
---
arch/arm/mach-footbridge/Kconfig | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index 1a3676109654..cd18871fd03f 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -18,7 +18,6 @@ config ARCH_CATS
config ARCH_EBSA285_HOST
bool "EBSA285 (host mode)"
select ARCH_EBSA285
- select ISA
select ARCH_MAY_HAVE_PC_FDC
select FORCE_PCI
help
@@ -31,7 +30,6 @@ config ARCH_NETWINDER
bool "NetWinder"
select CLKEVT_I8253
select CLKSRC_I8253
- select ISA
select FORCE_PCI
help
Say Y here if you intend to run this kernel on the Rebel.COM
--
2.29.2

2022-09-04 11:49:32

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH 0/4] ARM: footbridge: cleanups

On Thu, 18 Aug 2022 22:15:46 +0100,
Arnd Bergmann <[email protected]> wrote:
>
> From: Arnd Bergmann <[email protected]>
>
> I had an older patch to remove the addin mode for footbridge,
> which nobody is using any more, and I found a few other small
> cleanups that are worth doing here.
>
> Footbridge is now the only platform with a custom __virt_to_bus()
> for ISA DMA, and a custom phys_to_dma() for PCI devices. Both
> just add a fixed offset, so there is probably a better way
> of doing the same without a custom helper function.
>
> Arnd
>
> Arnd Bergmann (4):
> ARM: footbridge: remove addin mode
> ARM: footbridge: remove leftover from personal-server
> ARM: footbridge: move isa-dma support into footbridge
> ARM: footbridge: limit CONFIG_ISA to CATS
>
> arch/arm/Kconfig | 5 --
> arch/arm/include/asm/hardware/dec21285.h | 13 ----
> arch/arm/kernel/Makefile | 1 -
> arch/arm/mach-footbridge/Kconfig | 30 +-------
> arch/arm/mach-footbridge/Makefile | 5 +-
> arch/arm/mach-footbridge/common.c | 73 ++-----------------
> arch/arm/mach-footbridge/dc21285.c | 61 +++++-----------
> .../arm/{kernel => mach-footbridge}/dma-isa.c | 7 +-
> arch/arm/mach-footbridge/dma.c | 58 ---------------
> .../mach-footbridge/include/mach/isa-dma.h | 14 +---
> .../arm/mach-footbridge/include/mach/memory.h | 22 ------
> arch/arm/mach-footbridge/isa.c | 14 ++--
> drivers/tty/serial/21285.c | 3 -
> 13 files changed, 42 insertions(+), 264 deletions(-)
> rename arch/arm/{kernel => mach-footbridge}/dma-isa.c (98%)
> delete mode 100644 arch/arm/mach-footbridge/dma.c
>
> --
> 2.29.2
>
> Cc: Russell King <[email protected]>
> Cc: Christoph Hellwig <[email protected]>
> Cc: Linus Walleij <[email protected]>
> Cc: Marc Zyngier <[email protected]>

I finally managed to give this a go on my netwinder using v2 of patch
5/4 (!), and the box booted nicely.

Note that apart from the serial console, everything I'm using on this
box is PCI (I tried to enable sound and failed, probably because I
can't select CONFIG_ISA anymore on this machine).

Anyway, for the purpose of this series:

Tested-by: Marc Zyngier <[email protected]>

M.

--
Without deviation from the norm, progress is not possible.

2022-09-04 12:46:49

by Russell King (Oracle)

[permalink] [raw]
Subject: Re: [PATCH 0/4] ARM: footbridge: cleanups

On Sun, Sep 04, 2022 at 12:43:48PM +0100, Marc Zyngier wrote:
> On Thu, 18 Aug 2022 22:15:46 +0100,
> Arnd Bergmann <[email protected]> wrote:
> >
> > From: Arnd Bergmann <[email protected]>
> >
> > I had an older patch to remove the addin mode for footbridge,
> > which nobody is using any more, and I found a few other small
> > cleanups that are worth doing here.
> >
> > Footbridge is now the only platform with a custom __virt_to_bus()
> > for ISA DMA, and a custom phys_to_dma() for PCI devices. Both
> > just add a fixed offset, so there is probably a better way
> > of doing the same without a custom helper function.
> >
> > Arnd
> >
> > Arnd Bergmann (4):
> > ARM: footbridge: remove addin mode
> > ARM: footbridge: remove leftover from personal-server
> > ARM: footbridge: move isa-dma support into footbridge
> > ARM: footbridge: limit CONFIG_ISA to CATS
> >
> > arch/arm/Kconfig | 5 --
> > arch/arm/include/asm/hardware/dec21285.h | 13 ----
> > arch/arm/kernel/Makefile | 1 -
> > arch/arm/mach-footbridge/Kconfig | 30 +-------
> > arch/arm/mach-footbridge/Makefile | 5 +-
> > arch/arm/mach-footbridge/common.c | 73 ++-----------------
> > arch/arm/mach-footbridge/dc21285.c | 61 +++++-----------
> > .../arm/{kernel => mach-footbridge}/dma-isa.c | 7 +-
> > arch/arm/mach-footbridge/dma.c | 58 ---------------
> > .../mach-footbridge/include/mach/isa-dma.h | 14 +---
> > .../arm/mach-footbridge/include/mach/memory.h | 22 ------
> > arch/arm/mach-footbridge/isa.c | 14 ++--
> > drivers/tty/serial/21285.c | 3 -
> > 13 files changed, 42 insertions(+), 264 deletions(-)
> > rename arch/arm/{kernel => mach-footbridge}/dma-isa.c (98%)
> > delete mode 100644 arch/arm/mach-footbridge/dma.c
> >
> > --
> > 2.29.2
> >
> > Cc: Russell King <[email protected]>
> > Cc: Christoph Hellwig <[email protected]>
> > Cc: Linus Walleij <[email protected]>
> > Cc: Marc Zyngier <[email protected]>
>
> I finally managed to give this a go on my netwinder using v2 of patch
> 5/4 (!), and the box booted nicely.
>
> Note that apart from the serial console, everything I'm using on this
> box is PCI (I tried to enable sound and failed, probably because I
> can't select CONFIG_ISA anymore on this machine).

That tends to mean, therefore, that the statement "CONFIG_ISA is for
add-in cards" is wrong, because it's caused a user-visible regression
by killing sound support on Netwinders!

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

2022-09-04 16:24:59

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH 0/4] ARM: footbridge: cleanups

On Sun, 04 Sep 2022 13:09:42 +0100,
"Russell King (Oracle)" <[email protected]> wrote:
>
> On Sun, Sep 04, 2022 at 12:43:48PM +0100, Marc Zyngier wrote:
> > On Thu, 18 Aug 2022 22:15:46 +0100,
> > Arnd Bergmann <[email protected]> wrote:
> > >
> > > From: Arnd Bergmann <[email protected]>
> > >
> > > I had an older patch to remove the addin mode for footbridge,
> > > which nobody is using any more, and I found a few other small
> > > cleanups that are worth doing here.
> > >
> > > Footbridge is now the only platform with a custom __virt_to_bus()
> > > for ISA DMA, and a custom phys_to_dma() for PCI devices. Both
> > > just add a fixed offset, so there is probably a better way
> > > of doing the same without a custom helper function.
> > >
> > > Arnd
> > >
> > > Arnd Bergmann (4):
> > > ARM: footbridge: remove addin mode
> > > ARM: footbridge: remove leftover from personal-server
> > > ARM: footbridge: move isa-dma support into footbridge
> > > ARM: footbridge: limit CONFIG_ISA to CATS
> > >
> > > arch/arm/Kconfig | 5 --
> > > arch/arm/include/asm/hardware/dec21285.h | 13 ----
> > > arch/arm/kernel/Makefile | 1 -
> > > arch/arm/mach-footbridge/Kconfig | 30 +-------
> > > arch/arm/mach-footbridge/Makefile | 5 +-
> > > arch/arm/mach-footbridge/common.c | 73 ++-----------------
> > > arch/arm/mach-footbridge/dc21285.c | 61 +++++-----------
> > > .../arm/{kernel => mach-footbridge}/dma-isa.c | 7 +-
> > > arch/arm/mach-footbridge/dma.c | 58 ---------------
> > > .../mach-footbridge/include/mach/isa-dma.h | 14 +---
> > > .../arm/mach-footbridge/include/mach/memory.h | 22 ------
> > > arch/arm/mach-footbridge/isa.c | 14 ++--
> > > drivers/tty/serial/21285.c | 3 -
> > > 13 files changed, 42 insertions(+), 264 deletions(-)
> > > rename arch/arm/{kernel => mach-footbridge}/dma-isa.c (98%)
> > > delete mode 100644 arch/arm/mach-footbridge/dma.c
> > >
> > > --
> > > 2.29.2
> > >
> > > Cc: Russell King <[email protected]>
> > > Cc: Christoph Hellwig <[email protected]>
> > > Cc: Linus Walleij <[email protected]>
> > > Cc: Marc Zyngier <[email protected]>
> >
> > I finally managed to give this a go on my netwinder using v2 of patch
> > 5/4 (!), and the box booted nicely.
> >
> > Note that apart from the serial console, everything I'm using on this
> > box is PCI (I tried to enable sound and failed, probably because I
> > can't select CONFIG_ISA anymore on this machine).
>
> That tends to mean, therefore, that the statement "CONFIG_ISA is for
> add-in cards" is wrong, because it's caused a user-visible regression
> by killing sound support on Netwinders!

To some extent, yes. Adding this allows me to peek at some of the ISA
soundcards:

diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index f452663576d1..f4c4222fa7c0 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -31,6 +31,7 @@ config ARCH_NETWINDER
select CLKEVT_I8253
select CLKSRC_I8253
select FORCE_PCI
+ select ISA
help
Say Y here if you intend to run this kernel on the Rebel.COM
NetWinder. Information about this machine can be found at:

However, the Waveartist driver has gone the way of the dodo (together
with the rest of the OSS support in 4.15), and it isn't obvious to me
whether one of the several SoundBlaster drivers is appropriate on this
machine.

I also cannot say I deeply care, to be honest.

M.

--
Without deviation from the norm, progress is not possible.

2022-09-04 23:28:30

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 0/4] ARM: footbridge: cleanups

On Sun, Sep 4, 2022, at 6:10 PM, Marc Zyngier wrote:
> On Sun, 04 Sep 2022 13:09:42 +0100,
> "Russell King (Oracle)" <[email protected]> wrote:
>> > > Cc: Russell King <[email protected]>
>> > > Cc: Christoph Hellwig <[email protected]>
>> > > Cc: Linus Walleij <[email protected]>
>> > > Cc: Marc Zyngier <[email protected]>
>> >
>> > I finally managed to give this a go on my netwinder using v2 of patch
>> > 5/4 (!), and the box booted nicely.

Excellent, thanks for testing!

>> > Note that apart from the serial console, everything I'm using on this
>> > box is PCI (I tried to enable sound and failed, probably because I
>> > can't select CONFIG_ISA anymore on this machine).

There are a couple of ISA-style devices on the superIO chip,
and I had checked this one to see what actually uses the
ISA DMA. As far as I can tell, the ECP parallel port and floppy
should still fully work in DMA mode, but these don't depend on
CONFIG_ISA. Irda and waveartist are gone, and the keyboard/mouse,
RTC, uart etc are neither DMA capable not based on CONFIG_ISA.

>> That tends to mean, therefore, that the statement "CONFIG_ISA is for
>> add-in cards" is wrong, because it's caused a user-visible regression
>> by killing sound support on Netwinders!
>
> To some extent, yes. Adding this allows me to peek at some of the ISA
> soundcards:
>
> diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
> index f452663576d1..f4c4222fa7c0 100644
> --- a/arch/arm/mach-footbridge/Kconfig
> +++ b/arch/arm/mach-footbridge/Kconfig
> @@ -31,6 +31,7 @@ config ARCH_NETWINDER
> select CLKEVT_I8253
> select CLKSRC_I8253
> select FORCE_PCI
> + select ISA
> help
> Say Y here if you intend to run this kernel on the Rebel.COM
> NetWinder. Information about this machine can be found at:
>
> However, the Waveartist driver has gone the way of the dodo (together
> with the rest of the OSS support in 4.15), and it isn't obvious to me
> whether one of the several SoundBlaster drivers is appropriate on this
> machine.
>
> I also cannot say I deeply care, to be honest.

I already made sure that there are no devices in the defconfig
that get disabled when turning off CONFIG_ISA, so at least for
anyone using the defconfig, my change made no difference.

It's possible that the sb16 ISA driver works in non-PNP mode,
but it appears to look for the wrong IRQ number and mixer,
the other SB16 compatible drivers all assume ISAPNP or PCI.

My guess is that to use this properly, one would have
to turn take the mixer bits from the OSS waveartist
driver and turn that into an ALSA driver along with a
simple platform driver frontend for sb16-common.ko.

Arnd