Re: [PATCH v2 07/16] iio: adc: sun4i-gpadc-iio: rework: support nvmem calibration data
From: Philipp Rossak <hidden>
Date: 2018-02-02 15:25:00
Also in:
linux-arm-kernel, linux-iio, lkml
quoted
quoted
quoted
/* prevents concurrent reads of temperature and ADC */ struct mutex mutex; struct thermal_zone_device *tzd;@@ -561,6 +569,9 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev, struct resource *mem; void __iomem *base; int ret; + struct nvmem_cell *cell; + ssize_t cell_size; + u64 *cell_data; info->data = of_device_get_match_data(&pdev->dev); if (!info->data)@@ -575,6 +586,39 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev, if (IS_ERR(base)) return PTR_ERR(base); + info->has_calibration_data[0] = false; + info->has_calibration_data[1] = false; + + if (!info->data->supports_nvmem) + goto no_nvmem; + + cell = nvmem_cell_get(&pdev->dev, "calibration"); + if (IS_ERR(cell)) { + if (PTR_ERR(cell) == -EPROBE_DEFER) + return PTR_ERR(cell); + goto no_nvmem;goto considered evil ? :)this was a suggestion from Jonatan in version one, to make the code better readable.Isn't if (info->data->supports_nvmem && IS_ERR(cell = nvmem_cell_get())) pretty much the same thing? Maxime
I would say : if (info->data->supports_nvmem && !IS_ERR(cell = nvmem_cell_get())) is the same. This would require an else if statement like this: else if (info->data->supports_nvmem && PTR_ERR(cell) == -EPROBE_DEFER) return PTR_ERR(cell); to avoid errors if the thermal sensor is probed before the sid driver. Philipp -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html