aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pci-epc.h
diff options
context:
space:
mode:
authorKishon Vijay Abraham I <kishon@ti.com>2020-02-24 15:23:38 +0530
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2020-02-24 10:15:45 +0000
commit2499ee84e02774a8573b7b4c76c8f2ea38669313 (patch)
tree49b7a2cb91f2ab36a6e9554a57b88e1f515e6f86 /include/linux/pci-epc.h
parentPCI: endpoint: Protect concurrent access to pci_epf_ops with mutex (diff)
downloadlinux-dev-2499ee84e02774a8573b7b4c76c8f2ea38669313.tar.xz
linux-dev-2499ee84e02774a8573b7b4c76c8f2ea38669313.zip
PCI: endpoint: Assign function number for each PF in EPC core
The PCIe endpoint core relies on the drivers that invoke the pci_epc_add_epf() API to allocate and assign a function number to each physical function (PF). Since endpoint function device can be created by multiple mechanisms (configfs, devicetree, etc..), allowing each of these mechanisms to assign a function number would result in mutliple endpoint function devices having the same function number. In order to avoid this, let EPC core assign a function number to the endpoint device. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Diffstat (limited to 'include/linux/pci-epc.h')
-rw-r--r--include/linux/pci-epc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h
index 4e3e527c49d1..ccaf6e3fa931 100644
--- a/include/linux/pci-epc.h
+++ b/include/linux/pci-epc.h
@@ -92,6 +92,7 @@ struct pci_epc_mem {
* @max_functions: max number of functions that can be configured in this EPC
* @group: configfs group representing the PCI EPC device
* @lock: mutex to protect pci_epc ops
+ * @function_num_map: bitmap to manage physical function number
* @notifier: used to notify EPF of any EPC events (like linkup)
*/
struct pci_epc {
@@ -103,6 +104,7 @@ struct pci_epc {
struct config_group *group;
/* mutex to protect against concurrent access of EP controller */
struct mutex lock;
+ unsigned long function_num_map;
struct atomic_notifier_head notifier;
};