greybus: loopback: send command to APBridge to tag throughput
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Thu, 15 Oct 2015 15:10:43 +0000 (16:10 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 15 Oct 2015 18:31:08 +0000 (11:31 -0700)
A USB vendor command has been added to APBridge to allow for tagging of
specific CPort identifiers with internal timing data, specifically geared
towards capturing and understanding latencies in the UniPro fabric. This
patch sends a command to APBridge for each known loopback CPort to tag data
as appropriate. Subsequent patches will present this data to user-space for
ongoing integration analysis.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/loopback.c

index 5cbb8cb7fd9b7d903a87d015d3a655d2d793b4c1..95cba823ff90e8db8a457ed41413fa29a5130e14 100644 (file)
@@ -23,6 +23,7 @@
 #include <asm/div64.h>
 
 #include "greybus.h"
+#include "connection.h"
 
 #define NSEC_PER_DAY 86400000000000ULL
 
@@ -938,6 +939,7 @@ static int gb_loopback_connection_init(struct gb_connection *connection)
        }
 
        gb_loopback_insert_id(gb);
+       gb_connection_latency_tag_enable(connection);
        gb_dev.count++;
        mutex_unlock(&gb_dev.mutex);
        return 0;
@@ -975,6 +977,7 @@ static void gb_loopback_connection_exit(struct gb_connection *connection)
        connection->private = NULL;
        kfifo_free(&gb->kfifo_lat);
        kfifo_free(&gb->kfifo_ts);
+       gb_connection_latency_tag_disable(connection);
        gb_dev.count--;
        if (!gb_dev.count) {
                sysfs_remove_groups(kobj, loopback_dev_groups);