Re: [PATCH v3 31/36] serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@xxxxxxxxxxxxxxxxxx>
---
  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;




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux