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

iio: adc: at91-sama5d2: 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: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Link: https://patch.msgid.link/20250217141630.897334-23-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

+12 -16
+12 -16
drivers/iio/adc/at91-sama5d2_adc.c
··· 1914 1914 1915 1915 switch (mask) { 1916 1916 case IIO_CHAN_INFO_RAW: 1917 - ret = iio_device_claim_direct_mode(indio_dev); 1918 - if (ret) 1919 - return ret; 1917 + if (!iio_device_claim_direct(indio_dev)) 1918 + return -EBUSY; 1920 1919 1921 1920 ret = at91_adc_read_info_locked(indio_dev, chan, val); 1922 - iio_device_release_direct_mode(indio_dev); 1921 + iio_device_release_direct(indio_dev); 1923 1922 return ret; 1924 1923 1925 1924 case IIO_CHAN_INFO_SCALE: ··· 1931 1932 case IIO_CHAN_INFO_PROCESSED: 1932 1933 if (chan->type != IIO_TEMP) 1933 1934 return -EINVAL; 1934 - ret = iio_device_claim_direct_mode(indio_dev); 1935 - if (ret) 1936 - return ret; 1935 + if (!iio_device_claim_direct(indio_dev)) 1936 + return -EBUSY; 1937 1937 1938 1938 ret = at91_adc_read_temp(indio_dev, chan, val); 1939 - iio_device_release_direct_mode(indio_dev); 1939 + iio_device_release_direct(indio_dev); 1940 1940 1941 1941 return ret; 1942 1942 ··· 1965 1967 if (val == st->oversampling_ratio) 1966 1968 return 0; 1967 1969 1968 - ret = iio_device_claim_direct_mode(indio_dev); 1969 - if (ret) 1970 - return ret; 1970 + if (!iio_device_claim_direct(indio_dev)) 1971 + return -EBUSY; 1971 1972 mutex_lock(&st->lock); 1972 1973 /* update ratio */ 1973 1974 ret = at91_adc_config_emr(st, val, 0); 1974 1975 mutex_unlock(&st->lock); 1975 - iio_device_release_direct_mode(indio_dev); 1976 + iio_device_release_direct(indio_dev); 1976 1977 return ret; 1977 1978 case IIO_CHAN_INFO_SAMP_FREQ: 1978 1979 if (val < st->soc_info.min_sample_rate || 1979 1980 val > st->soc_info.max_sample_rate) 1980 1981 return -EINVAL; 1981 1982 1982 - ret = iio_device_claim_direct_mode(indio_dev); 1983 - if (ret) 1984 - return ret; 1983 + if (!iio_device_claim_direct(indio_dev)) 1984 + return -EBUSY; 1985 1985 mutex_lock(&st->lock); 1986 1986 at91_adc_setup_samp_freq(indio_dev, val, 1987 1987 st->soc_info.startup_time, 0); 1988 1988 mutex_unlock(&st->lock); 1989 - iio_device_release_direct_mode(indio_dev); 1989 + iio_device_release_direct(indio_dev); 1990 1990 return 0; 1991 1991 default: 1992 1992 return -EINVAL;