[usb:usb-testing 5/12] 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux