You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.7 KiB
Diff
60 lines
1.7 KiB
Diff
From f588a135d9260f2e7fe29b0bb0b5294fc9c99f6c Mon Sep 17 00:00:00 2001
|
|
From: "J. German Rivera" <German.Rivera@freescale.com>
|
|
Date: Wed, 6 Jan 2016 16:03:29 -0600
|
|
Subject: [PATCH 153/226] staging: fsl-mc: Added MSI support to the MC bus
|
|
driver
|
|
|
|
Initialize/Cleanup ITS-MSI support for the MC bus driver at driver
|
|
init/exit time. Associate an MSI domain with each DPAA2 child device.
|
|
|
|
Signed-off-by: J. German Rivera <German.Rivera@freescale.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
drivers/staging/fsl-mc/bus/mc-bus.c | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
--- a/drivers/staging/fsl-mc/bus/mc-bus.c
|
|
+++ b/drivers/staging/fsl-mc/bus/mc-bus.c
|
|
@@ -16,6 +16,8 @@
|
|
#include <linux/ioport.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/limits.h>
|
|
+#include <linux/bitops.h>
|
|
+#include <linux/msi.h>
|
|
#include "../include/dpmng.h"
|
|
#include "../include/mc-sys.h"
|
|
#include "dprc-cmd.h"
|
|
@@ -472,6 +474,8 @@ int fsl_mc_device_add(struct dprc_obj_de
|
|
mc_dev->icid = parent_mc_dev->icid;
|
|
mc_dev->dma_mask = FSL_MC_DEFAULT_DMA_MASK;
|
|
mc_dev->dev.dma_mask = &mc_dev->dma_mask;
|
|
+ dev_set_msi_domain(&mc_dev->dev,
|
|
+ dev_get_msi_domain(&parent_mc_dev->dev));
|
|
}
|
|
|
|
/*
|
|
@@ -833,8 +837,15 @@ static int __init fsl_mc_bus_driver_init
|
|
if (error < 0)
|
|
goto error_cleanup_dprc_driver;
|
|
|
|
+ error = its_fsl_mc_msi_init();
|
|
+ if (error < 0)
|
|
+ goto error_cleanup_mc_allocator;
|
|
+
|
|
return 0;
|
|
|
|
+error_cleanup_mc_allocator:
|
|
+ fsl_mc_allocator_driver_exit();
|
|
+
|
|
error_cleanup_dprc_driver:
|
|
dprc_driver_exit();
|
|
|
|
@@ -856,6 +867,7 @@ static void __exit fsl_mc_bus_driver_exi
|
|
if (WARN_ON(!mc_dev_cache))
|
|
return;
|
|
|
|
+ its_fsl_mc_msi_cleanup();
|
|
fsl_mc_allocator_driver_exit();
|
|
dprc_driver_exit();
|
|
platform_driver_unregister(&fsl_mc_bus_driver);
|