Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp3194209rwb; Mon, 19 Sep 2022 16:59:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Vprr6c72PqL6rGTJjbwgw1Womy7CtblnGdXSqbrkxgwIwgxB9OgdeZ5MJKu0nXz2sFkWz X-Received: by 2002:a05:6a00:190d:b0:550:6db3:b9be with SMTP id y13-20020a056a00190d00b005506db3b9bemr3427057pfi.1.1663631954522; Mon, 19 Sep 2022 16:59:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663631954; cv=none; d=google.com; s=arc-20160816; b=fjIvXVsbbfqu9xaNdTWocOeESpRc3a7O4q5MohkSs+pznBSTNP97de5ipNpg4FUhFG E/kOpnwJseJ6TOGde09XN+qdA86xn1/A41ZJMsFm4GdPuVPaGh2PWAC2BRrXFBVxt0l0 R0/rI5lFaT9526x+TuCGRztsQzhjytStDsWJExnnW9UP62YAfBt3O1wnwzrsnsmdtFIy uppSm2wHRiwdg9QyVxi+bldMxeb00yV6e1CyPJ7zODF9B0+yG9iXCkO1ueOaUnJscwAa XEsAViQ6Jz/gZLvzlqeddAgQ3g5YnodlX0IR9AnC4Nsl8UGIPB13AjSaF+NlU5Y2isg9 pAHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=B1QW5eCktyNKF1Kabrt/RgSIFVK+r7/SbP4DaTVv7K4=; b=APMbrtn0+I/MBuz6k+ATjJc1TIUP4pZQOhsW7a/4oES25VIFWf+OnB+JM/O2jjkpr1 kGt76bpw0BdIaMiDcqI+5TBF17nx0xDTPEcwIEYvuRY5FN/NHotshsJagBxlXcGmh4+9 TATaNFOKxn3lSY0X7Hh3YTDd+5L1kRNlYUhAdNFCRL6pM7kPn9Gavk8HaYD1ZQZ+/RSi m0Mwse2DPT5IFXjgf6m7BhjaKMnTMpIwkNWQGuAbpoAAT1mGFQIXeaSi4jlfBz8TIE3L 8FuMn3clVFH7LHI6JcU081beUAYwsAsPvSjAbimF4XSHVhpOHtvt1qRVCtl/dmZ8Yffz Wurw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Flfj3bfb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v27-20020a63151b000000b00438950b4d21si1283966pgl.692.2022.09.19.16.59.03; Mon, 19 Sep 2022 16:59:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Flfj3bfb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229819AbiISXR5 (ORCPT + 99 others); Mon, 19 Sep 2022 19:17:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229881AbiISXRl (ORCPT ); Mon, 19 Sep 2022 19:17:41 -0400 Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A1DB4B4A1 for ; Mon, 19 Sep 2022 16:17:40 -0700 (PDT) Received: by mail-qt1-x835.google.com with SMTP id s18so640198qtx.6 for ; Mon, 19 Sep 2022 16:17:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=B1QW5eCktyNKF1Kabrt/RgSIFVK+r7/SbP4DaTVv7K4=; b=Flfj3bfbuMcJgkc5VwyXJ5HLfoFARhjJ/1Dg89a63HO9anhnDH4YjH6mIm5yP6kcGF joXSUtDg6hfeKbKbvmMOF/ol5sXQmmrInzTPTcPYk9JcgRLcl/78AVu2P+p9VrzGrNQF TgoT/W6QHLrqI/N7T/sEjLqpqWrlfTXfoJC+0pTXs75IvLGBBGzJs6SfTXgSNyNs/OF/ FnKiClf8JobkL37MDh70WvW+9tbSAJYTZGJ/UFiGJmSq8Cc5T5Ne23GjEZZdWjWXl0Vd 7hh8963tvSMJzMot7TDo6M9QeVva3U4CFg4V/nJnRJ8bxjINxtHwNK2CbY/y6WGFNdKq o4GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=B1QW5eCktyNKF1Kabrt/RgSIFVK+r7/SbP4DaTVv7K4=; b=5niAs2tdWCwFpH2b6MesSA10Yf8CMHmkCOsaM79+arPYioxpLBAInAlg4f4+qIZknx yTVXgkQ310qh9Y9BURaXKxgokJoB9EyyTCgQWG9Z/LmxQZ6MmWqMek5R74Pk02cQGtVS NZC2PS6KjwJ2p9ezrqnkDYhtJVd9U2MWlG2ew3exQeyLRcwR7Oi81Nh2cSy8/SmDmSFv q1oA2AeT4okzcVAa4kqJ0ODvVNdBYX69qMyWo1hyFQrrBA095MiN8ylwNfzZZYBZzwTG /mpPqXA5GEipoPoGCbvUdJ3nTnP0bxhSAPLHJKBa7y+rZ+evp4OF+/xNlMBQVmvhe0RL P49w== X-Gm-Message-State: ACrzQf1gfCWx/4yUce+dsdR0Tejr2Vb76zSD8CyHJq9Q5JH+LJUSL9TL a8057ZqUPFO7KU6XOdPdDdIiPQ== X-Received: by 2002:ac8:5a8c:0:b0:35b:b2f7:7e96 with SMTP id c12-20020ac85a8c000000b0035bb2f77e96mr16996691qtc.659.1663629458980; Mon, 19 Sep 2022 16:17:38 -0700 (PDT) Received: from fedora.attlocal.net (69-109-179-158.lightspeed.dybhfl.sbcglobal.net. [69.109.179.158]) by smtp.gmail.com with ESMTPSA id d4-20020ac80604000000b0035cebb79aaesm2547005qth.18.2022.09.19.16.17.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Sep 2022 16:17:38 -0700 (PDT) From: William Breathitt Gray To: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org, mranostay@ti.com, jpanis@baylibre.com, gwendal@chromium.org, bleung@chromium.org, groeck@chromium.org, jic23@kernel.org, david@lechnology.com, robertcnelson@gmail.com, William Breathitt Gray Subject: [PATCH v4 3/4] counter: Consolidate Counter extension sysfs attribute creation Date: Sun, 18 Sep 2022 14:22:06 -0400 Message-Id: X-Mailer: git-send-email 2.37.3 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_24_48, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Counter extensions are handled for the Device, Counts, and Signals. The code loops through each Counter extension and creates the expected sysfs attributes. This patch consolidates that code into functions to reduce redundancy and make the intention of the code clearer. Signed-off-by: William Breathitt Gray --- drivers/counter/counter-sysfs.c | 98 ++++++++++++++++----------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/drivers/counter/counter-sysfs.c b/drivers/counter/counter-sysfs.c index e5dd36e1a45f..b393da402e0b 100644 --- a/drivers/counter/counter-sysfs.c +++ b/drivers/counter/counter-sysfs.c @@ -592,6 +592,46 @@ static int counter_comp_id_attr_create(struct device *const dev, return 0; } +static int counter_ext_attrs_create(struct device *const dev, + struct counter_attribute_group *const group, + const struct counter_comp *const ext, + const enum counter_scope scope, + void *const parent, const size_t id) +{ + int err; + + /* Create main extension attribute */ + err = counter_attr_create(dev, group, ext, scope, parent); + if (err < 0) + return err; + + /* Create extension id attribute */ + return counter_comp_id_attr_create(dev, group, ext->name, id); +} + +static int counter_sysfs_exts_add(struct device *const dev, + struct counter_attribute_group *const group, + const struct counter_comp *const exts, + const size_t num_ext, + const enum counter_scope scope, + void *const parent) +{ + size_t i; + const struct counter_comp *ext; + int err; + + /* Create attributes for each extension */ + for (i = 0; i < num_ext; i++) { + ext = &exts[i]; + err = counter_ext_attrs_create(dev, group, ext, scope, parent, + i); + if (err < 0) + return err; + } + + return 0; +} + static struct counter_comp counter_signal_comp = { .type = COUNTER_COMP_SIGNAL_LEVEL, .name = "signal", @@ -605,8 +645,6 @@ static int counter_signal_attrs_create(struct counter_device *const counter, struct device *const dev = &counter->dev; int err; struct counter_comp comp; - size_t i; - struct counter_comp *ext; /* Create main Signal attribute */ comp = counter_signal_comp; @@ -620,21 +658,9 @@ static int counter_signal_attrs_create(struct counter_device *const counter, if (err < 0) return err; - /* Create an attribute for each extension */ - for (i = 0; i < signal->num_ext; i++) { - ext = &signal->ext[i]; - - err = counter_attr_create(dev, cattr_group, ext, scope, signal); - if (err < 0) - return err; - - err = counter_comp_id_attr_create(dev, cattr_group, ext->name, - i); - if (err < 0) - return err; - } - - return 0; + /* Add Signal extensions */ + return counter_sysfs_exts_add(dev, cattr_group, signal->ext, + signal->num_ext, scope, signal); } static int counter_sysfs_signals_add(struct counter_device *const counter, @@ -719,8 +745,6 @@ static int counter_count_attrs_create(struct counter_device *const counter, struct device *const dev = &counter->dev; int err; struct counter_comp comp; - size_t i; - struct counter_comp *ext; /* Create main Count attribute */ comp = counter_count_comp; @@ -743,21 +767,9 @@ static int counter_count_attrs_create(struct counter_device *const counter, if (err < 0) return err; - /* Create an attribute for each extension */ - for (i = 0; i < count->num_ext; i++) { - ext = &count->ext[i]; - - err = counter_attr_create(dev, cattr_group, ext, scope, count); - if (err < 0) - return err; - - err = counter_comp_id_attr_create(dev, cattr_group, ext->name, - i); - if (err < 0) - return err; - } - - return 0; + /* Add Count extensions */ + return counter_sysfs_exts_add(dev, cattr_group, count->ext, + count->num_ext, scope, count); } static int counter_sysfs_counts_add(struct counter_device *const counter, @@ -850,8 +862,6 @@ static int counter_sysfs_attr_add(struct counter_device *const counter, const enum counter_scope scope = COUNTER_SCOPE_DEVICE; struct device *const dev = &counter->dev; int err; - size_t i; - struct counter_comp *ext; /* Add Signals sysfs attributes */ err = counter_sysfs_signals_add(counter, cattr_group); @@ -888,19 +898,9 @@ static int counter_sysfs_attr_add(struct counter_device *const counter, if (err < 0) return err; - /* Create an attribute for each extension */ - for (i = 0; i < counter->num_ext; i++) { - ext = &counter->ext[i]; - - err = counter_attr_create(dev, cattr_group, ext, scope, NULL); - if (err < 0) - return err; - - err = counter_comp_id_attr_create(dev, cattr_group, ext->name, - i); - if (err < 0) - return err; - } + /* Add device extensions */ + return counter_sysfs_exts_add(dev, cattr_group, counter->ext, + counter->num_ext, scope, NULL); return 0; } -- 2.37.3