From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Michael Nosthoff <committed@heine.so>,
Stable@vger.kernel.org,
Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: [PATCH 4.16 25/47] iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ
Date: Mon, 4 Jun 2018 08:58:37 +0200 [thread overview]
Message-ID: <20180604065550.543342991@linuxfoundation.org> (raw)
In-Reply-To: <20180604065549.468488465@linuxfoundation.org>
4.16-stable review patch. If anyone has any objections, please let me know.
------------------
From: Michael Nosthoff <committed@heine.so>
commit 490fba90a90eb7b741f57fefd2bcf2c1e11eb471 upstream.
This commit is a follow-up to changes made to ad_sigma_delta.h
in staging: iio: ad7192: implement IIO_CHAN_INFO_SAMP_FREQ
which broke ad7793 as it was not altered to match those changes.
This driver predates the availability of IIO_CHAN_INFO_SAMP_FREQ
attribute wherein usage has some advantages like it can be accessed by
in-kernel consumers as well as reduces the code size.
Therefore, use IIO_CHAN_INFO_SAMP_FREQ to implement the
sampling_frequency attribute instead of using IIO_DEV_ATTR_SAMP_FREQ()
macro.
Move code from the functions associated with IIO_DEV_ATTR_SAMP_FREQ()
into respective read and write hooks with the mask set to
IIO_CHAN_INFO_SAMP_FREQ.
Fixes: a13e831fcaa7 ("staging: iio: ad7192: implement IIO_CHAN_INFO_SAMP_FREQ")
Signed-off-by: Michael Nosthoff <committed@heine.so>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iio/adc/ad7793.c | 75 +++++++++++++++--------------------------------
1 file changed, 24 insertions(+), 51 deletions(-)
--- a/drivers/iio/adc/ad7793.c
+++ b/drivers/iio/adc/ad7793.c
@@ -348,55 +348,6 @@ static const u16 ad7793_sample_freq_avai
static const u16 ad7797_sample_freq_avail[16] = {0, 0, 0, 123, 62, 50, 0,
33, 0, 17, 16, 12, 10, 8, 6, 4};
-static ssize_t ad7793_read_frequency(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct iio_dev *indio_dev = dev_to_iio_dev(dev);
- struct ad7793_state *st = iio_priv(indio_dev);
-
- return sprintf(buf, "%d\n",
- st->chip_info->sample_freq_avail[AD7793_MODE_RATE(st->mode)]);
-}
-
-static ssize_t ad7793_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 ad7793_state *st = iio_priv(indio_dev);
- long lval;
- int i, ret;
-
- ret = kstrtol(buf, 10, &lval);
- if (ret)
- return ret;
-
- if (lval == 0)
- return -EINVAL;
-
- for (i = 0; i < 16; i++)
- if (lval == st->chip_info->sample_freq_avail[i])
- break;
- if (i == 16)
- return -EINVAL;
-
- ret = iio_device_claim_direct_mode(indio_dev);
- if (ret)
- return ret;
- st->mode &= ~AD7793_MODE_RATE(-1);
- st->mode |= AD7793_MODE_RATE(i);
- ad_sd_write_reg(&st->sd, AD7793_REG_MODE, sizeof(st->mode), st->mode);
- iio_device_release_direct_mode(indio_dev);
-
- return len;
-}
-
-static IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO,
- ad7793_read_frequency,
- ad7793_write_frequency);
-
static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(
"470 242 123 62 50 39 33 19 17 16 12 10 8 6 4");
@@ -424,7 +375,6 @@ static IIO_DEVICE_ATTR_NAMED(in_m_in_sca
ad7793_show_scale_available, NULL, 0);
static struct attribute *ad7793_attributes[] = {
- &iio_dev_attr_sampling_frequency.dev_attr.attr,
&iio_const_attr_sampling_frequency_available.dev_attr.attr,
&iio_dev_attr_in_m_in_scale_available.dev_attr.attr,
NULL
@@ -435,7 +385,6 @@ static const struct attribute_group ad77
};
static struct attribute *ad7797_attributes[] = {
- &iio_dev_attr_sampling_frequency.dev_attr.attr,
&iio_const_attr_sampling_frequency_available_ad7797.dev_attr.attr,
NULL
};
@@ -505,6 +454,10 @@ static int ad7793_read_raw(struct iio_de
*val -= offset;
}
return IIO_VAL_INT;
+ case IIO_CHAN_INFO_SAMP_FREQ:
+ *val = st->chip_info
+ ->sample_freq_avail[AD7793_MODE_RATE(st->mode)];
+ return IIO_VAL_INT;
}
return -EINVAL;
}
@@ -542,6 +495,26 @@ static int ad7793_write_raw(struct iio_d
break;
}
break;
+ case IIO_CHAN_INFO_SAMP_FREQ:
+ if (!val) {
+ ret = -EINVAL;
+ break;
+ }
+
+ for (i = 0; i < 16; i++)
+ if (val == st->chip_info->sample_freq_avail[i])
+ break;
+
+ if (i == 16) {
+ ret = -EINVAL;
+ break;
+ }
+
+ st->mode &= ~AD7793_MODE_RATE(-1);
+ st->mode |= AD7793_MODE_RATE(i);
+ ad_sd_write_reg(&st->sd, AD7793_REG_MODE, sizeof(st->mode),
+ st->mode);
+ break;
default:
ret = -EINVAL;
}
next prev parent reply other threads:[~2018-06-04 7:05 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-04 6:58 [PATCH 4.16 00/47] 4.16.14-stable review Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 01/47] objtool: Support GCC 8s cold subfunctions Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 02/47] objtool: Support GCC 8 switch tables Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 03/47] objtool: Detect RIP-relative switch table references Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 04/47] objtool: Detect RIP-relative switch table references, part 2 Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 05/47] objtool: Fix "noreturn" detection for recursive sibling calls Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 06/47] x86/mce/AMD: Carve out SMCA get_block_address() code Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 07/47] x86/MCE/AMD: Cache SMCA MISC block addresses Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 08/47] drm/vmwgfx: Use kasprintf Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 09/47] drm/vmwgfx: Fix host logging / guestinfo reading error paths Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 10/47] Revert "pinctrl: msm: Use dynamic GPIO numbering" Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 11/47] xfs: convert XFS_AGFL_SIZE to a helper function Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 12/47] xfs: detect agfl count corruption and reset agfl Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 13/47] Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 14/47] Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints " Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 15/47] Input: synaptics - add Intertouch support on X1 Carbon 6th and X280 Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 16/47] Input: synaptics - add Lenovo 80 series ids to SMBus Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 17/47] Input: elan_i2c_smbus - fix corrupted stack Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 18/47] tracing: Fix crash when freeing instances with event triggers Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 19/47] tracing: Make the snapshot trigger work with instances Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 20/47] nvme: fix extended data LBA supported setting Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 21/47] selinux: KASAN: slab-out-of-bounds in xattr_getsecurity Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 22/47] cfg80211: further limit wiphy names to 64 bytes Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 23/47] drm/amd/powerplay: Fix enum mismatch Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 24/47] rtlwifi: rtl8192cu: Remove variable self-assignment in rf.c Greg Kroah-Hartman
2018-06-04 6:58 ` Greg Kroah-Hartman [this message]
2018-06-04 6:58 ` [PATCH 4.16 26/47] iio: hid-sensor-trigger: Fix sometimes not powering up the sensor after resume Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 27/47] iio:buffer: make length types match kfifo types Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 28/47] iio:kfifo_buf: check for uint overflow Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 29/47] iio: adc: stm32-dfsdm: fix successive oversampling settings Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 30/47] iio: adc: stm32-dfsdm: fix sample rate for div2 spi clock Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 31/47] iio: adc: at91-sama5d2_adc: fix channel configuration for differential channels Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 32/47] iio: adc: select buffer for at91-sama5d2_adc Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 33/47] MIPS: lantiq: gphy: Drop reboot/remove reset asserts Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 34/47] MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 35/47] MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 36/47] scsi: scsi_transport_srp: Fix shost to rport translation Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 37/47] stm class: Use vmalloc for the master map Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 38/47] hwtracing: stm: fix build error on some arches Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 39/47] IB/core: Fix error code for invalid GID entry Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 40/47] mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty() Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 41/47] Revert "rt2800: use TXOP_BACKOFF for probe frames" Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 42/47] intel_th: Use correct device when freeing buffers Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 46/47] fix io_destroy()/aio_complete() race Greg Kroah-Hartman
2018-06-04 6:58 ` [PATCH 4.16 47/47] mm: fix the NULL mapping case in __isolate_lru_page() Greg Kroah-Hartman
2018-06-04 13:20 ` [PATCH 4.16 00/47] 4.16.14-stable review Guenter Roeck
2018-06-05 8:15 ` Greg Kroah-Hartman
2018-06-04 19:47 ` Shuah Khan
2018-06-05 8:15 ` Greg Kroah-Hartman
2018-06-05 6:47 ` Naresh Kamboju
2018-06-05 8:28 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180604065550.543342991@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=committed@heine.so \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).