Commit 2d54e4db authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: bundle: kill gb_bundle_bind_protocols

Remove gb_bundle_bind_protocols() that was used to iterate over all
registered bundles and bind protocols to them should a protocol become
available post bundle creation.

The protocol abstraction as a generic construct is going away in favour
of class drivers. Connections will be setup when a class driver is
probed, and driver modules can be loaded on-demand by user space based
on uevents and modalias.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent a2cc7404
...@@ -81,36 +81,6 @@ struct device_type greybus_bundle_type = { ...@@ -81,36 +81,6 @@ struct device_type greybus_bundle_type = {
/* XXX This could be per-host device or per-module */ /* XXX This could be per-host device or per-module */
static DEFINE_SPINLOCK(gb_bundles_lock); static DEFINE_SPINLOCK(gb_bundles_lock);
static int __bundle_bind_protocols(struct device *dev, void *data)
{
struct gb_bundle *bundle;
struct gb_connection *connection;
if (!is_gb_bundle(dev))
return 0;
bundle = to_gb_bundle(dev);
list_for_each_entry(connection, &bundle->connections, bundle_links) {
gb_connection_bind_protocol(connection);
}
return 0;
}
/*
* Walk all bundles in the system, and see if any connections are not bound to a
* specific prototcol. If they are not, then try to find one for it and bind it
* to it.
*
* This is called after registering a new protocol.
*/
void gb_bundle_bind_protocols(void)
{
bus_for_each_dev(&greybus_bus_type, NULL, NULL,
__bundle_bind_protocols);
}
/* /*
* Create a gb_bundle structure to represent a discovered * Create a gb_bundle structure to represent a discovered
* bundle. Returns a pointer to the new bundle or a null * bundle. Returns a pointer to the new bundle or a null
......
...@@ -34,6 +34,5 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id, ...@@ -34,6 +34,5 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id,
void gb_bundle_destroy(struct gb_bundle *bundle); void gb_bundle_destroy(struct gb_bundle *bundle);
struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id); struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id);
void gb_bundle_bind_protocols(void);
#endif /* __BUNDLE_H */ #endif /* __BUNDLE_H */
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
#include "greybus.h" #include "greybus.h"
static int gb_connection_bind_protocol(struct gb_connection *connection);
static DEFINE_SPINLOCK(gb_connections_lock); static DEFINE_SPINLOCK(gb_connections_lock);
/* This is only used at initialization time; no locking is required. */ /* This is only used at initialization time; no locking is required. */
...@@ -520,7 +524,7 @@ void gb_connection_latency_tag_disable(struct gb_connection *connection) ...@@ -520,7 +524,7 @@ void gb_connection_latency_tag_disable(struct gb_connection *connection)
} }
EXPORT_SYMBOL_GPL(gb_connection_latency_tag_disable); EXPORT_SYMBOL_GPL(gb_connection_latency_tag_disable);
int gb_connection_bind_protocol(struct gb_connection *connection) static int gb_connection_bind_protocol(struct gb_connection *connection)
{ {
struct gb_protocol *protocol; struct gb_protocol *protocol;
int ret; int ret;
......
...@@ -66,8 +66,6 @@ static inline bool gb_connection_is_static(struct gb_connection *connection) ...@@ -66,8 +66,6 @@ static inline bool gb_connection_is_static(struct gb_connection *connection)
void greybus_data_rcvd(struct gb_host_device *hd, u16 cport_id, void greybus_data_rcvd(struct gb_host_device *hd, u16 cport_id,
u8 *data, size_t length); u8 *data, size_t length);
int gb_connection_bind_protocol(struct gb_connection *connection);
void gb_connection_latency_tag_enable(struct gb_connection *connection); void gb_connection_latency_tag_enable(struct gb_connection *connection);
void gb_connection_latency_tag_disable(struct gb_connection *connection); void gb_connection_latency_tag_disable(struct gb_connection *connection);
......
...@@ -90,12 +90,6 @@ int __gb_protocol_register(struct gb_protocol *protocol, struct module *module) ...@@ -90,12 +90,6 @@ int __gb_protocol_register(struct gb_protocol *protocol, struct module *module)
pr_info("Registered %s protocol.\n", protocol->name); pr_info("Registered %s protocol.\n", protocol->name);
/*
* Go try to bind any unbound connections, as we have a
* new protocol in the system
*/
gb_bundle_bind_protocols();
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(__gb_protocol_register); EXPORT_SYMBOL_GPL(__gb_protocol_register);
......
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