Commit 87ea5926 authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Greg Kroah-Hartman
Browse files

device connection: Remove device_connection_add()



All the users of that API have now been converted to use
software fwnodes instead.

Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200904125123.83725-3-heikki.krogerus@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 180c284c
Loading
Loading
Loading
Loading
+1 −58
Original line number Diff line number Diff line
@@ -9,9 +9,6 @@
#include <linux/device.h>
#include <linux/property.h>

static DEFINE_MUTEX(devcon_lock);
static LIST_HEAD(devcon_list);

static void *
fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
			  void *data, devcon_match_fn_t match)
@@ -99,60 +96,6 @@ EXPORT_SYMBOL_GPL(fwnode_connection_find_match);
void *device_connection_find_match(struct device *dev, const char *con_id,
				   void *data, devcon_match_fn_t match)
{
	struct fwnode_handle *fwnode = dev_fwnode(dev);
	const char *devname = dev_name(dev);
	struct device_connection *con;
	void *ret = NULL;
	int ep;

	if (!match)
		return NULL;

	ret = fwnode_connection_find_match(fwnode, con_id, data, match);
	if (ret)
		return ret;

	mutex_lock(&devcon_lock);

	list_for_each_entry(con, &devcon_list, list) {
		ep = match_string(con->endpoint, 2, devname);
		if (ep < 0)
			continue;

		if (con_id && strcmp(con->id, con_id))
			continue;

		ret = match(con, !ep, data);
		if (ret)
			break;
	}

	mutex_unlock(&devcon_lock);

	return ret;
	return fwnode_connection_find_match(dev_fwnode(dev), con_id, data, match);
}
EXPORT_SYMBOL_GPL(device_connection_find_match);

/**
 * device_connection_add - Register a connection description
 * @con: The connection description to be registered
 */
void device_connection_add(struct device_connection *con)
{
	mutex_lock(&devcon_lock);
	list_add_tail(&con->list, &devcon_list);
	mutex_unlock(&devcon_lock);
}
EXPORT_SYMBOL_GPL(device_connection_add);

/**
 * device_connections_remove - Unregister connection description
 * @con: The connection description to be unregistered
 */
void device_connection_remove(struct device_connection *con)
{
	mutex_lock(&devcon_lock);
	list_del(&con->list);
	mutex_unlock(&devcon_lock);
}
EXPORT_SYMBOL_GPL(device_connection_remove);
+0 −29
Original line number Diff line number Diff line
@@ -297,7 +297,6 @@ struct device_dma_parameters {
 * @fwnode: The device node of the connected device
 * @endpoint: The names of the two devices connected together
 * @id: Unique identifier for the connection
 * @list: List head, private, for internal use only
 *
 * NOTE: @fwnode is not used together with @endpoint. @fwnode is used when
 * platform firmware defines the connection. When the connection is registered
@@ -307,7 +306,6 @@ struct device_connection {
	struct fwnode_handle	*fwnode;
	const char		*endpoint[2];
	const char		*id;
	struct list_head	list;
};

typedef void *(*devcon_match_fn_t)(struct device_connection *con, int ep,
@@ -319,33 +317,6 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode,
void *device_connection_find_match(struct device *dev, const char *con_id,
				   void *data, devcon_match_fn_t match);

void device_connection_add(struct device_connection *con);
void device_connection_remove(struct device_connection *con);

/**
 * device_connections_add - Add multiple device connections at once
 * @cons: Zero terminated array of device connection descriptors
 */
static inline void device_connections_add(struct device_connection *cons)
{
	struct device_connection *c;

	for (c = cons; c->endpoint[0]; c++)
		device_connection_add(c);
}

/**
 * device_connections_remove - Remove multiple device connections at once
 * @cons: Zero terminated array of device connection descriptors
 */
static inline void device_connections_remove(struct device_connection *cons)
{
	struct device_connection *c;

	for (c = cons; c->endpoint[0]; c++)
		device_connection_remove(c);
}

/**
 * enum device_link_state - Device link states.
 * @DL_STATE_NONE: The presence of the drivers is not being tracked.