soc: fsl: qman: fixup liodns only on ppc targets
authorLaurentiu Tudor <laurentiu.tudor@nxp.com>
Sat, 27 Apr 2019 07:10:23 +0000 (10:10 +0300)
committerLi Yang <leoyang.li@nxp.com>
Mon, 20 May 2019 19:28:16 +0000 (14:28 -0500)
ARM SoCs use SMMU so the liodn fixup done in the qman driver is no
longer making sense and it also breaks the ICID settings inherited
from u-boot. Do the fixups only for PPC targets.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/soc/fsl/qbman/qman_ccsr.c
drivers/soc/fsl/qbman/qman_priv.h

index 109b38d..a6bb430 100644 (file)
@@ -596,7 +596,7 @@ static int qman_init_ccsr(struct device *dev)
 }
 
 #define LIO_CFG_LIODN_MASK 0x0fff0000
-void qman_liodn_fixup(u16 channel)
+void __qman_liodn_fixup(u16 channel)
 {
        static int done;
        static u32 liodn_offset;
index 75a8f90..0451571 100644 (file)
@@ -193,7 +193,14 @@ extern struct gen_pool *qm_cgralloc; /* CGR ID allocator */
 u32 qm_get_pools_sdqcr(void);
 
 int qman_wq_alloc(void);
-void qman_liodn_fixup(u16 channel);
+#ifdef CONFIG_FSL_PAMU
+#define qman_liodn_fixup __qman_liodn_fixup
+#else
+static inline void qman_liodn_fixup(u16 channel)
+{
+}
+#endif
+void __qman_liodn_fixup(u16 channel);
 void qman_set_sdest(u16 channel, unsigned int cpu_idx);
 
 struct qman_portal *qman_create_affine_portal(