]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/trigger/iio-trig-gpio.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-gpio.c
index 2ce95e964cfdbbdfe4d4fa9fe37d820f6fe1689b..b188635c34600464b362ca2ea804a0286090925c 100644 (file)
@@ -47,17 +47,6 @@ static irqreturn_t iio_gpio_trigger_poll(int irq, void *private)
        return IRQ_HANDLED;
 }
 
-static IIO_TRIGGER_NAME_ATTR;
-
-static struct attribute *iio_gpio_trigger_attrs[] = {
-       &dev_attr_name.attr,
-       NULL,
-};
-
-static const struct attribute_group iio_gpio_trigger_attr_group = {
-       .attrs = iio_gpio_trigger_attrs,
-};
-
 static int iio_gpio_trigger_probe(struct platform_device *pdev)
 {
        struct iio_gpio_trigger_info *trig_info;
@@ -79,7 +68,7 @@ static int iio_gpio_trigger_probe(struct platform_device *pdev)
 
                for (irq = irq_res->start; irq <= irq_res->end; irq++) {
 
-                       trig = iio_allocate_trigger();
+                       trig = iio_allocate_trigger("irqtrig%d", irq);
                        if (!trig) {
                                ret = -ENOMEM;
                                goto error_free_completed_registrations;
@@ -90,21 +79,15 @@ static int iio_gpio_trigger_probe(struct platform_device *pdev)
                                ret = -ENOMEM;
                                goto error_put_trigger;
                        }
-                       trig->control_attrs = &iio_gpio_trigger_attr_group;
                        trig->private_data = trig_info;
                        trig_info->irq = irq;
                        trig->owner = THIS_MODULE;
-                       trig->name = kasprintf(GFP_KERNEL, "irqtrig%d", irq);
-                       if (trig->name == NULL) {
-                               ret = -ENOMEM;
-                               goto error_free_trig_info;
-                       }
                        ret = request_irq(irq, iio_gpio_trigger_poll,
                                          irqflags, trig->name, trig);
                        if (ret) {
                                dev_err(&pdev->dev,
                                        "request IRQ-%d failed", irq);
-                               goto error_free_name;
+                               goto error_free_trig_info;
                        }
 
                        ret = iio_trigger_register(trig);
@@ -124,8 +107,6 @@ static int iio_gpio_trigger_probe(struct platform_device *pdev)
 /* First clean up the partly allocated trigger */
 error_release_irq:
        free_irq(irq, trig);
-error_free_name:
-       kfree(trig->name);
 error_free_trig_info:
        kfree(trig_info);
 error_put_trigger:
@@ -138,7 +119,6 @@ error_free_completed_registrations:
                                 alloc_list) {
                trig_info = trig->private_data;
                free_irq(gpio_to_irq(trig_info->irq), trig);
-               kfree(trig->name);
                kfree(trig_info);
                iio_trigger_unregister(trig);
        }
@@ -159,7 +139,6 @@ static int iio_gpio_trigger_remove(struct platform_device *pdev)
                trig_info = trig->private_data;
                iio_trigger_unregister(trig);
                free_irq(trig_info->irq, trig);
-               kfree(trig->name);
                kfree(trig_info);
                iio_put_trigger(trig);
        }