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

greybus: loopback: Convert thread delay to microseconds

Currently the loopback code allows a delay between operations specified in
milliseconds. Having added asynchronous bi-directional support to loopback
its obvious that the delay value would be far more useful specified in
microseconds than milliseconds. So, this patch makes the necessary
conversion.
Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 12927835
...@@ -86,7 +86,7 @@ struct gb_loopback { ...@@ -86,7 +86,7 @@ struct gb_loopback {
u32 size; u32 size;
u32 iteration_max; u32 iteration_max;
u32 iteration_count; u32 iteration_count;
int ms_wait; int us_wait;
u32 error; u32 error;
u32 requests_completed; u32 requests_completed;
u32 requests_timedout; u32 requests_timedout;
...@@ -112,7 +112,7 @@ module_param(kfifo_depth, uint, 0444); ...@@ -112,7 +112,7 @@ module_param(kfifo_depth, uint, 0444);
/* Maximum size of any one send data buffer we support */ /* Maximum size of any one send data buffer we support */
#define MAX_PACKET_SIZE (PAGE_SIZE * 2) #define MAX_PACKET_SIZE (PAGE_SIZE * 2)
#define GB_LOOPBACK_MS_WAIT_MAX 1000 #define GB_LOOPBACK_US_WAIT_MAX 1000000
/* interface sysfs attributes */ /* interface sysfs attributes */
#define gb_loopback_ro_attr(field) \ #define gb_loopback_ro_attr(field) \
...@@ -237,8 +237,8 @@ static void gb_loopback_reset_stats(struct gb_loopback *gb); ...@@ -237,8 +237,8 @@ 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,
struct gb_bundle *bundle) struct gb_bundle *bundle)
{ {
if (gb->ms_wait > GB_LOOPBACK_MS_WAIT_MAX) if (gb->us_wait > GB_LOOPBACK_US_WAIT_MAX)
gb->ms_wait = GB_LOOPBACK_MS_WAIT_MAX; gb->us_wait = GB_LOOPBACK_US_WAIT_MAX;
if (gb->size > gb_dev.size_max) if (gb->size > gb_dev.size_max)
gb->size = gb_dev.size_max; gb->size = gb_dev.size_max;
gb->requests_timedout = 0; gb->requests_timedout = 0;
...@@ -306,7 +306,7 @@ gb_dev_loopback_rw_attr(type, d); ...@@ -306,7 +306,7 @@ gb_dev_loopback_rw_attr(type, d);
/* Size of transfer message payload: 0-4096 bytes */ /* Size of transfer message payload: 0-4096 bytes */
gb_dev_loopback_rw_attr(size, u); gb_dev_loopback_rw_attr(size, u);
/* Time to wait between two messages: 0-1000 ms */ /* Time to wait between two messages: 0-1000 ms */
gb_dev_loopback_rw_attr(ms_wait, d); gb_dev_loopback_rw_attr(us_wait, d);
/* Maximum iterations for a given operation: 1-(2^32-1), 0 implies infinite */ /* Maximum iterations for a given operation: 1-(2^32-1), 0 implies infinite */
gb_dev_loopback_rw_attr(iteration_max, u); gb_dev_loopback_rw_attr(iteration_max, u);
/* The current index of the for (i = 0; i < iteration_max; i++) loop */ /* The current index of the for (i = 0; i < iteration_max; i++) loop */
...@@ -336,7 +336,7 @@ static struct attribute *loopback_attrs[] = { ...@@ -336,7 +336,7 @@ static struct attribute *loopback_attrs[] = {
&dev_attr_gpbridge_firmware_latency_avg.attr, &dev_attr_gpbridge_firmware_latency_avg.attr,
&dev_attr_type.attr, &dev_attr_type.attr,
&dev_attr_size.attr, &dev_attr_size.attr,
&dev_attr_ms_wait.attr, &dev_attr_us_wait.attr,
&dev_attr_iteration_count.attr, &dev_attr_iteration_count.attr,
&dev_attr_iteration_max.attr, &dev_attr_iteration_max.attr,
&dev_attr_mask.attr, &dev_attr_mask.attr,
...@@ -925,7 +925,7 @@ static void gb_loopback_calculate_stats(struct gb_loopback *gb) ...@@ -925,7 +925,7 @@ static void gb_loopback_calculate_stats(struct gb_loopback *gb)
static int gb_loopback_fn(void *data) static int gb_loopback_fn(void *data)
{ {
int error = 0; int error = 0;
int ms_wait = 0; int us_wait = 0;
int type; int type;
u32 size; u32 size;
u32 send_count = 0; u32 send_count = 0;
...@@ -951,7 +951,7 @@ static int gb_loopback_fn(void *data) ...@@ -951,7 +951,7 @@ static int gb_loopback_fn(void *data)
continue; continue;
} }
size = gb->size; size = gb->size;
ms_wait = gb->ms_wait; us_wait = gb->us_wait;
type = gb->type; type = gb->type;
mutex_unlock(&gb->mutex); mutex_unlock(&gb->mutex);
...@@ -983,8 +983,8 @@ static int gb_loopback_fn(void *data) ...@@ -983,8 +983,8 @@ static int gb_loopback_fn(void *data)
gb_loopback_calculate_stats(gb); gb_loopback_calculate_stats(gb);
} }
send_count++; send_count++;
if (ms_wait) if (us_wait)
msleep(ms_wait); udelay(us_wait);
} }
return 0; return 0;
} }
......
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