From: Johan Hovold Date: Tue, 19 May 2015 09:22:46 +0000 (+0200) Subject: greybus: operation: add helper to retrieve max payload size X-Git-Tag: v4.9-rc1~119^2~378^2~21^2~1522 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d52b35f6b62c8b9e1b7e10010daa0370f8252f1d;p=karo-tx-linux.git greybus: operation: add helper to retrieve max payload size Add helper to retrieve the maximum payload size for operations on a specific connection. Note that the helper is not inlined due to how the header files are currently organised, but it is not expected to be called after a connection has been initialised either. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c index c78ccc09d667..f595b97fa900 100644 --- a/drivers/staging/greybus/operation.c +++ b/drivers/staging/greybus/operation.c @@ -504,6 +504,14 @@ struct gb_operation *gb_operation_create(struct gb_connection *connection, } EXPORT_SYMBOL_GPL(gb_operation_create); +size_t gb_operation_get_payload_size_max(struct gb_connection *connection) +{ + struct greybus_host_device *hd = connection->hd; + + return hd->buffer_size_max - sizeof(struct gb_operation_msg_hdr); +} +EXPORT_SYMBOL_GPL(gb_operation_get_payload_size_max); + static struct gb_operation * gb_operation_create_incoming(struct gb_connection *connection, u16 id, u8 type, void *data, size_t size) diff --git a/drivers/staging/greybus/operation.h b/drivers/staging/greybus/operation.h index 740aacc3a3db..0199976c9b5f 100644 --- a/drivers/staging/greybus/operation.h +++ b/drivers/staging/greybus/operation.h @@ -130,6 +130,7 @@ void gb_connection_recv(struct gb_connection *connection, int gb_operation_result(struct gb_operation *operation); +size_t gb_operation_get_payload_size_max(struct gb_connection *connection); struct gb_operation *gb_operation_create(struct gb_connection *connection, u8 type, size_t request_size, size_t response_size);