From: kernel test robot <lkp@intel.com>
To: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
shawnguo@kernel.org, s.hauer@pengutronix.de
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
festevam@gmail.com, linux-imx@nxp.com,
laurent.pinchart@ideasonboard.com, paul.elder@ideasonboard.com,
marex@denx.de, aford173@gmail.com, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH V2 4/8] soc: imx: add icc paths for i.MX8MP media blk ctrl
Date: Fri, 17 Jun 2022 07:18:22 +0800 [thread overview]
Message-ID: <202206170720.eTetqCJ6-lkp@intel.com> (raw)
In-Reply-To: <20220616073953.2204978-5-peng.fan@oss.nxp.com>
Hi "Peng,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on shawnguo/for-next linus/master v5.19-rc2 next-20220616]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan-OSS/Add-interconnect-for-i-MX8MP-blk-ctrl/20220616-153932
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: hexagon-randconfig-r045-20220616 (https://download.01.org/0day-ci/archive/20220617/202206170720.eTetqCJ6-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f0e608de27b3d568000046eebf3712ab542979d6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/118c632adf7409c5a51e85fa0c61286665116b10
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peng-Fan-OSS/Add-interconnect-for-i-MX8MP-blk-ctrl/20220616-153932
git checkout 118c632adf7409c5a51e85fa0c61286665116b10
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/soc/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/soc/imx/imx8m-blk-ctrl.c:247:9: error: call to undeclared function 'devm_of_icc_bulk_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
^
1 error generated.
vim +/devm_of_icc_bulk_get +247 drivers/soc/imx/imx8m-blk-ctrl.c
178
179 static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
180 {
181 const struct imx8m_blk_ctrl_data *bc_data;
182 struct device *dev = &pdev->dev;
183 struct imx8m_blk_ctrl *bc;
184 void __iomem *base;
185 int i, ret;
186
187 struct regmap_config regmap_config = {
188 .reg_bits = 32,
189 .val_bits = 32,
190 .reg_stride = 4,
191 };
192
193 bc = devm_kzalloc(dev, sizeof(*bc), GFP_KERNEL);
194 if (!bc)
195 return -ENOMEM;
196
197 bc->dev = dev;
198
199 bc_data = of_device_get_match_data(dev);
200
201 base = devm_platform_ioremap_resource(pdev, 0);
202 if (IS_ERR(base))
203 return PTR_ERR(base);
204
205 regmap_config.max_register = bc_data->max_reg;
206 bc->regmap = devm_regmap_init_mmio(dev, base, ®map_config);
207 if (IS_ERR(bc->regmap))
208 return dev_err_probe(dev, PTR_ERR(bc->regmap),
209 "failed to init regmap\n");
210
211 bc->domains = devm_kcalloc(dev, bc_data->num_domains,
212 sizeof(struct imx8m_blk_ctrl_domain),
213 GFP_KERNEL);
214 if (!bc->domains)
215 return -ENOMEM;
216
217 bc->onecell_data.num_domains = bc_data->num_domains;
218 bc->onecell_data.xlate = imx8m_blk_ctrl_xlate;
219 bc->onecell_data.domains =
220 devm_kcalloc(dev, bc_data->num_domains,
221 sizeof(struct generic_pm_domain *), GFP_KERNEL);
222 if (!bc->onecell_data.domains)
223 return -ENOMEM;
224
225 bc->bus_power_dev = genpd_dev_pm_attach_by_name(dev, "bus");
226 if (IS_ERR(bc->bus_power_dev))
227 return dev_err_probe(dev, PTR_ERR(bc->bus_power_dev),
228 "failed to attach power domain\n");
229
230 for (i = 0; i < bc_data->num_domains; i++) {
231 const struct imx8m_blk_ctrl_domain_data *data = &bc_data->domains[i];
232 struct imx8m_blk_ctrl_domain *domain = &bc->domains[i];
233 int j;
234
235 domain->data = data;
236
237 for (j = 0; j < data->num_clks; j++)
238 domain->clks[j].id = data->clk_names[j];
239
240 for (j = 0; j < data->num_paths; j++) {
241 domain->paths[j].name = data->path_names[j];
242 /* Fake value for now, just let ICC could configure NoC mode/priority */
243 domain->paths[j].avg_bw = 1;
244 domain->paths[j].peak_bw = 1;
245 }
246
> 247 ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
248 if (ret) {
249 dev_err_probe(dev, ret, "failed to get noc entries\n");
250 goto cleanup_pds;
251 }
252
253 ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
254 if (ret) {
255 dev_err_probe(dev, ret, "failed to get clock\n");
256 goto cleanup_pds;
257 }
258
259 domain->power_dev =
260 dev_pm_domain_attach_by_name(dev, data->gpc_name);
261 if (IS_ERR(domain->power_dev)) {
262 dev_err_probe(dev, PTR_ERR(domain->power_dev),
263 "failed to attach power domain\n");
264 ret = PTR_ERR(domain->power_dev);
265 goto cleanup_pds;
266 }
267 dev_set_name(domain->power_dev, "%s", data->name);
268
269 domain->genpd.name = data->name;
270 domain->genpd.power_on = imx8m_blk_ctrl_power_on;
271 domain->genpd.power_off = imx8m_blk_ctrl_power_off;
272 domain->bc = bc;
273
274 ret = pm_genpd_init(&domain->genpd, NULL, true);
275 if (ret) {
276 dev_err_probe(dev, ret, "failed to init power domain\n");
277 dev_pm_domain_detach(domain->power_dev, true);
278 goto cleanup_pds;
279 }
280
281 /*
282 * We use runtime PM to trigger power on/off of the upstream GPC
283 * domain, as a strict hierarchical parent/child power domain
284 * setup doesn't allow us to meet the sequencing requirements.
285 * This means we have nested locking of genpd locks, without the
286 * nesting being visible at the genpd level, so we need a
287 * separate lock class to make lockdep aware of the fact that
288 * this are separate domain locks that can be nested without a
289 * self-deadlock.
290 */
291 lockdep_set_class(&domain->genpd.mlock,
292 &blk_ctrl_genpd_lock_class);
293
294 bc->onecell_data.domains[i] = &domain->genpd;
295 }
296
297 ret = of_genpd_add_provider_onecell(dev->of_node, &bc->onecell_data);
298 if (ret) {
299 dev_err_probe(dev, ret, "failed to add power domain provider\n");
300 goto cleanup_pds;
301 }
302
303 bc->power_nb.notifier_call = bc_data->power_notifier_fn;
304 ret = dev_pm_genpd_add_notifier(bc->bus_power_dev, &bc->power_nb);
305 if (ret) {
306 dev_err_probe(dev, ret, "failed to add power notifier\n");
307 goto cleanup_provider;
308 }
309
310 dev_set_drvdata(dev, bc);
311
312 return 0;
313
314 cleanup_provider:
315 of_genpd_del_provider(dev->of_node);
316 cleanup_pds:
317 for (i--; i >= 0; i--) {
318 pm_genpd_remove(&bc->domains[i].genpd);
319 dev_pm_domain_detach(bc->domains[i].power_dev, true);
320 }
321
322 dev_pm_domain_detach(bc->bus_power_dev, true);
323
324 return ret;
325 }
326
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
shawnguo@kernel.org, s.hauer@pengutronix.de
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
festevam@gmail.com, linux-imx@nxp.com,
laurent.pinchart@ideasonboard.com, paul.elder@ideasonboard.com,
marex@denx.de, aford173@gmail.com, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH V2 4/8] soc: imx: add icc paths for i.MX8MP media blk ctrl
Date: Fri, 17 Jun 2022 07:18:22 +0800 [thread overview]
Message-ID: <202206170720.eTetqCJ6-lkp@intel.com> (raw)
In-Reply-To: <20220616073953.2204978-5-peng.fan@oss.nxp.com>
Hi "Peng,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on shawnguo/for-next linus/master v5.19-rc2 next-20220616]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan-OSS/Add-interconnect-for-i-MX8MP-blk-ctrl/20220616-153932
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: hexagon-randconfig-r045-20220616 (https://download.01.org/0day-ci/archive/20220617/202206170720.eTetqCJ6-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f0e608de27b3d568000046eebf3712ab542979d6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/118c632adf7409c5a51e85fa0c61286665116b10
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peng-Fan-OSS/Add-interconnect-for-i-MX8MP-blk-ctrl/20220616-153932
git checkout 118c632adf7409c5a51e85fa0c61286665116b10
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/soc/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/soc/imx/imx8m-blk-ctrl.c:247:9: error: call to undeclared function 'devm_of_icc_bulk_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
^
1 error generated.
vim +/devm_of_icc_bulk_get +247 drivers/soc/imx/imx8m-blk-ctrl.c
178
179 static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
180 {
181 const struct imx8m_blk_ctrl_data *bc_data;
182 struct device *dev = &pdev->dev;
183 struct imx8m_blk_ctrl *bc;
184 void __iomem *base;
185 int i, ret;
186
187 struct regmap_config regmap_config = {
188 .reg_bits = 32,
189 .val_bits = 32,
190 .reg_stride = 4,
191 };
192
193 bc = devm_kzalloc(dev, sizeof(*bc), GFP_KERNEL);
194 if (!bc)
195 return -ENOMEM;
196
197 bc->dev = dev;
198
199 bc_data = of_device_get_match_data(dev);
200
201 base = devm_platform_ioremap_resource(pdev, 0);
202 if (IS_ERR(base))
203 return PTR_ERR(base);
204
205 regmap_config.max_register = bc_data->max_reg;
206 bc->regmap = devm_regmap_init_mmio(dev, base, ®map_config);
207 if (IS_ERR(bc->regmap))
208 return dev_err_probe(dev, PTR_ERR(bc->regmap),
209 "failed to init regmap\n");
210
211 bc->domains = devm_kcalloc(dev, bc_data->num_domains,
212 sizeof(struct imx8m_blk_ctrl_domain),
213 GFP_KERNEL);
214 if (!bc->domains)
215 return -ENOMEM;
216
217 bc->onecell_data.num_domains = bc_data->num_domains;
218 bc->onecell_data.xlate = imx8m_blk_ctrl_xlate;
219 bc->onecell_data.domains =
220 devm_kcalloc(dev, bc_data->num_domains,
221 sizeof(struct generic_pm_domain *), GFP_KERNEL);
222 if (!bc->onecell_data.domains)
223 return -ENOMEM;
224
225 bc->bus_power_dev = genpd_dev_pm_attach_by_name(dev, "bus");
226 if (IS_ERR(bc->bus_power_dev))
227 return dev_err_probe(dev, PTR_ERR(bc->bus_power_dev),
228 "failed to attach power domain\n");
229
230 for (i = 0; i < bc_data->num_domains; i++) {
231 const struct imx8m_blk_ctrl_domain_data *data = &bc_data->domains[i];
232 struct imx8m_blk_ctrl_domain *domain = &bc->domains[i];
233 int j;
234
235 domain->data = data;
236
237 for (j = 0; j < data->num_clks; j++)
238 domain->clks[j].id = data->clk_names[j];
239
240 for (j = 0; j < data->num_paths; j++) {
241 domain->paths[j].name = data->path_names[j];
242 /* Fake value for now, just let ICC could configure NoC mode/priority */
243 domain->paths[j].avg_bw = 1;
244 domain->paths[j].peak_bw = 1;
245 }
246
> 247 ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
248 if (ret) {
249 dev_err_probe(dev, ret, "failed to get noc entries\n");
250 goto cleanup_pds;
251 }
252
253 ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
254 if (ret) {
255 dev_err_probe(dev, ret, "failed to get clock\n");
256 goto cleanup_pds;
257 }
258
259 domain->power_dev =
260 dev_pm_domain_attach_by_name(dev, data->gpc_name);
261 if (IS_ERR(domain->power_dev)) {
262 dev_err_probe(dev, PTR_ERR(domain->power_dev),
263 "failed to attach power domain\n");
264 ret = PTR_ERR(domain->power_dev);
265 goto cleanup_pds;
266 }
267 dev_set_name(domain->power_dev, "%s", data->name);
268
269 domain->genpd.name = data->name;
270 domain->genpd.power_on = imx8m_blk_ctrl_power_on;
271 domain->genpd.power_off = imx8m_blk_ctrl_power_off;
272 domain->bc = bc;
273
274 ret = pm_genpd_init(&domain->genpd, NULL, true);
275 if (ret) {
276 dev_err_probe(dev, ret, "failed to init power domain\n");
277 dev_pm_domain_detach(domain->power_dev, true);
278 goto cleanup_pds;
279 }
280
281 /*
282 * We use runtime PM to trigger power on/off of the upstream GPC
283 * domain, as a strict hierarchical parent/child power domain
284 * setup doesn't allow us to meet the sequencing requirements.
285 * This means we have nested locking of genpd locks, without the
286 * nesting being visible at the genpd level, so we need a
287 * separate lock class to make lockdep aware of the fact that
288 * this are separate domain locks that can be nested without a
289 * self-deadlock.
290 */
291 lockdep_set_class(&domain->genpd.mlock,
292 &blk_ctrl_genpd_lock_class);
293
294 bc->onecell_data.domains[i] = &domain->genpd;
295 }
296
297 ret = of_genpd_add_provider_onecell(dev->of_node, &bc->onecell_data);
298 if (ret) {
299 dev_err_probe(dev, ret, "failed to add power domain provider\n");
300 goto cleanup_pds;
301 }
302
303 bc->power_nb.notifier_call = bc_data->power_notifier_fn;
304 ret = dev_pm_genpd_add_notifier(bc->bus_power_dev, &bc->power_nb);
305 if (ret) {
306 dev_err_probe(dev, ret, "failed to add power notifier\n");
307 goto cleanup_provider;
308 }
309
310 dev_set_drvdata(dev, bc);
311
312 return 0;
313
314 cleanup_provider:
315 of_genpd_del_provider(dev->of_node);
316 cleanup_pds:
317 for (i--; i >= 0; i--) {
318 pm_genpd_remove(&bc->domains[i].genpd);
319 dev_pm_domain_detach(bc->domains[i].power_dev, true);
320 }
321
322 dev_pm_domain_detach(bc->bus_power_dev, true);
323
324 return ret;
325 }
326
--
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
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:[~2022-06-16 23:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-16 7:39 [PATCH V2 0/8] Add interconnect for i.MX8MP blk ctrl Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 1/8] dt-bindings: soc: imx: add interconnect property for i.MX8MP media " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 2/8] dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 3/8] dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 4/8] soc: imx: add icc paths for i.MX8MP media " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 10:09 ` kernel test robot
2022-06-16 10:09 ` kernel test robot
2022-06-16 23:18 ` kernel test robot [this message]
2022-06-16 23:18 ` kernel test robot
2022-06-16 7:39 ` [PATCH V2 5/8] soc: imx: add icc paths for i.MX8MP hsio/hdmi " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 10:40 ` kernel test robot
2022-06-16 10:40 ` kernel test robot
2022-06-16 7:39 ` [PATCH V2 6/8] arm64: dts: imx8mp: add NoC node Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 7/8] arm64: dts: imx8mp: add interconnects for media blk ctrl Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
2022-06-16 7:39 ` [PATCH V2 8/8] arm64: dts: imx8mp: add interconnect for hsio " Peng Fan (OSS)
2022-06-16 7:39 ` Peng Fan (OSS)
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=202206170720.eTetqCJ6-lkp@intel.com \
--to=lkp@intel.com \
--cc=aford173@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=kbuild-all@lists.01.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=marex@denx.de \
--cc=paul.elder@ideasonboard.com \
--cc=peng.fan@nxp.com \
--cc=peng.fan@oss.nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--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 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.