// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright ( C ) 2015 Cogent Embedded , Inc .
*/
#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/module.h>
#include <linux/iio/iio.h>
#include <linux/iio/triggered_event.h>
#include <linux/iio/trigger_consumer.h>
/**
* iio_triggered_event_setup ( ) - Setup pollfunc_event for triggered event
* @ indio_dev : IIO device structure
* @ h : Function which will be used as pollfunc_event top half
* @ thread : Function which will be used as pollfunc_event bottom half
*
* This function combines some common tasks which will normally be performed
* when setting up a triggered event . It will allocate the pollfunc_event and
* set mode to use it for triggered event .
*
* Before calling this function the indio_dev structure should already be
* completely initialized , but not yet registered . In practice this means that
* this function should be called right before iio_device_register ( ) .
*
* To free the resources allocated by this function call
* iio_triggered_event_cleanup ( ) .
*/
int iio_triggered_event_setup(struct iio_dev *indio_dev,
irqreturn_t (*h)(int irq, void *p),
irqreturn_t (*thread)(int irq, void *p))
{
indio_dev->pollfunc_event = iio_alloc_pollfunc(h,
thread,
IRQF_ONESHOT,
indio_dev,
"%s_consumer%d" ,
indio_dev->name,
iio_device_id(indio_dev));
if (indio_dev->pollfunc_event == NULL)
return -ENOMEM;
/* Flag that events polling is possible */
indio_dev->modes |= INDIO_EVENT_TRIGGERED;
return 0 ;
}
EXPORT_SYMBOL(iio_triggered_event_setup);
/**
* iio_triggered_event_cleanup ( ) - Free resources allocated by iio_triggered_event_setup ( )
* @ indio_dev : IIO device structure
*/
void iio_triggered_event_cleanup(struct iio_dev *indio_dev)
{
indio_dev->modes &= ~INDIO_EVENT_TRIGGERED;
iio_dealloc_pollfunc(indio_dev->pollfunc_event);
}
EXPORT_SYMBOL(iio_triggered_event_cleanup);
MODULE_AUTHOR("Vladimir Barinov" );
MODULE_DESCRIPTION("IIO helper functions for setting up triggered events" );
MODULE_LICENSE("GPL" );
Messung V0.5 in Prozent C=93 H=100 G=96
¤ Dauer der Verarbeitung: 0.23 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland