mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 06:05:03 +07:00
greybus: connection: add offloaded connection flag
Add an offloaded connection flag, which is used to mark a connection as offloaded and prevent drivers from initiating operation over it. This will be used for the audio and camera data connections. 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
0e9b41ab98
commit
ca1f8f8090
@ -15,6 +15,7 @@
|
||||
|
||||
#define GB_CONNECTION_FLAG_CSD BIT(0)
|
||||
#define GB_CONNECTION_FLAG_NO_FLOWCTRL BIT(1)
|
||||
#define GB_CONNECTION_FLAG_OFFLOADED BIT(2)
|
||||
|
||||
enum gb_connection_state {
|
||||
GB_CONNECTION_STATE_INVALID = 0,
|
||||
@ -95,6 +96,11 @@ gb_connection_flow_control_disabled(struct gb_connection *connection)
|
||||
return connection->flags & GB_CONNECTION_FLAG_NO_FLOWCTRL;
|
||||
}
|
||||
|
||||
static inline bool gb_connection_is_offloaded(struct gb_connection *connection)
|
||||
{
|
||||
return connection->flags & GB_CONNECTION_FLAG_OFFLOADED;
|
||||
}
|
||||
|
||||
static inline void *gb_connection_get_data(struct gb_connection *connection)
|
||||
{
|
||||
return connection->private;
|
||||
|
@ -654,6 +654,9 @@ int gb_operation_request_send(struct gb_operation *operation,
|
||||
unsigned int cycle;
|
||||
int ret;
|
||||
|
||||
if (gb_connection_is_offloaded(connection))
|
||||
return -EBUSY;
|
||||
|
||||
if (!callback)
|
||||
return -EINVAL;
|
||||
|
||||
@ -950,8 +953,9 @@ void gb_connection_recv(struct gb_connection *connection,
|
||||
size_t msg_size;
|
||||
u16 operation_id;
|
||||
|
||||
if (connection->state != GB_CONNECTION_STATE_ENABLED &&
|
||||
connection->state != GB_CONNECTION_STATE_ENABLED_TX) {
|
||||
if ((connection->state != GB_CONNECTION_STATE_ENABLED &&
|
||||
connection->state != GB_CONNECTION_STATE_ENABLED_TX) ||
|
||||
gb_connection_is_offloaded(connection)) {
|
||||
dev_warn(dev, "%s: dropping %zu received bytes\n",
|
||||
connection->name, size);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user