tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing head: 344f74cf531d90245e1296b3ffbaa7df99dd18f6 commit: 718b36a7b49acbba36546371db2d235271ceb06c [5/12] usb: typec: qcom-pmic-typec: split HPD bridge alloc and registration config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20240511/202405110428.TMCfb1Ut-lkp@xxxxxxxxx/config) compiler: sh4-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240511/202405110428.TMCfb1Ut-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/202405110428.TMCfb1Ut-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c: In function 'qcom_pmic_typec_probe': >> drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c:113:46: error: passing argument 1 of 'devm_drm_dp_hpd_bridge_add' from incompatible pointer type [-Werror=incompatible-pointer-types] 113 | ret = devm_drm_dp_hpd_bridge_add(tcpm->dev, bridge_dev); | ~~~~^~~~~ | | | struct device * In file included from drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c:21: include/drm/bridge/aux-bridge.h:36:71: note: expected 'struct auxiliary_device *' but argument is of type 'struct device *' 36 | static inline int devm_drm_dp_hpd_bridge_add(struct auxiliary_device *adev) | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ >> drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c:113:15: error: too many arguments to function 'devm_drm_dp_hpd_bridge_add' 113 | ret = devm_drm_dp_hpd_bridge_add(tcpm->dev, bridge_dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/drm/bridge/aux-bridge.h:36:19: note: declared here 36 | static inline int devm_drm_dp_hpd_bridge_add(struct auxiliary_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/devm_drm_dp_hpd_bridge_add +113 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c 36 37 static int qcom_pmic_typec_probe(struct platform_device *pdev) 38 { 39 struct pmic_typec *tcpm; 40 struct device *dev = &pdev->dev; 41 struct device_node *np = dev->of_node; 42 const struct pmic_typec_resources *res; 43 struct regmap *regmap; 44 struct auxiliary_device *bridge_dev; 45 u32 base; 46 int ret; 47 48 res = of_device_get_match_data(dev); 49 if (!res) 50 return -ENODEV; 51 52 tcpm = devm_kzalloc(dev, sizeof(*tcpm), GFP_KERNEL); 53 if (!tcpm) 54 return -ENOMEM; 55 56 tcpm->dev = dev; 57 tcpm->tcpc.init = qcom_pmic_typec_init; 58 59 regmap = dev_get_regmap(dev->parent, NULL); 60 if (!regmap) { 61 dev_err(dev, "Failed to get regmap\n"); 62 return -ENODEV; 63 } 64 65 ret = of_property_read_u32_index(np, "reg", 0, &base); 66 if (ret) 67 return ret; 68 69 ret = qcom_pmic_typec_port_probe(pdev, tcpm, 70 res->port_res, regmap, base); 71 if (ret) 72 return ret; 73 74 if (res->pdphy_res) { 75 ret = of_property_read_u32_index(np, "reg", 1, &base); 76 if (ret) 77 return ret; 78 79 ret = qcom_pmic_typec_pdphy_probe(pdev, tcpm, 80 res->pdphy_res, regmap, base); 81 if (ret) 82 return ret; 83 } else { 84 ret = qcom_pmic_typec_pdphy_stub_probe(pdev, tcpm); 85 if (ret) 86 return ret; 87 } 88 89 platform_set_drvdata(pdev, tcpm); 90 91 tcpm->tcpc.fwnode = device_get_named_child_node(tcpm->dev, "connector"); 92 if (!tcpm->tcpc.fwnode) 93 return -EINVAL; 94 95 bridge_dev = devm_drm_dp_hpd_bridge_alloc(tcpm->dev, to_of_node(tcpm->tcpc.fwnode)); 96 if (IS_ERR(bridge_dev)) 97 return PTR_ERR(bridge_dev); 98 99 tcpm->tcpm_port = tcpm_register_port(tcpm->dev, &tcpm->tcpc); 100 if (IS_ERR(tcpm->tcpm_port)) { 101 ret = PTR_ERR(tcpm->tcpm_port); 102 goto fwnode_remove; 103 } 104 105 ret = tcpm->port_start(tcpm, tcpm->tcpm_port); 106 if (ret) 107 goto port_unregister; 108 109 ret = tcpm->pdphy_start(tcpm, tcpm->tcpm_port); 110 if (ret) 111 goto port_stop; 112 > 113 ret = devm_drm_dp_hpd_bridge_add(tcpm->dev, bridge_dev); 114 if (ret) 115 goto pdphy_stop; 116 117 return 0; 118 119 pdphy_stop: 120 tcpm->pdphy_stop(tcpm); 121 port_stop: 122 tcpm->port_stop(tcpm); 123 port_unregister: 124 tcpm_unregister_port(tcpm->tcpm_port); 125 fwnode_remove: 126 fwnode_remove_software_node(tcpm->tcpc.fwnode); 127 128 return ret; 129 } 130 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki