mirror of
https://github.com/torvalds/linux.git
synced 2026-09-29 04:22:03 +02:00
iio: trigger: drop generic interrupt trigger.
There is no way to bind to this driver from firmware and no explicit platform device creation calls exist in mainline. As such it is dead code. So drop it rather than potentially wasting time modernizing it (see #1) Link: https://lore.kernel.org/all/20260511063229.1433-1-sozdayvek@gmail.com/ #1 Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
32a5c04d45
commit
db95bd7933
|
|
@ -16,15 +16,6 @@ config IIO_HRTIMER_TRIGGER
|
|||
To compile this driver as a module, choose M here: the
|
||||
module will be called iio-trig-hrtimer.
|
||||
|
||||
config IIO_INTERRUPT_TRIGGER
|
||||
tristate "Generic interrupt trigger"
|
||||
help
|
||||
Provides support for using an interrupt of any type as an IIO
|
||||
trigger. This may be provided by a gpio driver for example.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called iio-trig-interrupt.
|
||||
|
||||
config IIO_STM32_LPTIMER_TRIGGER
|
||||
tristate "STM32 Low-Power Timer Trigger"
|
||||
depends on MFD_STM32_LPTIMER || COMPILE_TEST
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
# When adding new entries keep the list in alphabetical order
|
||||
|
||||
obj-$(CONFIG_IIO_HRTIMER_TRIGGER) += iio-trig-hrtimer.o
|
||||
obj-$(CONFIG_IIO_INTERRUPT_TRIGGER) += iio-trig-interrupt.o
|
||||
obj-$(CONFIG_IIO_STM32_LPTIMER_TRIGGER) += stm32-lptimer-trigger.o
|
||||
obj-$(CONFIG_IIO_STM32_TIMER_TRIGGER) += stm32-timer-trigger.o
|
||||
obj-$(CONFIG_IIO_SYSFS_TRIGGER) += iio-trig-sysfs.o
|
||||
|
|
|
|||
|
|
@ -1,109 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Industrial I/O - generic interrupt based trigger support
|
||||
*
|
||||
* Copyright (c) 2008-2013 Jonathan Cameron
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include <linux/iio/iio.h>
|
||||
#include <linux/iio/trigger.h>
|
||||
|
||||
|
||||
struct iio_interrupt_trigger_info {
|
||||
unsigned int irq;
|
||||
};
|
||||
|
||||
static irqreturn_t iio_interrupt_trigger_poll(int irq, void *private)
|
||||
{
|
||||
iio_trigger_poll(private);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static int iio_interrupt_trigger_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct iio_interrupt_trigger_info *trig_info;
|
||||
struct iio_trigger *trig;
|
||||
unsigned long irqflags;
|
||||
struct resource *irq_res;
|
||||
int irq, ret = 0;
|
||||
|
||||
irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
|
||||
|
||||
if (irq_res == NULL)
|
||||
return -ENODEV;
|
||||
|
||||
irqflags = (irq_res->flags & IRQF_TRIGGER_MASK) | IRQF_SHARED;
|
||||
|
||||
irq = irq_res->start;
|
||||
|
||||
trig = iio_trigger_alloc(NULL, "irqtrig%d", irq);
|
||||
if (!trig) {
|
||||
ret = -ENOMEM;
|
||||
goto error_ret;
|
||||
}
|
||||
|
||||
trig_info = kzalloc_obj(*trig_info);
|
||||
if (!trig_info) {
|
||||
ret = -ENOMEM;
|
||||
goto error_free_trigger;
|
||||
}
|
||||
iio_trigger_set_drvdata(trig, trig_info);
|
||||
trig_info->irq = irq;
|
||||
ret = request_irq(irq, iio_interrupt_trigger_poll,
|
||||
irqflags, trig->name, trig);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev,
|
||||
"request IRQ-%d failed", irq);
|
||||
goto error_free_trig_info;
|
||||
}
|
||||
|
||||
ret = iio_trigger_register(trig);
|
||||
if (ret)
|
||||
goto error_release_irq;
|
||||
platform_set_drvdata(pdev, trig);
|
||||
|
||||
return 0;
|
||||
|
||||
/* First clean up the partly allocated trigger */
|
||||
error_release_irq:
|
||||
free_irq(irq, trig);
|
||||
error_free_trig_info:
|
||||
kfree(trig_info);
|
||||
error_free_trigger:
|
||||
iio_trigger_free(trig);
|
||||
error_ret:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void iio_interrupt_trigger_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct iio_trigger *trig;
|
||||
struct iio_interrupt_trigger_info *trig_info;
|
||||
|
||||
trig = platform_get_drvdata(pdev);
|
||||
trig_info = iio_trigger_get_drvdata(trig);
|
||||
iio_trigger_unregister(trig);
|
||||
free_irq(trig_info->irq, trig);
|
||||
kfree(trig_info);
|
||||
iio_trigger_free(trig);
|
||||
}
|
||||
|
||||
static struct platform_driver iio_interrupt_trigger_driver = {
|
||||
.probe = iio_interrupt_trigger_probe,
|
||||
.remove = iio_interrupt_trigger_remove,
|
||||
.driver = {
|
||||
.name = "iio_interrupt_trigger",
|
||||
},
|
||||
};
|
||||
|
||||
module_platform_driver(iio_interrupt_trigger_driver);
|
||||
|
||||
MODULE_AUTHOR("Jonathan Cameron <jic23@kernel.org>");
|
||||
MODULE_DESCRIPTION("Interrupt trigger for the iio subsystem");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
Loading…
Reference in New Issue
Block a user