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: arm-randconfig-002-20240511 (https://download.01.org/0day-ci/archive/20240511/202405111302.6y9oqb58-lkp@xxxxxxxxx/config) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project b910bebc300dafb30569cecc3017b446ea8eafa0) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240511/202405111302.6y9oqb58-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/202405111302.6y9oqb58-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c:15: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:21: In file included from include/linux/mm.h:2210: include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c:113:46: error: too many arguments to function call, expected single argument 'adev', have 2 arguments 113 | ret = devm_drm_dp_hpd_bridge_add(tcpm->dev, bridge_dev); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~ include/drm/bridge/aux-bridge.h:36:19: note: 'devm_drm_dp_hpd_bridge_add' declared here 36 | static inline int devm_drm_dp_hpd_bridge_add(struct auxiliary_device *adev) | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 1 error generated. vim +/adev +113 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c > 15 #include <linux/regulator/consumer.h> 16 #include <linux/slab.h> 17 #include <linux/usb/role.h> 18 #include <linux/usb/tcpm.h> 19 #include <linux/usb/typec_mux.h> 20 21 #include <drm/bridge/aux-bridge.h> 22 23 #include "qcom_pmic_typec.h" 24 #include "qcom_pmic_typec_pdphy.h" 25 #include "qcom_pmic_typec_port.h" 26 27 struct pmic_typec_resources { 28 const struct pmic_typec_pdphy_resources *pdphy_res; 29 const struct pmic_typec_port_resources *port_res; 30 }; 31 32 static int qcom_pmic_typec_init(struct tcpc_dev *tcpc) 33 { 34 return 0; 35 } 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