mirror of https://gitee.com/openkylin/linux.git
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: Johan Hovold <johan@hovoldconsulting.com> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
a2cc7404e1
commit
2d54e4db4e
|
@ -81,36 +81,6 @@ struct device_type greybus_bundle_type = {
|
|||
/* XXX This could be per-host device or per-module */
|
||||
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
|
||||
* 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,
|
|||
void gb_bundle_destroy(struct gb_bundle *bundle);
|
||||
|
||||
struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id);
|
||||
void gb_bundle_bind_protocols(void);
|
||||
|
||||
#endif /* __BUNDLE_H */
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
|
||||
#include "greybus.h"
|
||||
|
||||
|
||||
static int gb_connection_bind_protocol(struct gb_connection *connection);
|
||||
|
||||
|
||||
static DEFINE_SPINLOCK(gb_connections_lock);
|
||||
|
||||
/* 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)
|
|||
}
|
||||
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;
|
||||
int ret;
|
||||
|
|
|
@ -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,
|
||||
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_disable(struct gb_connection *connection);
|
||||
|
||||
|
|
|
@ -90,12 +90,6 @@ int __gb_protocol_register(struct gb_protocol *protocol, struct module *module)
|
|||
|
||||
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;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__gb_protocol_register);
|
||||
|
|
Loading…
Reference in New Issue