tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-gpio-driver-isolation head: e1db9bf671ed01b4f9fc33bbaa57d0c493c0389f commit: 79f925bb1584cc0ad4af9a37cd2e6bb5ed51ab5a [13/14] gpio: Drop driver header from legacy header include config: arm-defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 79f925bb1584cc0ad4af9a37cd2e6bb5ed51ab5a # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=arm If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): In file included from arch/arm/include/asm/gpio.h:10:0, from include/linux/gpio.h:59, from include/linux/of_gpio.h:16, from drivers/gpu/drm/sti/sti_hdmi.c:12: include/asm-generic/gpio.h: In function 'gpio_to_chip': include/asm-generic/gpio.h:60:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip include/asm-generic/gpio.h:60:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/sti/sti_hdmi.c:12:0: include/linux/of_gpio.h: At top level: include/linux/of_gpio.h:41:19: error: field 'gc' has incomplete type struct gpio_chip gc; ^~ In file included from include/linux/err.h:5:0, from include/linux/clk.h:12, from drivers/gpu/drm/sti/sti_hdmi.c:7: include/linux/of_gpio.h: In function 'to_of_mm_gpio_chip': include/linux/kernel.h:973:32: error: dereferencing pointer to incomplete type 'struct gpio_chip' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~ include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:973:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:973:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/of_gpio.h:48:9: note: in expansion of macro 'container_of' return container_of(gc, struct of_mm_gpio_chip, gc); ^~~~~~~~~~~~ drivers/gpu/drm/sti/sti_hdmi.c: In function 'sti_hdmi_probe': >> drivers/gpu/drm/sti/sti_hdmi.c:1378:15: error: implicit declaration of function 'devm_ioremap_nocache'; did you mean 'ioremap_nocache'? [-Werror=implicit-function-declaration] hdmi->regs = devm_ioremap_nocache(dev, res->start, resource_size(res)); ^~~~~~~~~~~~~~~~~~~~ ioremap_nocache >> drivers/gpu/drm/sti/sti_hdmi.c:1378:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion] hdmi->regs = devm_ioremap_nocache(dev, res->start, resource_size(res)); ^ cc1: some warnings being treated as errors -- In file included from arch/arm/include/asm/gpio.h:10:0, from include/linux/gpio.h:59, from include/linux/of_gpio.h:16, from drivers/gpu/drm/sti/sti_dvo.c:11: include/asm-generic/gpio.h: In function 'gpio_to_chip': include/asm-generic/gpio.h:60:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip include/asm-generic/gpio.h:60:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/sti/sti_dvo.c:11:0: include/linux/of_gpio.h: At top level: include/linux/of_gpio.h:41:19: error: field 'gc' has incomplete type struct gpio_chip gc; ^~ In file included from include/linux/err.h:5:0, from include/linux/clk.h:12, from drivers/gpu/drm/sti/sti_dvo.c:7: include/linux/of_gpio.h: In function 'to_of_mm_gpio_chip': include/linux/kernel.h:973:32: error: dereferencing pointer to incomplete type 'struct gpio_chip' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~ include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:973:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:973:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/of_gpio.h:48:9: note: in expansion of macro 'container_of' return container_of(gc, struct of_mm_gpio_chip, gc); ^~~~~~~~~~~~ drivers/gpu/drm/sti/sti_dvo.c: In function 'sti_dvo_probe': >> drivers/gpu/drm/sti/sti_dvo.c:538:14: error: implicit declaration of function 'devm_ioremap_nocache'; did you mean 'ioremap_nocache'? [-Werror=implicit-function-declaration] dvo->regs = devm_ioremap_nocache(dev, res->start, ^~~~~~~~~~~~~~~~~~~~ ioremap_nocache >> drivers/gpu/drm/sti/sti_dvo.c:538:12: warning: assignment makes pointer from integer without a cast [-Wint-conversion] dvo->regs = devm_ioremap_nocache(dev, res->start, ^ cc1: some warnings being treated as errors vim +1378 drivers/gpu/drm/sti/sti_hdmi.c 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1345 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1346 static int sti_hdmi_probe(struct platform_device *pdev) 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1347 { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1348 struct device *dev = &pdev->dev; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1349 struct sti_hdmi *hdmi; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1350 struct device_node *np = dev->of_node; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1351 struct resource *res; 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1352 struct device_node *ddc; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1353 int ret; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1354 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1355 DRM_INFO("%s\n", __func__); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1356 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1357 hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1358 if (!hdmi) 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1359 return -ENOMEM; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1360 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1361 ddc = of_parse_phandle(pdev->dev.of_node, "ddc", 0); 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1362 if (ddc) { 4d5821a71ce9be Vladimir Zapolskiy 2015-09-21 1363 hdmi->ddc_adapt = of_get_i2c_adapter_by_node(ddc); 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1364 of_node_put(ddc); 4d5821a71ce9be Vladimir Zapolskiy 2015-09-21 1365 if (!hdmi->ddc_adapt) 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1366 return -EPROBE_DEFER; 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1367 } 53bdcf5f026c56 Benjamin Gaignard 2015-07-17 1368 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1369 hdmi->dev = pdev->dev; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1370 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1371 /* Get resources */ 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1372 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi-reg"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1373 if (!res) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1374 DRM_ERROR("Invalid hdmi resource\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1375 ret = -ENOMEM; 807642d731e08f Vladimir Zapolskiy 2015-09-21 1376 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1377 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 @1378 hdmi->regs = devm_ioremap_nocache(dev, res->start, resource_size(res)); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1379 if (!hdmi->regs) { 807642d731e08f Vladimir Zapolskiy 2015-09-21 1380 ret = -ENOMEM; 807642d731e08f Vladimir Zapolskiy 2015-09-21 1381 goto release_adapter; 807642d731e08f Vladimir Zapolskiy 2015-09-21 1382 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1383 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1384 hdmi->phy_ops = (struct hdmi_phy_ops *) 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1385 of_match_node(hdmi_of_match, np)->data; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1386 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1387 /* Get clock resources */ 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1388 hdmi->clk_pix = devm_clk_get(dev, "pix"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1389 if (IS_ERR(hdmi->clk_pix)) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1390 DRM_ERROR("Cannot get hdmi_pix clock\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1391 ret = PTR_ERR(hdmi->clk_pix); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1392 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1393 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1394 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1395 hdmi->clk_tmds = devm_clk_get(dev, "tmds"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1396 if (IS_ERR(hdmi->clk_tmds)) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1397 DRM_ERROR("Cannot get hdmi_tmds clock\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1398 ret = PTR_ERR(hdmi->clk_tmds); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1399 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1400 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1401 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1402 hdmi->clk_phy = devm_clk_get(dev, "phy"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1403 if (IS_ERR(hdmi->clk_phy)) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1404 DRM_ERROR("Cannot get hdmi_phy clock\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1405 ret = PTR_ERR(hdmi->clk_phy); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1406 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1407 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1408 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1409 hdmi->clk_audio = devm_clk_get(dev, "audio"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1410 if (IS_ERR(hdmi->clk_audio)) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1411 DRM_ERROR("Cannot get hdmi_audio clock\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1412 ret = PTR_ERR(hdmi->clk_audio); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1413 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1414 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1415 765692078f08d0 Benjamin Gaignard 2014-10-09 1416 hdmi->hpd = readl(hdmi->regs + HDMI_STA) & HDMI_STA_HOT_PLUG; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1417 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1418 init_waitqueue_head(&hdmi->wait_event); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1419 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1420 hdmi->irq = platform_get_irq_byname(pdev, "irq"); c83ecfa5851f4d Arvind Yadav 2017-11-17 1421 if (hdmi->irq < 0) { c83ecfa5851f4d Arvind Yadav 2017-11-17 1422 DRM_ERROR("Cannot get HDMI irq\n"); c83ecfa5851f4d Arvind Yadav 2017-11-17 1423 ret = hdmi->irq; c83ecfa5851f4d Arvind Yadav 2017-11-17 1424 goto release_adapter; c83ecfa5851f4d Arvind Yadav 2017-11-17 1425 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1426 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1427 ret = devm_request_threaded_irq(dev, hdmi->irq, hdmi_irq, 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1428 hdmi_irq_thread, IRQF_ONESHOT, dev_name(dev), hdmi); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1429 if (ret) { 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1430 DRM_ERROR("Failed to register HDMI interrupt\n"); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1431 goto release_adapter; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1432 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1433 bca55958ea8758 Benjamin Gaignard 2017-01-03 1434 hdmi->notifier = cec_notifier_get(&pdev->dev); bca55958ea8758 Benjamin Gaignard 2017-01-03 1435 if (!hdmi->notifier) bca55958ea8758 Benjamin Gaignard 2017-01-03 1436 goto release_adapter; bca55958ea8758 Benjamin Gaignard 2017-01-03 1437 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1438 hdmi->reset = devm_reset_control_get(dev, "hdmi"); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1439 /* Take hdmi out of reset */ 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1440 if (!IS_ERR(hdmi->reset)) 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1441 reset_control_deassert(hdmi->reset); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1442 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1443 platform_set_drvdata(pdev, hdmi); 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1444 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1445 return component_add(&pdev->dev, &sti_hdmi_ops); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1446 807642d731e08f Vladimir Zapolskiy 2015-09-21 1447 release_adapter: 4d5821a71ce9be Vladimir Zapolskiy 2015-09-21 1448 i2c_put_adapter(hdmi->ddc_adapt); 807642d731e08f Vladimir Zapolskiy 2015-09-21 1449 807642d731e08f Vladimir Zapolskiy 2015-09-21 1450 return ret; 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1451 } 5402626c83a2f1 Benjamin Gaignard 2014-07-30 1452 :::::: The code at line 1378 was first introduced by commit :::::: 5402626c83a2f19da14859e2bab231a53e16ee74 drm: sti: add HDMI driver :::::: TO: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> :::::: 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