diff options
author | Roy Pledge <roy.pledge@nxp.com> | 2020-04-24 13:51:12 +0200 |
---|---|---|
committer | Li Yang <leoyang.li@nxp.com> | 2020-05-23 00:52:37 +0200 |
commit | d0bab301a0462ae46f65fea0af01b938d709aba7 (patch) | |
tree | 51d8ca59e20a8e7db06f0178a8769f559c7290aa /drivers/soc | |
parent | soc: fsl: qbman: Remove unused inline function qm_eqcr_get_ci_stashing (diff) | |
download | linux-d0bab301a0462ae46f65fea0af01b938d709aba7.tar.xz linux-d0bab301a0462ae46f65fea0af01b938d709aba7.zip |
soc: fsl: dpio: Prefer the CPU affine DPIO
Use the cpu affine DPIO unless there isn't one which can happen
if less DPIOs than cores are assign to the kernel.
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
Diffstat (limited to 'drivers/soc')
-rw-r--r-- | drivers/soc/fsl/dpio/dpio-service.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/soc/fsl/dpio/dpio-service.c b/drivers/soc/fsl/dpio/dpio-service.c index cd4f6410e8c2..f1080c7a3fe1 100644 --- a/drivers/soc/fsl/dpio/dpio-service.c +++ b/drivers/soc/fsl/dpio/dpio-service.c @@ -58,7 +58,7 @@ static inline struct dpaa2_io *service_select_by_cpu(struct dpaa2_io *d, * If cpu == -1, choose the current cpu, with no guarantees about * potentially being migrated away. */ - if (unlikely(cpu < 0)) + if (cpu < 0) cpu = smp_processor_id(); /* If a specific cpu was requested, pick it up immediately */ @@ -70,6 +70,10 @@ static inline struct dpaa2_io *service_select(struct dpaa2_io *d) if (d) return d; + d = service_select_by_cpu(d, -1); + if (d) + return d; + spin_lock(&dpio_list_lock); d = list_entry(dpio_list.next, struct dpaa2_io, node); list_del(&d->node); |