summaryrefslogtreecommitdiff
path: root/drivers
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
parent2e008cd075ba8c2b2212b9e8f3c75d79fa1ee44b (diff)
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')
-rw-r--r--drivers/staging/gasket/gasket_core.c45
-rw-r--r--drivers/staging/gasket/gasket_core.h5
2 files changed, 0 insertions, 50 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
diff --git a/drivers/staging/gasket/gasket_core.h b/drivers/staging/gasket/gasket_core.h
index 45013446b8c5..e51acadc0fc4 100644
--- a/drivers/staging/gasket/gasket_core.h
+++ b/drivers/staging/gasket/gasket_core.h
@@ -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,