summaryrefslogtreecommitdiffstats
path: root/drivers/staging/fsl-mc
diff options
context:
space:
mode:
authorJ. German Rivera2016-01-06 23:03:24 +0100
committerGreg Kroah-Hartman2016-02-08 04:10:12 +0100
commit1129cde59d08afd91fb2baed66824eb2dbd079aa (patch)
tree729884f04b00af9c22a1e2cdd44d9f97c7601026 /drivers/staging/fsl-mc
parentstaging: fsl-mc: Extended MC bus allocator to include IRQs (diff)
downloadkernel-qcow2-linux-1129cde59d08afd91fb2baed66824eb2dbd079aa.tar.gz
kernel-qcow2-linux-1129cde59d08afd91fb2baed66824eb2dbd079aa.tar.xz
kernel-qcow2-linux-1129cde59d08afd91fb2baed66824eb2dbd079aa.zip
staging: fsl-mc: Changed DPRC built-in portal's mc_io to be atomic
The DPRC built-in portal's mc_io is used to send commands to the MC to program MSIs for MC objects. This is done by the fsl_mc_msi_write_msg() callback, which is invoked by the generic MSI layer with interrupts disabled. As a result, the mc_io used in fsl_mc_msi_write_msg needs to be an atomic mc_io. Signed-off-by: J. German Rivera <German.Rivera@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/fsl-mc')
-rw-r--r--drivers/staging/fsl-mc/bus/dprc-driver.c4
-rw-r--r--drivers/staging/fsl-mc/bus/mc-bus.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/fsl-mc/bus/dprc-driver.c b/drivers/staging/fsl-mc/bus/dprc-driver.c
index 2c4cd70b4cbb..767d437837e7 100644
--- a/drivers/staging/fsl-mc/bus/dprc-driver.c
+++ b/drivers/staging/fsl-mc/bus/dprc-driver.c
@@ -396,7 +396,9 @@ static int dprc_probe(struct fsl_mc_device *mc_dev)
error = fsl_create_mc_io(&mc_dev->dev,
mc_dev->regions[0].start,
region_size,
- NULL, 0, &mc_dev->mc_io);
+ NULL,
+ FSL_MC_IO_ATOMIC_CONTEXT_PORTAL,
+ &mc_dev->mc_io);
if (error < 0)
return error;
}
diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c
index 84db55b4dda5..d34f1af39746 100644
--- a/drivers/staging/fsl-mc/bus/mc-bus.c
+++ b/drivers/staging/fsl-mc/bus/mc-bus.c
@@ -702,7 +702,8 @@ static int fsl_mc_bus_probe(struct platform_device *pdev)
mc_portal_phys_addr = res.start;
mc_portal_size = resource_size(&res);
error = fsl_create_mc_io(&pdev->dev, mc_portal_phys_addr,
- mc_portal_size, NULL, 0, &mc_io);
+ mc_portal_size, NULL,
+ FSL_MC_IO_ATOMIC_CONTEXT_PORTAL, &mc_io);
if (error < 0)
return error;