diff options
Diffstat (limited to 'drivers/staging/iio/trigger')
-rw-r--r-- | drivers/staging/iio/trigger/Makefile | 3 | ||||
-rw-r--r-- | drivers/staging/iio/trigger/iio-trig-gpio.c | 12 | ||||
-rw-r--r-- | drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 15 |
3 files changed, 11 insertions, 19 deletions
diff --git a/drivers/staging/iio/trigger/Makefile b/drivers/staging/iio/trigger/Makefile index e5f96d2fe64a..10aeca5e347a 100644 --- a/drivers/staging/iio/trigger/Makefile +++ b/drivers/staging/iio/trigger/Makefile @@ -1,5 +1,6 @@ # # Makefile for triggers not associated with iio-devices # + obj-$(CONFIG_IIO_PERIODIC_RTC_TRIGGER) += iio-trig-periodic-rtc.o -obj-$(CONFIG_IIO_GPIO_TRIGGER) += iio-trig-gpio.o
\ No newline at end of file +obj-$(CONFIG_IIO_GPIO_TRIGGER) += iio-trig-gpio.o diff --git a/drivers/staging/iio/trigger/iio-trig-gpio.c b/drivers/staging/iio/trigger/iio-trig-gpio.c index 1da285d28632..f93cc9169832 100644 --- a/drivers/staging/iio/trigger/iio-trig-gpio.c +++ b/drivers/staging/iio/trigger/iio-trig-gpio.c @@ -42,7 +42,8 @@ struct iio_gpio_trigger_info { static irqreturn_t iio_gpio_trigger_poll(int irq, void *private) { - iio_trigger_poll(private); + /* Timestamp not currently provided */ + iio_trigger_poll(private, 0); return IRQ_HANDLED; } @@ -93,16 +94,11 @@ static int iio_gpio_trigger_probe(struct platform_device *pdev) trig->private_data = trig_info; trig_info->irq = irq; trig->owner = THIS_MODULE; - trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, - GFP_KERNEL); - if (!trig->name) { + trig->name = kasprintf(GFP_KERNEL, "irqtrig%d", irq); + if (trig->name == NULL) { ret = -ENOMEM; goto error_free_trig_info; } - snprintf((char *)trig->name, - IIO_TRIGGER_NAME_LENGTH, - "irqtrig%d", irq); - ret = request_irq(irq, iio_gpio_trigger_poll, irqflags, trig->name, trig); if (ret) { diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c index 4ee3ae1ef892..b0b52f84edfd 100644 --- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c +++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c @@ -25,7 +25,6 @@ static DEFINE_MUTEX(iio_prtc_trigger_list_lock); struct iio_prtc_trigger_info { struct rtc_device *rtc; int frequency; - char *name; struct rtc_task task; }; @@ -78,8 +77,7 @@ static ssize_t iio_trig_periodic_read_name(struct device *dev, char *buf) { struct iio_trigger *trig = dev_get_drvdata(dev); - struct iio_prtc_trigger_info *trig_info = trig->private_data; - return sprintf(buf, "%s\n", trig_info->name); + return sprintf(buf, "%s\n", trig->name); } static DEVICE_ATTR(name, S_IRUGO, @@ -100,7 +98,8 @@ static const struct attribute_group iio_trig_prtc_attr_group = { static void iio_prtc_trigger_poll(void *private_data) { - iio_trigger_poll(private_data); + /* Timestamp is not provided currently */ + iio_trigger_poll(private_data, 0); } static int iio_trig_periodic_rtc_probe(struct platform_device *dev) @@ -129,16 +128,12 @@ static int iio_trig_periodic_rtc_probe(struct platform_device *dev) trig->private_data = trig_info; trig->owner = THIS_MODULE; trig->set_trigger_state = &iio_trig_periodic_rtc_set_state; - trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL); + trig->name = kasprintf(GFP_KERNEL, "periodic%s", pdata[i]); if (trig->name == NULL) { ret = -ENOMEM; goto error_free_trig_info; } - snprintf((char *)trig->name, - IIO_TRIGGER_NAME_LENGTH, - "periodic%s", - pdata[i]); - trig_info->name = (char *)trig->name; + /* RTC access */ trig_info->rtc = rtc_class_open(pdata[i]); |