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: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Bryan O'Donoghue 2015-07-13 20:20:48 +01:00 committed by Greg Kroah-Hartman
parent 74a240a029
commit a598f4384d

View file

@ -45,12 +45,6 @@ struct gb_loopback {
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_SIZE_MAX SZ_4K
@ -117,10 +111,16 @@ static DEVICE_ATTR_RW(field)
static void gb_loopback_reset_stats(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)
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)
gb->size = GB_LOOPBACK_SIZE_MAX;
gb->error = 0;
@ -337,13 +337,13 @@ static int gb_loopback_fn(void *data)
struct gb_loopback *gb = (struct gb_loopback *)data;
while (!kthread_should_stop()) {
if (gb->type == GB_LOOPBACK_FN_NONE) {
if (!gb->type) {
msleep(1000);
continue;
}
if (gb->type == GB_LOOPBACK_FN_PING)
if (gb->type == GB_LOOPBACK_TYPE_PING)
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);
if (error)
gb->error++;