Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

iio: light: si1145: Switch to sparse friendly iio_device_claim/release_direct()

These new functions allow sparse to find failures to release
direct mode reducing chances of bugs over the claim_direct_mode()
functions that are deprecated.

Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250309170633.1347476-14-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

+11 -14
+11 -14
drivers/iio/light/si1145.c
··· 633 633 case IIO_VOLTAGE: 634 634 case IIO_TEMP: 635 635 case IIO_UVINDEX: 636 - ret = iio_device_claim_direct_mode(indio_dev); 637 - if (ret) 638 - return ret; 636 + if (!iio_device_claim_direct(indio_dev)) 637 + return -EBUSY; 639 638 ret = si1145_measure(indio_dev, chan); 640 - iio_device_release_direct_mode(indio_dev); 639 + iio_device_release_direct(indio_dev); 641 640 642 641 if (ret < 0) 643 642 return ret; ··· 749 750 return -EINVAL; 750 751 } 751 752 752 - ret = iio_device_claim_direct_mode(indio_dev); 753 - if (ret) 754 - return ret; 753 + if (!iio_device_claim_direct(indio_dev)) 754 + return -EBUSY; 755 755 756 756 ret = si1145_param_set(data, reg1, val); 757 757 if (ret < 0) { 758 - iio_device_release_direct_mode(indio_dev); 758 + iio_device_release_direct(indio_dev); 759 759 return ret; 760 760 } 761 761 /* Set recovery period to one's complement of gain */ 762 762 ret = si1145_param_set(data, reg2, (~val & 0x07) << 4); 763 - iio_device_release_direct_mode(indio_dev); 763 + iio_device_release_direct(indio_dev); 764 764 return ret; 765 765 case IIO_CHAN_INFO_RAW: 766 766 if (chan->type != IIO_CURRENT) ··· 771 773 reg1 = SI1145_PS_LED_REG(chan->channel); 772 774 shift = SI1145_PS_LED_SHIFT(chan->channel); 773 775 774 - ret = iio_device_claim_direct_mode(indio_dev); 775 - if (ret) 776 - return ret; 776 + if (!iio_device_claim_direct(indio_dev)) 777 + return -EBUSY; 777 778 778 779 ret = i2c_smbus_read_byte_data(data->client, reg1); 779 780 if (ret < 0) { 780 - iio_device_release_direct_mode(indio_dev); 781 + iio_device_release_direct(indio_dev); 781 782 return ret; 782 783 } 783 784 ret = i2c_smbus_write_byte_data(data->client, reg1, 784 785 (ret & ~(0x0f << shift)) | 785 786 ((val & 0x0f) << shift)); 786 - iio_device_release_direct_mode(indio_dev); 787 + iio_device_release_direct(indio_dev); 787 788 return ret; 788 789 case IIO_CHAN_INFO_SAMP_FREQ: 789 790 return si1145_store_samp_freq(data, val);