Commit d49c9cf1 authored by James Clark's avatar James Clark Committed by Suzuki K Poulose

coresight: Rename connection members to make the direction explicit

When input connections are added they will use the same connection
object as the output so parent and child could be misinterpreted. Making
the direction unambiguous in the names should improve readability.
Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
Signed-off-by: default avatarJames Clark <james.clark@arm.com>
Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20230425143542.2305069-6-james.clark@arm.com
parent 81d0ea76
...@@ -120,8 +120,8 @@ static int coresight_find_link_inport(struct coresight_device *csdev, ...@@ -120,8 +120,8 @@ static int coresight_find_link_inport(struct coresight_device *csdev,
for (i = 0; i < parent->pdata->nr_outconns; i++) { for (i = 0; i < parent->pdata->nr_outconns; i++) {
conn = &parent->pdata->out_conns[i]; conn = &parent->pdata->out_conns[i];
if (conn->child_dev == csdev) if (conn->dest_dev == csdev)
return conn->child_port; return conn->dest_port;
} }
dev_err(&csdev->dev, "couldn't find inport, parent: %s, child: %s\n", dev_err(&csdev->dev, "couldn't find inport, parent: %s, child: %s\n",
...@@ -138,8 +138,8 @@ static int coresight_find_link_outport(struct coresight_device *csdev, ...@@ -138,8 +138,8 @@ static int coresight_find_link_outport(struct coresight_device *csdev,
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
conn = &csdev->pdata->out_conns[i]; conn = &csdev->pdata->out_conns[i];
if (conn->child_dev == child) if (conn->dest_dev == child)
return conn->outport; return conn->src_port;
} }
dev_err(&csdev->dev, "couldn't find outport, parent: %s, child: %s\n", dev_err(&csdev->dev, "couldn't find outport, parent: %s, child: %s\n",
...@@ -606,7 +606,7 @@ coresight_find_enabled_sink(struct coresight_device *csdev) ...@@ -606,7 +606,7 @@ coresight_find_enabled_sink(struct coresight_device *csdev)
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
struct coresight_device *child_dev; struct coresight_device *child_dev;
child_dev = csdev->pdata->out_conns[i].child_dev; child_dev = csdev->pdata->out_conns[i].dest_dev;
if (child_dev) if (child_dev)
sink = coresight_find_enabled_sink(child_dev); sink = coresight_find_enabled_sink(child_dev);
if (sink) if (sink)
...@@ -722,7 +722,7 @@ static int coresight_grab_device(struct coresight_device *csdev) ...@@ -722,7 +722,7 @@ static int coresight_grab_device(struct coresight_device *csdev)
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
struct coresight_device *child; struct coresight_device *child;
child = csdev->pdata->out_conns[i].child_dev; child = csdev->pdata->out_conns[i].dest_dev;
if (child && child->type == CORESIGHT_DEV_TYPE_HELPER) if (child && child->type == CORESIGHT_DEV_TYPE_HELPER)
if (!coresight_get_ref(child)) if (!coresight_get_ref(child))
goto err; goto err;
...@@ -733,7 +733,7 @@ static int coresight_grab_device(struct coresight_device *csdev) ...@@ -733,7 +733,7 @@ static int coresight_grab_device(struct coresight_device *csdev)
for (i--; i >= 0; i--) { for (i--; i >= 0; i--) {
struct coresight_device *child; struct coresight_device *child;
child = csdev->pdata->out_conns[i].child_dev; child = csdev->pdata->out_conns[i].dest_dev;
if (child && child->type == CORESIGHT_DEV_TYPE_HELPER) if (child && child->type == CORESIGHT_DEV_TYPE_HELPER)
coresight_put_ref(child); coresight_put_ref(child);
} }
...@@ -752,7 +752,7 @@ static void coresight_drop_device(struct coresight_device *csdev) ...@@ -752,7 +752,7 @@ static void coresight_drop_device(struct coresight_device *csdev)
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
struct coresight_device *child; struct coresight_device *child;
child = csdev->pdata->out_conns[i].child_dev; child = csdev->pdata->out_conns[i].dest_dev;
if (child && child->type == CORESIGHT_DEV_TYPE_HELPER) if (child && child->type == CORESIGHT_DEV_TYPE_HELPER)
coresight_put_ref(child); coresight_put_ref(child);
} }
...@@ -794,7 +794,7 @@ static int _coresight_build_path(struct coresight_device *csdev, ...@@ -794,7 +794,7 @@ static int _coresight_build_path(struct coresight_device *csdev,
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
struct coresight_device *child_dev; struct coresight_device *child_dev;
child_dev = csdev->pdata->out_conns[i].child_dev; child_dev = csdev->pdata->out_conns[i].dest_dev;
if (child_dev && if (child_dev &&
_coresight_build_path(child_dev, sink, path) == 0) { _coresight_build_path(child_dev, sink, path) == 0) {
found = true; found = true;
...@@ -964,7 +964,7 @@ coresight_find_sink(struct coresight_device *csdev, int *depth) ...@@ -964,7 +964,7 @@ coresight_find_sink(struct coresight_device *csdev, int *depth)
struct coresight_device *child_dev, *sink = NULL; struct coresight_device *child_dev, *sink = NULL;
int child_depth = curr_depth; int child_depth = curr_depth;
child_dev = csdev->pdata->out_conns[i].child_dev; child_dev = csdev->pdata->out_conns[i].dest_dev;
if (child_dev) if (child_dev)
sink = coresight_find_sink(child_dev, &child_depth); sink = coresight_find_sink(child_dev, &child_depth);
...@@ -1337,12 +1337,12 @@ static int coresight_orphan_match(struct device *dev, void *data) ...@@ -1337,12 +1337,12 @@ static int coresight_orphan_match(struct device *dev, void *data)
conn = &i_csdev->pdata->out_conns[i]; conn = &i_csdev->pdata->out_conns[i];
/* Skip the port if FW doesn't describe it */ /* Skip the port if FW doesn't describe it */
if (!conn->child_fwnode) if (!conn->dest_fwnode)
continue; continue;
/* We have found at least one orphan connection */ /* We have found at least one orphan connection */
if (conn->child_dev == NULL) { if (conn->dest_dev == NULL) {
/* Does it match this newly added device? */ /* Does it match this newly added device? */
if (conn->child_fwnode == csdev->dev.fwnode) { if (conn->dest_fwnode == csdev->dev.fwnode) {
ret = coresight_make_links(i_csdev, ret = coresight_make_links(i_csdev,
conn, csdev); conn, csdev);
if (ret) if (ret)
...@@ -1377,13 +1377,12 @@ static int coresight_fixup_device_conns(struct coresight_device *csdev) ...@@ -1377,13 +1377,12 @@ static int coresight_fixup_device_conns(struct coresight_device *csdev)
for (i = 0; i < csdev->pdata->nr_outconns; i++) { for (i = 0; i < csdev->pdata->nr_outconns; i++) {
struct coresight_connection *conn = &csdev->pdata->out_conns[i]; struct coresight_connection *conn = &csdev->pdata->out_conns[i];
if (!conn->child_fwnode) if (!conn->dest_fwnode)
continue; continue;
conn->child_dev = conn->dest_dev =
coresight_find_csdev_by_fwnode(conn->child_fwnode); coresight_find_csdev_by_fwnode(conn->dest_fwnode);
if (conn->child_dev && conn->child_dev->has_conns_grp) { if (conn->dest_dev && conn->dest_dev->has_conns_grp) {
ret = coresight_make_links(csdev, conn, ret = coresight_make_links(csdev, conn, conn->dest_dev);
conn->child_dev);
if (ret) if (ret)
break; break;
} else { } else {
...@@ -1414,14 +1413,14 @@ static int coresight_remove_match(struct device *dev, void *data) ...@@ -1414,14 +1413,14 @@ static int coresight_remove_match(struct device *dev, void *data)
for (i = 0; i < iterator->pdata->nr_outconns; i++) { for (i = 0; i < iterator->pdata->nr_outconns; i++) {
conn = &iterator->pdata->out_conns[i]; conn = &iterator->pdata->out_conns[i];
if (conn->child_dev == NULL || conn->child_fwnode == NULL) if (conn->dest_dev == NULL || conn->dest_fwnode == NULL)
continue; continue;
if (csdev->dev.fwnode == conn->child_fwnode) { if (csdev->dev.fwnode == conn->dest_fwnode) {
iterator->orphan = true; iterator->orphan = true;
coresight_remove_links(iterator, conn); coresight_remove_links(iterator, conn);
conn->child_dev = NULL; conn->dest_dev = NULL;
/* No need to continue */ /* No need to continue */
break; break;
} }
...@@ -1547,15 +1546,15 @@ void coresight_release_platform_data(struct coresight_device *csdev, ...@@ -1547,15 +1546,15 @@ void coresight_release_platform_data(struct coresight_device *csdev,
for (i = 0; i < pdata->nr_outconns; i++) { for (i = 0; i < pdata->nr_outconns; i++) {
/* If we have made the links, remove them now */ /* If we have made the links, remove them now */
if (csdev && conns[i].child_dev) if (csdev && conns[i].dest_dev)
coresight_remove_links(csdev, &conns[i]); coresight_remove_links(csdev, &conns[i]);
/* /*
* Drop the refcount and clear the handle as this device * Drop the refcount and clear the handle as this device
* is going away * is going away
*/ */
if (conns[i].child_fwnode) { if (conns[i].dest_fwnode) {
fwnode_handle_put(conns[i].child_fwnode); fwnode_handle_put(conns[i].dest_fwnode);
conns[i].child_fwnode = NULL; conns[i].dest_fwnode = NULL;
} }
} }
if (csdev) if (csdev)
......
...@@ -252,13 +252,13 @@ static int of_coresight_parse_endpoint(struct device *dev, ...@@ -252,13 +252,13 @@ static int of_coresight_parse_endpoint(struct device *dev,
} }
conn = &pdata->out_conns[endpoint.port]; conn = &pdata->out_conns[endpoint.port];
if (conn->child_fwnode) { if (conn->dest_fwnode) {
dev_warn(dev, "Duplicate output port %d\n", dev_warn(dev, "Duplicate output port %d\n",
endpoint.port); endpoint.port);
ret = -EINVAL; ret = -EINVAL;
break; break;
} }
conn->outport = endpoint.port; conn->src_port = endpoint.port;
/* /*
* Hold the refcount to the target device. This could be * Hold the refcount to the target device. This could be
* released via: * released via:
...@@ -267,8 +267,8 @@ static int of_coresight_parse_endpoint(struct device *dev, ...@@ -267,8 +267,8 @@ static int of_coresight_parse_endpoint(struct device *dev,
* 2) While removing the target device via * 2) While removing the target device via
* coresight_remove_match() * coresight_remove_match()
*/ */
conn->child_fwnode = fwnode_handle_get(rdev_fwnode); conn->dest_fwnode = fwnode_handle_get(rdev_fwnode);
conn->child_port = rendpoint.port; conn->dest_port = rendpoint.port;
/* Connection record updated */ /* Connection record updated */
} while (0); } while (0);
...@@ -649,8 +649,8 @@ static int acpi_coresight_parse_link(struct acpi_device *adev, ...@@ -649,8 +649,8 @@ static int acpi_coresight_parse_link(struct acpi_device *adev,
dir = fields[3].integer.value; dir = fields[3].integer.value;
if (dir == ACPI_CORESIGHT_LINK_MASTER) { if (dir == ACPI_CORESIGHT_LINK_MASTER) {
conn->outport = fields[0].integer.value; conn->src_port = fields[0].integer.value;
conn->child_port = fields[1].integer.value; conn->dest_port = fields[1].integer.value;
rdev = coresight_find_device_by_fwnode(&r_adev->fwnode); rdev = coresight_find_device_by_fwnode(&r_adev->fwnode);
if (!rdev) if (!rdev)
return -EPROBE_DEFER; return -EPROBE_DEFER;
...@@ -662,14 +662,14 @@ static int acpi_coresight_parse_link(struct acpi_device *adev, ...@@ -662,14 +662,14 @@ static int acpi_coresight_parse_link(struct acpi_device *adev,
* 2) While removing the target device via * 2) While removing the target device via
* coresight_remove_match(). * coresight_remove_match().
*/ */
conn->child_fwnode = fwnode_handle_get(&r_adev->fwnode); conn->dest_fwnode = fwnode_handle_get(&r_adev->fwnode);
} else if (dir == ACPI_CORESIGHT_LINK_SLAVE) { } else if (dir == ACPI_CORESIGHT_LINK_SLAVE) {
/* /*
* We are only interested in the port number * We are only interested in the port number
* for the input ports at this component. * for the input ports at this component.
* Store the port number in child_port. * Store the port number in child_port.
*/ */
conn->child_port = fields[0].integer.value; conn->dest_port = fields[0].integer.value;
} else { } else {
/* Invalid direction */ /* Invalid direction */
return -EINVAL; return -EINVAL;
...@@ -718,11 +718,11 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev, ...@@ -718,11 +718,11 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev,
return dir; return dir;
if (dir == ACPI_CORESIGHT_LINK_MASTER) { if (dir == ACPI_CORESIGHT_LINK_MASTER) {
if (ptr->outport >= pdata->nr_outconns) if (ptr->src_port >= pdata->nr_outconns)
pdata->nr_outconns = ptr->outport + 1; pdata->nr_outconns = ptr->src_port + 1;
ptr++; ptr++;
} else { } else {
WARN_ON(pdata->nr_inconns == ptr->child_port + 1); WARN_ON(pdata->nr_inconns == ptr->dest_port + 1);
/* /*
* We do not track input port connections for a device. * We do not track input port connections for a device.
* However we need the highest port number described, * However we need the highest port number described,
...@@ -730,8 +730,8 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev, ...@@ -730,8 +730,8 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev,
* record for an output connection. Hence, do not move * record for an output connection. Hence, do not move
* the ptr for input connections * the ptr for input connections
*/ */
if (ptr->child_port >= pdata->nr_inconns) if (ptr->dest_port >= pdata->nr_inconns)
pdata->nr_inconns = ptr->child_port + 1; pdata->nr_inconns = ptr->dest_port + 1;
} }
} }
...@@ -741,10 +741,10 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev, ...@@ -741,10 +741,10 @@ static int acpi_coresight_parse_graph(struct acpi_device *adev,
/* Copy the connection information to the final location */ /* Copy the connection information to the final location */
for (i = 0; conns + i < ptr; i++) { for (i = 0; conns + i < ptr; i++) {
int port = conns[i].outport; int port = conns[i].src_port;
/* Duplicate output port */ /* Duplicate output port */
WARN_ON(pdata->out_conns[port].child_fwnode); WARN_ON(pdata->out_conns[port].dest_fwnode);
pdata->out_conns[port] = conns[i]; pdata->out_conns[port] = conns[i];
} }
......
...@@ -150,11 +150,11 @@ int coresight_make_links(struct coresight_device *orig, ...@@ -150,11 +150,11 @@ int coresight_make_links(struct coresight_device *orig,
do { do {
outs = devm_kasprintf(&orig->dev, GFP_KERNEL, outs = devm_kasprintf(&orig->dev, GFP_KERNEL,
"out:%d", conn->outport); "out:%d", conn->src_port);
if (!outs) if (!outs)
break; break;
ins = devm_kasprintf(&target->dev, GFP_KERNEL, ins = devm_kasprintf(&target->dev, GFP_KERNEL,
"in:%d", conn->child_port); "in:%d", conn->dest_port);
if (!ins) if (!ins)
break; break;
link = devm_kzalloc(&orig->dev, link = devm_kzalloc(&orig->dev,
...@@ -178,7 +178,7 @@ int coresight_make_links(struct coresight_device *orig, ...@@ -178,7 +178,7 @@ int coresight_make_links(struct coresight_device *orig,
* Install the device connection. This also indicates that * Install the device connection. This also indicates that
* the links are operational on both ends. * the links are operational on both ends.
*/ */
conn->child_dev = target; conn->dest_dev = target;
return 0; return 0;
} while (0); } while (0);
...@@ -198,9 +198,9 @@ void coresight_remove_links(struct coresight_device *orig, ...@@ -198,9 +198,9 @@ void coresight_remove_links(struct coresight_device *orig,
coresight_remove_sysfs_link(conn->link); coresight_remove_sysfs_link(conn->link);
devm_kfree(&conn->child_dev->dev, conn->link->target_name); devm_kfree(&conn->dest_dev->dev, conn->link->target_name);
devm_kfree(&orig->dev, conn->link->orig_name); devm_kfree(&orig->dev, conn->link->orig_name);
devm_kfree(&orig->dev, conn->link); devm_kfree(&orig->dev, conn->link);
conn->link = NULL; conn->link = NULL;
conn->child_dev = NULL; conn->dest_dev = NULL;
} }
...@@ -782,7 +782,7 @@ tmc_etr_get_catu_device(struct tmc_drvdata *drvdata) ...@@ -782,7 +782,7 @@ tmc_etr_get_catu_device(struct tmc_drvdata *drvdata)
return NULL; return NULL;
for (i = 0; i < etr->pdata->nr_outconns; i++) { for (i = 0; i < etr->pdata->nr_outconns; i++) {
tmp = etr->pdata->out_conns[i].child_dev; tmp = etr->pdata->out_conns[i].dest_dev;
if (tmp && coresight_is_catu_device(tmp)) if (tmp && coresight_is_catu_device(tmp))
return tmp; return tmp;
} }
......
...@@ -164,18 +164,18 @@ struct coresight_desc { ...@@ -164,18 +164,18 @@ struct coresight_desc {
/** /**
* struct coresight_connection - representation of a single connection * struct coresight_connection - representation of a single connection
* @outport: a connection's output port number. * @src_port: a connection's output port number.
* @child_port: remote component's port number @output is connected to. * @dest_port: destination's input port number @src_port is connected to.
* @chid_fwnode: remote component's fwnode handle. * @dest_fwnode: destination component's fwnode handle.
* @child_dev: a @coresight_device representation of the component * @dest_dev: a @coresight_device representation of the component
connected to @outport. connected to @src_port. NULL until the device is created
* @link: Representation of the connection as a sysfs link. * @link: Representation of the connection as a sysfs link.
*/ */
struct coresight_connection { struct coresight_connection {
int outport; int src_port;
int child_port; int dest_port;
struct fwnode_handle *child_fwnode; struct fwnode_handle *dest_fwnode;
struct coresight_device *child_dev; struct coresight_device *dest_dev;
struct coresight_sysfs_link *link; struct coresight_sysfs_link *link;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment