]> git.karo-electronics.de Git - linux-beck.git/commitdiff
greybus: connection: add support for high-priority connections
authorJohan Hovold <johan@hovoldconsulting.com>
Wed, 22 Jun 2016 09:42:04 +0000 (11:42 +0200)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 24 Jun 2016 23:22:30 +0000 (16:22 -0700)
Add connection flag to indicate that a connection has high priority.

For the SVC and control connections this may be used by the host-device
driver as a hint to allocate dedicated DMA channels or to use polling to
avoid message congestion.

We also allow drivers to set this flag on their connections, even though
we currently have no use case for this (and the host-device driver is
again free to ignore it).

Note that this mechanism can be used to indicate also high-bandwidth
connections (e.g. wanting larger buffers or dedicated endpoints), but
that that should be done using a separate high-bandwidth flag rather
than overloading the high-priority flag.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/connection.c
drivers/staging/greybus/connection.h

index 7b2d6358f4323db33905dee07eaa153a93984127..9eb177ea30de7197e37c094f1b538eea03137c6e 100644 (file)
@@ -232,14 +232,15 @@ gb_connection_create_static(struct gb_host_device *hd, u16 hd_cport_id,
                                        gb_request_handler_t handler)
 {
        return _gb_connection_create(hd, hd_cport_id, NULL, NULL, 0, handler,
-                                       0);
+                                       GB_CONNECTION_FLAG_HIGH_PRIO);
 }
 
 struct gb_connection *
 gb_connection_create_control(struct gb_interface *intf)
 {
        return _gb_connection_create(intf->hd, -1, intf, NULL, 0, NULL,
-                                       GB_CONNECTION_FLAG_CONTROL);
+                                       GB_CONNECTION_FLAG_CONTROL |
+                                       GB_CONNECTION_FLAG_HIGH_PRIO);
 }
 
 struct gb_connection *
index 0ea8ac8fbb8f6c4610deb322038b6b03f096cf37..4d9f4c64176cb124a6663c37d358058f5383cd18 100644 (file)
@@ -18,6 +18,7 @@
 #define GB_CONNECTION_FLAG_OFFLOADED   BIT(2)
 #define GB_CONNECTION_FLAG_CDSI1       BIT(3)
 #define GB_CONNECTION_FLAG_CONTROL     BIT(4)
+#define GB_CONNECTION_FLAG_HIGH_PRIO   BIT(5)
 
 #define GB_CONNECTION_FLAG_CORE_MASK   GB_CONNECTION_FLAG_CONTROL