aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/gasket/gasket_core.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-13 17:46:17 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-14 10:01:42 +0200
commitbfd727f3a59c3696d6fbe086589376a16a5cdf05 (patch)
tree7d77e7ab7e9ae0357bde5f38ef82cf5d309dd4d4 /drivers/staging/gasket/gasket_core.c
parentstaging: gasket: sysfs: remove legacy_device field (diff)
downloadlinux-dev-bfd727f3a59c3696d6fbe086589376a16a5cdf05.tar.xz
linux-dev-bfd727f3a59c3696d6fbe086589376a16a5cdf05.zip
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>
Diffstat (limited to 'drivers/staging/gasket/gasket_core.c')
-rw-r--r--drivers/staging/gasket/gasket_core.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/drivers/staging/gasket/gasket_core.c b/drivers/staging/gasket/gasket_core.c
index 14649a794e35..b69b630f1b79 100644
--- a/drivers/staging/gasket/gasket_core.c
+++ b/drivers/staging/gasket/gasket_core.c
@@ -2068,51 +2068,6 @@ struct device *gasket_get_device(struct gasket_dev *dev)
}
/**
- * 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.
* @bar: Bar