2020-01-09 12:12:49

by Thomas Bogendoerfer

[permalink] [raw]
Subject: [PATCH v12 0/3] Use MFD framework for SGI IOC3 drivers

SGI IOC3 ASIC includes support for ethernet, PS2 keyboard/mouse,
NIC (number in a can), GPIO and a byte bus. By attaching a
SuperIO chip to it, it also supports serial lines and a parallel
port. The chip is used on a variety of SGI systems with different
configurations. This patchset moves code out of the network driver,
which doesn't belong there, into its new place a MFD driver and
specific platform drivers for the different subfunctions.

Changes in v12:
- added support for mapping all PCI interrupts as ioc3 uses INTB,
if both ethernet and superio is used

Changes in v11:
- dropped accepted patches out of the series
- moved byte swapping patch first in series
- added ip30 system board support

Changes in v10:
- generation of fake subdevice ID had vendor and device ID swapped

Changes in v9:
- remove generated MFD devices, when driver is removed or in case
of a mfd device setup error
- remove irq domain, if setup of mfd devices failed
- pci_iounmap on exit/error cases
- added irq domain unmap function

Changes in v8:
- Re-worked comments in drivers/mfd/ioc3.c
- Added select CRC16 to ioc3-eth.c
- Patches 1 and 2 are already taken to mips-next, but
for completeness of the series they are still included.
What's missing to get the remaining 3 patches via the MIPS
tree is an ack from a network maintainer

Changes in v7:
- added patch to enable ethernet phy for Origin 200 systems
- depend on 64bit for ioc3 mfd driver

Changes in v6:
- dropped patches accepted for v5.4-rc1
- moved serio patch to ip30 patch series
- adapted nvmem patch

Changes in v5:
- requested by Jakub I've splited ioc3 ethernet driver changes into
more steps to make the transition more visible; on the way there
I've "checkpatched" the driver and reduced code reorderings
- dropped all uint16_t and uint32_t
- added nvmem API extension to the documenation file
- changed to use request_irq/free_irq in serio driver
- removed wrong kfree() in serio error path

Changes in v4:
- added w1 drivers to the series after merge in 5.3 failed because
of no response from maintainer and other parts of this series
won't work without that drivers
- moved ip30 systemboard support to the ip30 series, which will
deal with rtc oddity Lee found
- converted to use devm_platform_ioremap_resource
- use PLATFORM_DEVID_AUTO for serial, ethernet and serio in mfd driver
- fixed reverse christmas order in ioc3-eth.c
- formating issue found by Lee
- re-worked irq request/free in serio driver to avoid crashes during
probe/remove

Changes in v3:
- use 1-wire subsystem for handling proms
- pci-xtalk driver uses prom information to create PCI subsystem
ids for use in MFD driver
- changed MFD driver to only use static declared mfd_cells
- added IP30 system board setup to MFD driver
- mac address is now read from ioc3-eth driver with nvmem framework

Changes in v2:
- fixed issue in ioc3kbd.c reported by Dmitry Torokhov
- merged IP27 RTC removal and 8250 serial driver addition into
main MFD patch to keep patches bisectable

Thomas Bogendoerfer (3):
MIPS: PCI: Support mapping of INTB/C/D for pci-xtalk-bridge
MIPS: SGI-IP27: fix readb/writeb addressing
mfd: ioc3: Add driver for SGI IOC3 chip

arch/mips/include/asm/mach-ip27/mangle-port.h | 4 +-
arch/mips/include/asm/pci/bridge.h | 3 +-
arch/mips/include/asm/sn/ioc3.h | 38 +-
arch/mips/pci/pci-xtalk-bridge.c | 28 +-
arch/mips/sgi-ip27/ip27-timer.c | 20 -
drivers/mfd/Kconfig | 13 +
drivers/mfd/Makefile | 1 +
drivers/mfd/ioc3.c | 669 ++++++++++++++++++
drivers/net/ethernet/sgi/Kconfig | 5 +-
drivers/net/ethernet/sgi/ioc3-eth.c | 544 +++-----------
drivers/rtc/rtc-m48t35.c | 11 +
drivers/tty/serial/8250/8250_ioc3.c | 98 +++
drivers/tty/serial/8250/Kconfig | 11 +
drivers/tty/serial/8250/Makefile | 1 +
14 files changed, 951 insertions(+), 495 deletions(-)
create mode 100644 drivers/mfd/ioc3.c
create mode 100644 drivers/tty/serial/8250/8250_ioc3.c

--
2.24.1


2020-01-10 19:26:29

by Paul Burton

[permalink] [raw]
Subject: Re: [PATCH v12 0/3] Use MFD framework for SGI IOC3 drivers

Hello,

