From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 05/24] PCI: endpoint: Create configfs entry for EPC device and EPF driver
Date: Mon, 27 Mar 2017 15:15:01 +0530 [thread overview]
Message-ID: <20170327094520.3129-6-kishon@ti.com> (raw)
In-Reply-To: <20170327094520.3129-1-kishon@ti.com>
Invoke API's provided by pci-ep-cfs to create configfs entry for
every EPC device and EPF driver to help users in creating EPF device
and binding the EPF device to the EPC device.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
drivers/pci/endpoint/pci-epc-core.c | 4 ++++
drivers/pci/endpoint/pci-epf-core.c | 4 ++++
include/linux/pci-epc.h | 2 ++
include/linux/pci-epf.h | 2 ++
4 files changed, 12 insertions(+)
diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
index 06808ed7ee1f..29cbe9a73b30 100644
--- a/drivers/pci/endpoint/pci-epc-core.c
+++ b/drivers/pci/endpoint/pci-epc-core.c
@@ -24,6 +24,7 @@
#include <linux/pci-epc.h>
#include <linux/pci-epf.h>
+#include <linux/pci-ep-cfs.h>
static struct class *pci_epc_class;
@@ -441,6 +442,7 @@ EXPORT_SYMBOL_GPL(pci_epc_linkup);
*/
void pci_epc_destroy(struct pci_epc *epc)
{
+ pci_ep_cfs_remove_epc_group(epc->group);
device_unregister(&epc->dev);
kfree(epc);
}
@@ -507,6 +509,8 @@ __pci_epc_create(struct device *dev, const struct pci_epc_ops *ops,
if (ret)
goto put_dev;
+ epc->group = pci_ep_cfs_add_epc_group(dev_name(dev));
+
return epc;
put_dev:
diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
index 4c903fc1cd30..9ec1639ef749 100644
--- a/drivers/pci/endpoint/pci-epf-core.c
+++ b/drivers/pci/endpoint/pci-epf-core.c
@@ -24,6 +24,7 @@
#include <linux/pci-epc.h>
#include <linux/pci-epf.h>
+#include <linux/pci-ep-cfs.h>
static struct bus_type pci_epf_bus_type;
static struct device_type pci_epf_type;
@@ -143,6 +144,7 @@ EXPORT_SYMBOL_GPL(pci_epf_alloc_space);
*/
void pci_epf_unregister_driver(struct pci_epf_driver *driver)
{
+ pci_ep_cfs_remove_epf_group(driver->group);
driver_unregister(&driver->driver);
}
EXPORT_SYMBOL_GPL(pci_epf_unregister_driver);
@@ -172,6 +174,8 @@ int __pci_epf_register_driver(struct pci_epf_driver *driver,
if (ret)
return ret;
+ driver->group = pci_ep_cfs_add_epf_group(driver->driver.name);
+
return 0;
}
EXPORT_SYMBOL_GPL(__pci_epf_register_driver);
diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h
index ad0cd465737e..d6eb32291462 100644
--- a/include/linux/pci-epc.h
+++ b/include/linux/pci-epc.h
@@ -77,6 +77,7 @@ struct pci_epc_mem {
* @ops: function pointers for performing endpoint operations
* @mem: address space of the endpoint controller
* @max_functions: max number of functions that can be configured in this EPC
+ * @group: configfs group representing the PCI EPC device
* @lock: spinlock to protect pci_epc ops
*/
struct pci_epc {
@@ -85,6 +86,7 @@ struct pci_epc {
const struct pci_epc_ops *ops;
struct pci_epc_mem *mem;
u8 max_functions;
+ struct config_group *group;
/* spinlock to protect against concurrent access of EP controller */
spinlock_t lock;
};
diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h
index 54f133868a6e..5ff2c5a592c3 100644
--- a/include/linux/pci-epf.h
+++ b/include/linux/pci-epf.h
@@ -82,6 +82,7 @@ struct pci_epf_ops {
* @driver: PCI EPF driver
* @ops: set of function pointers for performing EPF operations
* @owner: the owner of the module that registers the PCI EPF driver
+ * @group: configfs group corresponding to the PCI EPF driver
* @id_table: identifies EPF devices for probing
*/
struct pci_epf_driver {
@@ -91,6 +92,7 @@ struct pci_epf_driver {
struct device_driver driver;
struct pci_epf_ops *ops;
struct module *owner;
+ struct config_group *group;
const struct pci_epf_device_id *id_table;
};
--
2.11.0
next prev parent reply other threads:[~2017-03-27 9:45 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-27 9:44 [GIT PULL] PCI: Support for configurable PCI endpoint Kishon Vijay Abraham I
2017-03-27 9:44 ` [PATCH v5 01/24] PCI: endpoint: Add EP core layer to enable EP controller and EP functions Kishon Vijay Abraham I
2017-03-27 9:44 ` [PATCH v5 02/24] Documentation: PCI: Guide to use PCI Endpoint Core Layer Kishon Vijay Abraham I
2017-03-27 9:44 ` [PATCH v5 03/24] PCI: endpoint: Introduce configfs entry for configuring EP functions Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 04/24] Documentation: PCI: Guide to use pci endpoint configfs Kishon Vijay Abraham I
2017-03-27 9:45 ` Kishon Vijay Abraham I [this message]
2017-03-27 9:45 ` [PATCH v5 06/24] Documentation: PCI: Add specification for the *pci test* function device Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 07/24] PCI: endpoint: functions: Add an EP function to test PCI Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 08/24] Documentation: PCI: Add binding documentation for pci-test endpoint function Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 09/24] PCI: dwc: designware: Add EP mode support Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 10/24] dt-bindings: PCI: Add dt bindings for pci designware EP mode Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 11/24] PCI: dwc: dra7xx: Facilitate wrapper and msi interrupts to be enabled independently Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 12/24] PCI: dwc: dra7xx: Add EP mode support Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 13/24] dt-bindings: PCI: dra7xx: Add dt bindings for pci dra7xx EP mode Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 14/24] dt-bindings: mfd: syscon: Add documentation for #syscon-cells property Kishon Vijay Abraham I
2017-03-31 18:58 ` Rob Herring
2017-03-31 19:06 ` Rob Herring
2017-04-05 8:25 ` Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 15/24] PCI: dwc: dra7xx: Workaround for errata id i870 Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 16/24] dt-bindings: PCI: dra7xx: Add dt bindings to enable unaligned access Kishon Vijay Abraham I
2017-03-31 19:07 ` Rob Herring
2017-03-27 9:45 ` [PATCH v5 17/24] PCI: Add device IDs for DRA74x and DRA72x Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 18/24] misc: Add host side pci driver for pci test function device Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 19/24] Documentation: misc-devices: Add Documentation for pci-endpoint-test driver Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 20/24] tools: PCI: Add a userspace tool to test PCI endpoint Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 21/24] tools: PCI: Add sample test script to invoke pcitest Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 22/24] Documentation: PCI: Add userguide for PCI endpoint test function Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 23/24] MAINTAINERS: add PCI EP maintainer Kishon Vijay Abraham I
2017-03-27 9:45 ` [PATCH v5 24/24] ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP Kishon Vijay Abraham I
2017-03-29 11:42 ` [GIT PULL] PCI: Support for configurable PCI endpoint Niklas Cassel
2017-03-29 12:10 ` Kishon Vijay Abraham I
2017-03-29 12:36 ` Kishon Vijay Abraham I
2017-03-29 13:13 ` Niklas Cassel
2017-04-04 20:36 ` Bjorn Helgaas
2017-04-05 8:47 ` Kishon Vijay Abraham I
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170327094520.3129-6-kishon@ti.com \
--to=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).