aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/iio/trigger/iio-trig-periodic-rtc.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
index a24caf73ae0b..89df1d32874d 100644
--- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
+++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
@@ -24,7 +24,7 @@ static DEFINE_MUTEX(iio_prtc_trigger_list_lock);
24 24
25struct iio_prtc_trigger_info { 25struct iio_prtc_trigger_info {
26 struct rtc_device *rtc; 26 struct rtc_device *rtc;
27 int frequency; 27 unsigned int frequency;
28 struct rtc_task task; 28 struct rtc_task task;
29 bool state; 29 bool state;
30}; 30};
@@ -36,7 +36,7 @@ static int iio_trig_periodic_rtc_set_state(struct iio_trigger *trig, bool state)
36 36
37 if (trig_info->frequency == 0 && state) 37 if (trig_info->frequency == 0 && state)
38 return -EINVAL; 38 return -EINVAL;
39 dev_dbg(&trig_info->rtc->dev, "trigger frequency is %d\n", 39 dev_dbg(&trig_info->rtc->dev, "trigger frequency is %u\n",
40 trig_info->frequency); 40 trig_info->frequency);
41 ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, state); 41 ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, state);
42 if (ret == 0) 42 if (ret == 0)
@@ -62,10 +62,10 @@ static ssize_t iio_trig_periodic_write_freq(struct device *dev,
62{ 62{
63 struct iio_trigger *trig = to_iio_trigger(dev); 63 struct iio_trigger *trig = to_iio_trigger(dev);
64 struct iio_prtc_trigger_info *trig_info = iio_trigger_get_drvdata(trig); 64 struct iio_prtc_trigger_info *trig_info = iio_trigger_get_drvdata(trig);
65 int val; 65 unsigned int val;
66 int ret; 66 int ret;
67 67
68 ret = kstrtoint(buf, 10, &val); 68 ret = kstrtouint(buf, 10, &val);
69 if (ret) 69 if (ret)
70 goto error_ret; 70 goto error_ret;
71 71
@@ -74,10 +74,8 @@ static ssize_t iio_trig_periodic_write_freq(struct device *dev,
74 if (ret == 0 && trig_info->state && trig_info->frequency == 0) 74 if (ret == 0 && trig_info->state && trig_info->frequency == 0)
75 ret = rtc_irq_set_state(trig_info->rtc, 75 ret = rtc_irq_set_state(trig_info->rtc,
76 &trig_info->task, 1); 76 &trig_info->task, 1);
77 } else if (val == 0) {
78 ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, 0);
79 } else 77 } else
80 ret = -EINVAL; 78 ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, 0);
81 if (ret) 79 if (ret)
82 goto error_ret; 80 goto error_ret;
83 81