Thomas Bogendoerfer wrote:
> SGI IOC3 ASIC includes support for ethernet, PS2 keyboard/mouse,
> NIC (number in a can), GPIO and a byte bus. By attaching a
> SuperIO chip to it, it also supports serial lines and a parallel
> port. The chip is used on a variety of SGI systems with different
> configurations. This patchset moves code out of the network driver,
> which doesn't belong there, into its new place a MFD driver and
> specific platform drivers for the different subfunctions.
>
> Changes in v12:
> - added support for mapping all PCI interrupts as ioc3 uses INTB,
> if both ethernet and superio is used
>
> Changes in v11:
> - dropped accepted patches out of the series
> - moved byte swapping patch first in series
> - added ip30 system board support
>
> Changes in v10:
> - generation of fake subdevice ID had vendor and device ID swapped
>
> Changes in v9:
> - remove generated MFD devices, when driver is removed or in case
> of a mfd device setup error
> - remove irq domain, if setup of mfd devices failed
> - pci_iounmap on exit/error cases
> - added irq domain unmap function
>
> Changes in v8:
> - Re-worked comments in drivers/mfd/ioc3.c
> - Added select CRC16 to ioc3-eth.c
> - Patches 1 and 2 are already taken to mips-next, but
> for completeness of the series they are still included.
> What's missing to get the remaining 3 patches via the MIPS
> tree is an ack from a network maintainer
>
> Changes in v7:
> - added patch to enable ethernet phy for Origin 200 systems
> - depend on 64bit for ioc3 mfd driver
>
> Changes in v6:
> - dropped patches accepted for v5.4-rc1
> - moved serio patch to ip30 patch series
> - adapted nvmem patch
>
> Changes in v5:
> - requested by Jakub I've splited ioc3 ethernet driver changes into
> more steps to make the transition more visible; on the way there
> I've "checkpatched" the driver and reduced code reorderings
> - dropped all uint16_t and uint32_t
> - added nvmem API extension to the documenation file
> - changed to use request_irq/free_irq in serio driver
> - removed wrong kfree() in serio error path
>
> Changes in v4:
> - added w1 drivers to the series after merge in 5.3 failed because
> of no response from maintainer and other parts of this series
> won't work without that drivers
> - moved ip30 systemboard support to the ip30 series, which will
> deal with rtc oddity Lee found
> - converted to use devm_platform_ioremap_resource
> - use PLATFORM_DEVID_AUTO for serial, ethernet and serio in mfd driver
> - fixed reverse christmas order in ioc3-eth.c
> - formating issue found by Lee
> - re-worked irq request/free in serio driver to avoid crashes during
> probe/remove
>
> Changes in v3:
> - use 1-wire subsystem for handling proms
> - pci-xtalk driver uses prom information to create PCI subsystem
> ids for use in MFD driver
> - changed MFD driver to only use static declared mfd_cells
> - added IP30 system board setup to MFD driver
> - mac address is now read from ioc3-eth driver with nvmem framework
>
> Changes in v2:
> - fixed issue in ioc3kbd.c reported by Dmitry Torokhov
> - merged IP27 RTC removal and 8250 serial driver addition into
> main MFD patch to keep patches bisectable
>
> Thomas Bogendoerfer (3):
> MIPS: PCI: Support mapping of INTB/C/D for pci-xtalk-bridge
> MIPS: SGI-IP27: fix readb/writeb addressing
> mfd: ioc3: Add driver for SGI IOC3 chip
>
> arch/mips/include/asm/mach-ip27/mangle-port.h | 4 +-
> arch/mips/include/asm/pci/bridge.h | 3 +-
> arch/mips/include/asm/sn/ioc3.h | 38 +-
> arch/mips/pci/pci-xtalk-bridge.c | 28 +-
> arch/mips/sgi-ip27/ip27-timer.c | 20 -
> drivers/mfd/Kconfig | 13 +
> drivers/mfd/Makefile | 1 +
> drivers/mfd/ioc3.c | 669 ++++++++++++++++++
> drivers/net/ethernet/sgi/Kconfig | 5 +-

Series applied to mips-next.

> MIPS: PCI: Support mapping of INTB/C/D for pci-xtalk-bridge
> commit 2634e5a651e7
> https://git.kernel.org/mips/c/2634e5a651e7
>
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> Signed-off-by: Paul Burton <[email protected]>
>
> MIPS: SGI-IP27: fix readb/writeb addressing
> commit 10cf8300ecad
> https://git.kernel.org/mips/c/10cf8300ecad
>
> Acked-by: Alexandre Belloni <[email protected]>
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> Signed-off-by: Paul Burton <[email protected]>
>
> mfd: ioc3: Add driver for SGI IOC3 chip
> commit 0ce5ebd24d25
> https://git.kernel.org/mips/c/0ce5ebd24d25
>
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> Signed-off-by: Paul Burton <[email protected]>

Thanks,
Paul

[ This message was auto-generated; if you believe anything is incorrect
then please email [email protected] to report it. ]