* [bug report] pinctrl: baytrail: consolidate common mask operation
@ 2023-09-07 9:53 Dan Carpenter
2023-09-08 10:18 ` Raag Jadav
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2023-09-07 9:53 UTC (permalink / raw)
To: raag.jadav; +Cc: linux-gpio
Hello Raag Jadav,
The patch 4cfff5b7af8b: "pinctrl: baytrail: consolidate common mask
operation" from Aug 8, 2023 (linux-next), leads to the following
Smatch static checker warning:
drivers/pinctrl/intel/pinctrl-baytrail.c:1023 byt_pin_config_set()
error: uninitialized symbol 'db_pulse'.
drivers/pinctrl/intel/pinctrl-baytrail.c
918 static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
919 unsigned int offset,
920 unsigned long *configs,
921 unsigned int num_configs)
922 {
923 struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctl_dev);
924 unsigned int param, arg;
925 void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
926 void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
927 void __iomem *db_reg = byt_gpio_reg(vg, offset, BYT_DEBOUNCE_REG);
928 u32 conf, val, db_pulse, debounce;
929 unsigned long flags;
930 int i, ret = 0;
931
932 raw_spin_lock_irqsave(&byt_lock, flags);
933
934 conf = readl(conf_reg);
935 val = readl(val_reg);
936
937 for (i = 0; i < num_configs; i++) {
938 param = pinconf_to_config_param(configs[i]);
939 arg = pinconf_to_config_argument(configs[i]);
940
941 switch (param) {
942 case PIN_CONFIG_BIAS_DISABLE:
943 conf &= ~BYT_PULL_ASSIGN_MASK;
944 break;
945 case PIN_CONFIG_BIAS_PULL_DOWN:
946 /* Set default strength value in case none is given */
947 if (arg == 1)
948 arg = 2000;
949
950 /*
951 * Pull assignment is only applicable in input mode. If
952 * chip is not in input mode, set it and warn about it.
953 */
954 if (val & BYT_INPUT_EN) {
955 val &= ~BYT_INPUT_EN;
956 writel(val, val_reg);
957 dev_warn(vg->dev, "Pin %i: forcibly set to input mode\n", offset);
958 }
959
960 conf &= ~BYT_PULL_ASSIGN_MASK;
961 conf |= BYT_PULL_ASSIGN_DOWN;
962 ret = byt_set_pull_strength(&conf, arg);
963
964 break;
965 case PIN_CONFIG_BIAS_PULL_UP:
966 /* Set default strength value in case none is given */
967 if (arg == 1)
968 arg = 2000;
969
970 /*
971 * Pull assignment is only applicable in input mode. If
972 * chip is not in input mode, set it and warn about it.
973 */
974 if (val & BYT_INPUT_EN) {
975 val &= ~BYT_INPUT_EN;
976 writel(val, val_reg);
977 dev_warn(vg->dev, "Pin %i: forcibly set to input mode\n", offset);
978 }
979
980 conf &= ~BYT_PULL_ASSIGN_MASK;
981 conf |= BYT_PULL_ASSIGN_UP;
982 ret = byt_set_pull_strength(&conf, arg);
983
984 break;
985 case PIN_CONFIG_INPUT_DEBOUNCE:
986 if (arg)
987 conf |= BYT_DEBOUNCE_EN;
988 else
989 conf &= ~BYT_DEBOUNCE_EN;
990
991 switch (arg) {
992 case 375:
993 db_pulse = BYT_DEBOUNCE_PULSE_375US;
994 break;
995 case 750:
996 db_pulse = BYT_DEBOUNCE_PULSE_750US;
997 break;
998 case 1500:
999 db_pulse = BYT_DEBOUNCE_PULSE_1500US;
1000 break;
1001 case 3000:
1002 db_pulse = BYT_DEBOUNCE_PULSE_3MS;
1003 break;
1004 case 6000:
1005 db_pulse = BYT_DEBOUNCE_PULSE_6MS;
1006 break;
1007 case 12000:
1008 db_pulse = BYT_DEBOUNCE_PULSE_12MS;
1009 break;
1010 case 24000:
1011 db_pulse = BYT_DEBOUNCE_PULSE_24MS;
1012 break;
1013 default:
1014 if (arg)
1015 ret = -EINVAL;
db_pulse is uninitialized if arg is zero.
1016 break;
1017 }
1018
1019 if (ret)
1020 break;
1021
1022 debounce = readl(db_reg);
--> 1023 debounce = (debounce & ~BYT_DEBOUNCE_PULSE_MASK) | db_pulse;
1024 writel(debounce, db_reg);
1025
1026 break;
1027 default:
1028 ret = -ENOTSUPP;
1029 }
1030
1031 if (ret)
1032 break;
1033 }
1034
1035 if (!ret)
1036 writel(conf, conf_reg);
1037
1038 raw_spin_unlock_irqrestore(&byt_lock, flags);
1039
1040 return ret;
1041 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [bug report] pinctrl: baytrail: consolidate common mask operation
2023-09-07 9:53 [bug report] pinctrl: baytrail: consolidate common mask operation Dan Carpenter
@ 2023-09-08 10:18 ` Raag Jadav
0 siblings, 0 replies; 2+ messages in thread
From: Raag Jadav @ 2023-09-08 10:18 UTC (permalink / raw)
To: Dan Carpenter; +Cc: linux-gpio
On Thu, Sep 07, 2023 at 12:53:54PM +0300, Dan Carpenter wrote:
> Hello Raag Jadav,
>
> The patch 4cfff5b7af8b: "pinctrl: baytrail: consolidate common mask
> operation" from Aug 8, 2023 (linux-next), leads to the following
> Smatch static checker warning:
>
> drivers/pinctrl/intel/pinctrl-baytrail.c:1023 byt_pin_config_set()
> error: uninitialized symbol 'db_pulse'.
Thanks for the report.
I have a fix in internal review, will send it out soon.
Raag
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-09-08 10:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-07 9:53 [bug report] pinctrl: baytrail: consolidate common mask operation Dan Carpenter
2023-09-08 10:18 ` Raag Jadav
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).