Re: [PATCH v3 1/5] drm/bridge/synopsys: stop clobbering drvdata
From: kbuild test robot
Date: Fri Dec 01 2017 - 18:47:43 EST
Hi Nickey,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15-rc1 next-20171201]
[cannot apply to rockchip/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Nickey-Yang/Update-ROCKCHIP-DSI-driver-that-uses-dw-mipi-dsi-bridge/20171201-125654
base: git://people.freedesktop.org/~airlied/linux.git drm-next
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm
Note: the linux-review/Nickey-Yang/Update-ROCKCHIP-DSI-driver-that-uses-dw-mipi-dsi-bridge/20171201-125654 HEAD f1eee2e077700ada27d5585bae6dedf4ac671bb5 builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
drivers/gpu/drm/stm/dw_mipi_dsi-stm.c: In function 'dw_mipi_dsi_stm_probe':
>> drivers/gpu/drm/stm/dw_mipi_dsi-stm.c:321:6: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
ret = dw_mipi_dsi_probe(pdev, &dw_mipi_dsi_stm_plat_data);
^
drivers/gpu/drm/stm/dw_mipi_dsi-stm.c: In function 'dw_mipi_dsi_stm_remove':
>> drivers/gpu/drm/stm/dw_mipi_dsi-stm.c:335:21: error: passing argument 1 of 'dw_mipi_dsi_remove' from incompatible pointer type [-Werror=incompatible-pointer-types]
dw_mipi_dsi_remove(pdev);
^~~~
In file included from drivers/gpu/drm/stm/dw_mipi_dsi-stm.c:15:0:
include/drm/bridge/dw_mipi_dsi.h:37:6: note: expected 'struct dw_mipi_dsi *' but argument is of type 'struct platform_device *'
void dw_mipi_dsi_remove(struct dw_mipi_dsi *dsi);
^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/dw_mipi_dsi_remove +335 drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
c1c026db Philippe CORNU 2017-07-17 281
c1c026db Philippe CORNU 2017-07-17 282 static int dw_mipi_dsi_stm_probe(struct platform_device *pdev)
c1c026db Philippe CORNU 2017-07-17 283 {
c1c026db Philippe CORNU 2017-07-17 284 struct device *dev = &pdev->dev;
c1c026db Philippe CORNU 2017-07-17 285 struct dw_mipi_dsi_stm *dsi;
c1c026db Philippe CORNU 2017-07-17 286 struct resource *res;
c1c026db Philippe CORNU 2017-07-17 287 int ret;
c1c026db Philippe CORNU 2017-07-17 288
c1c026db Philippe CORNU 2017-07-17 289 dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL);
c1c026db Philippe CORNU 2017-07-17 290 if (!dsi)
c1c026db Philippe CORNU 2017-07-17 291 return -ENOMEM;
c1c026db Philippe CORNU 2017-07-17 292
c1c026db Philippe CORNU 2017-07-17 293 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
c1c026db Philippe CORNU 2017-07-17 294 if (!res) {
c1c026db Philippe CORNU 2017-07-17 295 DRM_ERROR("Unable to get resource\n");
c1c026db Philippe CORNU 2017-07-17 296 return -ENODEV;
c1c026db Philippe CORNU 2017-07-17 297 }
c1c026db Philippe CORNU 2017-07-17 298
c1c026db Philippe CORNU 2017-07-17 299 dsi->base = devm_ioremap_resource(dev, res);
c1c026db Philippe CORNU 2017-07-17 300 if (IS_ERR(dsi->base)) {
c1c026db Philippe CORNU 2017-07-17 301 DRM_ERROR("Unable to get dsi registers\n");
c1c026db Philippe CORNU 2017-07-17 302 return PTR_ERR(dsi->base);
c1c026db Philippe CORNU 2017-07-17 303 }
c1c026db Philippe CORNU 2017-07-17 304
c1c026db Philippe CORNU 2017-07-17 305 dsi->pllref_clk = devm_clk_get(dev, "ref");
c1c026db Philippe CORNU 2017-07-17 306 if (IS_ERR(dsi->pllref_clk)) {
c1c026db Philippe CORNU 2017-07-17 307 ret = PTR_ERR(dsi->pllref_clk);
c1c026db Philippe CORNU 2017-07-17 308 dev_err(dev, "Unable to get pll reference clock: %d\n", ret);
c1c026db Philippe CORNU 2017-07-17 309 return ret;
c1c026db Philippe CORNU 2017-07-17 310 }
c1c026db Philippe CORNU 2017-07-17 311
c1c026db Philippe CORNU 2017-07-17 312 ret = clk_prepare_enable(dsi->pllref_clk);
c1c026db Philippe CORNU 2017-07-17 313 if (ret) {
c1c026db Philippe CORNU 2017-07-17 314 dev_err(dev, "%s: Failed to enable pllref_clk\n", __func__);
c1c026db Philippe CORNU 2017-07-17 315 return ret;
c1c026db Philippe CORNU 2017-07-17 316 }
c1c026db Philippe CORNU 2017-07-17 317
c1c026db Philippe CORNU 2017-07-17 318 dw_mipi_dsi_stm_plat_data.base = dsi->base;
c1c026db Philippe CORNU 2017-07-17 319 dw_mipi_dsi_stm_plat_data.priv_data = dsi;
c1c026db Philippe CORNU 2017-07-17 320
c1c026db Philippe CORNU 2017-07-17 @321 ret = dw_mipi_dsi_probe(pdev, &dw_mipi_dsi_stm_plat_data);
c1c026db Philippe CORNU 2017-07-17 322 if (ret) {
c1c026db Philippe CORNU 2017-07-17 323 DRM_ERROR("Failed to initialize mipi dsi host\n");
c1c026db Philippe CORNU 2017-07-17 324 clk_disable_unprepare(dsi->pllref_clk);
c1c026db Philippe CORNU 2017-07-17 325 }
c1c026db Philippe CORNU 2017-07-17 326
c1c026db Philippe CORNU 2017-07-17 327 return ret;
c1c026db Philippe CORNU 2017-07-17 328 }
c1c026db Philippe CORNU 2017-07-17 329
c1c026db Philippe CORNU 2017-07-17 330 static int dw_mipi_dsi_stm_remove(struct platform_device *pdev)
c1c026db Philippe CORNU 2017-07-17 331 {
c1c026db Philippe CORNU 2017-07-17 332 struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
c1c026db Philippe CORNU 2017-07-17 333
c1c026db Philippe CORNU 2017-07-17 334 clk_disable_unprepare(dsi->pllref_clk);
c1c026db Philippe CORNU 2017-07-17 @335 dw_mipi_dsi_remove(pdev);
c1c026db Philippe CORNU 2017-07-17 336
c1c026db Philippe CORNU 2017-07-17 337 return 0;
c1c026db Philippe CORNU 2017-07-17 338 }
c1c026db Philippe CORNU 2017-07-17 339
:::::: The code at line 335 was first introduced by commit
:::::: c1c026dbc183497379502496316d5e2a22876b7e drm/stm: Add STM32 DSI controller driver
:::::: TO: Philippe CORNU <philippe.cornu@xxxxxx>
:::::: CC: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip