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

iio: adc: spear_adc: Use dev_err_probe()

Use the dev_err_probe() helper to simplify error handling during probe.
This also handle scenario, when EDEFER is returned and useless error
is printed.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230826062733.3714169-3-ruanjinjie@huawei.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Jinjie Ruan and committed by
Jonathan Cameron
b564b99d 3878ae2a

+11 -16
+11 -16
drivers/iio/adc/spear_adc.c
··· 274 274 int irq; 275 275 276 276 indio_dev = devm_iio_device_alloc(dev, sizeof(struct spear_adc_state)); 277 - if (!indio_dev) { 278 - dev_err(dev, "failed allocating iio device\n"); 279 - return -ENOMEM; 280 - } 277 + if (!indio_dev) 278 + return dev_err_probe(dev, -ENOMEM, 279 + "failed allocating iio device\n"); 281 280 282 281 st = iio_priv(indio_dev); 283 282 ··· 297 298 (struct adc_regs_spear3xx __iomem *)st->adc_base_spear6xx; 298 299 299 300 st->clk = devm_clk_get_enabled(dev, NULL); 300 - if (IS_ERR(st->clk)) { 301 - dev_err(dev, "failed enabling clock\n"); 302 - return PTR_ERR(st->clk); 303 - } 301 + if (IS_ERR(st->clk)) 302 + return dev_err_probe(dev, PTR_ERR(st->clk), 303 + "failed enabling clock\n"); 304 304 305 305 irq = platform_get_irq(pdev, 0); 306 306 if (irq < 0) ··· 307 309 308 310 ret = devm_request_irq(dev, irq, spear_adc_isr, 0, SPEAR_ADC_MOD_NAME, 309 311 st); 310 - if (ret < 0) { 311 - dev_err(dev, "failed requesting interrupt\n"); 312 - return ret; 313 - } 312 + if (ret < 0) 313 + return dev_err_probe(dev, ret, "failed requesting interrupt\n"); 314 314 315 315 if (of_property_read_u32(np, "sampling-frequency", 316 - &st->sampling_freq)) { 317 - dev_err(dev, "sampling-frequency missing in DT\n"); 318 - return -EINVAL; 319 - } 316 + &st->sampling_freq)) 317 + return dev_err_probe(dev, -EINVAL, 318 + "sampling-frequency missing in DT\n"); 320 319 321 320 /* 322 321 * Optional avg_samples defaults to 0, resulting in single data