OSDN Git Service

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 5cbb8cb..95cba82 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);