All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-sh@vger.kernel.org,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH 08/13] pinctrl: sh-pfc: checker: Improve pin group checks
Date: Fri, 10 Jan 2020 13:19:22 +0000	[thread overview]
Message-ID: <20200110131927.1029-9-geert+renesas@glider.be> (raw)
In-Reply-To: <20200110131927.1029-1-geert+renesas@glider.be>

Improve the checks for pin group descriptors:
  1. Introduce a local variable for the current group, to make the
     checks easier to read,
  2. Pin group names must be unique.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/pinctrl/sh-pfc/core.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
index 54e433149e9bf715..4642959714f97102 100644
--- a/drivers/pinctrl/sh-pfc/core.c
+++ b/drivers/pinctrl/sh-pfc/core.c
@@ -916,15 +916,22 @@ static void __init sh_pfc_check_info(const struct sh_pfc_soc_info *info)
 	}
 
 	for (i = 0; i < info->nr_groups; i++) {
-		if (!info->groups[i].name) {
+		const struct sh_pfc_pin_group *group = &info->groups[i];
+
+		if (!group->name) {
 			sh_pfc_err("empty group %u\n", i);
 			continue;
 		}
+		for (j = 0; j < i; j++) {
+			if (same_name(group->name, info->groups[j].name))
+				sh_pfc_err("group %s: name conflict\n",
+					   group->name);
+		}
 		if (!refcnts[i])
-			sh_pfc_err("orphan group %s\n", info->groups[i].name);
+			sh_pfc_err("orphan group %s\n", group->name);
 		else if (refcnts[i] > 1)
 			sh_pfc_warn("group %s referenced by %u functions\n",
-				    info->groups[i].name, refcnts[i]);
+				    group->name, refcnts[i]);
 	}
 
 	kfree(refcnts);
-- 
2.17.1

WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-sh@vger.kernel.org,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH 08/13] pinctrl: sh-pfc: checker: Improve pin group checks
Date: Fri, 10 Jan 2020 14:19:22 +0100	[thread overview]
Message-ID: <20200110131927.1029-9-geert+renesas@glider.be> (raw)
In-Reply-To: <20200110131927.1029-1-geert+renesas@glider.be>

Improve the checks for pin group descriptors:
  1. Introduce a local variable for the current group, to make the
     checks easier to read,
  2. Pin group names must be unique.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/pinctrl/sh-pfc/core.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
index 54e433149e9bf715..4642959714f97102 100644
--- a/drivers/pinctrl/sh-pfc/core.c
+++ b/drivers/pinctrl/sh-pfc/core.c
@@ -916,15 +916,22 @@ static void __init sh_pfc_check_info(const struct sh_pfc_soc_info *info)
 	}
 
 	for (i = 0; i < info->nr_groups; i++) {
-		if (!info->groups[i].name) {
+		const struct sh_pfc_pin_group *group = &info->groups[i];
+
+		if (!group->name) {
 			sh_pfc_err("empty group %u\n", i);
 			continue;
 		}
+		for (j = 0; j < i; j++) {
+			if (same_name(group->name, info->groups[j].name))
+				sh_pfc_err("group %s: name conflict\n",
+					   group->name);
+		}
 		if (!refcnts[i])
-			sh_pfc_err("orphan group %s\n", info->groups[i].name);
+			sh_pfc_err("orphan group %s\n", group->name);
 		else if (refcnts[i] > 1)
 			sh_pfc_warn("group %s referenced by %u functions\n",
-				    info->groups[i].name, refcnts[i]);
+				    group->name, refcnts[i]);
 	}
 
 	kfree(refcnts);
-- 
2.17.1


  parent reply	other threads:[~2020-01-10 13:19 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-10 13:19 [PATCH 00/13] pinctrl: sh-pfc: checker: Various improvements Geert Uytterhoeven
2020-01-10 13:19 ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 01/13] pinctrl: sh-pfc: checker: Move data before code Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 02/13] pinctrl: sh-pfc: checker: Add helpers for reporting Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 03/13] pinctrl: sh-pfc: checker: Add helper for safe name comparison Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 04/13] pinctrl: sh-pfc: checker: Add check for config register conflicts Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 05/13] pinctrl: sh-pfc: checker: Add check for enum ID conflicts Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 06/13] pinctrl: sh-pfc: checker: Improve pin checks Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 07/13] pinctrl: sh-pfc: checker: Improve pin function checks Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` Geert Uytterhoeven [this message]
2020-01-10 13:19   ` [PATCH 08/13] pinctrl: sh-pfc: checker: Improve pin group checks Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 09/13] pinctrl: sh-pfc: checker: Add drive strength register checks Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 10/13] pinctrl: sh-pfc: checker: Add bias " Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 11/13] pinctrl: sh-pfc: checker: Add ioctrl " Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 12/13] pinctrl: sh-pfc: checker: Add data " Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:19 ` [PATCH 13/13] pinctrl: sh-pfc: checker: Add function GPIO checks Geert Uytterhoeven
2020-01-10 13:19   ` Geert Uytterhoeven
2020-01-10 13:22   ` Geert Uytterhoeven
2020-01-10 13:22     ` Geert Uytterhoeven
2020-01-10 20:29 ` [PATCH 00/13] pinctrl: sh-pfc: checker: Various improvements Niklas Söderlund
2020-01-10 20:29   ` Niklas Söderlund
2020-02-10 13:46   ` Geert Uytterhoeven
2020-02-10 13:46     ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200110131927.1029-9-geert+renesas@glider.be \
    --to=geert+renesas@glider.be \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.