patch "iio: adc: ad7791: remove sample freq sysfs attributes" added to staging-testing
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: adc: ad7791: remove sample freq sysfs attributes
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-testing branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will be merged to the staging-next branch sometime soon, after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
Quoted 1 line
From
7eb6b35d93c356f1afebbfb808bc296d6351e708Mon Sep 17 00:00:00 2001
From: Alexandru Ardelean <[email protected]>
Date: Mon, 12 Mar 2018 14:06:53 +0200
Subject: iio: adc: ad7791: remove sample freq sysfs attributes
In the current state, these attributes are broken, because they are registered already, and the kernel throws a warning.
The first registration happens via the IIO_CHAN_INFO_SAMP_FREQ flag from the ad_sigma_delta driver.
In this commit these attrs are removed, and in the following the IIO_CHAN_INFO_SAMP_FREQ behavior will be implemented, which replaces these hooks.
This is done to make things a bit easier to review as there is a bit of overlap in the patch if it's done all at once.
--- drivers/iio/adc/ad7791.c | 49 ---------------------------------------- 1 file changed, 49 deletions(-)
drivers/iio/adc/ad7791.c +0 -49
@@ -244,58 +244,9 @@ static int ad7791_read_raw(struct iio_dev *indio_dev,return -EINVAL ; } -static const char *const ad7791_sample_freq_avail[] = { - [AD7791_FILTER_RATE_120 ] ="120" , - [AD7791_FILTER_RATE_100 ] ="100" , - [AD7791_FILTER_RATE_33_3 ] ="33.3" , - [AD7791_FILTER_RATE_20 ] ="20" , - [AD7791_FILTER_RATE_16_6 ] ="16.6" , - [AD7791_FILTER_RATE_16_7 ] ="16.7" , - [AD7791_FILTER_RATE_13_3 ] ="13.3" , - [AD7791_FILTER_RATE_9_5 ] ="9.5" , -}; - -static ssize_t ad7791_read_frequency (struct device *dev, -struct device_attribute *attr,char *buf) -{ -struct iio_dev *indio_dev =dev_to_iio_dev (dev); -struct ad7791_state *st =iio_priv (indio_dev); -unsigned int rate = st->filter &AD7791_FILTER_RATE_MASK ; - -return sprintf (buf,"%s\n" , ad7791_sample_freq_avail[rate]); -} - -static ssize_t ad7791_write_frequency (struct device *dev, -struct device_attribute *attr,const char *buf,size_t len) -{ -struct iio_dev *indio_dev =dev_to_iio_dev (dev); -struct ad7791_state *st =iio_priv (indio_dev); -int i, ret; - - i =sysfs_match_string (ad7791_sample_freq_avail, buf); -if (i <0 ) -return i; - - ret =iio_device_claim_direct_mode (indio_dev); -if (ret) -return ret; - st->filter &= ~AD7791_FILTER_RATE_MASK ; - st->filter |= i; -ad_sd_write_reg (&st->sd,AD7791_REG_FILTER ,sizeof (st->filter), - st->filter); -iio_device_release_direct_mode (indio_dev); - -return len; -} - -static IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO, - ad7791_read_frequency, - ad7791_write_frequency); - static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("120 100 33.3 20 16.7 16.6 13.3 9.5");static struct attribute *ad7791_attributes[] = { - &iio_dev_attr_sampling_frequency.dev_attr.attr, &iio_const_attr_sampling_frequency_available.dev_attr.attr,NULL };
Signature · 1 line
2.17.0