Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753676Ab3DUQ6u (ORCPT ); Sun, 21 Apr 2013 12:58:50 -0400 Received: from mail-da0-f45.google.com ([209.85.210.45]:34028 "EHLO mail-da0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753050Ab3DUQ6t (ORCPT ); Sun, 21 Apr 2013 12:58:49 -0400 Message-ID: <1366563522.10770.1.camel@phoenix> Subject: [PATCH RFT] regulator: palmas: Fix off-by-one for ramp_delay and register value mapping From: Axel Lin To: Mark Brown Cc: Laxman Dewangan , Graeme Gregory , Liam Girdwood , linux-kernel@vger.kernel.org Date: Mon, 22 Apr 2013 00:58:42 +0800 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.6.2-0ubuntu0.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2875 Lines: 94 In probe(), we have below code to set ramp_delay: e.g. When reg is 2, current code set pmic->desc[id].ramp_delay = palmas_smps_ramp_delay[reg & 0x3]; = 5000 which means ramp_delay = 5000 is mapping to reg value = 2; However, in palmas_smps_set_ramp_delay() ramp_delay = 5000 is mapping to reg value = 1. This patch fixes the off-by-one value range checking for ramp_delay in palmas_smps_set_ramp_delay(). Signed-off-by: Axel Lin --- Hi Laxman, I don't have the datasheet, so please check if this fix is correct. Thanks, Axel drivers/regulator/palmas-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c index 8fed60c..e3e8373 100644 --- a/drivers/regulator/palmas-regulator.c +++ b/drivers/regulator/palmas-regulator.c @@ -447,9 +447,9 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev, if (ramp_delay <= 0) reg = 0; - else if (ramp_delay < 2500) + else if (ramp_delay <= 2500)From 6f6875db93eeff52d39623dd68522e1875cf5ef1 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Mon, 22 Apr 2013 00:50:55 +0800 Subject: [PATCH RFT] regulator: palmas: Fix off-by-one for ramp_delay and register value mapping In probe(), we have below code to set ramp_delay: e.g. When reg is 2, current code set pmic->desc[id].ramp_delay = palmas_smps_ramp_delay[reg & 0x3]; = 5000 which means ramp_delay = 5000 is mapping to reg value = 2; However, in palmas_smps_set_ramp_delay() ramp_delay = 5000 is mapping to reg value = 1. This patch fixes the off-by-one value range checking for ramp_delay in palmas_smps_set_ramp_delay(). Signed-off-by: Axel Lin --- Hi Laxman, I don't have the datasheet, so please check if this fix is correct. Thanks, Axel drivers/regulator/palmas-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c index 8fed60c..e3e8373 100644 --- a/drivers/regulator/palmas-regulator.c +++ b/drivers/regulator/palmas-regulator.c @@ -447,9 +447,9 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev, if (ramp_delay <= 0) reg = 0; - else if (ramp_delay < 2500) + else if (ramp_delay <= 2500) reg = 3; - else if (ramp_delay < 5000) + else if (ramp_delay <= 5000) reg = 2; else reg = 1; -- 1.7.10.4 reg = 3; - else if (ramp_delay < 5000) + else if (ramp_delay <= 5000) reg = 2; else reg = 1; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/