]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/trigger/iio-trig-bfin-timer.c
staging:iio:trigger handle name attr in core, remove old alloc and register any contr...
[karo-tx-linux.git] / drivers / staging / iio / trigger / iio-trig-bfin-timer.c
index 583bef0936e8fb3c028d692e00fa6c1b58b3d6a4..4f1729565582f3853efade06cdf024ad5eed06da 100644 (file)
@@ -106,11 +106,9 @@ static ssize_t iio_bfin_tmr_frequency_show(struct device *dev,
 
 static DEVICE_ATTR(frequency, S_IRUGO | S_IWUSR, iio_bfin_tmr_frequency_show,
                   iio_bfin_tmr_frequency_store);
-static IIO_TRIGGER_NAME_ATTR;
 
 static struct attribute *iio_bfin_tmr_trigger_attrs[] = {
        &dev_attr_frequency.attr,
-       &dev_attr_name.attr,
        NULL,
 };
 
@@ -118,6 +116,11 @@ static const struct attribute_group iio_bfin_tmr_trigger_attr_group = {
        .attrs = iio_bfin_tmr_trigger_attrs,
 };
 
+static const struct attribute_group *iio_bfin_tmr_trigger_attr_groups[] = {
+       &iio_bfin_tmr_trigger_attr_group,
+       NULL
+};
+
 
 static irqreturn_t iio_bfin_tmr_trigger_isr(int irq, void *devid)
 {
@@ -165,24 +168,18 @@ static int __devinit iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
        st->timer_num = ret;
        st->t = &iio_bfin_timer_code[st->timer_num];
 
-       st->trig = iio_allocate_trigger();
+       st->trig = iio_allocate_trigger("bfintmr%d", st->timer_num);
        if (!st->trig) {
                ret = -ENOMEM;
                goto out1;
        }
 
        st->trig->private_data = st;
-       st->trig->control_attrs = &iio_bfin_tmr_trigger_attr_group;
        st->trig->owner = THIS_MODULE;
-       st->trig->name = kasprintf(GFP_KERNEL, "bfintmr%d", st->timer_num);
-       if (st->trig->name == NULL) {
-               ret = -ENOMEM;
-               goto out2;
-       }
-
+       st->trig->dev.groups = iio_bfin_tmr_trigger_attr_groups;
        ret = iio_trigger_register(st->trig);
        if (ret)
-               goto out3;
+               goto out2;
 
        ret = request_irq(st->irq, iio_bfin_tmr_trigger_isr,
                          0, st->trig->name, st);
@@ -201,8 +198,6 @@ static int __devinit iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
        return 0;
 out4:
        iio_trigger_unregister(st->trig);
-out3:
-       kfree(st->trig->name);
 out2:
        iio_put_trigger(st->trig);
 out1:
@@ -218,7 +213,6 @@ static int __devexit iio_bfin_tmr_trigger_remove(struct platform_device *pdev)
        disable_gptimers(st->t->bit);
        free_irq(st->irq, st);
        iio_trigger_unregister(st->trig);
-       kfree(st->trig->name);
        iio_put_trigger(st->trig);
        kfree(st);