From 0eecd7e1b56c078d5f2b0b775ebeccb09c873bb8 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 22 Dec 2017 14:35:09 +0200 Subject: [PATCH 1/2] iio: ad9680: fix memset() arg order GCC caught this with: ``` drivers/iio/adc/ad9680.c:827:2: warning: 'memset' used with constant zero length parameter; this could be due to transposed parameters [-Wmemset-transposed-args] memset(&link_config, sizeof(link_config), 0x00); ``` This was with GCC 5.5.0, a custom build that I built from OpenWrt [to avoid installing one via pkg manager]. Signed-off-by: Alexandru Ardelean --- drivers/iio/adc/ad9680.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/ad9680.c b/drivers/iio/adc/ad9680.c index b49c3ff9ae7adc..d0e5d73ec2407d 100644 --- a/drivers/iio/adc/ad9680.c +++ b/drivers/iio/adc/ad9680.c @@ -824,7 +824,7 @@ static int ad9680_setup(struct spi_device *spi, bool ad9234) sfdr_optim_vals[tmp]); } - memset(&link_config, sizeof(link_config), 0x00); + memset(&link_config, 0x00, sizeof(link_config)); link_config.did = 0; link_config.bid = 1; link_config.num_lanes = 4; From 385adf5aeaa5fe761fcfbbd67a07a30ff8b415c1 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 22 Dec 2017 14:41:28 +0200 Subject: [PATCH 2/2] iio: ad9680: fix incompatible pointer for get/set callbacks Error is: ``` drivers/iio/adc/ad9680.c:503:9: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .set = ad9680_testmode_write, ^ drivers/iio/adc/ad9680.c:503:9: note: (near initialization for 'ad9680_testmode_enum.set') drivers/iio/adc/ad9680.c:504:9: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .get = ad9680_testmode_read, ``` Though, this is a trivial error [that could be downgraded to a warning], some more [pedantic] compiler options could error here [as it happened in the case above]. Signed-off-by: Alexandru Ardelean --- drivers/iio/adc/ad9680.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad9680.c b/drivers/iio/adc/ad9680.c index d0e5d73ec2407d..4d878e73e30193 100644 --- a/drivers/iio/adc/ad9680.c +++ b/drivers/iio/adc/ad9680.c @@ -464,7 +464,7 @@ static int ad9680_set_scale(struct axiadc_converter *conv, int val, int val2) return -EINVAL; } -static ssize_t ad9680_testmode_read(struct iio_dev *indio_dev, +static int ad9680_testmode_read(struct iio_dev *indio_dev, const struct iio_chan_spec *chan) { struct axiadc_converter *conv = iio_device_get_drvdata(indio_dev); @@ -472,7 +472,7 @@ static ssize_t ad9680_testmode_read(struct iio_dev *indio_dev, return conv->testmode[chan->channel]; } -static ssize_t ad9680_testmode_write(struct iio_dev *indio_dev, +static int ad9680_testmode_write(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, unsigned int item) { int ret;