Commit 43ece27e authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Jonathan Cameron

iio:trigger: Add helper function to verify that a trigger belongs to the same device

Some triggers can only be attached to the IIO device that corresponds to
the same physical device. Currently each driver that requires this
implements its own trigger validation function.

Introduce a new helper function called iio_trigger_validate_own_device()
that can be used to do this check. Having a common implementation avoids
code duplication and unnecessary boiler-plate code.
Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 38e442fc
...@@ -717,6 +717,27 @@ bool iio_trigger_using_own(struct iio_dev *indio_dev) ...@@ -717,6 +717,27 @@ bool iio_trigger_using_own(struct iio_dev *indio_dev)
} }
EXPORT_SYMBOL(iio_trigger_using_own); EXPORT_SYMBOL(iio_trigger_using_own);
/**
* iio_trigger_validate_own_device - Check if a trigger and IIO device belong to
* the same device
* @trig: The IIO trigger to check
* @indio_dev: the IIO device to check
*
* This function can be used as the validate_device callback for triggers that
* can only be attached to their own device.
*
* Return: 0 if both the trigger and the IIO device belong to the same
* device, -EINVAL otherwise.
*/
int iio_trigger_validate_own_device(struct iio_trigger *trig,
struct iio_dev *indio_dev)
{
if (indio_dev->dev.parent != trig->dev.parent)
return -EINVAL;
return 0;
}
EXPORT_SYMBOL(iio_trigger_validate_own_device);
void iio_device_register_trigger_consumer(struct iio_dev *indio_dev) void iio_device_register_trigger_consumer(struct iio_dev *indio_dev)
{ {
indio_dev->groups[indio_dev->groupcounter++] = indio_dev->groups[indio_dev->groupcounter++] =
......
...@@ -170,6 +170,8 @@ void iio_trigger_free(struct iio_trigger *trig); ...@@ -170,6 +170,8 @@ void iio_trigger_free(struct iio_trigger *trig);
*/ */
bool iio_trigger_using_own(struct iio_dev *indio_dev); bool iio_trigger_using_own(struct iio_dev *indio_dev);
int iio_trigger_validate_own_device(struct iio_trigger *trig,
struct iio_dev *indio_dev);
#else #else
struct iio_trigger; struct iio_trigger;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment