From nobody Sun May 19 09:08:44 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5B6A13C66C; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; cv=none; b=Tb9/3V+v1xWEeyW8Ra1gtBIpYJoP9z/8vPGDoYIEe2hUZUQU4/U5hCm25Yv0ay6YZ0uNdQGrWMtrsWbaZvtTU8sTf7pSmtvq08Xf8voaKjQAGsRcxOoScA6E+A7PMlxs3sNULbry8WYmpi/e9hJXYxBeAn/xK3Mw7+UDSxYPvj8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; c=relaxed/simple; bh=apXmCZAAlTcv2d9FtqBi2n0toEmnnPvQSjQR+DLhq50=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=L7eMw/zQhcMTqMlZttu8jBGGAYksryIymqK/39d8j0upwBcKPZ8kbXTS6Q4hX8m1ay2ZPbZIf04QoJ1jWtOubRgaCR8BpapL/iujR+AYTqKUcCk1/0vGLszonjV65vpqxjD4692kWtSjc+XcLtYhy+Y9VrYoVzCTHbyWRXBWt40= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r67htizY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r67htizY" Received: by smtp.kernel.org (Postfix) with ESMTPS id 40F41C2BD10; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713885643; bh=apXmCZAAlTcv2d9FtqBi2n0toEmnnPvQSjQR+DLhq50=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=r67htizYN/x7WAEHKNnhnuua7N+q/qXlye9hLVC+cItyv+pb6gU/aRy9I1GgtljvV Tnbm9umHVqqBel4x6M6kuwveJIO0GYthsb3vMKLiil80NuEALD/Npo9oaIZTC2JmxH Rgp+GKMS5ZI73KLDMw0a08/jsK/XLD2T0cbDPnC9pNQJUexgZ6UUTYBQmDRSNscPSM IQHzJg+wPCuvk+OgvuUk2noLVL4eU53zn/1q6y/kwCKbh10qzOLUBarXXSAfRjG96o sxEVZ1OwTtkrR6bR7XPi3qmC134bohzvz7jOZCQU+iE3n7E1awPsGY6a/5F8KSQhe/ fq9xl0JT1Dijw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F50FC19F4E; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) From: Nuno Sa via B4 Relay Date: Tue, 23 Apr 2024 17:20:30 +0200 Subject: [PATCH v2 1/4] dev_printk: add new dev_err_probe() helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240423-dev-add_dev_errp_probe-v2-1-12f43c5d8b0d@analog.com> References: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> In-Reply-To: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> To: Petr Mladek , Andy Shevchenko , Chris Down , John Ogness , Greg Kroah-Hartman , Jonathan Cameron , Lars-Peter Clausen , Olivier Moysan , Andi Shyti , Jyoti Bhayana Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Nuno Sa X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713885641; l=1170; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=9vRT1yB7cKMgARCNN9R6YoimX7EiL0EJICliqmirgVI=; b=/OQCs5rmT3dEQ4zj8HcAF6Mlps+bwWIA1WQPIkd72RdXPAjuUXauUJKqTqgJjsdsztQe/iaVU QYcWYv80Ea1BvQ0hoiG+TYe08uVVpiyrbj5RnudcUx5EiejSrl/viaE X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-Endpoint-Received: by B4 Relay for nuno.sa@analog.com/20231116 with auth_id=100 X-Original-From: Nuno Sa Reply-To: nuno.sa@analog.com From: Nuno Sa This is similar to dev_err_probe() but for cases where an ERR_PTR() or ERR_CAST() is to be returned simplifying patterns like: dev_err_probe(dev, ret, ...); return ERR_PTR(ret) or dev_err_probe(dev, PTR_ERR(ptr), ...); return ERR_CAST(ptr) Signed-off-by: Nuno Sa --- include/linux/dev_printk.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h index ae80a303c216..b9623ec22350 100644 --- a/include/linux/dev_printk.h +++ b/include/linux/dev_printk.h @@ -277,4 +277,13 @@ do { \ =20 __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const = char *fmt, ...); =20 +/* Simple helper for dev_err_probe() when ERR_PTR() is to be returned. */ +#define dev_err_ptr_probe(dev, ___err, fmt, ...) ({ \ + ERR_PTR(dev_err_probe(dev, ___err, fmt, ##__VA_ARGS__)); \ +}) + +/* Simple helper for dev_err_probe() when ERR_CAST() is to be returned. */ +#define dev_err_cast_probe(dev, ___err_ptr, fmt, ...) ({ \ + ERR_PTR(dev_err_probe(dev, PTR_ERR(___err_ptr), fmt, ##__VA_ARGS__)); \ +}) #endif /* _DEVICE_PRINTK_H_ */ --=20 2.44.0 From nobody Sun May 19 09:08:44 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5AE413B795; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; cv=none; b=VfKp0k+xs+JMn9BU2iuibG7zfSWK88m7u25oSLDNRYTS+J+rFTioi+omDiUxoULJRujOeGW+smBZHaK1sznn3pPLr9c9XRI9V4cF+7N326RukeSCLWMeTL48GpVzCSGez5J3Wgb43iPqdPvvRgHXcvhlk2OY4RZpYOHvvtOAePk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; c=relaxed/simple; bh=rNA/byuAYaNZW1qfUHvo55LLm4xwDV6tlpdSSuq3b6A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fhA4/jluiqgGQWt5vDR6YuCL+12eBjQgYhU9bz8szFvx2Rhdzp4J6apGvTZWQu+a5s4vkp6fr/teaz/cZj4YSXmTKneyS2ceMaRfGblJEofLVET7LPgBn2857ipbf16tcDAM+Ql/noe9Hu5KzvfN4CH0XdWWEjSdJj7i72KvijU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FOf71utA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FOf71utA" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4E38EC32786; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713885643; bh=rNA/byuAYaNZW1qfUHvo55LLm4xwDV6tlpdSSuq3b6A=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=FOf71utA7YBTwga2H09HY1NEc97Jw6YJloGpkAF8MNE4DPly7nIrI36v8zbFMbodi q0Ly+V12elpm1DTeWajeWUWtHLfsbF9h0ovRBarf/RjPcZN0EBkipPm5S6nNyBma+U crncJXq6nsmLGThx6W1kh0aCa4a2+iUbS8pQkQZtjvZ1VYdBh5GaHyYb6GWNGEKfpM rQnbiCXbkWy1YVjkBCXuz58p92tg6O3wwdpV3pIPpTlbWafGZJLWTxxk7B86zS0smf av8jZJD/RiekiG45SM+2bfqP8Wz0ckMWpKk7Cfmga6wPBtxEUkSO7zMF9cNf2pk/Ey YxvifJ5B+16FA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41BE8C4345F; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) From: Nuno Sa via B4 Relay Date: Tue, 23 Apr 2024 17:20:31 +0200 Subject: [PATCH v2 2/4] iio: temperature: ltc2983: convert to dev_err_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240423-dev-add_dev_errp_probe-v2-2-12f43c5d8b0d@analog.com> References: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> In-Reply-To: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> To: Petr Mladek , Andy Shevchenko , Chris Down , John Ogness , Greg Kroah-Hartman , Jonathan Cameron , Lars-Peter Clausen , Olivier Moysan , Andi Shyti , Jyoti Bhayana Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Nuno Sa X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713885641; l=20945; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=guk0rC+mVTM2wOHSvzB/p+2SY7ysaIz35Ta8sBPANuk=; b=qHeAC+/aoxlSmcMVNcSLaPA4TSTTgytxZVnGEe9sWD0BP/HwxIpRD0JL9qwAZEk5dvB1zZkNz s74XZVKPRtkA0e3BW3dwQa3KaCH8LIS2vtOYucVist6xXs8K2ka8jF4 X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-Endpoint-Received: by B4 Relay for nuno.sa@analog.com/20231116 with auth_id=100 X-Original-From: Nuno Sa Reply-To: nuno.sa@analog.com From: Nuno Sa Use dev_err_probe() in the probe() path. While at it, made some simple improvements: * Declare a struct device *dev helper. This also makes the style more consistent (some places the helper was used and not in other places); * Explicitly included the err.h and errno.h headers; * Removed an useless else if(); * Removed some unnecessary line breaks. Signed-off-by: Nuno Sa --- drivers/iio/temperature/ltc2983.c | 282 +++++++++++++++++-----------------= ---- 1 file changed, 127 insertions(+), 155 deletions(-) diff --git a/drivers/iio/temperature/ltc2983.c b/drivers/iio/temperature/lt= c2983.c index 24d19f3c7292..941b3ab5c927 100644 --- a/drivers/iio/temperature/ltc2983.c +++ b/drivers/iio/temperature/ltc2983.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include #include @@ -432,10 +434,9 @@ __ltc2983_custom_sensor_new(struct ltc2983_data *st, c= onst struct fwnode_handle else n_entries =3D fwnode_property_count_u64(fn, propname); /* n_entries must be an even number */ - if (!n_entries || (n_entries % 2) !=3D 0) { - dev_err(dev, "Number of entries either 0 or not even\n"); - return ERR_PTR(-EINVAL); - } + if (!n_entries || (n_entries % 2) !=3D 0) + return dev_err_ptr_probe(dev, -EINVAL, + "Number of entries either 0 or not even\n"); =20 new_custom =3D devm_kzalloc(dev, sizeof(*new_custom), GFP_KERNEL); if (!new_custom) @@ -443,19 +444,17 @@ __ltc2983_custom_sensor_new(struct ltc2983_data *st, = const struct fwnode_handle =20 new_custom->size =3D n_entries * n_size; /* check Steinhart size */ - if (is_steinhart && new_custom->size !=3D LTC2983_CUSTOM_STEINHART_SIZE) { - dev_err(dev, "Steinhart sensors size(%zu) must be %u\n", new_custom->siz= e, - LTC2983_CUSTOM_STEINHART_SIZE); - return ERR_PTR(-EINVAL); - } + if (is_steinhart && new_custom->size !=3D LTC2983_CUSTOM_STEINHART_SIZE) + return dev_err_ptr_probe(dev, -EINVAL, + "Steinhart sensors size(%zu) must be %u\n", + new_custom->size, LTC2983_CUSTOM_STEINHART_SIZE); + /* Check space on the table. */ if (st->custom_table_size + new_custom->size > - (LTC2983_CUST_SENS_TBL_END_REG - - LTC2983_CUST_SENS_TBL_START_REG) + 1) { - dev_err(dev, "No space left(%d) for new custom sensor(%zu)", - st->custom_table_size, new_custom->size); - return ERR_PTR(-EINVAL); - } + (LTC2983_CUST_SENS_TBL_END_REG - LTC2983_CUST_SENS_TBL_START_REG) + 1) + return dev_err_ptr_probe(dev, -EINVAL, + "No space left(%d) for new custom sensor(%zu)", + st->custom_table_size, new_custom->size); =20 /* allocate the table */ if (is_steinhart) @@ -658,10 +657,11 @@ ltc2983_thermocouple_new(const struct fwnode_handle *= child, struct ltc2983_data const struct ltc2983_sensor *sensor) { struct ltc2983_thermocouple *thermo; + struct device *dev =3D &st->spi->dev; u32 oc_current; int ret; =20 - thermo =3D devm_kzalloc(&st->spi->dev, sizeof(*thermo), GFP_KERNEL); + thermo =3D devm_kzalloc(dev, sizeof(*thermo), GFP_KERNEL); if (!thermo) return ERR_PTR(-ENOMEM); =20 @@ -688,21 +688,19 @@ ltc2983_thermocouple_new(const struct fwnode_handle *= child, struct ltc2983_data LTC2983_THERMOCOUPLE_OC_CURR(3); break; default: - dev_err(&st->spi->dev, - "Invalid open circuit current:%u", oc_current); - return ERR_PTR(-EINVAL); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid open circuit current:%u", + oc_current); } =20 thermo->sensor_config |=3D LTC2983_THERMOCOUPLE_OC_CHECK(1); } /* validate channel index */ if (!(thermo->sensor_config & LTC2983_THERMOCOUPLE_DIFF_MASK) && - sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, - "Invalid chann:%d for differential thermocouple", - sensor->chan); - return ERR_PTR(-EINVAL); - } + sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for differential thermocouple", + sensor->chan); =20 struct fwnode_handle *ref __free(fwnode_handle) =3D fwnode_find_reference(child, "adi,cold-junction-handle", 0); @@ -710,14 +708,13 @@ ltc2983_thermocouple_new(const struct fwnode_handle *= child, struct ltc2983_data ref =3D NULL; } else { ret =3D fwnode_property_read_u32(ref, "reg", &thermo->cold_junction_chan= ); - if (ret) { + if (ret) /* * This would be catched later but we can just return * the error right away. */ - dev_err(&st->spi->dev, "Property reg must be given\n"); - return ERR_PTR(ret); - } + return dev_err_ptr_probe(dev, ret, + "Property reg must be given\n"); } =20 /* check custom sensor */ @@ -753,16 +750,14 @@ ltc2983_rtd_new(const struct fwnode_handle *child, st= ruct ltc2983_data *st, =20 struct fwnode_handle *ref __free(fwnode_handle) =3D fwnode_find_reference(child, "adi,rsense-handle", 0); - if (IS_ERR(ref)) { - dev_err(dev, "Property adi,rsense-handle missing or invalid"); - return ERR_CAST(ref); - } + if (IS_ERR(ref)) + return dev_err_cast_probe(dev, ref, + "Property adi,rsense-handle missing or invalid"); =20 ret =3D fwnode_property_read_u32(ref, "reg", &rtd->r_sense_chan); - if (ret) { - dev_err(dev, "Property reg must be given\n"); - return ERR_PTR(ret); - } + if (ret) + return dev_err_ptr_probe(dev, ret, + "Property reg must be given\n"); =20 ret =3D fwnode_property_read_u32(child, "adi,number-of-wires", &n_wires); if (!ret) { @@ -781,19 +776,19 @@ ltc2983_rtd_new(const struct fwnode_handle *child, st= ruct ltc2983_data *st, rtd->sensor_config =3D LTC2983_RTD_N_WIRES(3); break; default: - dev_err(dev, "Invalid number of wires:%u\n", n_wires); - return ERR_PTR(-EINVAL); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid number of wires:%u\n", + n_wires); } } =20 if (fwnode_property_read_bool(child, "adi,rsense-share")) { /* Current rotation is only available with rsense sharing */ if (fwnode_property_read_bool(child, "adi,current-rotate")) { - if (n_wires =3D=3D 2 || n_wires =3D=3D 3) { - dev_err(dev, - "Rotation not allowed for 2/3 Wire RTDs"); - return ERR_PTR(-EINVAL); - } + if (n_wires =3D=3D 2 || n_wires =3D=3D 3) + return dev_err_ptr_probe(dev, -EINVAL, + "Rotation not allowed for 2/3 Wire RTDs"); + rtd->sensor_config |=3D LTC2983_RTD_C_ROTATE(1); } else { rtd->sensor_config |=3D LTC2983_RTD_R_SHARE(1); @@ -816,29 +811,22 @@ ltc2983_rtd_new(const struct fwnode_handle *child, st= ruct ltc2983_data *st, =20 if (((rtd->sensor_config & LTC2983_RTD_KELVIN_R_SENSE_MASK) =3D=3D LTC2983_RTD_KELVIN_R_SENSE_MASK) && - (rtd->r_sense_chan <=3D min)) { + (rtd->r_sense_chan <=3D min)) /* kelvin rsense*/ - dev_err(dev, - "Invalid rsense chann:%d to use in kelvin rsense", - rtd->r_sense_chan); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid rsense chann:%d to use in kelvin rsense", + rtd->r_sense_chan); =20 - return ERR_PTR(-EINVAL); - } - - if (sensor->chan < min || sensor->chan > max) { - dev_err(dev, "Invalid chann:%d for the rtd config", - sensor->chan); - - return ERR_PTR(-EINVAL); - } + if (sensor->chan < min || sensor->chan > max) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for the rtd config", + sensor->chan); } else { /* same as differential case */ - if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, - "Invalid chann:%d for RTD", sensor->chan); - - return ERR_PTR(-EINVAL); - } + if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for RTD", + sensor->chan); } =20 /* check custom sensor */ @@ -886,10 +874,9 @@ ltc2983_rtd_new(const struct fwnode_handle *child, str= uct ltc2983_data *st, rtd->excitation_current =3D 0x08; break; default: - dev_err(&st->spi->dev, - "Invalid value for excitation current(%u)", - excitation_current); - return ERR_PTR(-EINVAL); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid value for excitation current(%u)", + excitation_current); } } =20 @@ -913,16 +900,14 @@ ltc2983_thermistor_new(const struct fwnode_handle *ch= ild, struct ltc2983_data *s =20 struct fwnode_handle *ref __free(fwnode_handle) =3D fwnode_find_reference(child, "adi,rsense-handle", 0); - if (IS_ERR(ref)) { - dev_err(dev, "Property adi,rsense-handle missing or invalid"); - return ERR_CAST(ref); - } + if (IS_ERR(ref)) + return dev_err_cast_probe(dev, ref, + "Property adi,rsense-handle missing or invalid"); =20 ret =3D fwnode_property_read_u32(ref, "reg", &thermistor->r_sense_chan); - if (ret) { - dev_err(dev, "rsense channel must be configured...\n"); - return ERR_PTR(ret); - } + if (ret) + return dev_err_ptr_probe(dev, ret, + "rsense channel must be configured...\n"); =20 if (fwnode_property_read_bool(child, "adi,single-ended")) { thermistor->sensor_config =3D LTC2983_THERMISTOR_SGL(1); @@ -937,12 +922,10 @@ ltc2983_thermistor_new(const struct fwnode_handle *ch= ild, struct ltc2983_data *s } /* validate channel index */ if (!(thermistor->sensor_config & LTC2983_THERMISTOR_DIFF_MASK) && - sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, - "Invalid chann:%d for differential thermistor", - sensor->chan); - return ERR_PTR(-EINVAL); - } + sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for differential thermistor", + sensor->chan); =20 /* check custom sensor */ if (sensor->type >=3D LTC2983_SENSOR_THERMISTOR_STEINHART) { @@ -981,12 +964,10 @@ ltc2983_thermistor_new(const struct fwnode_handle *ch= ild, struct ltc2983_data *s switch (excitation_current) { case 0: /* auto range */ - if (sensor->type >=3D - LTC2983_SENSOR_THERMISTOR_STEINHART) { - dev_err(&st->spi->dev, - "Auto Range not allowed for custom sensors\n"); - return ERR_PTR(-EINVAL); - } + if (sensor->type >=3D LTC2983_SENSOR_THERMISTOR_STEINHART) + return dev_err_ptr_probe(dev, -EINVAL, + "Auto Range not allowed for custom sensors\n"); + thermistor->excitation_current =3D 0x0c; break; case 250: @@ -1023,10 +1004,9 @@ ltc2983_thermistor_new(const struct fwnode_handle *c= hild, struct ltc2983_data *s thermistor->excitation_current =3D 0x0b; break; default: - dev_err(&st->spi->dev, - "Invalid value for excitation current(%u)", - excitation_current); - return ERR_PTR(-EINVAL); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid value for excitation current(%u)", + excitation_current); } } =20 @@ -1037,11 +1017,12 @@ static struct ltc2983_sensor * ltc2983_diode_new(const struct fwnode_handle *child, const struct ltc2983_= data *st, const struct ltc2983_sensor *sensor) { + struct device *dev =3D &st->spi->dev; struct ltc2983_diode *diode; u32 temp =3D 0, excitation_current =3D 0; int ret; =20 - diode =3D devm_kzalloc(&st->spi->dev, sizeof(*diode), GFP_KERNEL); + diode =3D devm_kzalloc(dev, sizeof(*diode), GFP_KERNEL); if (!diode) return ERR_PTR(-ENOMEM); =20 @@ -1056,12 +1037,11 @@ ltc2983_diode_new(const struct fwnode_handle *child= , const struct ltc2983_data * =20 /* validate channel index */ if (!(diode->sensor_config & LTC2983_DIODE_DIFF_MASK) && - sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, - "Invalid chann:%d for differential thermistor", - sensor->chan); - return ERR_PTR(-EINVAL); - } + sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for differential thermistor", + sensor->chan); + /* set common parameters */ diode->sensor.fault_handler =3D ltc2983_common_fault_handler; diode->sensor.assign_chan =3D ltc2983_diode_assign_chan; @@ -1083,10 +1063,9 @@ ltc2983_diode_new(const struct fwnode_handle *child,= const struct ltc2983_data * diode->excitation_current =3D 0x03; break; default: - dev_err(&st->spi->dev, - "Invalid value for excitation current(%u)", - excitation_current); - return ERR_PTR(-EINVAL); + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid value for excitation current(%u)", + excitation_current); } } =20 @@ -1102,26 +1081,26 @@ static struct ltc2983_sensor *ltc2983_r_sense_new(s= truct fwnode_handle *child, struct ltc2983_data *st, const struct ltc2983_sensor *sensor) { + struct device *dev =3D &st->spi->dev; struct ltc2983_rsense *rsense; int ret; u32 temp; =20 - rsense =3D devm_kzalloc(&st->spi->dev, sizeof(*rsense), GFP_KERNEL); + rsense =3D devm_kzalloc(dev, sizeof(*rsense), GFP_KERNEL); if (!rsense) return ERR_PTR(-ENOMEM); =20 /* validate channel index */ - if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, "Invalid chann:%d for r_sense", - sensor->chan); - return ERR_PTR(-EINVAL); - } + if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chann:%d for r_sense", + sensor->chan); =20 ret =3D fwnode_property_read_u32(child, "adi,rsense-val-milli-ohms", &tem= p); - if (ret) { - dev_err(&st->spi->dev, "Property adi,rsense-val-milli-ohms missing\n"); - return ERR_PTR(-EINVAL); - } + if (ret) + return dev_err_ptr_probe(dev, -EINVAL, + "Property adi,rsense-val-milli-ohms missing\n"); + /* * Times 1000 because we have milli-ohms and __convert_to_raw * expects scales of 1000000 which are used for all other @@ -1140,21 +1119,21 @@ static struct ltc2983_sensor *ltc2983_adc_new(struc= t fwnode_handle *child, struct ltc2983_data *st, const struct ltc2983_sensor *sensor) { + struct device *dev =3D &st->spi->dev; struct ltc2983_adc *adc; =20 - adc =3D devm_kzalloc(&st->spi->dev, sizeof(*adc), GFP_KERNEL); + adc =3D devm_kzalloc(dev, sizeof(*adc), GFP_KERNEL); if (!adc) return ERR_PTR(-ENOMEM); =20 if (fwnode_property_read_bool(child, "adi,single-ended")) adc->single_ended =3D true; =20 - if (!adc->single_ended && - sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, "Invalid chan:%d for differential adc\n", - sensor->chan); - return ERR_PTR(-EINVAL); - } + if (!adc->single_ended && sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chan:%d for differential adc\n", + sensor->chan); + /* set common parameters */ adc->sensor.assign_chan =3D ltc2983_adc_assign_chan; adc->sensor.fault_handler =3D ltc2983_common_fault_handler; @@ -1166,21 +1145,20 @@ static struct ltc2983_sensor *ltc2983_temp_new(stru= ct fwnode_handle *child, struct ltc2983_data *st, const struct ltc2983_sensor *sensor) { + struct device *dev =3D &st->spi->dev; struct ltc2983_temp *temp; =20 - temp =3D devm_kzalloc(&st->spi->dev, sizeof(*temp), GFP_KERNEL); + temp =3D devm_kzalloc(dev, sizeof(*temp), GFP_KERNEL); if (!temp) return ERR_PTR(-ENOMEM); =20 if (fwnode_property_read_bool(child, "adi,single-ended")) temp->single_ended =3D true; =20 - if (!temp->single_ended && - sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) { - dev_err(&st->spi->dev, "Invalid chan:%d for differential temp\n", - sensor->chan); - return ERR_PTR(-EINVAL); - } + if (!temp->single_ended && sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) + return dev_err_ptr_probe(dev, -EINVAL, + "Invalid chan:%d for differential temp\n", + sensor->chan); =20 temp->custom =3D __ltc2983_custom_sensor_new(st, child, "adi,custom-temp", false, 4096, true); @@ -1330,10 +1308,9 @@ static int ltc2983_parse_fw(struct ltc2983_data *st) device_property_read_u32(dev, "adi,filter-notch-freq", &st->filter_notch_= freq); =20 st->num_channels =3D device_get_child_node_count(dev); - if (!st->num_channels) { - dev_err(&st->spi->dev, "At least one channel must be given!"); - return -EINVAL; - } + if (!st->num_channels) + return dev_err_probe(dev, -EINVAL, + "At least one channel must be given!"); =20 st->sensors =3D devm_kcalloc(dev, st->num_channels, sizeof(*st->sensors), GFP_KERNEL); @@ -1420,6 +1397,7 @@ static int ltc2983_eeprom_cmd(struct ltc2983_data *st= , unsigned int cmd, unsigned int wait_time, unsigned int status_reg, unsigned long status_fail_mask) { + struct device *dev =3D &st->spi->dev; unsigned long time; unsigned int val; int ret; @@ -1438,19 +1416,16 @@ static int ltc2983_eeprom_cmd(struct ltc2983_data *= st, unsigned int cmd, =20 time =3D wait_for_completion_timeout(&st->completion, msecs_to_jiffies(wait_time)); - if (!time) { - dev_err(&st->spi->dev, "EEPROM command timed out\n"); - return -ETIMEDOUT; - } + if (!time) + return dev_err_probe(dev, -ETIMEDOUT, "EEPROM command timed out\n"); =20 ret =3D regmap_read(st->regmap, status_reg, &val); if (ret) return ret; =20 - if (val & status_fail_mask) { - dev_err(&st->spi->dev, "EEPROM command failed: 0x%02X\n", val); - return -EINVAL; - } + if (val & status_fail_mask) + return dev_err_probe(dev, -EINVAL, + "EEPROM command failed: 0x%02X\n", val); =20 return 0; } @@ -1458,16 +1433,15 @@ static int ltc2983_eeprom_cmd(struct ltc2983_data *= st, unsigned int cmd, static int ltc2983_setup(struct ltc2983_data *st, bool assign_iio) { u32 iio_chan_t =3D 0, iio_chan_v =3D 0, chan, iio_idx =3D 0, status; + struct device *dev =3D &st->spi->dev; int ret; =20 /* make sure the device is up: start bit (7) is 0 and done bit (6) is 1 */ ret =3D regmap_read_poll_timeout(st->regmap, LTC2983_STATUS_REG, status, LTC2983_STATUS_UP(status) =3D=3D 1, 25000, 25000 * 10); - if (ret) { - dev_err(&st->spi->dev, "Device startup timed out\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Device startup timed out\n"); =20 ret =3D regmap_update_bits(st->regmap, LTC2983_GLOBAL_CONFIG_REG, LTC2983_NOTCH_FREQ_MASK, @@ -1567,12 +1541,13 @@ static const struct iio_info ltc2983_iio_info =3D { =20 static int ltc2983_probe(struct spi_device *spi) { + struct device *dev =3D &spi->dev; struct ltc2983_data *st; struct iio_dev *indio_dev; struct gpio_desc *gpio; int ret; =20 - indio_dev =3D devm_iio_device_alloc(&spi->dev, sizeof(*st)); + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*st)); if (!indio_dev) return -ENOMEM; =20 @@ -1583,10 +1558,9 @@ static int ltc2983_probe(struct spi_device *spi) return -ENODEV; =20 st->regmap =3D devm_regmap_init_spi(spi, <c2983_regmap_config); - if (IS_ERR(st->regmap)) { - dev_err(&spi->dev, "Failed to initialize regmap\n"); - return PTR_ERR(st->regmap); - } + if (IS_ERR(st->regmap)) + return dev_err_probe(dev, PTR_ERR(st->regmap), + "Failed to initialize regmap\n"); =20 mutex_init(&st->lock); init_completion(&st->completion); @@ -1602,7 +1576,7 @@ static int ltc2983_probe(struct spi_device *spi) if (ret) return ret; =20 - gpio =3D devm_gpiod_get_optional(&st->spi->dev, "reset", GPIOD_OUT_HIGH); + gpio =3D devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(gpio)) return PTR_ERR(gpio); =20 @@ -1612,7 +1586,7 @@ static int ltc2983_probe(struct spi_device *spi) gpiod_set_value_cansleep(gpio, 0); } =20 - st->iio_chan =3D devm_kzalloc(&spi->dev, + st->iio_chan =3D devm_kzalloc(dev, st->iio_channels * sizeof(*st->iio_chan), GFP_KERNEL); if (!st->iio_chan) @@ -1622,12 +1596,10 @@ static int ltc2983_probe(struct spi_device *spi) if (ret) return ret; =20 - ret =3D devm_request_irq(&spi->dev, spi->irq, ltc2983_irq_handler, + ret =3D devm_request_irq(dev, spi->irq, ltc2983_irq_handler, IRQF_TRIGGER_RISING, st->info->name, st); - if (ret) { - dev_err(&spi->dev, "failed to request an irq, %d", ret); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "failed to request an irq\n"); =20 if (st->info->has_eeprom) { ret =3D ltc2983_eeprom_cmd(st, LTC2983_EEPROM_WRITE_CMD, @@ -1644,7 +1616,7 @@ static int ltc2983_probe(struct spi_device *spi) indio_dev->modes =3D INDIO_DIRECT_MODE; indio_dev->info =3D <c2983_iio_info; =20 - return devm_iio_device_register(&spi->dev, indio_dev); + return devm_iio_device_register(dev, indio_dev); } =20 static int ltc2983_resume(struct device *dev) --=20 2.44.0 From nobody Sun May 19 09:08:44 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB19B13C68D; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; cv=none; b=ko3ZUN0u3RoaCYL2k3/CrAmCKh4Ebtz0lY8cTT+XMcMBLHy/FO7220pL8jP+hoz2oU3cvmPMBidWNYOQn1xI2smt1aCZ+DtMuSNRK0fsmSbBDZVG1MkLWDgREPfXDi43UBltKwwPr+HlPCKFt8mdrXRo8oeGoTCiK/PucKsuBj8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; c=relaxed/simple; bh=qPg5S47mYtFSNZmI6098SuLsJSTkHXYOky1OUsD8mu4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SXgsd92WFUBkPAYAtlS3xiydrNNnvI2XFveaYEUmkpmh/4wTknqdCkguZP9RcxkBuyF0DKzGLxI8KRlThZdZfAxnrD3qL5c1kcSMs/IRZXRupoMDRUILojwurRTdi8hx7sRB5XnBmmj5TDAxydj8ldUhVIjhsfCjbqd4smg5Rds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RzPzj3lS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RzPzj3lS" Received: by smtp.kernel.org (Postfix) with ESMTPS id 5CB91C116B1; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713885643; bh=qPg5S47mYtFSNZmI6098SuLsJSTkHXYOky1OUsD8mu4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=RzPzj3lSqzplbAdXP9l7FK7qgQfIrBADUWCc2SgFZwJz1SLR2Pr4tAFje2Z7jxAQp UA2ZSvWpE8kPu8j7eIUpKDLIUotIW6P6KHDqZRKKSeUaT95gT60hmc0SUiFFUu4ADr vZxN5nKC25mVKh+UMrQP7nHGSvqAVDLNkMUB9RpeqlhAHOA1awyXcazv1kBwcNb7/Y HYEsHhhdY2qSrwC4U7svkmCYlsf1Cjq2Q2OLX5GYwz0u61ZwMKP7ASGh8nt8k1ArCp RBU7Qtch+BLSvZkiY3+23WQaS7zeUFz3yutnZ33UXN7Xi+F/930qXuBtPVmjwdVO4W jjJNM8dsmWxiw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E6FFC04FFE; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) From: Nuno Sa via B4 Relay Date: Tue, 23 Apr 2024 17:20:32 +0200 Subject: [PATCH v2 3/4] iio: backend: make use of dev_err_cast_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240423-dev-add_dev_errp_probe-v2-3-12f43c5d8b0d@analog.com> References: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> In-Reply-To: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> To: Petr Mladek , Andy Shevchenko , Chris Down , John Ogness , Greg Kroah-Hartman , Jonathan Cameron , Lars-Peter Clausen , Olivier Moysan , Andi Shyti , Jyoti Bhayana Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Nuno Sa X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713885641; l=960; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=O5sBK3dByRpiEz66h+ITvQMqPVPMlwbEa+A9Df4FqVo=; b=nei54/x6Mkn2Mx6Ct0Ltt/13H9JOLlF+w9Cmz3PJ7G5HAH92QrzgZNUmxoV52ZTd+mEIhRNDC IDXKUJpboqtCwYu3EzhkpajOLYz7lcxIbO1y+uix05hyT/x0KzVn13h X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-Endpoint-Received: by B4 Relay for nuno.sa@analog.com/20231116 with auth_id=100 X-Original-From: Nuno Sa Reply-To: nuno.sa@analog.com From: Nuno Sa Using dev_err_cast_probe() to simplify the code. Signed-off-by: Nuno Sa --- drivers/iio/industrialio-backend.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-= backend.c index f08ed6d70ae5..2cc6459246ce 100644 --- a/drivers/iio/industrialio-backend.c +++ b/drivers/iio/industrialio-backend.c @@ -475,11 +475,9 @@ struct iio_backend *devm_iio_backend_get(struct device= *dev, const char *name) } =20 fwnode =3D fwnode_find_reference(dev_fwnode(dev), "io-backends", index); - if (IS_ERR(fwnode)) { - dev_err_probe(dev, PTR_ERR(fwnode), - "Cannot get Firmware reference\n"); - return ERR_CAST(fwnode); - } + if (IS_ERR(fwnode)) + return dev_err_cast_probe(dev, fwnode, + "Cannot get Firmware reference\n"); =20 guard(mutex)(&iio_back_lock); list_for_each_entry(back, &iio_back_list, entry) { --=20 2.44.0 From nobody Sun May 19 09:08:44 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB13A13C676; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; cv=none; b=CbErouB2tmA3rWgW1+xCrLZOvMuvhQFzxiacxzhhy1p6Iassxxckdpm79wHaIBqNSMQUxonreW5MoKBBKIAM25EcLuzBrd/LZ4wpb+zcDqgkx1c+JOCX9tFUs+Q00hKb/pqavYczzEh9v+eTtcREoqfbuX1twx/rbzL294DvPsU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713885643; c=relaxed/simple; bh=daWyLQmhXixnMBBEbyIlhAgaxicpslZZ0+ILNyeGPzU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=L7yquQFgJsV4//LR9lYGED1Oy/FlDoigInp1te1358c8nMKSA6Aqnpeuoh3l0TTqNnt6Ex+mqJ0GjhBTHdDvUYwMKngO9rCBF9pRKJsOfpckFN9VW4HK9AzjpwWAArOzQbEWg/8mMIRp8JjCPxFmlyggg9SVNV8iK7NMkChYrWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TCPN5i6U; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TCPN5i6U" Received: by smtp.kernel.org (Postfix) with ESMTPS id 62FB1C4AF0A; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713885643; bh=daWyLQmhXixnMBBEbyIlhAgaxicpslZZ0+ILNyeGPzU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=TCPN5i6UbvhdkvBt0Us4vgrYZkPqrs6LP2P/Aml3dGG0qEHNc2+pQ+5UQ07NhCDsP +r1NCD1PLacLHGb+FSr8c5c7Oj/J5OQmwy8FjtHhuiM+9m6NPJQavIn7ZS7vTWp/Fv H1eU2Ki2ko7wWNT/MA2S6s7Z61HdSW4P2tJyZqSlGNrCgZqnwG/IEhAlhiVkp06604 AWRh/0c52Z3M+8KezBbmSSrgHSq1+rFB2FI40H+xra+rEcdMZk7Rw7q+aJB+3i+Ub3 LuWe5kVYvRZdoejNOTT8tGPqXi52QBPbJUHfY9ldfCh4RQRvyriYOtaxPYLO8r7Gua JybvCkUCsXnKQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5BC27C19F4F; Tue, 23 Apr 2024 15:20:43 +0000 (UTC) From: Nuno Sa via B4 Relay Date: Tue, 23 Apr 2024 17:20:33 +0200 Subject: [PATCH v2 4/4] iio: common: scmi_iio: convert to dev_err_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240423-dev-add_dev_errp_probe-v2-4-12f43c5d8b0d@analog.com> References: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> In-Reply-To: <20240423-dev-add_dev_errp_probe-v2-0-12f43c5d8b0d@analog.com> To: Petr Mladek , Andy Shevchenko , Chris Down , John Ogness , Greg Kroah-Hartman , Jonathan Cameron , Lars-Peter Clausen , Olivier Moysan , Andi Shyti , Jyoti Bhayana Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Nuno Sa X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713885641; l=3433; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=ClJ3sRzkiojLcrvi0KpVZa+uYfx+C5zcG1LAl2kp8n8=; b=VN2nBviGoxHI3FJL9V7BAJfS9jU4cTEgtov2PPD9aWEKmHMliTcjcuctwHjvXVoKDRXsFq0lz APclNLIVmvbAAXJetoYeEU2tFiuLJPg5k8W5ParKCVUhDC+dXv26xUR X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-Endpoint-Received: by B4 Relay for nuno.sa@analog.com/20231116 with auth_id=100 X-Original-From: Nuno Sa Reply-To: nuno.sa@analog.com From: Nuno Sa Make use of dev_err_probe() and dev_err_ptr_probe() to simplify error paths during probe. Signed-off-by: Nuno Sa --- drivers/iio/common/scmi_sensors/scmi_iio.c | 45 +++++++++++++-------------= ---- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/drivers/iio/common/scmi_sensors/scmi_iio.c b/drivers/iio/commo= n/scmi_sensors/scmi_iio.c index 0c2caf3570db..841eda79a8cc 100644 --- a/drivers/iio/common/scmi_sensors/scmi_iio.c +++ b/drivers/iio/common/scmi_sensors/scmi_iio.c @@ -626,12 +626,10 @@ scmi_alloc_iiodev(struct scmi_device *sdev, SCMI_PROTOCOL_SENSOR, SCMI_EVENT_SENSOR_UPDATE, &sensor->sensor_info->id, &sensor->sensor_update_nb); - if (ret) { - dev_err(&iiodev->dev, - "Error in registering sensor update notifier for sensor %s err %d", - sensor->sensor_info->name, ret); - return ERR_PTR(ret); - } + if (ret) + return dev_err_ptr_probe(&iiodev->dev, ret, + "Error in registering sensor update notifier for sensor %s err %d", + sensor->sensor_info->name, ret); =20 scmi_iio_set_timestamp_channel(&iio_channels[i], i); iiodev->channels =3D iio_channels; @@ -653,10 +651,9 @@ static int scmi_iio_dev_probe(struct scmi_device *sdev) return -ENODEV; =20 sensor_ops =3D handle->devm_protocol_get(sdev, SCMI_PROTOCOL_SENSOR, &ph); - if (IS_ERR(sensor_ops)) { - dev_err(dev, "SCMI device has no sensor interface\n"); - return PTR_ERR(sensor_ops); - } + if (IS_ERR(sensor_ops)) + return dev_err_probe(dev, PTR_ERR(sensor_ops), + "SCMI device has no sensor interface\n"); =20 nr_sensors =3D sensor_ops->count_get(ph); if (!nr_sensors) { @@ -667,8 +664,8 @@ static int scmi_iio_dev_probe(struct scmi_device *sdev) for (i =3D 0; i < nr_sensors; i++) { sensor_info =3D sensor_ops->info_get(ph, i); if (!sensor_info) { - dev_err(dev, "SCMI sensor %d has missing info\n", i); - return -EINVAL; + return dev_err_probe(dev, -EINVAL, + "SCMI sensor %d has missing info\n", i); } =20 /* This driver only supports 3-axis accel and gyro, skipping other senso= rs */ @@ -683,29 +680,25 @@ static int scmi_iio_dev_probe(struct scmi_device *sde= v) scmi_iio_dev =3D scmi_alloc_iiodev(sdev, sensor_ops, ph, sensor_info); if (IS_ERR(scmi_iio_dev)) { - dev_err(dev, - "failed to allocate IIO device for sensor %s: %ld\n", - sensor_info->name, PTR_ERR(scmi_iio_dev)); - return PTR_ERR(scmi_iio_dev); + return dev_err_probe(dev, PTR_ERR(scmi_iio_dev), + "failed to allocate IIO device for sensor %s: %ld\n", + sensor_info->name, PTR_ERR(scmi_iio_dev)); } =20 err =3D devm_iio_kfifo_buffer_setup(&scmi_iio_dev->dev, scmi_iio_dev, &scmi_iio_buffer_ops); if (err < 0) { - dev_err(dev, - "IIO buffer setup error at sensor %s: %d\n", - sensor_info->name, err); - return err; + return dev_err_probe(dev, err, + "IIO buffer setup error at sensor %s: %d\n", + sensor_info->name, err); } =20 err =3D devm_iio_device_register(dev, scmi_iio_dev); - if (err) { - dev_err(dev, - "IIO device registration failed at sensor %s: %d\n", - sensor_info->name, err); - return err; - } + if (err) + return dev_err_probe(dev, err, + "IIO device registration failed at sensor %s: %d\n", + sensor_info->name, err); } return err; } --=20 2.44.0