summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRoy Pledge <Roy.Pledge@freescale.com>2014-07-21 14:47:03 (GMT)
committerMatthew Weigel <Matthew.Weigel@freescale.com>2014-12-11 18:40:51 (GMT)
commit7dead8c7e1e624e1c1d4f7152f77821a22d3c697 (patch)
tree9ffd9c15dee21d15beb443a152e2a2c660851d61 /drivers
parent041dfe28b40efafb00a73e7cf35ed28ffc0c4c14 (diff)
downloadlinux-fsl-qoriq-7dead8c7e1e624e1c1d4f7152f77821a22d3c697.tar.xz
Set affinity for USDPAA IRQs
Set the affinity of the USDPAA IRQ to match the affinity of the calling process Signed-off-by: Roy Pledge <Roy.Pledge@freescale.com> Change-Id: I077a48ae5a77fe35a77dfae65c298fa6fa2aecda Reviewed-on: http://git.am.freescale.net:8181/23675 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Geoff Thorpe <Geoff.Thorpe@freescale.com> Reviewed-by: Jeffrey Ladouceur <Jeffrey.Ladouceur@freescale.com> Reviewed-by: Matthew Weigel <Matthew.Weigel@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/fsl_qbman/fsl_usdpaa_irq.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/staging/fsl_qbman/fsl_usdpaa_irq.c b/drivers/staging/fsl_qbman/fsl_usdpaa_irq.c
index ca93593..1f8260b 100644
--- a/drivers/staging/fsl_qbman/fsl_usdpaa_irq.c
+++ b/drivers/staging/fsl_qbman/fsl_usdpaa_irq.c
@@ -81,6 +81,7 @@ static int usdpaa_irq_release(struct inode *inode, struct file *filp)
if (ctx->irq_set) {
/* Inhibit the IRQ */
out_be32(ctx->inhibit_addr, 0x1);
+ irq_set_affinity_hint(ctx->irq_num, NULL);
free_irq(ctx->irq_num, ctx);
ctx->irq_set = 0;
fput(ctx->usdpaa_filp);
@@ -139,6 +140,14 @@ static int map_irq(struct file *fp, struct usdpaa_ioctl_irq_map *irq_map)
fput(ctx->usdpaa_filp);
return ret;
}
+ ret = irq_set_affinity(ctx->irq_num, tsk_cpus_allowed(current));
+ if (ret)
+ pr_err("USDPAA irq_set_affinity() failed, ret= %d\n", ret);
+
+ ret = irq_set_affinity_hint(ctx->irq_num, tsk_cpus_allowed(current));
+ if (ret)
+ pr_err("USDPAA irq_set_affinity_hint() failed, ret= %d\n", ret);
+
return 0;
}