Commit a598f438 authored by Bryan O'Donoghue's avatar Bryan O'Donoghue Committed by Greg Kroah-Hartman

greybus: loopback: make loopback type input equivalent to protocol type

Sepcifying loopback operation type with a type value that is internal to
the loopback driver is non-intunitive and requires reading code to
understand. Remove confusing duplicate definitions and update code to
accept the greybus-specification function identity defintiions as the
appropriate type values for initiating loopback operations.

See greybus-spec section 10.16.1 'Greybus Loopback Message Types' for a
full list of valid messages to set this type field to.
Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 74a240a0
...@@ -45,12 +45,6 @@ struct gb_loopback { ...@@ -45,12 +45,6 @@ struct gb_loopback {
u32 error; u32 error;
}; };
/* Current function (type of traffic generated by the loopback thread) */
#define GB_LOOPBACK_FN_NONE 0x00
#define GB_LOOPBACK_FN_PING 0x01
#define GB_LOOPBACK_FN_XFER 0x02
#define GB_LOOPBACK_FN_COUNT 0x03
#define GB_LOOPBACK_MS_WAIT_MAX 1000 #define GB_LOOPBACK_MS_WAIT_MAX 1000
#define GB_LOOPBACK_SIZE_MAX SZ_4K #define GB_LOOPBACK_SIZE_MAX SZ_4K
...@@ -117,10 +111,16 @@ static DEVICE_ATTR_RW(field) ...@@ -117,10 +111,16 @@ static DEVICE_ATTR_RW(field)
static void gb_loopback_reset_stats(struct gb_loopback *gb); static void gb_loopback_reset_stats(struct gb_loopback *gb);
static void gb_loopback_check_attr(struct gb_loopback *gb) static void gb_loopback_check_attr(struct gb_loopback *gb)
{ {
switch (gb->type) {
case GB_LOOPBACK_TYPE_PING:
case GB_LOOPBACK_TYPE_TRANSFER:
break;
default:
gb->type = 0;
break;
}
if (gb->ms_wait > GB_LOOPBACK_MS_WAIT_MAX) if (gb->ms_wait > GB_LOOPBACK_MS_WAIT_MAX)
gb->ms_wait = GB_LOOPBACK_MS_WAIT_MAX; gb->ms_wait = GB_LOOPBACK_MS_WAIT_MAX;
if (gb->type >= GB_LOOPBACK_FN_COUNT)
gb->type = GB_LOOPBACK_FN_NONE;
if (gb->size > GB_LOOPBACK_SIZE_MAX) if (gb->size > GB_LOOPBACK_SIZE_MAX)
gb->size = GB_LOOPBACK_SIZE_MAX; gb->size = GB_LOOPBACK_SIZE_MAX;
gb->error = 0; gb->error = 0;
...@@ -337,13 +337,13 @@ static int gb_loopback_fn(void *data) ...@@ -337,13 +337,13 @@ static int gb_loopback_fn(void *data)
struct gb_loopback *gb = (struct gb_loopback *)data; struct gb_loopback *gb = (struct gb_loopback *)data;
while (!kthread_should_stop()) { while (!kthread_should_stop()) {
if (gb->type == GB_LOOPBACK_FN_NONE) { if (!gb->type) {
msleep(1000); msleep(1000);
continue; continue;
} }
if (gb->type == GB_LOOPBACK_FN_PING) if (gb->type == GB_LOOPBACK_TYPE_PING)
error = gb_loopback_ping(gb, &tlat); error = gb_loopback_ping(gb, &tlat);
else if (gb->type == GB_LOOPBACK_FN_XFER) else if (gb->type == GB_LOOPBACK_TYPE_TRANSFER)
error = gb_loopback_transfer(gb, &tlat, gb->size); error = gb_loopback_transfer(gb, &tlat, gb->size);
if (error) if (error)
gb->error++; gb->error++;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment