Messages in this thread | | | Subject | Re: [PATCH v3 31/36] serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32 | From | Christophe Leroy <> | Date | Fri, 1 Nov 2019 17:27:49 +0100 |
| |
Le 01/11/2019 à 13:42, Rasmus Villemoes a écrit : > The Soft UART hack is only needed for some PPC-based SOCs. To allow > building this driver for non-PPC, guard soft_uart_init() and its > helpers by CONFIG_PPC32, and use a no-op soft_uart_init() otherwise.
I don't like too much ifdefs in C files, especially arch specific ifdefs in generic drivers.
How do we get the QE version on ARM ?
Wouldn't it be cleaner to create a helper for getting the QE version, which would be defined in an arch specific header file, calling mfspr(SPRN_SVR) on powerpc and whatever needed on arm ?
Christophe
> > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > drivers/tty/serial/ucc_uart.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c > index f286e91714cb..313697842e24 100644 > --- a/drivers/tty/serial/ucc_uart.c > +++ b/drivers/tty/serial/ucc_uart.c > @@ -33,7 +33,10 @@ > > #include <linux/firmware.h> > #include <soc/fsl/cpm.h> > -#include <asm/reg.h> > + > +#ifdef CONFIG_PPC32 > +#include <asm/reg.h> /* mfspr, SPRN_SVR */ > +#endif > > /* > * The GUMR flag for Soft UART. This would normally be defined in qe.h, > @@ -1096,6 +1099,8 @@ static const struct uart_ops qe_uart_pops = { > .verify_port = qe_uart_verify_port, > }; > > + > +#ifdef CONFIG_PPC32 > /* > * Obtain the SOC model number and revision level > * > @@ -1238,6 +1243,16 @@ static int soft_uart_init(struct platform_device *ofdev) > return 0; > } > > +#else /* !CONFIG_PPC32 */ > + > +static int soft_uart_init(struct platform_device *ofdev) > +{ > + return 0; > +} > + > +#endif > + > + > static int ucc_uart_probe(struct platform_device *ofdev) > { > struct device_node *np = ofdev->dev.of_node; >
| |