This simplifies the adi,spi-mode property parsing by using
device_property_match_property_string() instead of two separate
functions. Also, the error return value is now more informative
in cases where there was a problem parsing the property.
Suggested-by: Andy Shevchenko <[email protected]>
Signed-off-by: David Lechner <[email protected]>
---
Changes in v3:
- Fix "a problem" in commit message.
- Remove nested if to save a few lines.
- Link to v2: https://lore.kernel.org/r/[email protected]
Changes in v2:
- Reorder error path to avoid else statement
- Link to v1: https://lore.kernel.org/r/[email protected]
---
drivers/iio/adc/ad7944.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/drivers/iio/adc/ad7944.c b/drivers/iio/adc/ad7944.c
index d5ec6b5a41c7..9aa3e98cd75c 100644
--- a/drivers/iio/adc/ad7944.c
+++ b/drivers/iio/adc/ad7944.c
@@ -366,7 +366,6 @@ static int ad7944_probe(struct spi_device *spi)
struct ad7944_adc *adc;
bool have_refin = false;
struct regulator *ref;
- const char *str_val;
int ret;
indio_dev = devm_iio_device_alloc(dev, sizeof(*adc));
@@ -382,17 +381,17 @@ static int ad7944_probe(struct spi_device *spi)
adc->timing_spec = chip_info->timing_spec;
- if (device_property_read_string(dev, "adi,spi-mode", &str_val) == 0) {
- ret = sysfs_match_string(ad7944_spi_modes, str_val);
- if (ret < 0)
- return dev_err_probe(dev, -EINVAL,
- "unsupported adi,spi-mode\n");
-
- adc->spi_mode = ret;
- } else {
- /* absence of adi,spi-mode property means default mode */
+ ret = device_property_match_property_string(dev, "adi,spi-mode",
+ ad7944_spi_modes,
+ ARRAY_SIZE(ad7944_spi_modes));
+ /* absence of adi,spi-mode property means default mode */
+ if (ret == -EINVAL)
adc->spi_mode = AD7944_SPI_MODE_DEFAULT;
- }
+ else if (ret < 0)
+ return dev_err_probe(dev, ret,
+ "getting adi,spi-mode property failed\n");
+ else
+ adc->spi_mode = ret;
if (adc->spi_mode == AD7944_SPI_MODE_CHAIN)
return dev_err_probe(dev, -EINVAL,
---
base-commit: 1446d8ef48196409f811c25071b2cc510a49fc60
change-id: 20240318-ad7944-cleanups-9f95a7c598b6
On Mon, 25 Mar 2024 14:40:36 -0500
David Lechner <[email protected]> wrote:
> This simplifies the adi,spi-mode property parsing by using
> device_property_match_property_string() instead of two separate
> functions. Also, the error return value is now more informative
> in cases where there was a problem parsing the property.
>
> Suggested-by: Andy Shevchenko <[email protected]>
> Signed-off-by: David Lechner <[email protected]>
For this I'd already picked up part of an earlier version so hopefully
the rebase of my togreg branch needed to take this didn't cause anyone
any major problems.
Anyhow, dropped earlier version in favour of this one.
Jonathan