diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0218-bus-fsl-mc-Add-a-new-parameter-to-dprc_scan_objects-.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0218-bus-fsl-mc-Add-a-new-parameter-to-dprc_scan_objects-.patch | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0218-bus-fsl-mc-Add-a-new-parameter-to-dprc_scan_objects-.patch b/target/linux/layerscape/patches-5.4/701-net-0218-bus-fsl-mc-Add-a-new-parameter-to-dprc_scan_objects-.patch deleted file mode 100644 index 0fbf3d212d..0000000000 --- a/target/linux/layerscape/patches-5.4/701-net-0218-bus-fsl-mc-Add-a-new-parameter-to-dprc_scan_objects-.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 653fc2595283df6deb92ca3058c8d5dc1e129e91 Mon Sep 17 00:00:00 2001 -From: Diana Craciun <diana.craciun@nxp.com> -Date: Fri, 13 Sep 2019 17:17:30 +0300 -Subject: [PATCH] bus/fsl-mc: Add a new parameter to dprc_scan_objects function - -Prepare the dprc_scan_objects function to be used by -the VFIO mc driver code. The function is used to scan the mc -objects by the bus driver. The same functionality is -needed by the VFIO mc driver, but in this case the -interrupt configuration is delayed until the userspace -configures them. In order to use the same function in both -drivers add a new parameter. - -Signed-off-by: Diana Craciun <diana.craciun@nxp.com> ---- - drivers/bus/fsl-mc/dprc-driver.c | 33 +++++++++++++++++++-------------- - drivers/bus/fsl-mc/fsl-mc-bus.c | 2 +- - include/linux/fsl/mc.h | 1 + - 3 files changed, 21 insertions(+), 15 deletions(-) - ---- a/drivers/bus/fsl-mc/dprc-driver.c -+++ b/drivers/bus/fsl-mc/dprc-driver.c -@@ -3,6 +3,7 @@ - * Freescale data path resource container (DPRC) driver - * - * Copyright (C) 2014-2016 Freescale Semiconductor, Inc. -+ * Copyright 2019 NXP - * Author: German Rivera <German.Rivera@freescale.com> - * - */ -@@ -204,6 +205,8 @@ static void dprc_add_new_devices(struct - * @mc_bus_dev: pointer to the fsl-mc device that represents a DPRC object - * @driver_override: driver override to apply to new objects found in the - * DPRC, or NULL, if none. -+ * @alloc_interrupts: if true the function allocates the interrupt pool, -+ * otherwise the interrupt allocation is delayed - * @total_irq_count: If argument is provided the function populates the - * total number of IRQs created by objects in the DPRC. - * -@@ -221,6 +224,7 @@ static void dprc_add_new_devices(struct - */ - int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev, - const char *driver_override, -+ bool alloc_interrupts, - unsigned int *total_irq_count) - { - int num_child_objects; -@@ -302,19 +306,20 @@ int dprc_scan_objects(struct fsl_mc_devi - * Allocate IRQ's before binding the scanned devices with their - * respective drivers. - */ -- if (dev_get_msi_domain(&mc_bus_dev->dev) && !mc_bus->irq_resources) { -- if (irq_count > FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS) { -- dev_warn(&mc_bus_dev->dev, -- "IRQs needed (%u) exceed IRQs preallocated (%u)\n", -- irq_count, FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS); -- } -+ if (alloc_interrupts) { -+ if (dev_get_msi_domain(&mc_bus_dev->dev) && !mc_bus->irq_resources) { -+ if (irq_count > FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS) { -+ dev_warn(&mc_bus_dev->dev, -+ "IRQs needed (%u) exceed IRQs preallocated (%u)\n", -+ irq_count, FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS); -+ } - -- error = fsl_mc_populate_irq_pool(mc_bus, -- FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS); -- if (error < 0) -- return error; -+ error = fsl_mc_populate_irq_pool(mc_bus, -+ FSL_MC_IRQ_POOL_MAX_TOTAL_IRQS); -+ if (error < 0) -+ return error; -+ } - } -- - if (total_irq_count) - *total_irq_count = irq_count; - -@@ -350,7 +355,7 @@ static int dprc_scan_container(struct fs - * Discover objects in the DPRC: - */ - mutex_lock(&mc_bus->scan_mutex); -- error = dprc_scan_objects(mc_bus_dev, NULL, NULL); -+ error = dprc_scan_objects(mc_bus_dev, NULL, true, NULL); - mutex_unlock(&mc_bus->scan_mutex); - if (error < 0) { - fsl_mc_cleanup_all_resource_pools(mc_bus_dev); -@@ -379,7 +384,7 @@ static ssize_t rescan_store(struct devic - - if (val) { - mutex_lock(&root_mc_bus->scan_mutex); -- dprc_scan_objects(root_mc_dev, NULL, NULL); -+ dprc_scan_objects(root_mc_dev, NULL, true, NULL); - mutex_unlock(&root_mc_bus->scan_mutex); - } - -@@ -448,7 +453,7 @@ static irqreturn_t dprc_irq0_handler_thr - DPRC_IRQ_EVENT_OBJ_CREATED)) { - unsigned int irq_count; - -- error = dprc_scan_objects(mc_dev, NULL, &irq_count); -+ error = dprc_scan_objects(mc_dev, NULL, true, &irq_count); - if (error < 0) { - /* - * If the error is -ENXIO, we ignore it, as it indicates ---- a/drivers/bus/fsl-mc/fsl-mc-bus.c -+++ b/drivers/bus/fsl-mc/fsl-mc-bus.c -@@ -215,7 +215,7 @@ static int scan_fsl_mc_bus(struct device - root_mc_dev = to_fsl_mc_device(dev); - root_mc_bus = to_fsl_mc_bus(root_mc_dev); - mutex_lock(&root_mc_bus->scan_mutex); -- dprc_scan_objects(root_mc_dev, NULL, NULL); -+ dprc_scan_objects(root_mc_dev, NULL, true, NULL); - mutex_unlock(&root_mc_bus->scan_mutex); - - exit: ---- a/include/linux/fsl/mc.h -+++ b/include/linux/fsl/mc.h -@@ -1010,6 +1010,7 @@ struct fsl_mc_bus { - - int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev, - const char *driver_override, -+ bool alloc_interrupts, - unsigned int *total_irq_count); - - int fsl_mc_find_msi_domain(struct device *mc_platform_dev, |