pinctrl: correct a offset while enumerating pins
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / pinctrl / pinconf.c
index 57dbb4b..1259872 100644 (file)
@@ -230,17 +230,18 @@ static void pinconf_dump_pin(struct pinctrl_dev *pctldev,
 static int pinconf_pins_show(struct seq_file *s, void *what)
 {
        struct pinctrl_dev *pctldev = s->private;
-       unsigned pin;
+       unsigned i, pin;
 
        seq_puts(s, "Pin config settings per pin\n");
        seq_puts(s, "Format: pin (name): pinmux setting array\n");
 
-       /* The highest pin number need to be included in the loop, thus <= */
-       for (pin = 0; pin <= pctldev->desc->maxpin; pin++) {
+       /* The pin number can be retrived from the pin controller descriptor */
+       for (i = 0; pin < pctldev->desc->npins; i++) {
                struct pin_desc *desc;
 
+               pin = pctldev->desc->pins[i].number;
                desc = pin_desc_get(pctldev, pin);
-               /* Pin space may be sparse */
+               /* Skip if we cannot search the pin */
                if (desc == NULL)
                        continue;