|
@@ -45,16 +45,17 @@ static enum hrtimer_restart gpio_timer_func(struct hrtimer *timer)
|
|
|
|
|
|
static int gpio_get_time(struct timed_output_dev *dev)
|
|
|
{
|
|
|
- struct timed_gpio_data *data =
|
|
|
- container_of(dev, struct timed_gpio_data, dev);
|
|
|
+ struct timed_gpio_data *data;
|
|
|
+ struct timeval t;
|
|
|
|
|
|
- if (hrtimer_active(&data->timer)) {
|
|
|
- ktime_t r = hrtimer_get_remaining(&data->timer);
|
|
|
- struct timeval t = ktime_to_timeval(r);
|
|
|
+ data = container_of(dev, struct timed_gpio_data, dev);
|
|
|
|
|
|
- return t.tv_sec * 1000 + t.tv_usec / 1000;
|
|
|
- } else
|
|
|
+ if (!hrtimer_active(&data->timer))
|
|
|
return 0;
|
|
|
+
|
|
|
+ t = ktime_to_timeval(hrtimer_get_remaining(&data->timer));
|
|
|
+
|
|
|
+ return t.tv_sec * 1000 + t.tv_usec / 1000;
|
|
|
}
|
|
|
|
|
|
static void gpio_enable(struct timed_output_dev *dev, int value)
|