smp, irq_work: Continue smp_call_function*() and irq_work*() integration
[sfrench/cifs-2.6.git] / include / linux / coresight.h
index 193cc9dbf448a0985ecc435a0c12b77ab1ebc00e..e3e9f0e3a878059112dcde1799d4f6f0147122bc 100644 (file)
@@ -100,10 +100,12 @@ union coresight_dev_subtype {
 };
 
 /**
- * struct coresight_platform_data - data harvested from the DT specification
- * @nr_inport: number of input ports for this component.
- * @nr_outport:        number of output ports for this component.
- * @conns:     Array of nr_outport connections from this component
+ * struct coresight_platform_data - data harvested from the firmware
+ * specification.
+ *
+ * @nr_inport: Number of elements for the input connections.
+ * @nr_outport:        Number of elements for the output connections.
+ * @conns:     Sparse array of nr_outport connections from this component.
  */
 struct coresight_platform_data {
        int nr_inport;
@@ -140,12 +142,28 @@ struct coresight_desc {
  * @chid_fwnode: remote component's fwnode handle.
  * @child_dev: a @coresight_device representation of the component
                connected to @outport.
+ * @link: Representation of the connection as a sysfs link.
  */
 struct coresight_connection {
        int outport;
        int child_port;
        struct fwnode_handle *child_fwnode;
        struct coresight_device *child_dev;
+       struct coresight_sysfs_link *link;
+};
+
+/**
+ * struct coresight_sysfs_link - representation of a connection in sysfs.
+ * @orig:              Originating (master) coresight device for the link.
+ * @orig_name:         Name to use for the link orig->target.
+ * @target:            Target (slave) coresight device for the link.
+ * @target_name:       Name to use for the link target->orig.
+ */
+struct coresight_sysfs_link {
+       struct coresight_device *orig;
+       const char *orig_name;
+       struct coresight_device *target;
+       const char *target_name;
 };
 
 /**
@@ -165,6 +183,9 @@ struct coresight_connection {
  * @ea:                Device attribute for sink representation under PMU directory.
  * @ect_dev:   Associated cross trigger device. Not part of the trace data
  *             path or connections.
+ * @nr_links:   number of sysfs links created to other components from this
+ *             device. These will appear in the "connections" group.
+ * @has_conns_grp: Have added a "connections" group for sysfs links.
  */
 struct coresight_device {
        struct coresight_platform_data *pdata;
@@ -180,6 +201,9 @@ struct coresight_device {
        struct dev_ext_attribute *ea;
        /* cross trigger handling */
        struct coresight_device *ect_dev;
+       /* sysfs links between components */
+       int nr_links;
+       bool has_conns_grp;
 };
 
 /*