Commit bfd727f3 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

staging: gasket: remove gasket_wait_sync()

This function is not called anywhere, so just remove it.

Also, as an added benifit, Arnd points out that it doesn't even work
properly:
	This code won't work correct during leap seconds or a concurrent
	settimeofday() call, and it probably doesn't do what the author intended
	even for the normal case, as it passes a timeout in nanoseconds but
	reads the time using a jiffies-granularity accessor.
Reported-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2e008cd0
......@@ -2067,51 +2067,6 @@ struct device *gasket_get_device(struct gasket_dev *dev)
return NULL;
}
/**
* Synchronously waits on device.
* @gasket_dev: Device struct.
* @bar: Bar
* @offset: Register offset
* @mask: Register mask
* @val: Expected value
* @timeout_ns: Timeout in nanoseconds
*
* Description: Busy waits for a specific combination of bits to be set
* on a Gasket register.
**/
int gasket_wait_sync(
struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,
u64 timeout_ns)
{
u64 reg;
struct timespec start_time, cur_time;
u64 diff_nanosec;
int count = 0;
reg = gasket_dev_read_64(gasket_dev, bar, offset);
start_time = current_kernel_time();
while ((reg & mask) != val) {
count++;
cur_time = current_kernel_time();
diff_nanosec = (u64)(cur_time.tv_sec - start_time.tv_sec) *
1000000000LL +
(u64)(cur_time.tv_nsec) -
(u64)(start_time.tv_nsec);
if (diff_nanosec > timeout_ns) {
gasket_log_error(
gasket_dev,
"%s timeout: reg %llx count %x "
"dma %lld ns\n",
__func__,
offset, count, diff_nanosec);
return -1;
}
reg = gasket_dev_read_64(gasket_dev, bar, offset);
}
return 0;
}
EXPORT_SYMBOL(gasket_wait_sync);
/**
* Asynchronously waits on device.
* @gasket_dev: Device struct.
......
......@@ -699,11 +699,6 @@ const struct gasket_driver_desc *gasket_get_driver_desc(struct gasket_dev *dev);
/* Get the device structure for a given device. */
struct device *gasket_get_device(struct gasket_dev *dev);
/* Helper function, Synchronous waits on a given set of bits. */
int gasket_wait_sync(
struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,
u64 timeout_ns);
/* Helper function, Asynchronous waits on a given set of bits. */
int gasket_wait_with_reschedule(
struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,
......
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