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