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: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2e008cd075
commit
bfd727f3a5
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user