Re: [PATCH v6 3/3] drm/rockchip: Add basic RK3588 HDMI output support

From: kernel test robot
Date: Sun Sep 08 2024 - 20:43:26 EST


Hi Cristian,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 8400291e289ee6b2bf9779ff1c83a291501f017b]

url: https://github.com/intel-lab-lkp/linux/commits/Cristian-Ciocaltea/drm-bridge-synopsys-Add-DW-HDMI-QP-TX-Controller-support-library/20240906-092027
base: 8400291e289ee6b2bf9779ff1c83a291501f017b
patch link: https://lore.kernel.org/r/20240906-b4-rk3588-bridge-upstream-v6-3-a3128fb103eb%40collabora.com
patch subject: [PATCH v6 3/3] drm/rockchip: Add basic RK3588 HDMI output support
config: powerpc64-randconfig-r122-20240908 (https://download.01.org/0day-ci/archive/20240909/202409090615.l6BkuR5K-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce: (https://download.01.org/0day-ci/archive/20240909/202409090615.l6BkuR5K-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409090615.l6BkuR5K-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c:679:24: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected struct dw_hdmi_qp * @@ got void [noderef] __iomem *[assigned] regs @@
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c:679:24: sparse: expected struct dw_hdmi_qp *
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c:679:24: sparse: got void [noderef] __iomem *[assigned] regs

vim +679 drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c

4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 653
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 654 struct dw_hdmi_qp *dw_hdmi_qp_bind(struct platform_device *pdev,
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 655 struct drm_encoder *encoder,
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 656 const struct dw_hdmi_qp_plat_data *plat_data)
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 657 {
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 658 struct device *dev = &pdev->dev;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 659 struct dw_hdmi_qp *hdmi;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 660 void __iomem *regs;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 661 int ret;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 662
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 663 if (!plat_data->phy_ops || !plat_data->phy_ops->init ||
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 664 !plat_data->phy_ops->disable || !plat_data->phy_ops->read_hpd) {
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 665 dev_err(dev, "Missing platform PHY ops\n");
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 666 return ERR_PTR(-ENODEV);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 667 }
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 668
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 669 hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 670 if (!hdmi)
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 671 return ERR_PTR(-ENOMEM);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 672
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 673 INIT_DELAYED_WORK(&hdmi->scramb_work, dw_hdmi_qp_scramb_work);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 674
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 675 hdmi->dev = dev;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 676
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 677 regs = devm_platform_ioremap_resource(pdev, 0);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 678 if (IS_ERR(regs))
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 @679 return regs;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 680
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 681 hdmi->regm = devm_regmap_init_mmio(dev, regs, &dw_hdmi_qp_regmap_config);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 682 if (IS_ERR(hdmi->regm)) {
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 683 dev_err(dev, "Failed to configure regmap\n");
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 684 return ERR_CAST(hdmi->regm);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 685 }
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 686
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 687 hdmi->phy.ops = plat_data->phy_ops;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 688 hdmi->phy.data = plat_data->phy_data;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 689
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 690 dw_hdmi_qp_init_hw(hdmi);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 691
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 692 ret = devm_request_threaded_irq(dev, plat_data->main_irq,
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 693 dw_hdmi_qp_main_hardirq, NULL,
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 694 IRQF_SHARED, dev_name(dev), hdmi);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 695 if (ret)
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 696 return ERR_PTR(ret);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 697
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 698 hdmi->bridge.driver_private = hdmi;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 699 hdmi->bridge.funcs = &dw_hdmi_qp_bridge_funcs;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 700 hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT |
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 701 DRM_BRIDGE_OP_EDID |
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 702 DRM_BRIDGE_OP_HDMI |
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 703 DRM_BRIDGE_OP_HPD;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 704 hdmi->bridge.of_node = pdev->dev.of_node;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 705 hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 706 hdmi->bridge.vendor = "Synopsys";
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 707 hdmi->bridge.product = "DW HDMI QP TX";
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 708
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 709 hdmi->bridge.ddc = dw_hdmi_qp_i2c_adapter(hdmi);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 710 if (IS_ERR(hdmi->bridge.ddc))
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 711 hdmi->bridge.ddc = NULL;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 712
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 713 ret = devm_drm_bridge_add(dev, &hdmi->bridge);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 714 if (ret)
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 715 return ERR_PTR(ret);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 716
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 717 ret = drm_bridge_attach(encoder, &hdmi->bridge, NULL,
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 718 DRM_BRIDGE_ATTACH_NO_CONNECTOR);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 719 if (ret)
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 720 return ERR_PTR(ret);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 721
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 722 return hdmi;
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 723 }
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 724 EXPORT_SYMBOL_GPL(dw_hdmi_qp_bind);
4ae2f13b217e6c Cristian Ciocaltea 2024-09-06 725

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki