tree:
https://github.com/frank-w/BPI-R2-4.14 5.16-next-hdmi
head: 2c863ab74e13844664d488782f9f0422bfea0471
commit: 1ced92d05c4d40fc24873af7445ec7c8a430c5ac [8/29] drm/rockchip: dw_hdmi: add rk3568
support
config: m68k-allmodconfig
(
https://download.01.org/0day-ci/archive/20220122/202201222232.RHlu2zzo-lk...)
compiler: m68k-linux-gcc (GCC) 11.2.0
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/frank-w/BPI-R2-4.14/commit/1ced92d05c4d40fc24873af7445...
git remote add frank-w-bpi-r2-4.14
https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.16-next-hdmi
git checkout 1ced92d05c4d40fc24873af7445ec7c8a430c5ac
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir
ARCH=m68k SHELL=/bin/bash drivers/gpu/drm/rockchip/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the frank-w-bpi-r2-4.14/5.16-next-hdmi HEAD 2c863ab74e13844664d488782f9f0422bfea0471
builds fine.
It only hurts bisectability.
All errors (new ones prefixed by >>):
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c: In function
'dw_hdmi_rockchip_bind':
> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c:541:16: error:
'struct drm_encoder' has no member named 'port'
541 |
encoder->port = of_graph_get_port_by_id(dev->of_node, 0);
| ^~
vim +541 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
509
510 static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
511 void *data)
512 {
513 struct platform_device *pdev = to_platform_device(dev);
514 struct dw_hdmi_plat_data *plat_data;
515 const struct of_device_id *match;
516 struct drm_device *drm = data;
517 struct drm_encoder *encoder;
518 struct rockchip_hdmi *hdmi;
519 int ret;
520
521 if (!pdev->dev.of_node)
522 return -ENODEV;
523
524 hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);
525 if (!hdmi)
526 return -ENOMEM;
527
528 match = of_match_node(dw_hdmi_rockchip_dt_ids, pdev->dev.of_node);
529 plat_data = devm_kmemdup(&pdev->dev, match->data,
530 sizeof(*plat_data), GFP_KERNEL);
531 if (!plat_data)
532 return -ENOMEM;
533
534 hdmi->dev = &pdev->dev;
535 hdmi->chip_data = plat_data->phy_data;
536 plat_data->phy_data = hdmi;
537 encoder = &hdmi->encoder;
538
539 encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node);
540
541 encoder->port = of_graph_get_port_by_id(dev->of_node, 0);
542
543 /*
544 * If we failed to find the CRTC(s) which this encoder is
545 * supposed to be connected to, it's because the CRTC has
546 * not been registered yet. Defer probing, and hope that
547 * the required CRTC is added later.
548 */
549 if (encoder->possible_crtcs == 0)
550 return -EPROBE_DEFER;
551
552 ret = rockchip_hdmi_parse_dt(hdmi);
553 if (ret) {
554 DRM_DEV_ERROR(hdmi->dev, "Unable to parse OF data\n");
555 return ret;
556 }
557
558 hdmi->phy = devm_phy_optional_get(dev, "hdmi");
559 if (IS_ERR(hdmi->phy)) {
560 ret = PTR_ERR(hdmi->phy);
561 if (ret != -EPROBE_DEFER)
562 DRM_DEV_ERROR(hdmi->dev, "failed to get phy\n");
563 return ret;
564 }
565
566 ret = clk_prepare_enable(hdmi->ref_clk);
567 if (ret) {
568 DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI reference clock:
%d\n",
569 ret);
570 return ret;
571 }
572
573 if (hdmi->chip_data == &rk3568_chip_data) {
574 regmap_write(hdmi->regmap, RK3568_GRF_VO_CON1,
575 HIWORD_UPDATE(RK3568_HDMI_SDAIN_MSK |
576 RK3568_HDMI_SCLIN_MSK,
577 RK3568_HDMI_SDAIN_MSK |
578 RK3568_HDMI_SCLIN_MSK));
579 }
580
581 drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
582 drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
583
584 platform_set_drvdata(pdev, hdmi);
585
586 hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data);
587
588 /*
589 * If dw_hdmi_bind() fails we'll never call dw_hdmi_unbind(),
590 * which would have called the encoder cleanup. Do it manually.
591 */
592 if (IS_ERR(hdmi->hdmi)) {
593 ret = PTR_ERR(hdmi->hdmi);
594 drm_encoder_cleanup(encoder);
595 clk_disable_unprepare(hdmi->ref_clk);
596 }
597
598 return ret;
599 }
600
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org