From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Lucas Stach <l.stach@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>, Rob Herring <robh+dt@kernel.org>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
NXP Linux Team <linux-imx@nxp.com>,
Adam Ford <aford173@gmail.com>,
Frieder Schrempf <frieder.schrempf@kontron.de>,
Peng Fan <peng.fan@nxp.com>, Marek Vasut <marex@denx.de>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
kernel@pengutronix.de
Subject: Re: [PATCH 09/17] soc: imx: add i.MX8M blk-ctrl driver
Date: Mon, 19 Jul 2021 09:12:15 +0300 [thread overview]
Message-ID: <202107181452.0x9rl7rG-lkp@intel.com> (raw)
In-Reply-To: <20210716232916.3572966-10-l.stach@pengutronix.de>
Hi Lucas,
url: https://github.com/0day-ci/linux/commits/Lucas-Stach/i-MX8MM-GPC-improvements-and-BLK_CTRL-driver/20210718-102944
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: i386-randconfig-m021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.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/soc/imx/imx8m-blk-ctrl.c:222 imx8m_blk_ctrl_probe() warn: missing error code 'ret'
vim +/ret +222 drivers/soc/imx/imx8m-blk-ctrl.c
446185fda14696 Lucas Stach 2021-07-17 150 static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
446185fda14696 Lucas Stach 2021-07-17 151 {
446185fda14696 Lucas Stach 2021-07-17 152 const struct imx8m_blk_ctrl_data *bc_data;
446185fda14696 Lucas Stach 2021-07-17 153 struct device *dev = &pdev->dev;
446185fda14696 Lucas Stach 2021-07-17 154 struct imx8m_blk_ctrl *bc;
446185fda14696 Lucas Stach 2021-07-17 155 void __iomem *base;
446185fda14696 Lucas Stach 2021-07-17 156 int i, ret;
446185fda14696 Lucas Stach 2021-07-17 157
446185fda14696 Lucas Stach 2021-07-17 158 struct regmap_config regmap_config = {
446185fda14696 Lucas Stach 2021-07-17 159 .reg_bits = 32,
446185fda14696 Lucas Stach 2021-07-17 160 .val_bits = 32,
446185fda14696 Lucas Stach 2021-07-17 161 .reg_stride = 4,
446185fda14696 Lucas Stach 2021-07-17 162 };
446185fda14696 Lucas Stach 2021-07-17 163
446185fda14696 Lucas Stach 2021-07-17 164 bc = devm_kzalloc(dev, sizeof(*bc), GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 165 if (!bc)
446185fda14696 Lucas Stach 2021-07-17 166 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 167
446185fda14696 Lucas Stach 2021-07-17 168 bc->dev = dev;
446185fda14696 Lucas Stach 2021-07-17 169
446185fda14696 Lucas Stach 2021-07-17 170 bc_data = of_device_get_match_data(dev);
446185fda14696 Lucas Stach 2021-07-17 171
446185fda14696 Lucas Stach 2021-07-17 172 base = devm_platform_ioremap_resource(pdev, 0);
446185fda14696 Lucas Stach 2021-07-17 173 if (IS_ERR(base))
446185fda14696 Lucas Stach 2021-07-17 174 return PTR_ERR(base);
446185fda14696 Lucas Stach 2021-07-17 175
446185fda14696 Lucas Stach 2021-07-17 176 regmap_config.max_register = bc_data->max_reg;
446185fda14696 Lucas Stach 2021-07-17 177 bc->regmap = devm_regmap_init_mmio(dev, base, ®map_config);
446185fda14696 Lucas Stach 2021-07-17 178 if (IS_ERR(bc->regmap))
446185fda14696 Lucas Stach 2021-07-17 179 return dev_err_probe(dev, PTR_ERR(bc->regmap),
446185fda14696 Lucas Stach 2021-07-17 180 "failed to init regmap \n");
446185fda14696 Lucas Stach 2021-07-17 181
446185fda14696 Lucas Stach 2021-07-17 182 bc->domains = devm_kcalloc(dev, bc_data->num_domains,
446185fda14696 Lucas Stach 2021-07-17 183 sizeof(struct imx8m_blk_ctrl_domain),
446185fda14696 Lucas Stach 2021-07-17 184 GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 185 if (!bc->domains)
446185fda14696 Lucas Stach 2021-07-17 186 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 187
446185fda14696 Lucas Stach 2021-07-17 188 bc->onecell_data.num_domains = bc_data->num_domains;
446185fda14696 Lucas Stach 2021-07-17 189 bc->onecell_data.xlate = imx8m_blk_ctrl_xlate;
446185fda14696 Lucas Stach 2021-07-17 190 bc->onecell_data.domains =
446185fda14696 Lucas Stach 2021-07-17 191 devm_kcalloc(dev, bc_data->num_domains,
446185fda14696 Lucas Stach 2021-07-17 192 sizeof(struct generic_pm_domain *), GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 193 if (!bc->onecell_data.domains)
446185fda14696 Lucas Stach 2021-07-17 194 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 195
446185fda14696 Lucas Stach 2021-07-17 196 bc->bus_power_dev = genpd_dev_pm_attach_by_name(dev, "bus");
446185fda14696 Lucas Stach 2021-07-17 197 if (IS_ERR(bc->bus_power_dev))
446185fda14696 Lucas Stach 2021-07-17 198 return dev_err_probe(dev, PTR_ERR(bc->bus_power_dev),
446185fda14696 Lucas Stach 2021-07-17 199 "failed to attach power domain\n");
446185fda14696 Lucas Stach 2021-07-17 200
446185fda14696 Lucas Stach 2021-07-17 201 for (i = 0; i < bc_data->num_domains; i++) {
446185fda14696 Lucas Stach 2021-07-17 202 const struct imx8m_blk_ctrl_domain_data *data = &bc_data->domains[i];
446185fda14696 Lucas Stach 2021-07-17 203 struct imx8m_blk_ctrl_domain *domain = &bc->domains[i];
446185fda14696 Lucas Stach 2021-07-17 204 int j;
446185fda14696 Lucas Stach 2021-07-17 205
446185fda14696 Lucas Stach 2021-07-17 206 domain->data = data;
446185fda14696 Lucas Stach 2021-07-17 207
446185fda14696 Lucas Stach 2021-07-17 208 for (j = 0; j < data->num_clks; j++)
446185fda14696 Lucas Stach 2021-07-17 209 domain->clks[j].id = data->clk_names[j];
446185fda14696 Lucas Stach 2021-07-17 210
446185fda14696 Lucas Stach 2021-07-17 211 ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
446185fda14696 Lucas Stach 2021-07-17 212 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 213 dev_err_probe(dev, ret, "failed to get clock\n");
446185fda14696 Lucas Stach 2021-07-17 214 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 215 }
446185fda14696 Lucas Stach 2021-07-17 216
446185fda14696 Lucas Stach 2021-07-17 217 domain->power_dev =
446185fda14696 Lucas Stach 2021-07-17 218 dev_pm_domain_attach_by_name(dev, data->gpc_name);
446185fda14696 Lucas Stach 2021-07-17 219 if (IS_ERR(domain->power_dev )) {
^
Extra space character.
446185fda14696 Lucas Stach 2021-07-17 220 dev_err_probe(dev, PTR_ERR(domain->power_dev),
446185fda14696 Lucas Stach 2021-07-17 221 "failed to attach power domain\n");
446185fda14696 Lucas Stach 2021-07-17 @222 goto cleanup_pds;
ret = PTR_ERR(domain->power_dev);
446185fda14696 Lucas Stach 2021-07-17 223 }
446185fda14696 Lucas Stach 2021-07-17 224
446185fda14696 Lucas Stach 2021-07-17 225 domain->genpd.name = data->name;
446185fda14696 Lucas Stach 2021-07-17 226 domain->genpd.power_on = imx8m_blk_ctrl_power_on;
446185fda14696 Lucas Stach 2021-07-17 227 domain->genpd.power_off = imx8m_blk_ctrl_power_off;
446185fda14696 Lucas Stach 2021-07-17 228 domain->bc = bc;
446185fda14696 Lucas Stach 2021-07-17 229
446185fda14696 Lucas Stach 2021-07-17 230 ret = pm_genpd_init(&domain->genpd, NULL, true);
446185fda14696 Lucas Stach 2021-07-17 231 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 232 dev_err_probe(dev, ret, "failed to init power domain\n");
446185fda14696 Lucas Stach 2021-07-17 233 dev_pm_domain_detach(domain->power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 234 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 235 }
446185fda14696 Lucas Stach 2021-07-17 236
446185fda14696 Lucas Stach 2021-07-17 237 /*
446185fda14696 Lucas Stach 2021-07-17 238 * We use runtime PM to trigger power on/off of the upstream GPC
446185fda14696 Lucas Stach 2021-07-17 239 * domain, as a strict hierarchical parent/child power domain
446185fda14696 Lucas Stach 2021-07-17 240 * setup doesn't allow us to meet the sequencing requirements.
446185fda14696 Lucas Stach 2021-07-17 241 * This means we have nested locking of genpd locks, without the
446185fda14696 Lucas Stach 2021-07-17 242 * nesting being visible at the genpd level, so we need a
446185fda14696 Lucas Stach 2021-07-17 243 * separate lock class to make lockdep aware of the fact that
446185fda14696 Lucas Stach 2021-07-17 244 * this are separate domain locks that can be nested without a
446185fda14696 Lucas Stach 2021-07-17 245 * self-deadlock.
446185fda14696 Lucas Stach 2021-07-17 246 */
446185fda14696 Lucas Stach 2021-07-17 247 lockdep_set_class(&domain->genpd.mlock,
446185fda14696 Lucas Stach 2021-07-17 248 &blk_ctrl_genpd_lock_class);
446185fda14696 Lucas Stach 2021-07-17 249
446185fda14696 Lucas Stach 2021-07-17 250 bc->onecell_data.domains[i] = &domain->genpd;
446185fda14696 Lucas Stach 2021-07-17 251 }
446185fda14696 Lucas Stach 2021-07-17 252
446185fda14696 Lucas Stach 2021-07-17 253 ret = of_genpd_add_provider_onecell(dev->of_node, &bc->onecell_data);
446185fda14696 Lucas Stach 2021-07-17 254 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 255 dev_err_probe(dev, ret, "failed to add power domain provider\n");
446185fda14696 Lucas Stach 2021-07-17 256 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 257 }
446185fda14696 Lucas Stach 2021-07-17 258
446185fda14696 Lucas Stach 2021-07-17 259 bc->power_nb.notifier_call = bc_data->power_notifier_fn;
446185fda14696 Lucas Stach 2021-07-17 260 ret = dev_pm_genpd_add_notifier(bc->bus_power_dev, &bc->power_nb);
446185fda14696 Lucas Stach 2021-07-17 261 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 262 dev_err_probe(dev, ret, "failed to add power notifier\n");
446185fda14696 Lucas Stach 2021-07-17 263 goto cleanup_provider;
446185fda14696 Lucas Stach 2021-07-17 264 }
446185fda14696 Lucas Stach 2021-07-17 265
446185fda14696 Lucas Stach 2021-07-17 266 dev_set_drvdata(dev, bc);
446185fda14696 Lucas Stach 2021-07-17 267
446185fda14696 Lucas Stach 2021-07-17 268 return 0;
446185fda14696 Lucas Stach 2021-07-17 269
446185fda14696 Lucas Stach 2021-07-17 270 cleanup_provider:
446185fda14696 Lucas Stach 2021-07-17 271 of_genpd_del_provider(dev->of_node);
446185fda14696 Lucas Stach 2021-07-17 272 cleanup_pds:
446185fda14696 Lucas Stach 2021-07-17 273 for (i--; i >= 0; i--) {
446185fda14696 Lucas Stach 2021-07-17 274 pm_genpd_remove(&bc->domains[i].genpd);
446185fda14696 Lucas Stach 2021-07-17 275 dev_pm_domain_detach(bc->domains[i].power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 276 }
446185fda14696 Lucas Stach 2021-07-17 277
446185fda14696 Lucas Stach 2021-07-17 278 dev_pm_domain_detach(bc->bus_power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 279
446185fda14696 Lucas Stach 2021-07-17 280 return ret;
446185fda14696 Lucas Stach 2021-07-17 281 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-07-19 6:15 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-16 23:28 [PATCH 00/17] i.MX8MM GPC improvements and BLK_CTRL driver Lucas Stach
2021-07-16 23:29 ` [PATCH 01/17] Revert "soc: imx: gpcv2: move reset assert after requesting domain power up" Lucas Stach
2021-07-16 23:29 ` [PATCH 02/17] soc: imx: gpcv2: Turn domain->pgc into bitfield Lucas Stach
2021-07-16 23:29 ` [PATCH 03/17] soc: imx: gpcv2: Set both GPC_PGC_nCTRL(GPU_2D|GPU_3D) for MX8MM GPU domain Lucas Stach
2021-07-16 23:29 ` [PATCH 04/17] soc: imx: gpcv2: add lockdep annotation Lucas Stach
2021-07-16 23:29 ` [PATCH 05/17] soc: imx: gpcv2: add domain option to keep domain clocks enabled Lucas Stach
2021-07-16 23:29 ` [PATCH 06/17] soc: imx: gpcv2: keep i.MX8M* bus " Lucas Stach
2021-07-16 23:29 ` [PATCH 07/17] dt-bindings: soc: add binding for i.MX8MM VPU blk-ctrl Lucas Stach
2021-07-19 13:47 ` Rob Herring
2021-07-16 23:29 ` [PATCH 08/17] dt-bindings: power: imx8mm: add defines for VPU blk-ctrl domains Lucas Stach
2021-07-16 23:29 ` [PATCH 09/17] soc: imx: add i.MX8M blk-ctrl driver Lucas Stach
2021-07-19 6:12 ` Dan Carpenter [this message]
2021-07-19 9:11 ` Lucas Stach
2021-07-16 23:29 ` [PATCH 10/17] dt-bindings: soc: add binding for i.MX8MM DISP blk-ctrl Lucas Stach
2021-07-19 13:47 ` Rob Herring
2021-07-16 23:29 ` [PATCH 11/17] dt-bindings: power: imx8mm: add defines for DISP blk-ctrl domains Lucas Stach
2021-07-16 23:29 ` [PATCH 12/17] soc: imx: imx8m-blk-ctrl: add DISP blk-ctrl Lucas Stach
2021-07-16 23:29 ` [PATCH 13/17] arm64: dts: imx8mm: add GPC node Lucas Stach
2021-07-16 23:29 ` [PATCH 14/17] arm64: dts: imx8mm: put USB controllers into power-domains Lucas Stach
2021-07-16 23:29 ` [PATCH 15/17] arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core Lucas Stach
2021-07-16 23:29 ` [PATCH 16/17] arm64: dts: imx8mm: add VPU blk-ctrl Lucas Stach
2021-07-16 23:29 ` [PATCH 17/17] arm64: dts: imx8mm: add DISP blk-ctrl Lucas Stach
2021-07-19 12:53 ` [PATCH 00/17] i.MX8MM GPC improvements and BLK_CTRL driver Peng Fan
2021-07-19 16:56 ` Lucas Stach
2021-07-21 11:21 ` Lucas Stach
2021-07-21 20:46 ` [PATCH v2 00/18] " Lucas Stach
2021-07-21 20:46 ` [PATCH v2 01/18] Revert "soc: imx: gpcv2: move reset assert after requesting domain power up" Lucas Stach
2021-08-05 9:37 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 02/18] soc: imx: gpcv2: Turn domain->pgc into bitfield Lucas Stach
2021-08-05 9:37 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 03/18] soc: imx: gpcv2: Set both GPC_PGC_nCTRL(GPU_2D|GPU_3D) for MX8MM GPU domain Lucas Stach
2021-08-05 9:37 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 04/18] soc: imx: gpcv2: add lockdep annotation Lucas Stach
2021-08-05 9:38 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 05/18] soc: imx: gpcv2: add domain option to keep domain clocks enabled Lucas Stach
2021-08-05 9:38 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 06/18] soc: imx: gpcv2: keep i.MX8M* bus " Lucas Stach
2021-08-05 9:39 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 07/18] soc: imx: gpcv2: support system suspend/resume Lucas Stach
2021-08-05 9:47 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 08/18] dt-bindings: soc: add binding for i.MX8MM VPU blk-ctrl Lucas Stach
2021-07-22 14:37 ` Rob Herring
2021-07-21 20:46 ` [PATCH v2 09/18] dt-bindings: power: imx8mm: add defines for VPU blk-ctrl domains Lucas Stach
2021-07-21 20:46 ` [PATCH v2 10/18] soc: imx: add i.MX8M blk-ctrl driver Lucas Stach
2021-08-05 9:54 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 11/18] dt-bindings: soc: add binding for i.MX8MM DISP blk-ctrl Lucas Stach
2021-07-22 14:37 ` Rob Herring
2021-07-21 20:46 ` [PATCH v2 12/18] dt-bindings: power: imx8mm: add defines for DISP blk-ctrl domains Lucas Stach
2021-07-21 20:46 ` [PATCH v2 13/18] soc: imx: imx8m-blk-ctrl: add DISP blk-ctrl Lucas Stach
2021-08-05 9:53 ` Peng Fan
2021-07-21 20:46 ` [PATCH v2 14/18] arm64: dts: imx8mm: add GPC node Lucas Stach
2021-08-05 9:54 ` Peng Fan
2021-07-21 20:47 ` [PATCH v2 15/18] arm64: dts: imx8mm: put USB controllers into power-domains Lucas Stach
2021-07-21 20:47 ` [PATCH v2 16/18] arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core Lucas Stach
2021-07-21 20:47 ` [PATCH v2 17/18] arm64: dts: imx8mm: add VPU blk-ctrl Lucas Stach
2021-07-21 20:47 ` [PATCH v2 18/18] arm64: dts: imx8mm: add DISP blk-ctrl Lucas Stach
2021-08-05 9:35 ` [PATCH v2 00/18] i.MX8MM GPC improvements and BLK_CTRL driver Peng Fan (OSS)
2021-08-05 10:18 ` Frieder Schrempf
2021-08-05 18:56 ` Frieder Schrempf
2021-08-09 11:01 ` Lucas Stach
2021-08-09 11:50 ` Frieder Schrempf
2021-08-09 18:51 ` Adam Ford
2021-09-01 10:03 ` Frieder Schrempf
2021-09-01 12:16 ` Frieder Schrempf
2021-09-02 10:25 ` Lucas Stach
2021-09-06 7:49 ` Frieder Schrempf
2021-08-30 22:06 ` Tim Harvey
2021-09-01 10:30 ` Frieder Schrempf
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=202107181452.0x9rl7rG-lkp@intel.com \
--to=dan.carpenter@oracle.com \
--cc=aford173@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=frieder.schrempf@kontron.de \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=kernel@pengutronix.de \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=lkp@intel.com \
--cc=marex@denx.de \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=shawnguo@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 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).