Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759436AbbKTH5g (ORCPT ); Fri, 20 Nov 2015 02:57:36 -0500 Received: from mail-pa0-f44.google.com ([209.85.220.44]:32793 "EHLO mail-pa0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758915AbbKTH5f (ORCPT ); Fri, 20 Nov 2015 02:57:35 -0500 From: Saurabh Sengar To: lgirdwood@gmail.com, broonie@kernel.org, linux-kernel@vger.kernel.org Cc: Saurabh Sengar Subject: [PATCH] regulator: of: simplifing the parsing code Date: Fri, 20 Nov 2015 13:27:27 +0530 Message-Id: <1448006247-4749-1-git-send-email-saurabh.truth@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4050 Lines: 106 in case of_property_read_u32 fails, it keeps the parameter unchanged so no need to test if its success and then assign the value Signed-off-by: Saurabh Sengar --- Hi Mark, I also have concern related to how we are passing 'regulator-mode' and 'regulator-initial-mode'. Currently this require a extra function to be set in 'of_map_mode', which can be avoided. These two parameters can be set directly from the device tree as in below patch: https://lkml.org/lkml/2014/1/16/263 All drivers can have only out of 4 predefined values for these parameters, define in linux/iregulator/consumer.h, its not driver specific. Please let me know your comments, if this suits you I will send a one more patch on top of this it will further simplify this code. Regards, Saurabh drivers/regulator/of_regulator.c | 41 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 499e437..61b74a9 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -51,16 +51,14 @@ static void of_get_regulation_constraints(struct device_node *np, if (min_uV && max_uV && constraints->min_uV == constraints->max_uV) constraints->apply_uV = true; - if (!of_property_read_u32(np, "regulator-microvolt-offset", &pval)) - constraints->uV_offset = pval; - if (!of_property_read_u32(np, "regulator-min-microamp", &pval)) - constraints->min_uA = pval; - if (!of_property_read_u32(np, "regulator-max-microamp", &pval)) - constraints->max_uA = pval; - - if (!of_property_read_u32(np, "regulator-input-current-limit-microamp", - &pval)) - constraints->ilim_uA = pval; + of_property_read_u32(np, "regulator-microvolt-offset", + &constraints->uV_offset); + of_property_read_u32(np, "regulator-min-microamp", + &constraints->min_uA); + of_property_read_u32(np, "regulator-max-microamp", + &constraints->max_uA); + of_property_read_u32(np, "regulator-input-current-limit-microamp", + &constraints->ilim_uA); /* Current change possible? */ if (constraints->min_uA != constraints->max_uA) @@ -79,17 +77,13 @@ static void of_get_regulation_constraints(struct device_node *np, if (of_property_read_bool(np, "regulator-allow-set-load")) constraints->valid_ops_mask |= REGULATOR_CHANGE_DRMS; - ret = of_property_read_u32(np, "regulator-ramp-delay", &pval); - if (!ret) { - if (pval) - constraints->ramp_delay = pval; - else + if (!of_property_read_u32(np, "regulator-ramp-delay", + &constraints->ramp_delay)) + if (!constraints->ramp_delay) constraints->ramp_disable = true; - } - ret = of_property_read_u32(np, "regulator-enable-ramp-delay", &pval); - if (!ret) - constraints->enable_time = pval; + of_property_read_u32(np, "regulator-enable-ramp-delay", + &constraints->enable_time); constraints->soft_start = of_property_read_bool(np, "regulator-soft-start"); @@ -107,8 +101,8 @@ static void of_get_regulation_constraints(struct device_node *np, } } - if (!of_property_read_u32(np, "regulator-system-load", &pval)) - constraints->system_load = pval; + of_property_read_u32(np, "regulator-system-load", + &constraints->system_load); constraints->over_current_protection = of_property_read_bool(np, "regulator-over-current-protection"); @@ -154,9 +148,8 @@ static void of_get_regulation_constraints(struct device_node *np, "regulator-off-in-suspend")) suspend_state->disabled = true; - if (!of_property_read_u32(suspend_np, - "regulator-suspend-microvolt", &pval)) - suspend_state->uV = pval; + of_property_read_u32(suspend_np, + "regulator-suspend-microvolt", &suspend_state->uV); of_node_put(suspend_np); suspend_state = NULL; -- 1.9.1 -- 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/