From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/firmware/arm_scmi/scmi_pm_domain.c:40 scmi_pd_power() error: uninitialized symbol 'ret_state'.
Date: Wed, 08 Dec 2021 19:19:03 +0800 [thread overview]
Message-ID: <202112081921.SnWPhJS3-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10500 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>
CC: Bjorn Andersson <bjorn.andersson@linaro.org>
CC: Charles Keepax <ckeepax@opensource.cirrus.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2a987e65025e2b79c6d453b78cb5985ac6e5eb26
commit: 951cd3a0866d29cb9c01ebc1d9c17590e598226e firmware: include drivers/firmware/Kconfig unconditionally
date: 9 weeks ago
:::::: branch date: 12 hours ago
:::::: commit date: 9 weeks ago
config: arc-randconfig-m031-20211208 (https://download.01.org/0day-ci/archive/20211208/202112081921.SnWPhJS3-lkp(a)intel.com/config)
compiler: arc-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/firmware/arm_scmi/scmi_pm_domain.c:40 scmi_pd_power() error: uninitialized symbol 'ret_state'.
drivers/firmware/arm_scmi/scmi_pm_domain.c:95 scmi_pm_domain_probe() error: uninitialized symbol 'ph'.
vim +/ret_state +40 drivers/firmware/arm_scmi/scmi_pm_domain.c
898216c97ed2eb Sudeep Holla 2017-06-14 25
898216c97ed2eb Sudeep Holla 2017-06-14 26 static int scmi_pd_power(struct generic_pm_domain *domain, bool power_on)
898216c97ed2eb Sudeep Holla 2017-06-14 27 {
898216c97ed2eb Sudeep Holla 2017-06-14 28 int ret;
898216c97ed2eb Sudeep Holla 2017-06-14 29 u32 state, ret_state;
898216c97ed2eb Sudeep Holla 2017-06-14 30 struct scmi_pm_domain *pd = to_scmi_pd(domain);
898216c97ed2eb Sudeep Holla 2017-06-14 31
898216c97ed2eb Sudeep Holla 2017-06-14 32 if (power_on)
898216c97ed2eb Sudeep Holla 2017-06-14 33 state = SCMI_POWER_STATE_GENERIC_ON;
898216c97ed2eb Sudeep Holla 2017-06-14 34 else
898216c97ed2eb Sudeep Holla 2017-06-14 35 state = SCMI_POWER_STATE_GENERIC_OFF;
898216c97ed2eb Sudeep Holla 2017-06-14 36
26f19496a9764c Cristian Marussi 2021-03-16 37 ret = power_ops->state_set(pd->ph, pd->domain, state);
898216c97ed2eb Sudeep Holla 2017-06-14 38 if (!ret)
26f19496a9764c Cristian Marussi 2021-03-16 39 ret = power_ops->state_get(pd->ph, pd->domain, &ret_state);
898216c97ed2eb Sudeep Holla 2017-06-14 @40 if (!ret && state != ret_state)
898216c97ed2eb Sudeep Holla 2017-06-14 41 return -EIO;
898216c97ed2eb Sudeep Holla 2017-06-14 42
898216c97ed2eb Sudeep Holla 2017-06-14 43 return ret;
898216c97ed2eb Sudeep Holla 2017-06-14 44 }
898216c97ed2eb Sudeep Holla 2017-06-14 45
898216c97ed2eb Sudeep Holla 2017-06-14 46 static int scmi_pd_power_on(struct generic_pm_domain *domain)
898216c97ed2eb Sudeep Holla 2017-06-14 47 {
898216c97ed2eb Sudeep Holla 2017-06-14 48 return scmi_pd_power(domain, true);
898216c97ed2eb Sudeep Holla 2017-06-14 49 }
898216c97ed2eb Sudeep Holla 2017-06-14 50
898216c97ed2eb Sudeep Holla 2017-06-14 51 static int scmi_pd_power_off(struct generic_pm_domain *domain)
898216c97ed2eb Sudeep Holla 2017-06-14 52 {
898216c97ed2eb Sudeep Holla 2017-06-14 53 return scmi_pd_power(domain, false);
898216c97ed2eb Sudeep Holla 2017-06-14 54 }
898216c97ed2eb Sudeep Holla 2017-06-14 55
a3b884cef8730c Nicolas Pitre 2021-05-07 56 static int scmi_pd_attach_dev(struct generic_pm_domain *pd, struct device *dev)
a3b884cef8730c Nicolas Pitre 2021-05-07 57 {
a3b884cef8730c Nicolas Pitre 2021-05-07 58 int ret;
a3b884cef8730c Nicolas Pitre 2021-05-07 59
a3b884cef8730c Nicolas Pitre 2021-05-07 60 ret = pm_clk_create(dev);
a3b884cef8730c Nicolas Pitre 2021-05-07 61 if (ret)
a3b884cef8730c Nicolas Pitre 2021-05-07 62 return ret;
a3b884cef8730c Nicolas Pitre 2021-05-07 63
a3b884cef8730c Nicolas Pitre 2021-05-07 64 ret = of_pm_clk_add_clks(dev);
a3b884cef8730c Nicolas Pitre 2021-05-07 65 if (ret >= 0)
a3b884cef8730c Nicolas Pitre 2021-05-07 66 return 0;
a3b884cef8730c Nicolas Pitre 2021-05-07 67
a3b884cef8730c Nicolas Pitre 2021-05-07 68 pm_clk_destroy(dev);
a3b884cef8730c Nicolas Pitre 2021-05-07 69 return ret;
a3b884cef8730c Nicolas Pitre 2021-05-07 70 }
a3b884cef8730c Nicolas Pitre 2021-05-07 71
a3b884cef8730c Nicolas Pitre 2021-05-07 72 static void scmi_pd_detach_dev(struct generic_pm_domain *pd, struct device *dev)
a3b884cef8730c Nicolas Pitre 2021-05-07 73 {
a3b884cef8730c Nicolas Pitre 2021-05-07 74 pm_clk_destroy(dev);
a3b884cef8730c Nicolas Pitre 2021-05-07 75 }
a3b884cef8730c Nicolas Pitre 2021-05-07 76
898216c97ed2eb Sudeep Holla 2017-06-14 77 static int scmi_pm_domain_probe(struct scmi_device *sdev)
898216c97ed2eb Sudeep Holla 2017-06-14 78 {
898216c97ed2eb Sudeep Holla 2017-06-14 79 int num_domains, i;
898216c97ed2eb Sudeep Holla 2017-06-14 80 struct device *dev = &sdev->dev;
898216c97ed2eb Sudeep Holla 2017-06-14 81 struct device_node *np = dev->of_node;
898216c97ed2eb Sudeep Holla 2017-06-14 82 struct scmi_pm_domain *scmi_pd;
898216c97ed2eb Sudeep Holla 2017-06-14 83 struct genpd_onecell_data *scmi_pd_data;
898216c97ed2eb Sudeep Holla 2017-06-14 84 struct generic_pm_domain **domains;
898216c97ed2eb Sudeep Holla 2017-06-14 85 const struct scmi_handle *handle = sdev->handle;
26f19496a9764c Cristian Marussi 2021-03-16 86 struct scmi_protocol_handle *ph;
898216c97ed2eb Sudeep Holla 2017-06-14 87
26f19496a9764c Cristian Marussi 2021-03-16 88 if (!handle)
898216c97ed2eb Sudeep Holla 2017-06-14 89 return -ENODEV;
898216c97ed2eb Sudeep Holla 2017-06-14 90
26f19496a9764c Cristian Marussi 2021-03-16 91 power_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_POWER, &ph);
26f19496a9764c Cristian Marussi 2021-03-16 92 if (IS_ERR(power_ops))
26f19496a9764c Cristian Marussi 2021-03-16 93 return PTR_ERR(power_ops);
26f19496a9764c Cristian Marussi 2021-03-16 94
26f19496a9764c Cristian Marussi 2021-03-16 @95 num_domains = power_ops->num_domains_get(ph);
898216c97ed2eb Sudeep Holla 2017-06-14 96 if (num_domains < 0) {
898216c97ed2eb Sudeep Holla 2017-06-14 97 dev_err(dev, "number of domains not found\n");
898216c97ed2eb Sudeep Holla 2017-06-14 98 return num_domains;
898216c97ed2eb Sudeep Holla 2017-06-14 99 }
898216c97ed2eb Sudeep Holla 2017-06-14 100
898216c97ed2eb Sudeep Holla 2017-06-14 101 scmi_pd = devm_kcalloc(dev, num_domains, sizeof(*scmi_pd), GFP_KERNEL);
898216c97ed2eb Sudeep Holla 2017-06-14 102 if (!scmi_pd)
898216c97ed2eb Sudeep Holla 2017-06-14 103 return -ENOMEM;
898216c97ed2eb Sudeep Holla 2017-06-14 104
898216c97ed2eb Sudeep Holla 2017-06-14 105 scmi_pd_data = devm_kzalloc(dev, sizeof(*scmi_pd_data), GFP_KERNEL);
898216c97ed2eb Sudeep Holla 2017-06-14 106 if (!scmi_pd_data)
898216c97ed2eb Sudeep Holla 2017-06-14 107 return -ENOMEM;
898216c97ed2eb Sudeep Holla 2017-06-14 108
898216c97ed2eb Sudeep Holla 2017-06-14 109 domains = devm_kcalloc(dev, num_domains, sizeof(*domains), GFP_KERNEL);
898216c97ed2eb Sudeep Holla 2017-06-14 110 if (!domains)
898216c97ed2eb Sudeep Holla 2017-06-14 111 return -ENOMEM;
898216c97ed2eb Sudeep Holla 2017-06-14 112
898216c97ed2eb Sudeep Holla 2017-06-14 113 for (i = 0; i < num_domains; i++, scmi_pd++) {
898216c97ed2eb Sudeep Holla 2017-06-14 114 u32 state;
898216c97ed2eb Sudeep Holla 2017-06-14 115
26f19496a9764c Cristian Marussi 2021-03-16 116 if (power_ops->state_get(ph, i, &state)) {
e0f1a30cf18482 Cristian Marussi 2020-06-19 117 dev_warn(dev, "failed to get state for domain %d\n", i);
e0f1a30cf18482 Cristian Marussi 2020-06-19 118 continue;
e0f1a30cf18482 Cristian Marussi 2020-06-19 119 }
898216c97ed2eb Sudeep Holla 2017-06-14 120
898216c97ed2eb Sudeep Holla 2017-06-14 121 scmi_pd->domain = i;
26f19496a9764c Cristian Marussi 2021-03-16 122 scmi_pd->ph = ph;
26f19496a9764c Cristian Marussi 2021-03-16 123 scmi_pd->name = power_ops->name_get(ph, i);
898216c97ed2eb Sudeep Holla 2017-06-14 124 scmi_pd->genpd.name = scmi_pd->name;
898216c97ed2eb Sudeep Holla 2017-06-14 125 scmi_pd->genpd.power_off = scmi_pd_power_off;
898216c97ed2eb Sudeep Holla 2017-06-14 126 scmi_pd->genpd.power_on = scmi_pd_power_on;
a3b884cef8730c Nicolas Pitre 2021-05-07 127 scmi_pd->genpd.attach_dev = scmi_pd_attach_dev;
a3b884cef8730c Nicolas Pitre 2021-05-07 128 scmi_pd->genpd.detach_dev = scmi_pd_detach_dev;
a3b884cef8730c Nicolas Pitre 2021-05-07 129 scmi_pd->genpd.flags = GENPD_FLAG_PM_CLK |
a3b884cef8730c Nicolas Pitre 2021-05-07 130 GENPD_FLAG_ACTIVE_WAKEUP;
898216c97ed2eb Sudeep Holla 2017-06-14 131
898216c97ed2eb Sudeep Holla 2017-06-14 132 pm_genpd_init(&scmi_pd->genpd, NULL,
898216c97ed2eb Sudeep Holla 2017-06-14 133 state == SCMI_POWER_STATE_GENERIC_OFF);
e0f1a30cf18482 Cristian Marussi 2020-06-19 134
e0f1a30cf18482 Cristian Marussi 2020-06-19 135 domains[i] = &scmi_pd->genpd;
898216c97ed2eb Sudeep Holla 2017-06-14 136 }
898216c97ed2eb Sudeep Holla 2017-06-14 137
898216c97ed2eb Sudeep Holla 2017-06-14 138 scmi_pd_data->domains = domains;
898216c97ed2eb Sudeep Holla 2017-06-14 139 scmi_pd_data->num_domains = num_domains;
898216c97ed2eb Sudeep Holla 2017-06-14 140
898216c97ed2eb Sudeep Holla 2017-06-14 141 of_genpd_add_provider_onecell(np, scmi_pd_data);
898216c97ed2eb Sudeep Holla 2017-06-14 142
898216c97ed2eb Sudeep Holla 2017-06-14 143 return 0;
898216c97ed2eb Sudeep Holla 2017-06-14 144 }
898216c97ed2eb Sudeep Holla 2017-06-14 145
:::::: The code at line 40 was first introduced by commit
:::::: 898216c97ed2ebfffda659ce12388da43534de6c firmware: arm_scmi: add device power domain support using genpd
:::::: TO: Sudeep Holla <sudeep.holla@arm.com>
:::::: CC: Sudeep Holla <sudeep.holla@arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2021-12-08 11:19 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 11:19 kernel test robot [this message]
2021-12-08 12:34 ` drivers/firmware/arm_scmi/scmi_pm_domain.c:40 scmi_pd_power() error: uninitialized symbol 'ret_state' Dan Carpenter
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=202112081921.SnWPhJS3-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.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.