From patchwork Mon Apr 15 10:50:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haemmerle X-Patchwork-Id: 13629785 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2065.outbound.protection.outlook.com [40.107.21.65]) (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 A09ED5C900; Mon, 15 Apr 2024 10:50:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178241; cv=fail; b=OHFpCFdzcAX/gCqBT/mv75goPh0E9TFstX9nFGTNiwk/MT9xraSsH/EL6wwvf4pwTg+FYHSYTgJCqGB9KgPAzsUvRtknxtvmpzToUrcrw1CYZKLvJ08r99w04KsM0KCleM2KlGku2OZNXjCRIugrQtr4HnyF3p6g0+UrVGFCTCA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178241; c=relaxed/simple; bh=U+J6y+7jl6TlckUmz5u5h9laca3pWwmI9CqGvncdL88=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=A8urehiLgxRkvJIhXAYGsEcJtfLOUl3/iCmX4d96vPVWCArO/xNwp+gtTn522AhhSkZqEeBGxhrLpsrY4fzQS08mZPJFt1dV87cbFqh2dcMOr5b5c0QQB2O9aB7piACFGBnrDSreMCHgEAVdM6ug7O6eFhpDUXV9e+5MObc7tHc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=ogr+XwR5; arc=fail smtp.client-ip=40.107.21.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="ogr+XwR5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WHnQxpsP3EnA01y8yD3a8xvBUJ9DmHzjtUhsGHWQ99lgR6D6cyZYlwppRZZ/G7btB+3qmu8h3lq/P1c0vdfxJHySDAkkQ/UseaQudzEYUx9qv2bD9z64AeZmf433WwQUsSISMzQqOugRuAOMCmoC8pBTG82uY8d1qq5EMdmjUBLgfo71zkKQMJVW9OPRUnDq+1GINPFI8cF5P99JRSOHWqW9O0c0tYcnb7hYot0utsTdQ/0cO+s3oA8DEkASKqGDcozAUlVkUDdo79LmzGGTy87SBbPdaNXfFQDuh1lvXfp47R3y8eIvjQ3Wdesxxg2Q6IYxKWzzADxVz5l0O0yW3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xP6ADPSU3O+zHwfdZg4R+PXEk/FHqyuYmvRjtxC2TRw=; b=GCPZK+1GH7I3xs2PePy40s27chjKEirb21PY5LfDTLt0tPBxZUVqLniVL8idNLqpIReLtiq/abZEMcJ42TNymLpMsI2EpN+zWB9RmQ4OASo/z9y9dwx2X7PtRMXyXPp1Lm44C0Q7oFYANJj50FbmtHnsz+1AqDrrCPu12VH9q7Nlg7ODhXcrS8vpYnRnyoGgJMksTdJ9BsjKHnL6qIrvnO+HqX3fWKoZdKXEF7Xc3RCkAy0LzPiqtwu87zpVdlWBREFZQcFZn81ZPYJnmwSYqF7MKjfsYp854g0yxepJK8MJZi4ji/LRmvv7b3SjA3GxTAkbkPOG2U0tSx7MjAaVMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xP6ADPSU3O+zHwfdZg4R+PXEk/FHqyuYmvRjtxC2TRw=; b=ogr+XwR5K2WGFQI/VprVzgWe3h8ETyVEW+7baWqImuGK0s8Xah9GwnFi82imaJ+PHRYTjVa1nCWtXbBpDTLQqpIo2J7U1XHjVF6zW/X46N01VHA21nT2Oy9uZlTj6TgXWIEYp4wE9vKr7JZQdPcY2cRZDtihG/0u8Jk8EuqK9jM= Received: from DUZPR01CA0263.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::11) by PR3PR06MB7162.eurprd06.prod.outlook.com (2603:10a6:102:89::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.29; Mon, 15 Apr 2024 10:50:37 +0000 Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com (2603:10a6:10:4b9:cafe::5a) by DUZPR01CA0263.outlook.office365.com (2603:10a6:10:4b9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.33 via Frontend Transport; Mon, 15 Apr 2024 10:50:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Mon, 15 Apr 2024 10:50:36 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 15 Apr 2024 12:50:34 +0200 From: Thomas Haemmerle To: jic23@kernel.org Cc: bsp-development.geo@leica-geosystems.com, Thomas Haemmerle , Eddie James , Lars-Peter Clausen , Joel Stanley , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/4] iio: pressure: dps310: support negative temperature values Date: Mon, 15 Apr 2024 12:50:27 +0200 Message-Id: <20240415105030.1161770-2-thomas.haemmerle@leica-geosystems.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> References: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginalArrivalTime: 15 Apr 2024 10:50:34.0225 (UTC) FILETIME=[BE1F8E10:01DA8F22] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB5PEPF00014B97:EE_|PR3PR06MB7162:EE_ X-MS-Office365-Filtering-Correlation-Id: 02db2af0-2196-454a-ea24-08dc5d39e22b X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YeEDdw1iF6BSkCj6kfjbh4OCjIsw3x8EFGTPVw2iQFOY8WksGPxOaIbgsOvMJysKwT2lMDmc+4G3G3N7+nrVEf7dEh3qAmym7BbE43222Z00JwcLfI0RYVUbVg6o6y3anJR/vKQ+Me0GyhLD6EGX/LBuTIb1dClQEjwbnuLjAeomGdcA+np0cjFSwfaLgd+228aT+fqNyJvslZc/9FTSVV/MO8i2iwdObP64g0TRX5ctRCtBnGArbVXOmnOvn3Det2wszLM4x+/qhUSA/+CqnHG5FIEqgxu+wh+vS624z66sUqmmf+fjFD+VPCdiBJlkKMUs+892yiVG0ZP+EO//rSuuA3D1xzTaoOW33AXefuMeUNOZ6fun1tvgLVh2JvWJbBdhLHcxQ21oBom1GBamp9ty6ARKsT1kevf2lb35Prc6rzmZE5yW5UsUY/MpnlbS8mydNoE6xcg1T1PzH0bU+OPUZWl5dbrj+w1A/XokVNmZWxbzexFug6F/GNESrtRZL34c4SjGYz6yxnM1aHZsyxsn0OSM/HmdsaGgFFAd1XgjelPwXH+6SL1lc8nyjajbVZe/8vtJVXGw0UV1wss26alRIyLHCcYdRWqky0IjsmkiubpFmkOcgAv19MYA/3VGKhPob/S9mTrzJuM9sVXxyKZlluh90yYnnl1m30Z6vvJT7xNF4wWT5yyMxKv8CJ4AT6KnD8ImH+HAJRNHsTWbVtI65JeEGGm5pUf7til041ad55liqWtU6XsEFfLF9E3q X-Forefront-Antispam-Report: CIP:193.8.40.94;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom50.leica-geosystems.com;CAT:NONE;SFS:(13230031)(1800799015)(82310400014)(36860700004)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2024 10:50:36.7409 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 02db2af0-2196-454a-ea24-08dc5d39e22b X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.94];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B97.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR06MB7162 The current implementation interprets negative values returned from `dps310_calculate_temp` as error codes. This has a side effect that when negative temperature values are calculated, they are interpreted as error. Fix this by using the return value only for error handling and passing a pointer for the value. Fixes: ba6ec48e76bc ("iio: Add driver for Infineon DPS310") Signed-off-by: Thomas Haemmerle --- drivers/iio/pressure/dps310.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/iio/pressure/dps310.c b/drivers/iio/pressure/dps310.c index 1ff091b2f764..d0a516d56da4 100644 --- a/drivers/iio/pressure/dps310.c +++ b/drivers/iio/pressure/dps310.c @@ -730,7 +730,7 @@ static int dps310_read_pressure(struct dps310_data *data, int *val, int *val2, } } -static int dps310_calculate_temp(struct dps310_data *data) +static int dps310_calculate_temp(struct dps310_data *data, int *val) { s64 c0; s64 t; @@ -746,7 +746,9 @@ static int dps310_calculate_temp(struct dps310_data *data) t = c0 + ((s64)data->temp_raw * (s64)data->c1); /* Convert to milliCelsius and scale the temperature */ - return (int)div_s64(t * 1000LL, kt); + *val = (int)div_s64(t * 1000LL, kt); + + return 0; } static int dps310_read_temp(struct dps310_data *data, int *val, int *val2, @@ -768,11 +770,10 @@ static int dps310_read_temp(struct dps310_data *data, int *val, int *val2, if (rc) return rc; - rc = dps310_calculate_temp(data); - if (rc < 0) + rc = dps310_calculate_temp(data, val); + if (rc) return rc; - *val = rc; return IIO_VAL_INT; case IIO_CHAN_INFO_OVERSAMPLING_RATIO: From patchwork Mon Apr 15 10:50:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haemmerle X-Patchwork-Id: 13629788 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2067.outbound.protection.outlook.com [40.107.21.67]) (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 BC7025C911; Mon, 15 Apr 2024 10:50:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; cv=fail; b=HVGp1QKFaQ1pRzxsKwgVKH95SjWl1gLhF7vcLp6KWL3eMIcU12sfx5UWEQnYG45PmKMboGt+2Gg06ZinvM2nKPO0P+ASiz/0eDycfun++oMNcrvcR/WbBrmQdxVBuHj4+0vbXDUmNSIfH6nvOKgF0A6j77VjbEzoprOmkqrm/Pk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; c=relaxed/simple; bh=52HJWjbDoWXK3goAO57q8lNu3XaRenR4xvmJht8KA9M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=RNYvTQMkt63dDIQzFgxq8GxEjkgxUnfFHiI1szzOQUj+WMC+HrMaM8fbZ3s1DesmZ8kdTKwMS/T/g/mQ/CFdK9M4ocRxo/2kmUPSzLKt+yCTk9CRDEu59RVO0+1jCFJmecWKK/wNqZDLE+44oLRe39TDSun8uvDaJeYye/gohaQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=LCLsb/X1; arc=fail smtp.client-ip=40.107.21.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="LCLsb/X1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TrzpOQ6/zzCdzzK+BOYarvrmyevyBxPwETv9rEqlAzG0e+aX30rynVIw8BHt8HGrjniNzDZ7cSMKgIKG9A8qO5hEsO4boGTXUqqde5FBRJNcvjGNvxW8N/thQEeS+l54Ab54/uUjBbIHlhE6nnGREGjyF6BPX9jM9LI7XdNue5aMTkcunU1ASJcvWKmFKW61ds38yTMzPgRVnuNpJYyImgVih8A4SYqcOQiU/V5C/LF4JYgw4tqAu7GwylGNnbHJUKWDRSVwdt8FvRwswTm9VEqi2852BmgM8LQBbeTyHk6vMJghOJhSjONdB1AeZ+uWaffydyUoz5KWvKwhyF9Asg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=j4kU4QLT4SQSuRz5oZgBmVOSVOJMLovL9GhhS9+KzAM=; b=egcdKkNLSk7B4Ixl9z8WglOytaV+DWO3C2I7PGKbqso8Sm58XYiSqg9mvwFK0ioB+zz9QE890NAEbuZ2iLEozI2KBBJ+fmJjJB0yQH8Zo1JDcAlxqFxEuMftaf6ykwpAes/1UcPa+mfIyi8fQ7ecrY+ePmmqIn5AWUYSG3TjuybH2chnoho0Uxl2rcxEF/sCxl0qnRvMUmywijbnURvzSFLaobRvkLxv3fLn50CFOK0GLLy2qpAagvYgRVgcDgVsY+apU3NcTgKbpsqB0NVXlC+c8WwsRwPipNZ5ggw2g+4ld34me+81yu4QrZSwBuWeiUL3ZRFcJQAReHFdjyQE7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j4kU4QLT4SQSuRz5oZgBmVOSVOJMLovL9GhhS9+KzAM=; b=LCLsb/X1fS13EPafCEisEEomSrDLWfCWrqMQN1VzqUxVQwdffgrTptdOe6IX2W+2cM0VO8IB1z3+SSNWx3PFkAFhbstIfq/lZI2FUQ9DdiyN/99LMW8JFIoNJWlp6AGH35+xsQdlJVh1cCvXXB9LKkKDhqllUltHUXuD5vAr33Q= Received: from DUZPR01CA0275.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::6) by DU2PR06MB8365.eurprd06.prod.outlook.com (2603:10a6:10:2f0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.31; Mon, 15 Apr 2024 10:50:37 +0000 Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com (2603:10a6:10:4b9:cafe::d9) by DUZPR01CA0275.outlook.office365.com (2603:10a6:10:4b9::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.33 via Frontend Transport; Mon, 15 Apr 2024 10:50:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Mon, 15 Apr 2024 10:50:37 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 15 Apr 2024 12:50:35 +0200 From: Thomas Haemmerle To: jic23@kernel.org Cc: bsp-development.geo@leica-geosystems.com, Thomas Haemmerle , Eddie James , Lars-Peter Clausen , Joel Stanley , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/4] iio: pressure: dps310: introduce consistent error handling Date: Mon, 15 Apr 2024 12:50:28 +0200 Message-Id: <20240415105030.1161770-3-thomas.haemmerle@leica-geosystems.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> References: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginalArrivalTime: 15 Apr 2024 10:50:35.0694 (UTC) FILETIME=[BEFFB4E0:01DA8F22] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB5PEPF00014B97:EE_|DU2PR06MB8365:EE_ X-MS-Office365-Filtering-Correlation-Id: ecb9ac94-45bb-48d4-bf0f-08dc5d39e281 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M8QoToNsxyTGmi4dhAn0OzeY3oIhl/uPxuAALSuk1X0PavPQZxexYP0i/3+7b/TNo2OBF9DwfWNNj347ImYhnAQR3LLcTA+LRHL7I+S6rhoccpMvvovU4sEX8OucLaMcwthWzkFhkcRUS1fj/Wle+S4BYnk9x7KffnNcl9SknraxseePAAqcTejoZVqSIKnZIVtWG70svHnaQvBv2Bk5ZLpZK/YuMtGhgH/AVr9L8whSduX4vgrqgeI9H2VH/LckEbp/rhdDBcBuRJaFieWpgpka4WAEtWf0F8gVThxH/38+Naiinih8M6PUSesiNrQN4Fv7nCHF8dzjTIff56PFY5VHyZsTaiD2zlBd2zNTC/JEaXThcSsvaRzLm1NNUpkLvtcrZqfn+H50LegdWzXNfiIDckOBox4Dq46Mt3blL7Hs6VAwvD0h+m48G/M7RxqnBYVe7sd05cE7kGK9WzJ5sQCPIyPz6xfyQqpPWz/82JpyMJiw/Anf8VBKb9U86PW017bILHmr3Jkjwcxj2TWOKHFfoYF3g1m6By3lsoFfw2Q7EvU+XXW2WKj/TQL6ombCqFSUNb8aqLhloRZH68ZP3ZmJaZvwwNSUEwx5sFopuGeRLiA34+IlVdbFTh/CVFsXGmnxfU6kmnShsKyq7KpvgRjq5cfYZvHDfPDzENn+OpkDH10b5n9QK/w14AGvyMMSzRraotaJ4Q2G7pBtbowAFQ8EhhuZYrgR2EoDlv5xGoRSAX92oV0hcRMiMttBaKUq X-Forefront-Antispam-Report: CIP:193.8.40.94;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom50.leica-geosystems.com;CAT:NONE;SFS:(13230031)(376005)(36860700004)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2024 10:50:37.3034 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ecb9ac94-45bb-48d4-bf0f-08dc5d39e281 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.94];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B97.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR06MB8365 Align error handling with `dps310_calculate_temp`, where it's not possible to differentiate between errors and valid calculations by checking if the returned value is negative. Signed-off-by: Thomas Haemmerle --- drivers/iio/pressure/dps310.c | 129 +++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 57 deletions(-) diff --git a/drivers/iio/pressure/dps310.c b/drivers/iio/pressure/dps310.c index d0a516d56da4..3fc436f36fa7 100644 --- a/drivers/iio/pressure/dps310.c +++ b/drivers/iio/pressure/dps310.c @@ -256,24 +256,24 @@ static int dps310_startup(struct dps310_data *data) return dps310_temp_workaround(data); } -static int dps310_get_pres_precision(struct dps310_data *data) +static int dps310_get_pres_precision(struct dps310_data *data, int *val) { - int rc; - int val; + int reg_val, rc; - rc = regmap_read(data->regmap, DPS310_PRS_CFG, &val); + rc = regmap_read(data->regmap, DPS310_PRS_CFG, ®_val); if (rc < 0) return rc; - return BIT(val & GENMASK(2, 0)); + *val = BIT(reg_val & GENMASK(2, 0)); + + return 0; } -static int dps310_get_temp_precision(struct dps310_data *data) +static int dps310_get_temp_precision(struct dps310_data *data, int *val) { - int rc; - int val; + int reg_val, rc; - rc = regmap_read(data->regmap, DPS310_TMP_CFG, &val); + rc = regmap_read(data->regmap, DPS310_TMP_CFG, ®_val); if (rc < 0) return rc; @@ -281,7 +281,9 @@ static int dps310_get_temp_precision(struct dps310_data *data) * Scale factor is bottom 4 bits of the register, but 1111 is * reserved so just grab bottom three */ - return BIT(val & GENMASK(2, 0)); + *val = BIT(reg_val & GENMASK(2, 0)); + + return 0; } /* Called with lock held */ @@ -350,48 +352,56 @@ static int dps310_set_temp_samp_freq(struct dps310_data *data, int freq) DPS310_TMP_RATE_BITS, val); } -static int dps310_get_pres_samp_freq(struct dps310_data *data) +static int dps310_get_pres_samp_freq(struct dps310_data *data, int *val) { - int rc; - int val; + int reg_val, rc; - rc = regmap_read(data->regmap, DPS310_PRS_CFG, &val); + rc = regmap_read(data->regmap, DPS310_PRS_CFG, ®_val); if (rc < 0) return rc; - return BIT((val & DPS310_PRS_RATE_BITS) >> 4); + *val = BIT((reg_val & DPS310_PRS_RATE_BITS) >> 4); + + return 0; } -static int dps310_get_temp_samp_freq(struct dps310_data *data) +static int dps310_get_temp_samp_freq(struct dps310_data *data, int *val) { - int rc; - int val; + int reg_val, rc; - rc = regmap_read(data->regmap, DPS310_TMP_CFG, &val); + rc = regmap_read(data->regmap, DPS310_TMP_CFG, ®_val); if (rc < 0) return rc; - return BIT((val & DPS310_TMP_RATE_BITS) >> 4); + *val = BIT((reg_val & DPS310_TMP_RATE_BITS) >> 4); + + return 0; } -static int dps310_get_pres_k(struct dps310_data *data) +static int dps310_get_pres_k(struct dps310_data *data, int *val) { - int rc = dps310_get_pres_precision(data); + int reg_val, rc; - if (rc < 0) + rc = dps310_get_pres_precision(data, ®_val); + if (rc) return rc; - return scale_factors[ilog2(rc)]; + *val = scale_factors[ilog2(reg_val)]; + + return 0; } -static int dps310_get_temp_k(struct dps310_data *data) +static int dps310_get_temp_k(struct dps310_data *data, int *val) { - int rc = dps310_get_temp_precision(data); + int reg_val, rc; - if (rc < 0) + rc = dps310_get_temp_precision(data, ®_val); + if (rc) return rc; - return scale_factors[ilog2(rc)]; + *val = scale_factors[ilog2(reg_val)]; + + return 0; } static int dps310_reset_wait(struct dps310_data *data) @@ -464,7 +474,10 @@ static int dps310_read_pres_raw(struct dps310_data *data) if (mutex_lock_interruptible(&data->lock)) return -EINTR; - rate = dps310_get_pres_samp_freq(data); + rc = dps310_get_pres_samp_freq(data, &rate); + if (rc) + goto done; + timeout = DPS310_POLL_TIMEOUT_US(rate); /* Poll for sensor readiness; base the timeout upon the sample rate. */ @@ -510,7 +523,10 @@ static int dps310_read_temp_raw(struct dps310_data *data) if (mutex_lock_interruptible(&data->lock)) return -EINTR; - rate = dps310_get_temp_samp_freq(data); + rc = dps310_get_temp_samp_freq(data, &rate); + if (rc) + goto done; + timeout = DPS310_POLL_TIMEOUT_US(rate); /* Poll for sensor readiness; base the timeout upon the sample rate. */ @@ -612,13 +628,13 @@ static int dps310_write_raw(struct iio_dev *iio, return rc; } -static int dps310_calculate_pressure(struct dps310_data *data) +static int dps310_calculate_pressure(struct dps310_data *data, int *val) { int i; int rc; int t_ready; - int kpi = dps310_get_pres_k(data); - int kti = dps310_get_temp_k(data); + int kpi; + int kti; s64 rem = 0ULL; s64 pressure = 0ULL; s64 p; @@ -629,11 +645,13 @@ static int dps310_calculate_pressure(struct dps310_data *data) s64 kp; s64 kt; - if (kpi < 0) - return kpi; + rc = dps310_get_pres_k(data, &kpi); + if (rc) + return rc; - if (kti < 0) - return kti; + rc = dps310_get_temp_k(data, &kti); + if (rc) + return rc; kp = (s64)kpi; kt = (s64)kti; @@ -687,7 +705,9 @@ static int dps310_calculate_pressure(struct dps310_data *data) if (pressure < 0LL) return -ERANGE; - return (int)min_t(s64, pressure, INT_MAX); + *val = (int)min_t(s64, pressure, INT_MAX); + + return 0; } static int dps310_read_pressure(struct dps310_data *data, int *val, int *val2, @@ -697,11 +717,10 @@ static int dps310_read_pressure(struct dps310_data *data, int *val, int *val2, switch (mask) { case IIO_CHAN_INFO_SAMP_FREQ: - rc = dps310_get_pres_samp_freq(data); - if (rc < 0) + rc = dps310_get_pres_samp_freq(data, val); + if (rc) return rc; - *val = rc; return IIO_VAL_INT; case IIO_CHAN_INFO_PROCESSED: @@ -709,20 +728,17 @@ static int dps310_read_pressure(struct dps310_data *data, int *val, int *val2, if (rc) return rc; - rc = dps310_calculate_pressure(data); - if (rc < 0) + rc = dps310_calculate_pressure(data, val); + if (rc) return rc; - *val = rc; *val2 = 1000; /* Convert Pa to KPa per IIO ABI */ return IIO_VAL_FRACTIONAL; case IIO_CHAN_INFO_OVERSAMPLING_RATIO: - rc = dps310_get_pres_precision(data); - if (rc < 0) + rc = dps310_get_pres_precision(data, val); + if (rc) return rc; - - *val = rc; return IIO_VAL_INT; default: @@ -734,10 +750,11 @@ static int dps310_calculate_temp(struct dps310_data *data, int *val) { s64 c0; s64 t; - int kt = dps310_get_temp_k(data); + int kt, rc; - if (kt < 0) - return kt; + rc = dps310_get_temp_k(data, &kt); + if (rc) + return rc; /* Obtain inverse-scaled offset */ c0 = div_s64((s64)kt * (s64)data->c0, 2); @@ -758,11 +775,10 @@ static int dps310_read_temp(struct dps310_data *data, int *val, int *val2, switch (mask) { case IIO_CHAN_INFO_SAMP_FREQ: - rc = dps310_get_temp_samp_freq(data); - if (rc < 0) + rc = dps310_get_temp_samp_freq(data, val); + if (rc) return rc; - *val = rc; return IIO_VAL_INT; case IIO_CHAN_INFO_PROCESSED: @@ -777,11 +793,10 @@ static int dps310_read_temp(struct dps310_data *data, int *val, int *val2, return IIO_VAL_INT; case IIO_CHAN_INFO_OVERSAMPLING_RATIO: - rc = dps310_get_temp_precision(data); - if (rc < 0) + rc = dps310_get_temp_precision(data, val); + if (rc) return rc; - *val = rc; return IIO_VAL_INT; default: From patchwork Mon Apr 15 10:50:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haemmerle X-Patchwork-Id: 13629786 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2061.outbound.protection.outlook.com [40.107.6.61]) (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 95D9E5C903; Mon, 15 Apr 2024 10:50:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.6.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; cv=fail; b=EUMZQH8N02ZbjG5OuuHUSeBLWO4ugZckql5VDy1rK7cYxlM/rVtTviOkdUanx22HcvU2meaO/tvSGcHcLTGLmok4M1iSdfIQiERamU6PMYnVMTEpBpzyKiFy2tAVkVePmS3p/lpcohCXJt5l5Daj8EVEZNSenu2chLYx7LPb7og= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; c=relaxed/simple; bh=3woaJPcBjqzYQjsTrASaiCvuS7IpGiPAzebHmq0bTW4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=SRakp7F9cfbsQfXbz7ANCTrRRU6EEaAp6BvR6xgGpGfLCxL6Lm63gC5gdxIiJoxkDii0bcfpyUuhRICcMXs8k3R++kNzBXXrudOcPRjsxZA6ri72+9Oc4u9KqDczPlp1R19Ej6GN+aIUuRb/cu7fD4JDEse7USTg93qCsTzKZDo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=auFN+FrP; arc=fail smtp.client-ip=40.107.6.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="auFN+FrP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oRPK2ub0NxMOLhzpcSQ6xEwAk8L+EEzv1g18szHJSsNQTnMMS8IgG6B7JadHjSMjmHWkS8yFkLtHRW3Gk/Feio/TMmtTEDzwLhkFpvMXpNWcMZvIJgHCfjRTUf8lnSbPngqbOuyj9TGCHZQgYG3+CoOCHYCFj0th8S+juvdqQ7Q2KD5S9m2jL3WW3Prso4SgjRMGNipgAH7p8jhVYo/ycZY2ouCUY4WM/GXmOEb246bzuthFAIDJ27eVxLEuzTCTWzDUQcWjq5MtPje7/6My7jjN/z2hCJiHoVO6oTQ8W+O/rbL3Nr6IB2MCC8UxJHZ6gQu9fpmDAcqCOsezLZ74nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8DFln4Ue0k4Pnu/R21SZqZ2E2iD+MXE2ymk6EjS4Xfg=; b=Wbw+RyLjfPIexyNzAu1GFa3oOY0Fyz2oYJB3cQUTPRB7wITcgCRqaHBSzPQLfChW/fFWeT5TM8eHoz/c4wGLSg84Jw2SG5yrbjYk9VUsdpUw1cROpRWtqZ29USg6BK+LG1M76k2Ae7Pbvhs9pDoWCkUzLUSck6MOhJoJwmg3/m5AfLlddGeJ3OTuF4AOSCJsdVXHnwVJejrydx9AfOaftiirA7FB/wlqEQOO55FZhvT+/kdtHXGbPr2IXNU0Ls05lVOjGOUSX80AVEFlLLNbHVV3NWEFV5Vgw37wd1e/kYEZDLz85iQoW1dj6hm65WPLuXkJ+ugH6uDAqhB+9qw2kA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8DFln4Ue0k4Pnu/R21SZqZ2E2iD+MXE2ymk6EjS4Xfg=; b=auFN+FrPcS3O6EkccZXeZqX+PhOkn4vVR56lFZWiTFh/uMO2rdDh8QLFSC+2suQ7cQqtccQ4uAF4zvWD3NV5zvjdkMm8qlPVPBG9GmB0FyPDLekSCtRn1bh7dI2WRrl2zZQe7A2mubamT43zutKpN+t7uDNt3bbd3XMRDS+YlgM= Received: from DUZPR01CA0260.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::8) by PAXPR06MB8423.eurprd06.prod.outlook.com (2603:10a6:102:22e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.29; Mon, 15 Apr 2024 10:50:37 +0000 Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com (2603:10a6:10:4b9:cafe::55) by DUZPR01CA0260.outlook.office365.com (2603:10a6:10:4b9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.33 via Frontend Transport; Mon, 15 Apr 2024 10:50:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Mon, 15 Apr 2024 10:50:37 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 15 Apr 2024 12:50:37 +0200 From: Thomas Haemmerle To: jic23@kernel.org Cc: bsp-development.geo@leica-geosystems.com, Thomas Haemmerle , Eddie James , Lars-Peter Clausen , Joel Stanley , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 3/4] iio: pressure: dps310: consistently check return value of `regmap_read` Date: Mon, 15 Apr 2024 12:50:29 +0200 Message-Id: <20240415105030.1161770-4-thomas.haemmerle@leica-geosystems.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> References: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginalArrivalTime: 15 Apr 2024 10:50:37.0131 (UTC) FILETIME=[BFDAF9B0:01DA8F22] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB5PEPF00014B97:EE_|PAXPR06MB8423:EE_ X-MS-Office365-Filtering-Correlation-Id: f3c2750b-c812-4b4a-951b-08dc5d39e2b8 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zWP1gDDQ1ywMZWsDfH9cB0N4v0L9NEpiMaHt8mQ3/kBzMPgmI5OT0GY7WcxMF09H4jmVJI5L2mho09x97KTBGeqJxIA9STyKM1LdJbX+A4xk9HxGfU+hvxsMjcLl7XZihpNoRo+XwAXW5mZyWqSICR6Cs0dFSfzGnqNx6q9s+HwxS5QS1uQPhNzs5AwIOFMIrV1wPKqiYaZ/uI3De3qNydQ6xpp2omSFpKcpzd7K0AJt9Y9UfuhD9xzvQcERsG1kghmI96B0z68CVJvCuEutcw0AOB+R3Was+pZbRMzXMXOOd/mjRaloq+iJST6H0jBcDQ3NuWcKHRXI2Dq4bC+PL/+vPePn4dDcGA23mxLBwsTBoZ7AitbS4dz7bW8gcKoN9xoNVk/httk6hgoLfm9vQRuagBG9ZKSg8vbMOnoKzwiKSV8ccDHeUnXjRKFJsyzt8lTzPUUeFO5MTBPV1ZlwedjsCPtyp59OWhr8CnYb7fzreW4yGW2IqC7ZMnysg1NwspKYm+43biEHQpyNTWPxbz/F6CyUstOCYfqtPDdOa934cdm2eQB+5mIBFt8bDj6mxAyuMNeHRx9gB2IhvcLI9LsVcroLaXrB13c2tjNhOWGnPRLdI4qsp5jdsaREmoWIgKGIpb7Moi0z54T6ufdxurz5CPCBOENtQlNfl0lL1Z+I9M956r9rC01MPi1hYvtdUKYJP5A5FaGraBBFybfLvEo6ufrCyAJF1XlEh1OgXJhnsXxTZGvHKsU6ZS2ZoBYU X-Forefront-Antispam-Report: CIP:193.8.40.94;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom50.leica-geosystems.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2024 10:50:37.6628 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3c2750b-c812-4b4a-951b-08dc5d39e2b8 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.94];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B97.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR06MB8423 Align the check of return values `regmap_read` so that it's consistent across this driver code. Signed-off-by: Thomas Haemmerle --- drivers/iio/pressure/dps310.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/pressure/dps310.c b/drivers/iio/pressure/dps310.c index 3fc436f36fa7..c30623d96f0e 100644 --- a/drivers/iio/pressure/dps310.c +++ b/drivers/iio/pressure/dps310.c @@ -171,7 +171,7 @@ static int dps310_temp_workaround(struct dps310_data *data) int reg; rc = regmap_read(data->regmap, 0x32, ®); - if (rc) + if (rc < 0) return rc; /* From patchwork Mon Apr 15 10:50:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haemmerle X-Patchwork-Id: 13629787 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2052.outbound.protection.outlook.com [40.107.20.52]) (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 C0D345C919; Mon, 15 Apr 2024 10:50:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; cv=fail; b=r77Awnv8OYbgSTKHF7GJJ8D4ZdzpnES3KfMoLK1iuIgSFM3VDAgOr5NJva3ufqTHoZnFEs+UCXBp7eijNteQUVWcwa5kejljh2ttP92FgtoeaPAKpjQVXJFtUDucm8qYQXoX7VDALB/7IcPfVw8jW7ghl1Nye9aLwnXURRfWWbI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713178243; c=relaxed/simple; bh=nLX1To4bTiAj3irPsvV86JRP4raH4RiZ4W07HOb3sJI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=THPrYrPyQ/Bi40NIr97JPXsk/Gqb4rSmXS2cQSm6LPQfLEA5XSN5UgQmf+RByJfObsH3DHK/pzNKv6zk0bo2BU0gwAMrYuchQsElMjKylfU34W6kRmTop++6NHwbuqA3G7GXTREsJVNHTdxONuXZELZP5a/80S18Y4DvuIapE4w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=EUoFiyFl; arc=fail smtp.client-ip=40.107.20.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="EUoFiyFl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CYgwLdH/emMb4Og4YSpirHMta4cbV733xmW+i19MAR3lr0XT2HAWxM48dDMYU9UwGMI7FA3tLbp42erlClejqYiZ7moo8a783oO9kx8y00zX8E4rMA6ax34H59KY0Ok40HTQ8813R3vBlJA41RwwP4VDddYOCISzdBI8fMIp0qEcrhy+7mIgd419iLjFx3BWacT2BVMloa0fHcUyY/pDDvSGPZq0kMB28XxQxcenzDlvdwKeFRo9Nx0hPPzEVQoHghAplE9/r4cD42Xp7J4TyX6g6saPEPGCcDzfhHdNDiYo+EcRKBkvs9Bn7Q75wXIbq1ibndX+Tb+Pha01txMOuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BkajLhmjkzHPSpZXj7DXb86D2ZcCwjCKYUCJycdRkj0=; b=ilBBtkzkuR+zyo0aQCmL1HxsfL7aHoslPNfFcaJFh3SwUlgR4cA2bfPkk+uvs0pGm7mWPhLEHwnFXhW/tX2f5AiUGCdmEboFBuPN15pqaXNKk1PWEtlZf9Gpp8T4A/Vae5eD4Qlq3fkhQpN7S7KfgUyQmlz7Yep8RE+FefWAE37kI3NCqDUIPOpAhuslgaki7I2gzronYFDbw+kRKzibp1GjXdCk4b92SFutogS60+M0E/d//n52Fc+wyvDHgk1wEF8viUnibyvmkK5z9o6IXknnaeLwFdhg9bX0jwHls3cqnFLYnr9Y4mcb5r3NpUXLtrqf/3UesKDDsBch3TKPZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BkajLhmjkzHPSpZXj7DXb86D2ZcCwjCKYUCJycdRkj0=; b=EUoFiyFlfXUKEL2KgTXTPrx0YmEUVM5ykYAkxP964ju0q8BGFIJDISfjQzYnuplpVRddef/uYcPfSWdixn31KJtZny8tyvrVVdkoymKsOZUypP5W+QEdHVzdQJzXD/B6YnF43rkJVji+595wYWd+Pndy140fGQPlV6UMuRnJU5I= Received: from AS4P192CA0029.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5e1::14) by DUZPR06MB8848.eurprd06.prod.outlook.com (2603:10a6:10:4d3::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.27; Mon, 15 Apr 2024 10:50:39 +0000 Received: from AM3PEPF0000A796.eurprd04.prod.outlook.com (2603:10a6:20b:5e1:cafe::e7) by AS4P192CA0029.outlook.office365.com (2603:10a6:20b:5e1::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.33 via Frontend Transport; Mon, 15 Apr 2024 10:50:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by AM3PEPF0000A796.mail.protection.outlook.com (10.167.16.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Mon, 15 Apr 2024 10:50:38 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 15 Apr 2024 12:50:38 +0200 From: Thomas Haemmerle To: jic23@kernel.org Cc: bsp-development.geo@leica-geosystems.com, Thomas Haemmerle , Eddie James , Lars-Peter Clausen , Joel Stanley , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/4] iio: pressure: dps310: simplify scale factor reading Date: Mon, 15 Apr 2024 12:50:30 +0200 Message-Id: <20240415105030.1161770-5-thomas.haemmerle@leica-geosystems.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> References: <20240415105030.1161770-1-thomas.haemmerle@leica-geosystems.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginalArrivalTime: 15 Apr 2024 10:50:38.0756 (UTC) FILETIME=[C0D2EE40:01DA8F22] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM3PEPF0000A796:EE_|DUZPR06MB8848:EE_ X-MS-Office365-Filtering-Correlation-Id: 22116911-ff0d-45c4-7058-08dc5d39e378 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DDUoHxCG92fraNbwzyY+FJOxBLMaziCO7DW4L/6zVheonZi/H1jiOipIEHTg6cI+U0nhwVwU5JcMFprypEHgNqpSYYPiBho5Z2ZZ47iWTWvedZANVfumWprwof0IFmgFFQbuwVdmdqhnqwnMQAoL0QkQf6u+5M1IuJtcXmxOYk8u1yGYbSKdYFtOV1IjnGfbGcydA0CmbSCKXFziX/O03j2/iUhUure6KaF+qr9n9nXU7s2MMeVbN37vjsNXvt+IUTRCY5iyJgDIYnRolNzY8K7lyyerz5YLDm0M2BHr2PIyWxawoMRXrN4hyF5W1hWdoVlykLGJEAEmRcNIuW+n5adFWivSytF9a9Sw7Hix3pxfxddAow7LmUTIglbbQM/EisoVX4Ke4HnGnLfXSzt65hCA087csjsVWxaMNJ//WnElzLqittYsi+42Hxkz0GUHEcjfqSGa9I06OJ5ZyVgvFCvtK9cADL5Z3UY9lv73aSXwpcyI2DIMw3TCw6LGUX1KwiOBtXI0Hr3UNgYQ8Hifii9seUQgE3Tx+ak7h/nN8WG+VwN8swp1fFMLlIIrU+SdotgbcY12Kevj9ORhJBaYUagbD2Hc+ymIZAvs/odmP7iHnZPozh97MOBzq8OSF1NkIea1NIqbCq8lB1RQW26xOfN1aPaor7B5hT8upM4dBd0MdgS/840+w4SSt5uUawhwx9VOLZfVTDblVac6lKGb69mu8Qqk+//8zFrHQU0Bhxaz9jt9/C3YglsTix+hg2XR X-Forefront-Antispam-Report: CIP:193.8.40.94;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom50.leica-geosystems.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2024 10:50:38.9826 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 22116911-ff0d-45c4-7058-08dc5d39e378 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.94];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF0000A796.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR06MB8848 Both functions `dps310_get_pres_precision` and `dps310_get_temp_precision` provide the oversampling rate by calling the `BIT()` macro. However, to look up the corresponding scale factor, we need the register value itself. Currently, this is achieved by undoing the calculation of the oversampling rate with `ilog2()`. Simplify the two functions for getting the scale factor and directly use the register content for the lookup. Signed-off-by: Thomas Haemmerle --- drivers/iio/pressure/dps310.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/iio/pressure/dps310.c b/drivers/iio/pressure/dps310.c index c30623d96f0e..7d882e15e556 100644 --- a/drivers/iio/pressure/dps310.c +++ b/drivers/iio/pressure/dps310.c @@ -382,11 +382,11 @@ static int dps310_get_pres_k(struct dps310_data *data, int *val) { int reg_val, rc; - rc = dps310_get_pres_precision(data, ®_val); - if (rc) + rc = regmap_read(data->regmap, DPS310_PRS_CFG, ®_val); + if (rc < 0) return rc; - *val = scale_factors[ilog2(reg_val)]; + *val = scale_factors[reg_val & GENMASK(2, 0)]; return 0; } @@ -395,11 +395,11 @@ static int dps310_get_temp_k(struct dps310_data *data, int *val) { int reg_val, rc; - rc = dps310_get_temp_precision(data, ®_val); - if (rc) + rc = regmap_read(data->regmap, DPS310_TMP_CFG, ®_val); + if (rc < 0) return rc; - *val = scale_factors[ilog2(reg_val)]; + *val = scale_factors[reg_val & GENMASK(2, 0)]; return 0; }