There have been several attempts in the past few years to allow
building the QUICC engine drivers for platforms other than PPC. This
is yet another attempt.
v3 can be found here: https://lore.kernel.org/lkml/[email protected]/
v4 adds a some patches to fix (ab)use of IS_ERR_VALUE which fails when
sizeof(u32) != sizeof(long), i.e. on 64-bit platforms. Freescale
drivers are some of the last holdouts using that macro (outside of
arch/ and core mm code), so I decided trying to simply get rid of it
instead of papering over it by using a temporary long to store the
result in. Doing that I stumbled on some other things that should be
fixed. These are the new patches 34-45.
Patch 35 from v3 (which added a PPC32 dependency to FSL_UCC_HDLC) is
gone from this version, so that that driver can indeed now be built
for arm and arm64.
1-5 are about replacing in_be32 etc. in the core QE code (drivers/soc/fsl/qe).
6-8 handle miscellaneous other ppcisms.
9-21 deal with qe_ic: Simplifying the driver significantly by removing
unused code, and removing the platform-specific initialization from
arch/powerpc/.
22-25 deal with raw access to devicetree properties in native endianness.
26-33 makes drivers/tty/serial/ucc_uart.c (CONFIG_SERIAL_QE) ready to build on arm.
34-45 deal with IS_ERR_VALUE() and some other things found while
digging around that part of the code.
46 adds a PPC32 dependency to UCC_GETH - it has some of the same
issues that have been fixed in the ucc_uart and ucc_hdlc cases. Nobody
has requested that I allow that driver to be built for arm{,64}, so
instead of growing this series even bigger, I kept that addition. It's
trivial to remove if somebody cares enough to fix the build
errors/warnings and actually has a platform to test the result on.
Finally patch 47 lifts the PPC32 restriction from QUICC_ENGINE. At the
request of Li Yang, it doesn't remove the PPC32 dependency but instead
changes it to PPC32 || ARM || ARM64 (or COMPILE_TEST), i.e. listing
the platforms that may have a QE.
The series has been built and booted on both an mpc8309-based platform
(ppc) as well as an ls1021a-based platform (arm). The core QE code is
exercised on both, while I could only test the ucc_uart on arm, since
the uarts are not wired up on our mpc8309 board. Qiang Zhao reports
that the ucc_hdlc driver does indeed work on a ls1043ardb (arm64)
board, I hope he'll formally add a Tested-by: to the relevant patches
since I don't have any arm64 board with QE.
Rasmus Villemoes (47):
soc: fsl: qe: remove space-before-tab
soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs
soc: fsl: qe: rename qe_(clr/set/clrset)bit* helpers
soc: fsl: qe: introduce qe_io{read,write}* wrappers
soc: fsl: qe: avoid ppc-specific io accessors
soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic
soc: fsl: qe: qe.c: guard use of pvr_version_is() with CONFIG_PPC32
soc: fsl: qe: drop unneeded #includes
soc: fsl: qe: drop assign-only high_active in qe_ic_init
soc: fsl: qe: remove pointless sysfs registration in qe_ic.c
soc: fsl: qe: use qe_ic_cascade_{low,high}_mpic also on 83xx
soc: fsl: qe: move calls of qe_ic_init out of arch/powerpc/
powerpc/83xx: remove mpc83xx_ipic_and_qe_init_IRQ
powerpc/85xx: remove mostly pointless mpc85xx_qe_init()
soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c
soc: fsl: qe: rename qe_ic_cascade_low_mpic -> qe_ic_cascade_low
soc: fsl: qe: remove unused qe_ic_set_* functions
soc: fsl: qe: don't use NO_IRQ in qe_ic.c
soc: fsl: qe: make qe_ic_get_{low,high}_irq static
soc: fsl: qe: simplify qe_ic_init()
soc: fsl: qe: merge qe_ic.h headers into qe_ic.c
soc: fsl: qe: qe.c: use of_property_read_* helpers
soc: fsl: qe: qe_io.c: don't open-code of_parse_phandle()
soc: fsl: qe: qe_io.c: access device tree property using be32_to_cpu
soc: fsl: qe: qe_io.c: use of_property_read_u32() in par_io_init()
soc: fsl: move cpm.h from powerpc/include/asm to include/soc/fsl
soc/fsl/qe/qe.h: update include path for cpm.h
serial: ucc_uart: explicitly include soc/fsl/cpm.h
serial: ucc_uart: replace ppc-specific IO accessors
serial: ucc_uart: factor out soft_uart initialization
serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32
serial: ucc_uart: use of_property_read_u32() in ucc_uart_probe()
serial: ucc_uart: access __be32 field using be32_to_cpu
soc: fsl: qe: change return type of cpm_muram_alloc() to s32
soc: fsl: qe: make cpm_muram_free() return void
soc: fsl: qe: make cpm_muram_free() ignore a negative offset
soc: fsl: qe: drop broken lazy call of cpm_muram_init()
soc: fsl: qe: refactor cpm_muram_alloc_common to prevent BUG on error
path
soc: fsl: qe: avoid IS_ERR_VALUE in ucc_slow.c
soc: fsl: qe: drop use of IS_ERR_VALUE in qe_sdma_init()
soc: fsl: qe: drop pointless check in qe_sdma_init()
soc: fsl: qe: avoid IS_ERR_VALUE in ucc_fast.c
net/wan/fsl_ucc_hdlc: avoid use of IS_ERR_VALUE()
net/wan/fsl_ucc_hdlc: fix reading of __be16 registers
net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32
soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
arch/powerpc/include/asm/cpm.h | 172 +-------
arch/powerpc/platforms/83xx/km83xx.c | 3 +-
arch/powerpc/platforms/83xx/misc.c | 23 --
arch/powerpc/platforms/83xx/mpc832x_mds.c | 3 +-
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 3 +-
arch/powerpc/platforms/83xx/mpc836x_mds.c | 3 +-
arch/powerpc/platforms/83xx/mpc836x_rdk.c | 3 +-
arch/powerpc/platforms/83xx/mpc83xx.h | 7 -
arch/powerpc/platforms/85xx/common.c | 23 --
arch/powerpc/platforms/85xx/corenet_generic.c | 12 -
arch/powerpc/platforms/85xx/mpc85xx.h | 2 -
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 28 --
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 18 -
arch/powerpc/platforms/85xx/twr_p102x.c | 16 -
drivers/net/ethernet/freescale/Kconfig | 2 +-
drivers/net/wan/fsl_ucc_hdlc.c | 23 +-
drivers/net/wan/fsl_ucc_hdlc.h | 2 +-
drivers/soc/fsl/qe/Kconfig | 3 +-
drivers/soc/fsl/qe/gpio.c | 34 +-
drivers/soc/fsl/qe/qe.c | 104 ++---
drivers/soc/fsl/qe/qe_common.c | 50 +--
drivers/soc/fsl/qe/qe_ic.c | 285 ++++++-------
drivers/soc/fsl/qe/qe_ic.h | 99 -----
drivers/soc/fsl/qe/qe_io.c | 70 ++--
drivers/soc/fsl/qe/qe_tdm.c | 8 +-
drivers/soc/fsl/qe/ucc.c | 26 +-
drivers/soc/fsl/qe/ucc_fast.c | 86 ++--
drivers/soc/fsl/qe/ucc_slow.c | 60 ++-
drivers/soc/fsl/qe/usb.c | 2 +-
drivers/tty/serial/ucc_uart.c | 383 +++++++++---------
include/soc/fsl/cpm.h | 171 ++++++++
include/soc/fsl/qe/qe.h | 59 ++-
include/soc/fsl/qe/qe_ic.h | 135 ------
include/soc/fsl/qe/ucc_fast.h | 4 +-
include/soc/fsl/qe/ucc_slow.h | 6 +-
35 files changed, 770 insertions(+), 1158 deletions(-)
delete mode 100644 drivers/soc/fsl/qe/qe_ic.h
create mode 100644 include/soc/fsl/cpm.h
delete mode 100644 include/soc/fsl/qe/qe_ic.h
--
2.23.0
These includes are not actually needed, and asm/rheap.h and
sysdev/fsl_soc.h are PPC-specific, hence prevent compiling QE for
other architectures.
Signed-off-by: Rasmus Villemoes <[email protected]>
---
drivers/soc/fsl/qe/qe.c | 5 -----
drivers/soc/fsl/qe/qe_io.c | 2 --
2 files changed, 7 deletions(-)
diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c
index 1d8aa62c7ddf..a4763282ea68 100644
--- a/drivers/soc/fsl/qe/qe.c
+++ b/drivers/soc/fsl/qe/qe.c
@@ -26,13 +26,8 @@
#include <linux/crc32.h>
#include <linux/mod_devicetable.h>
#include <linux/of_platform.h>
-#include <asm/irq.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
#include <soc/fsl/qe/immap_qe.h>
#include <soc/fsl/qe/qe.h>
-#include <asm/prom.h>
-#include <asm/rheap.h>
static void qe_snums_init(void);
static int qe_sdma_init(void);
diff --git a/drivers/soc/fsl/qe/qe_io.c b/drivers/soc/fsl/qe/qe_io.c
index 5e3471ac09dd..f6b10f38b2f4 100644
--- a/drivers/soc/fsl/qe/qe_io.c
+++ b/drivers/soc/fsl/qe/qe_io.c
@@ -18,8 +18,6 @@
#include <asm/io.h>
#include <soc/fsl/qe/qe.h>
-#include <asm/prom.h>
-#include <sysdev/fsl_soc.h>
#undef DEBUG
--
2.23.0
high_active is only assigned to but never used. Remove it.
Signed-off-by: Rasmus Villemoes <[email protected]>
---
drivers/soc/fsl/qe/qe_ic.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/soc/fsl/qe/qe_ic.c b/drivers/soc/fsl/qe/qe_ic.c
index 8c874372416b..4b03060d8079 100644
--- a/drivers/soc/fsl/qe/qe_ic.c
+++ b/drivers/soc/fsl/qe/qe_ic.c
@@ -320,7 +320,7 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
{
struct qe_ic *qe_ic;
struct resource res;
- u32 temp = 0, ret, high_active = 0;
+ u32 temp = 0, ret;
ret = of_address_to_resource(node, 0, &res);
if (ret)
@@ -366,10 +366,8 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
temp |= CICR_GRTB;
/* choose destination signal for highest priority interrupt */
- if (flags & QE_IC_HIGH_SIGNAL) {
+ if (flags & QE_IC_HIGH_SIGNAL)
temp |= (SIGNAL_HIGH << CICR_HPIT_SHIFT);
- high_active = 1;
- }
qe_ic_write(qe_ic->regs, QEIC_CICR, temp);
--
2.23.0
On Fri, Nov 8, 2019 at 7:05 AM Rasmus Villemoes
<[email protected]> wrote:
>
I'm generally ok with these enhencements and cleanups. But as the
whole patch series touched multiple subsystems, I would like to
collect the Acked-by from Scott, Greg and David if we want the whole
series to go through the fsl/soc tree.
Also Qiang, can you help to test the latest version and provide you
Tested-by? Thanks.
> There have been several attempts in the past few years to allow
> building the QUICC engine drivers for platforms other than PPC. This
> is yet another attempt.
>
> v3 can be found here: https://lore.kernel.org/lkml/[email protected]/
>
> v4 adds a some patches to fix (ab)use of IS_ERR_VALUE which fails when
> sizeof(u32) != sizeof(long), i.e. on 64-bit platforms. Freescale
> drivers are some of the last holdouts using that macro (outside of
> arch/ and core mm code), so I decided trying to simply get rid of it
> instead of papering over it by using a temporary long to store the
> result in. Doing that I stumbled on some other things that should be
> fixed. These are the new patches 34-45.
>
> Patch 35 from v3 (which added a PPC32 dependency to FSL_UCC_HDLC) is
> gone from this version, so that that driver can indeed now be built
> for arm and arm64.
>
> 1-5 are about replacing in_be32 etc. in the core QE code (drivers/soc/fsl/qe).
>
> 6-8 handle miscellaneous other ppcisms.
>
> 9-21 deal with qe_ic: Simplifying the driver significantly by removing
> unused code, and removing the platform-specific initialization from
> arch/powerpc/.
>
> 22-25 deal with raw access to devicetree properties in native endianness.
>
> 26-33 makes drivers/tty/serial/ucc_uart.c (CONFIG_SERIAL_QE) ready to build on arm.
>
> 34-45 deal with IS_ERR_VALUE() and some other things found while
> digging around that part of the code.
>
> 46 adds a PPC32 dependency to UCC_GETH - it has some of the same
> issues that have been fixed in the ucc_uart and ucc_hdlc cases. Nobody
> has requested that I allow that driver to be built for arm{,64}, so
> instead of growing this series even bigger, I kept that addition. It's
> trivial to remove if somebody cares enough to fix the build
> errors/warnings and actually has a platform to test the result on.
>
> Finally patch 47 lifts the PPC32 restriction from QUICC_ENGINE. At the
> request of Li Yang, it doesn't remove the PPC32 dependency but instead
> changes it to PPC32 || ARM || ARM64 (or COMPILE_TEST), i.e. listing
> the platforms that may have a QE.
>
> The series has been built and booted on both an mpc8309-based platform
> (ppc) as well as an ls1021a-based platform (arm). The core QE code is
> exercised on both, while I could only test the ucc_uart on arm, since
> the uarts are not wired up on our mpc8309 board. Qiang Zhao reports
> that the ucc_hdlc driver does indeed work on a ls1043ardb (arm64)
> board, I hope he'll formally add a Tested-by: to the relevant patches
> since I don't have any arm64 board with QE.
>
> Rasmus Villemoes (47):
> soc: fsl: qe: remove space-before-tab
> soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs
> soc: fsl: qe: rename qe_(clr/set/clrset)bit* helpers
> soc: fsl: qe: introduce qe_io{read,write}* wrappers
> soc: fsl: qe: avoid ppc-specific io accessors
> soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic
> soc: fsl: qe: qe.c: guard use of pvr_version_is() with CONFIG_PPC32
> soc: fsl: qe: drop unneeded #includes
> soc: fsl: qe: drop assign-only high_active in qe_ic_init
> soc: fsl: qe: remove pointless sysfs registration in qe_ic.c
> soc: fsl: qe: use qe_ic_cascade_{low,high}_mpic also on 83xx
> soc: fsl: qe: move calls of qe_ic_init out of arch/powerpc/
> powerpc/83xx: remove mpc83xx_ipic_and_qe_init_IRQ
> powerpc/85xx: remove mostly pointless mpc85xx_qe_init()
Scott,
What do you think about the PPC changes?
> soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c
> soc: fsl: qe: rename qe_ic_cascade_low_mpic -> qe_ic_cascade_low
> soc: fsl: qe: remove unused qe_ic_set_* functions
> soc: fsl: qe: don't use NO_IRQ in qe_ic.c
> soc: fsl: qe: make qe_ic_get_{low,high}_irq static
> soc: fsl: qe: simplify qe_ic_init()
> soc: fsl: qe: merge qe_ic.h headers into qe_ic.c
> soc: fsl: qe: qe.c: use of_property_read_* helpers
> soc: fsl: qe: qe_io.c: don't open-code of_parse_phandle()
> soc: fsl: qe: qe_io.c: access device tree property using be32_to_cpu
> soc: fsl: qe: qe_io.c: use of_property_read_u32() in par_io_init()
> soc: fsl: move cpm.h from powerpc/include/asm to include/soc/fsl
> soc/fsl/qe/qe.h: update include path for cpm.h
> serial: ucc_uart: explicitly include soc/fsl/cpm.h
> serial: ucc_uart: replace ppc-specific IO accessors
> serial: ucc_uart: factor out soft_uart initialization
> serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32
> serial: ucc_uart: use of_property_read_u32() in ucc_uart_probe()
> serial: ucc_uart: access __be32 field using be32_to_cpu
Greg and Timur,
What do you think about these serial changes.
> soc: fsl: qe: change return type of cpm_muram_alloc() to s32
> soc: fsl: qe: make cpm_muram_free() return void
> soc: fsl: qe: make cpm_muram_free() ignore a negative offset
> soc: fsl: qe: drop broken lazy call of cpm_muram_init()
> soc: fsl: qe: refactor cpm_muram_alloc_common to prevent BUG on error
> path
> soc: fsl: qe: avoid IS_ERR_VALUE in ucc_slow.c
> soc: fsl: qe: drop use of IS_ERR_VALUE in qe_sdma_init()
> soc: fsl: qe: drop pointless check in qe_sdma_init()
> soc: fsl: qe: avoid IS_ERR_VALUE in ucc_fast.c
> net/wan/fsl_ucc_hdlc: avoid use of IS_ERR_VALUE()
> net/wan/fsl_ucc_hdlc: fix reading of __be16 registers
> net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
> net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32
David and Qiang,
What do you think of the net changes?
> soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
>
> arch/powerpc/include/asm/cpm.h | 172 +-------
> arch/powerpc/platforms/83xx/km83xx.c | 3 +-
> arch/powerpc/platforms/83xx/misc.c | 23 --
> arch/powerpc/platforms/83xx/mpc832x_mds.c | 3 +-
> arch/powerpc/platforms/83xx/mpc832x_rdb.c | 3 +-
> arch/powerpc/platforms/83xx/mpc836x_mds.c | 3 +-
> arch/powerpc/platforms/83xx/mpc836x_rdk.c | 3 +-
> arch/powerpc/platforms/83xx/mpc83xx.h | 7 -
> arch/powerpc/platforms/85xx/common.c | 23 --
> arch/powerpc/platforms/85xx/corenet_generic.c | 12 -
> arch/powerpc/platforms/85xx/mpc85xx.h | 2 -
> arch/powerpc/platforms/85xx/mpc85xx_mds.c | 28 --
> arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 18 -
> arch/powerpc/platforms/85xx/twr_p102x.c | 16 -
> drivers/net/ethernet/freescale/Kconfig | 2 +-
> drivers/net/wan/fsl_ucc_hdlc.c | 23 +-
> drivers/net/wan/fsl_ucc_hdlc.h | 2 +-
> drivers/soc/fsl/qe/Kconfig | 3 +-
> drivers/soc/fsl/qe/gpio.c | 34 +-
> drivers/soc/fsl/qe/qe.c | 104 ++---
> drivers/soc/fsl/qe/qe_common.c | 50 +--
> drivers/soc/fsl/qe/qe_ic.c | 285 ++++++-------
> drivers/soc/fsl/qe/qe_ic.h | 99 -----
> drivers/soc/fsl/qe/qe_io.c | 70 ++--
> drivers/soc/fsl/qe/qe_tdm.c | 8 +-
> drivers/soc/fsl/qe/ucc.c | 26 +-
> drivers/soc/fsl/qe/ucc_fast.c | 86 ++--
> drivers/soc/fsl/qe/ucc_slow.c | 60 ++-
> drivers/soc/fsl/qe/usb.c | 2 +-
> drivers/tty/serial/ucc_uart.c | 383 +++++++++---------
> include/soc/fsl/cpm.h | 171 ++++++++
> include/soc/fsl/qe/qe.h | 59 ++-
> include/soc/fsl/qe/qe_ic.h | 135 ------
> include/soc/fsl/qe/ucc_fast.h | 4 +-
> include/soc/fsl/qe/ucc_slow.h | 6 +-
> 35 files changed, 770 insertions(+), 1158 deletions(-)
> delete mode 100644 drivers/soc/fsl/qe/qe_ic.h
> create mode 100644 include/soc/fsl/cpm.h
> delete mode 100644 include/soc/fsl/qe/qe_ic.h
>
> --
> 2.23.0
>
On Mon, Nov 11, 2019 at 5:39 PM Li Yang <[email protected]> wrote:
>
> On Fri, Nov 8, 2019 at 7:05 AM Rasmus Villemoes
> <[email protected]> wrote:
> >
>
> I'm generally ok with these enhencements and cleanups. But as the
> whole patch series touched multiple subsystems, I would like to
> collect the Acked-by from Scott, Greg and David if we want the whole
> series to go through the fsl/soc tree.
Rasmus,
Since the patches also touched net and serial subsystem. Can you also
repost these patches(maybe just related ones) onto netdev and
linux-serial mailing list?
Regards,
Leo
>
> Also Qiang, can you help to test the latest version and provide you
> Tested-by? Thanks.
>
> > There have been several attempts in the past few years to allow
> > building the QUICC engine drivers for platforms other than PPC. This
> > is yet another attempt.
> >
> > v3 can be found here: https://lore.kernel.org/lkml/[email protected]/
> >
> > v4 adds a some patches to fix (ab)use of IS_ERR_VALUE which fails when
> > sizeof(u32) != sizeof(long), i.e. on 64-bit platforms. Freescale
> > drivers are some of the last holdouts using that macro (outside of
> > arch/ and core mm code), so I decided trying to simply get rid of it
> > instead of papering over it by using a temporary long to store the
> > result in. Doing that I stumbled on some other things that should be
> > fixed. These are the new patches 34-45.
> >
> > Patch 35 from v3 (which added a PPC32 dependency to FSL_UCC_HDLC) is
> > gone from this version, so that that driver can indeed now be built
> > for arm and arm64.
> >
> > 1-5 are about replacing in_be32 etc. in the core QE code (drivers/soc/fsl/qe).
> >
> > 6-8 handle miscellaneous other ppcisms.
> >
> > 9-21 deal with qe_ic: Simplifying the driver significantly by removing
> > unused code, and removing the platform-specific initialization from
> > arch/powerpc/.
> >
> > 22-25 deal with raw access to devicetree properties in native endianness.
> >
> > 26-33 makes drivers/tty/serial/ucc_uart.c (CONFIG_SERIAL_QE) ready to build on arm.
> >
> > 34-45 deal with IS_ERR_VALUE() and some other things found while
> > digging around that part of the code.
> >
> > 46 adds a PPC32 dependency to UCC_GETH - it has some of the same
> > issues that have been fixed in the ucc_uart and ucc_hdlc cases. Nobody
> > has requested that I allow that driver to be built for arm{,64}, so
> > instead of growing this series even bigger, I kept that addition. It's
> > trivial to remove if somebody cares enough to fix the build
> > errors/warnings and actually has a platform to test the result on.
> >
> > Finally patch 47 lifts the PPC32 restriction from QUICC_ENGINE. At the
> > request of Li Yang, it doesn't remove the PPC32 dependency but instead
> > changes it to PPC32 || ARM || ARM64 (or COMPILE_TEST), i.e. listing
> > the platforms that may have a QE.
> >
> > The series has been built and booted on both an mpc8309-based platform
> > (ppc) as well as an ls1021a-based platform (arm). The core QE code is
> > exercised on both, while I could only test the ucc_uart on arm, since
> > the uarts are not wired up on our mpc8309 board. Qiang Zhao reports
> > that the ucc_hdlc driver does indeed work on a ls1043ardb (arm64)
> > board, I hope he'll formally add a Tested-by: to the relevant patches
> > since I don't have any arm64 board with QE.
> >
> > Rasmus Villemoes (47):
> > soc: fsl: qe: remove space-before-tab
> > soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs
> > soc: fsl: qe: rename qe_(clr/set/clrset)bit* helpers
> > soc: fsl: qe: introduce qe_io{read,write}* wrappers
> > soc: fsl: qe: avoid ppc-specific io accessors
> > soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic
> > soc: fsl: qe: qe.c: guard use of pvr_version_is() with CONFIG_PPC32
> > soc: fsl: qe: drop unneeded #includes
> > soc: fsl: qe: drop assign-only high_active in qe_ic_init
> > soc: fsl: qe: remove pointless sysfs registration in qe_ic.c
> > soc: fsl: qe: use qe_ic_cascade_{low,high}_mpic also on 83xx
> > soc: fsl: qe: move calls of qe_ic_init out of arch/powerpc/
> > powerpc/83xx: remove mpc83xx_ipic_and_qe_init_IRQ
> > powerpc/85xx: remove mostly pointless mpc85xx_qe_init()
>
> Scott,
> What do you think about the PPC changes?
>
> > soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c
> > soc: fsl: qe: rename qe_ic_cascade_low_mpic -> qe_ic_cascade_low
> > soc: fsl: qe: remove unused qe_ic_set_* functions
> > soc: fsl: qe: don't use NO_IRQ in qe_ic.c
> > soc: fsl: qe: make qe_ic_get_{low,high}_irq static
> > soc: fsl: qe: simplify qe_ic_init()
> > soc: fsl: qe: merge qe_ic.h headers into qe_ic.c
> > soc: fsl: qe: qe.c: use of_property_read_* helpers
> > soc: fsl: qe: qe_io.c: don't open-code of_parse_phandle()
> > soc: fsl: qe: qe_io.c: access device tree property using be32_to_cpu
> > soc: fsl: qe: qe_io.c: use of_property_read_u32() in par_io_init()
> > soc: fsl: move cpm.h from powerpc/include/asm to include/soc/fsl
> > soc/fsl/qe/qe.h: update include path for cpm.h
> > serial: ucc_uart: explicitly include soc/fsl/cpm.h
> > serial: ucc_uart: replace ppc-specific IO accessors
> > serial: ucc_uart: factor out soft_uart initialization
> > serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32
> > serial: ucc_uart: use of_property_read_u32() in ucc_uart_probe()
> > serial: ucc_uart: access __be32 field using be32_to_cpu
>
> Greg and Timur,
> What do you think about these serial changes.
>
> > soc: fsl: qe: change return type of cpm_muram_alloc() to s32
> > soc: fsl: qe: make cpm_muram_free() return void
> > soc: fsl: qe: make cpm_muram_free() ignore a negative offset
> > soc: fsl: qe: drop broken lazy call of cpm_muram_init()
> > soc: fsl: qe: refactor cpm_muram_alloc_common to prevent BUG on error
> > path
> > soc: fsl: qe: avoid IS_ERR_VALUE in ucc_slow.c
> > soc: fsl: qe: drop use of IS_ERR_VALUE in qe_sdma_init()
> > soc: fsl: qe: drop pointless check in qe_sdma_init()
> > soc: fsl: qe: avoid IS_ERR_VALUE in ucc_fast.c
> > net/wan/fsl_ucc_hdlc: avoid use of IS_ERR_VALUE()
> > net/wan/fsl_ucc_hdlc: fix reading of __be16 registers
> > net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
> > net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32
>
> David and Qiang,
> What do you think of the net changes?
>
> > soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
> >
> > arch/powerpc/include/asm/cpm.h | 172 +-------
> > arch/powerpc/platforms/83xx/km83xx.c | 3 +-
> > arch/powerpc/platforms/83xx/misc.c | 23 --
> > arch/powerpc/platforms/83xx/mpc832x_mds.c | 3 +-
> > arch/powerpc/platforms/83xx/mpc832x_rdb.c | 3 +-
> > arch/powerpc/platforms/83xx/mpc836x_mds.c | 3 +-
> > arch/powerpc/platforms/83xx/mpc836x_rdk.c | 3 +-
> > arch/powerpc/platforms/83xx/mpc83xx.h | 7 -
> > arch/powerpc/platforms/85xx/common.c | 23 --
> > arch/powerpc/platforms/85xx/corenet_generic.c | 12 -
> > arch/powerpc/platforms/85xx/mpc85xx.h | 2 -
> > arch/powerpc/platforms/85xx/mpc85xx_mds.c | 28 --
> > arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 18 -
> > arch/powerpc/platforms/85xx/twr_p102x.c | 16 -
> > drivers/net/ethernet/freescale/Kconfig | 2 +-
> > drivers/net/wan/fsl_ucc_hdlc.c | 23 +-
> > drivers/net/wan/fsl_ucc_hdlc.h | 2 +-
> > drivers/soc/fsl/qe/Kconfig | 3 +-
> > drivers/soc/fsl/qe/gpio.c | 34 +-
> > drivers/soc/fsl/qe/qe.c | 104 ++---
> > drivers/soc/fsl/qe/qe_common.c | 50 +--
> > drivers/soc/fsl/qe/qe_ic.c | 285 ++++++-------
> > drivers/soc/fsl/qe/qe_ic.h | 99 -----
> > drivers/soc/fsl/qe/qe_io.c | 70 ++--
> > drivers/soc/fsl/qe/qe_tdm.c | 8 +-
> > drivers/soc/fsl/qe/ucc.c | 26 +-
> > drivers/soc/fsl/qe/ucc_fast.c | 86 ++--
> > drivers/soc/fsl/qe/ucc_slow.c | 60 ++-
> > drivers/soc/fsl/qe/usb.c | 2 +-
> > drivers/tty/serial/ucc_uart.c | 383 +++++++++---------
> > include/soc/fsl/cpm.h | 171 ++++++++
> > include/soc/fsl/qe/qe.h | 59 ++-
> > include/soc/fsl/qe/qe_ic.h | 135 ------
> > include/soc/fsl/qe/ucc_fast.h | 4 +-
> > include/soc/fsl/qe/ucc_slow.h | 6 +-
> > 35 files changed, 770 insertions(+), 1158 deletions(-)
> > delete mode 100644 drivers/soc/fsl/qe/qe_ic.h
> > create mode 100644 include/soc/fsl/cpm.h
> > delete mode 100644 include/soc/fsl/qe/qe_ic.h
> >
> > --
> > 2.23.0
> >
On 12/11/2019 21.45, Li Yang wrote:
> On Mon, Nov 11, 2019 at 5:39 PM Li Yang <[email protected]> wrote:
>>
>> On Fri, Nov 8, 2019 at 7:05 AM Rasmus Villemoes
>> <[email protected]> wrote:
>>>
>>
>> I'm generally ok with these enhencements and cleanups. But as the
>> whole patch series touched multiple subsystems, I would like to
>> collect the Acked-by from Scott, Greg and David if we want the whole
>> series to go through the fsl/soc tree.
>
> Rasmus,
>
> Since the patches also touched net and serial subsystem. Can you also
> repost these patches(maybe just related ones) onto netdev and
> linux-serial mailing list?
They were sent to those lists already. For example, according to
<https://lore.kernel.org/lkml/[email protected]/>,
the recipients for 28/47 were
To: Qiang Zhao <[email protected]>, Li Yang <[email protected]>,
Christophe Leroy <[email protected]>
Cc: [email protected],
[email protected],
[email protected], Scott Wood <[email protected]>,
Rasmus Villemoes <[email protected]>,
[email protected]
same for 29-33, and 43-46 was cc'ed to netdev@.
Rasmus