aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinconf.c
diff options
context:
space:
mode:
authorRussell King - ARM Linux <linux@arm.linux.org.uk>2013-07-28 08:13:00 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-08-07 16:29:30 -0400
commit8a9dcc3ffed66bf6f66c45b11f34de02b0fda4a0 (patch)
tree2e6c2afe9385f595e2faea2305c3a34a1301c48a /drivers/pinctrl/pinconf.c
parentcdaf0645db1416cf24f6481d49c68dffbeec3c64 (diff)
pinctrl: shut up a couple of pinctrl warnings
So, I notice that we get a couple of warnings from the pinctrl code: drivers/pinctrl/pinconf.c: In function 'pinconf_dbg_config_print': drivers/pinctrl/pinconf.c:433:36: warning: 'configs' may be used uninitialized in this function drivers/pinctrl/pinconf.c: In function 'pinconf_dbg_config_write': drivers/pinctrl/pinconf.c:511:36: warning: 'configs' may be used uninitialized in this function While the compiler might not be able to work out that "configs" is safe, the code doesn't lend itself very well to identifying that fact when reading it either. This can be trivially solved by a slight restructuring of the code - which also reduces the LOC. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinconf.c')
-rw-r--r--drivers/pinctrl/pinconf.c29
1 files changed, 11 insertions, 18 deletions
diff --git a/drivers/pinctrl/pinconf.c b/drivers/pinctrl/pinconf.c
index e875f21a5908..d16ef8797f59 100644
--- a/drivers/pinctrl/pinconf.c
+++ b/drivers/pinctrl/pinconf.c
@@ -428,12 +428,11 @@ static int pinconf_dbg_config_print(struct seq_file *s, void *d)
428{ 428{
429 struct pinctrl_maps *maps_node; 429 struct pinctrl_maps *maps_node;
430 const struct pinctrl_map *map; 430 const struct pinctrl_map *map;
431 struct pinctrl_dev *pctldev = NULL; 431 const struct pinctrl_map *found = NULL;
432 struct pinctrl_dev *pctldev;
432 const struct pinconf_ops *confops = NULL; 433 const struct pinconf_ops *confops = NULL;
433 const struct pinctrl_map_configs *configs;
434 struct dbg_cfg *dbg = &pinconf_dbg_conf; 434 struct dbg_cfg *dbg = &pinconf_dbg_conf;
435 int i, j; 435 int i, j;
436 bool found = false;
437 unsigned long config; 436 unsigned long config;
438 437
439 mutex_lock(&pinctrl_maps_mutex); 438 mutex_lock(&pinctrl_maps_mutex);
@@ -450,14 +449,8 @@ static int pinconf_dbg_config_print(struct seq_file *s, void *d)
450 for (j = 0; j < map->data.configs.num_configs; j++) { 449 for (j = 0; j < map->data.configs.num_configs; j++) {
451 if (!strcmp(map->data.configs.group_or_pin, 450 if (!strcmp(map->data.configs.group_or_pin,
452 dbg->pin_name)) { 451 dbg->pin_name)) {
453 /* 452 /* We found the right pin / state */
454 * We found the right pin / state, read the 453 found = map;
455 * config and he pctldev for later use
456 */
457 configs = &map->data.configs;
458 pctldev = get_pinctrl_dev_from_devname
459 (map->ctrl_dev_name);
460 found = true;
461 break; 454 break;
462 } 455 }
463 } 456 }
@@ -473,7 +466,8 @@ static int pinconf_dbg_config_print(struct seq_file *s, void *d)
473 goto exit; 466 goto exit;
474 } 467 }
475 468
476 config = *(configs->configs); 469 pctldev = get_pinctrl_dev_from_devname(found->ctrl_dev_name);
470 config = *found->data.configs.configs;
477 seq_printf(s, "Dev %s has config of %s in state %s: 0x%08lX\n", 471 seq_printf(s, "Dev %s has config of %s in state %s: 0x%08lX\n",
478 dbg->dev_name, dbg->pin_name, 472 dbg->dev_name, dbg->pin_name,
479 dbg->state_name, config); 473 dbg->state_name, config);
@@ -505,12 +499,12 @@ static int pinconf_dbg_config_write(struct file *file,
505{ 499{
506 struct pinctrl_maps *maps_node; 500 struct pinctrl_maps *maps_node;
507 const struct pinctrl_map *map; 501 const struct pinctrl_map *map;
508 struct pinctrl_dev *pctldev = NULL; 502 const struct pinctrl_map *found = NULL;
503 struct pinctrl_dev *pctldev;
509 const struct pinconf_ops *confops = NULL; 504 const struct pinconf_ops *confops = NULL;
510 struct dbg_cfg *dbg = &pinconf_dbg_conf; 505 struct dbg_cfg *dbg = &pinconf_dbg_conf;
511 const struct pinctrl_map_configs *configs; 506 const struct pinctrl_map_configs *configs;
512 char config[MAX_NAME_LEN+1]; 507 char config[MAX_NAME_LEN+1];
513 bool found = false;
514 char buf[128]; 508 char buf[128];
515 char *b = &buf[0]; 509 char *b = &buf[0];
516 int buf_size; 510 int buf_size;
@@ -588,10 +582,7 @@ static int pinconf_dbg_config_write(struct file *file,
588 582
589 /* we found the right pin / state, so overwrite config */ 583 /* we found the right pin / state, so overwrite config */
590 if (!strcmp(map->data.configs.group_or_pin, dbg->pin_name)) { 584 if (!strcmp(map->data.configs.group_or_pin, dbg->pin_name)) {
591 found = true; 585 found = map;
592 pctldev = get_pinctrl_dev_from_devname(
593 map->ctrl_dev_name);
594 configs = &map->data.configs;
595 break; 586 break;
596 } 587 }
597 } 588 }
@@ -601,10 +592,12 @@ static int pinconf_dbg_config_write(struct file *file,
601 goto exit; 592 goto exit;
602 } 593 }
603 594
595 pctldev = get_pinctrl_dev_from_devname(found->ctrl_dev_name);
604 if (pctldev) 596 if (pctldev)
605 confops = pctldev->desc->confops; 597 confops = pctldev->desc->confops;
606 598
607 if (confops && confops->pin_config_dbg_parse_modify) { 599 if (confops && confops->pin_config_dbg_parse_modify) {
600 configs = &found->data.configs;
608 for (i = 0; i < configs->num_configs; i++) { 601 for (i = 0; i < configs->num_configs; i++) {
609 confops->pin_config_dbg_parse_modify(pctldev, 602 confops->pin_config_dbg_parse_modify(pctldev,
610 config, 603 config,