Message ID | 20190329140014.8126-2-laurentiu.tudor@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Prerequisites for NXP LS104xA SMMU enablement | expand |
On Fri, Mar 29, 2019 at 9:01 AM <laurentiu.tudor@nxp.com> wrote: > > From: Laurentiu Tudor <laurentiu.tudor@nxp.com> > > 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> > --- > drivers/soc/fsl/qbman/qman_ccsr.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/soc/fsl/qbman/qman_ccsr.c b/drivers/soc/fsl/qbman/qman_ccsr.c > index 109b38de3176..12e414ca3b03 100644 > --- a/drivers/soc/fsl/qbman/qman_ccsr.c > +++ b/drivers/soc/fsl/qbman/qman_ccsr.c > @@ -598,6 +598,7 @@ static int qman_init_ccsr(struct device *dev) > #define LIO_CFG_LIODN_MASK 0x0fff0000 > void qman_liodn_fixup(u16 channel) > { > +#ifdef CONFIG_PPC > static int done; > static u32 liodn_offset; > u32 before, after; > @@ -617,6 +618,7 @@ void qman_liodn_fixup(u16 channel) > qm_ccsr_out(REG_REV3_QCSP_LIO_CFG(idx), after); > else > qm_ccsr_out(REG_QCSP_LIO_CFG(idx), after); > +#endif According to the Linux coding style recommendation, it would be better to put the #ifdef into the header files "drivers/soc/fsl/qbman/qman_priv.h". And I'm not sure if this is needed on PPC when IOMMU(PAMU) driver is not compiled, if not, probably using CONFIG_PAMU as condition would be even better. > } > > #define IO_CFG_SDEST_MASK 0x00ff0000 > -- > 2.17.1 >
Hi Leo, > -----Original Message----- > From: Li Yang [mailto:leoyang.li@nxp.com] > Sent: Friday, March 29, 2019 11:50 PM > To: Laurentiu Tudor <laurentiu.tudor@nxp.com> > Cc: Netdev <netdev@vger.kernel.org>; Madalin-cristian Bucur > <madalin.bucur@nxp.com>; Roy Pledge <roy.pledge@nxp.com>; Camelia > Alexandra Groza <camelia.groza@nxp.com>; David Miller > <davem@davemloft.net>; Linux IOMMU <iommu@lists.linux-foundation.org>; > moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE <linux-arm- > kernel@lists.infradead.org>; linuxppc-dev <linuxppc-dev@lists.ozlabs.org>; > lkml <linux-kernel@vger.kernel.org> > Subject: Re: [PATCH 01/13] soc/fsl/qman: fixup liodns only on ppc targets > Importance: High > > On Fri, Mar 29, 2019 at 9:01 AM <laurentiu.tudor@nxp.com> wrote: > > > > From: Laurentiu Tudor <laurentiu.tudor@nxp.com> > > > > 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> > > --- > > drivers/soc/fsl/qbman/qman_ccsr.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/soc/fsl/qbman/qman_ccsr.c > b/drivers/soc/fsl/qbman/qman_ccsr.c > > index 109b38de3176..12e414ca3b03 100644 > > --- a/drivers/soc/fsl/qbman/qman_ccsr.c > > +++ b/drivers/soc/fsl/qbman/qman_ccsr.c > > @@ -598,6 +598,7 @@ static int qman_init_ccsr(struct device *dev) > > #define LIO_CFG_LIODN_MASK 0x0fff0000 > > void qman_liodn_fixup(u16 channel) > > { > > +#ifdef CONFIG_PPC > > static int done; > > static u32 liodn_offset; > > u32 before, after; > > @@ -617,6 +618,7 @@ void qman_liodn_fixup(u16 channel) > > qm_ccsr_out(REG_REV3_QCSP_LIO_CFG(idx), after); > > else > > qm_ccsr_out(REG_QCSP_LIO_CFG(idx), after); > > +#endif > > According to the Linux coding style recommendation, it would be better > to put the #ifdef into the header files > "drivers/soc/fsl/qbman/qman_priv.h". And I'm not sure if this is > needed on PPC when IOMMU(PAMU) driver is not compiled, if not, > probably using CONFIG_PAMU as condition would be even better. Good point, will so in the next spin. --- Best Regards, Laurentiu > > } > > > > #define IO_CFG_SDEST_MASK 0x00ff0000 > > -- > > 2.17.1 > >
diff --git a/drivers/soc/fsl/qbman/qman_ccsr.c b/drivers/soc/fsl/qbman/qman_ccsr.c index 109b38de3176..12e414ca3b03 100644 --- a/drivers/soc/fsl/qbman/qman_ccsr.c +++ b/drivers/soc/fsl/qbman/qman_ccsr.c @@ -598,6 +598,7 @@ static int qman_init_ccsr(struct device *dev) #define LIO_CFG_LIODN_MASK 0x0fff0000 void qman_liodn_fixup(u16 channel) { +#ifdef CONFIG_PPC static int done; static u32 liodn_offset; u32 before, after; @@ -617,6 +618,7 @@ void qman_liodn_fixup(u16 channel) qm_ccsr_out(REG_REV3_QCSP_LIO_CFG(idx), after); else qm_ccsr_out(REG_QCSP_LIO_CFG(idx), after); +#endif } #define IO_CFG_SDEST_MASK 0x00ff0000