All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/extcon/extcon-ptn5150.c:355 ptn5150_i2c_probe() warn: 'info->role_sw' is an error pointer or valid
@ 2026-07-08 14:50 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-08 14:50 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Xu Yang <xu.yang_2@nxp.com>
CC: Chanwoo Choi <cw00.choi@samsung.com>
CC: Frank Li <Frank.Li@nxp.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53
commit: 9c98fdec70ec15c46610464366d414df1d6a0bee extcon: ptn5150: Support USB role switch via connector fwnode
date:   4 months ago
:::::: branch date: 2 days ago
:::::: commit date: 4 months ago
config: m68k-randconfig-r072-20260708 (https://download.01.org/0day-ci/archive/20260708/202607082240.NZfoJ5ba-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 16.1.0
smatch: v0.5.0-9185-gbcc58b9c

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
| Fixes: 9c98fdec70ec ("extcon: ptn5150: Support USB role switch via connector fwnode")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202607082240.NZfoJ5ba-lkp@intel.com/

smatch warnings:
drivers/extcon/extcon-ptn5150.c:355 ptn5150_i2c_probe() warn: 'info->role_sw' is an error pointer or valid

vim +355 drivers/extcon/extcon-ptn5150.c

782cd939cbe0f56 Li Jun                     2022-04-19  254  
0b0549b6ac72a0f Krzysztof Kozlowski        2020-08-17  255  static int ptn5150_i2c_probe(struct i2c_client *i2c)
4ed754de2d66084 Vijai Kumar K              2019-01-23  256  {
4ed754de2d66084 Vijai Kumar K              2019-01-23  257  	struct device *dev = &i2c->dev;
4ed754de2d66084 Vijai Kumar K              2019-01-23  258  	struct device_node *np = i2c->dev.of_node;
842546c56345eeb Xu Yang                    2025-09-26  259  	struct fwnode_handle *connector;
4ed754de2d66084 Vijai Kumar K              2019-01-23  260  	struct ptn5150_info *info;
4ed754de2d66084 Vijai Kumar K              2019-01-23  261  	int ret;
4ed754de2d66084 Vijai Kumar K              2019-01-23  262  
4ed754de2d66084 Vijai Kumar K              2019-01-23  263  	if (!np)
4ed754de2d66084 Vijai Kumar K              2019-01-23  264  		return -EINVAL;
4ed754de2d66084 Vijai Kumar K              2019-01-23  265  
4ed754de2d66084 Vijai Kumar K              2019-01-23  266  	info = devm_kzalloc(&i2c->dev, sizeof(*info), GFP_KERNEL);
4ed754de2d66084 Vijai Kumar K              2019-01-23  267  	if (!info)
4ed754de2d66084 Vijai Kumar K              2019-01-23  268  		return -ENOMEM;
4ed754de2d66084 Vijai Kumar K              2019-01-23  269  	i2c_set_clientdata(i2c, info);
4ed754de2d66084 Vijai Kumar K              2019-01-23  270  
4ed754de2d66084 Vijai Kumar K              2019-01-23  271  	info->dev = &i2c->dev;
4ed754de2d66084 Vijai Kumar K              2019-01-23  272  	info->i2c = i2c;
e095882ee28a7b1 Krzysztof Kozlowski        2020-08-17  273  	info->vbus_gpiod = devm_gpiod_get(&i2c->dev, "vbus", GPIOD_OUT_LOW);
3dfed89512d3b65 Wei Yongjun                2019-01-25  274  	if (IS_ERR(info->vbus_gpiod)) {
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  275  		ret = PTR_ERR(info->vbus_gpiod);
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  276  		if (ret == -ENOENT) {
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  277  			dev_info(dev, "No VBUS GPIO, ignoring VBUS control\n");
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  278  			info->vbus_gpiod = NULL;
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  279  		} else {
611e92a0a3dc654 Andy Shevchenko            2020-08-26  280  			return dev_err_probe(dev, ret, "failed to get VBUS GPIO\n");
fbaf3b67d4d2764 Krzysztof Kozlowski        2020-08-17  281  		}
4ed754de2d66084 Vijai Kumar K              2019-01-23  282  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  283  
4ed754de2d66084 Vijai Kumar K              2019-01-23  284  	mutex_init(&info->mutex);
4ed754de2d66084 Vijai Kumar K              2019-01-23  285  
4ed754de2d66084 Vijai Kumar K              2019-01-23  286  	INIT_WORK(&info->irq_work, ptn5150_irq_work);
4ed754de2d66084 Vijai Kumar K              2019-01-23  287  
4ed754de2d66084 Vijai Kumar K              2019-01-23  288  	info->regmap = devm_regmap_init_i2c(i2c, &ptn5150_regmap_config);
4ed754de2d66084 Vijai Kumar K              2019-01-23  289  	if (IS_ERR(info->regmap)) {
611e92a0a3dc654 Andy Shevchenko            2020-08-26  290  		return dev_err_probe(info->dev, PTR_ERR(info->regmap),
611e92a0a3dc654 Andy Shevchenko            2020-08-26  291  				     "failed to allocate register map\n");
4ed754de2d66084 Vijai Kumar K              2019-01-23  292  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  293  
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  294  	if (i2c->irq > 0) {
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  295  		info->irq = i2c->irq;
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  296  	} else {
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  297  		info->int_gpiod = devm_gpiod_get(&i2c->dev, "int", GPIOD_IN);
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  298  		if (IS_ERR(info->int_gpiod)) {
611e92a0a3dc654 Andy Shevchenko            2020-08-26  299  			return dev_err_probe(dev, PTR_ERR(info->int_gpiod),
611e92a0a3dc654 Andy Shevchenko            2020-08-26  300  					     "failed to get INT GPIO\n");
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  301  		}
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  302  
4ed754de2d66084 Vijai Kumar K              2019-01-23  303  		info->irq = gpiod_to_irq(info->int_gpiod);
4ed754de2d66084 Vijai Kumar K              2019-01-23  304  		if (info->irq < 0) {
4ed754de2d66084 Vijai Kumar K              2019-01-23  305  			dev_err(dev, "failed to get INTB IRQ\n");
4ed754de2d66084 Vijai Kumar K              2019-01-23  306  			return info->irq;
4ed754de2d66084 Vijai Kumar K              2019-01-23  307  		}
45ce36f5d262d73 Krzysztof Kozlowski        2020-08-17  308  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  309  
4ed754de2d66084 Vijai Kumar K              2019-01-23  310  	ret = devm_request_threaded_irq(dev, info->irq, NULL,
4ed754de2d66084 Vijai Kumar K              2019-01-23  311  					ptn5150_irq_handler,
4ed754de2d66084 Vijai Kumar K              2019-01-23  312  					IRQF_TRIGGER_FALLING |
4ed754de2d66084 Vijai Kumar K              2019-01-23  313  					IRQF_ONESHOT,
4ed754de2d66084 Vijai Kumar K              2019-01-23  314  					i2c->name, info);
4ed754de2d66084 Vijai Kumar K              2019-01-23  315  	if (ret < 0) {
4ed754de2d66084 Vijai Kumar K              2019-01-23  316  		dev_err(dev, "failed to request handler for INTB IRQ\n");
4ed754de2d66084 Vijai Kumar K              2019-01-23  317  		return ret;
4ed754de2d66084 Vijai Kumar K              2019-01-23  318  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  319  
4ed754de2d66084 Vijai Kumar K              2019-01-23  320  	/* Allocate extcon device */
4ed754de2d66084 Vijai Kumar K              2019-01-23  321  	info->edev = devm_extcon_dev_allocate(info->dev, ptn5150_extcon_cable);
4ed754de2d66084 Vijai Kumar K              2019-01-23  322  	if (IS_ERR(info->edev)) {
4ed754de2d66084 Vijai Kumar K              2019-01-23  323  		dev_err(info->dev, "failed to allocate memory for extcon\n");
4ed754de2d66084 Vijai Kumar K              2019-01-23  324  		return -ENOMEM;
4ed754de2d66084 Vijai Kumar K              2019-01-23  325  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  326  
4ed754de2d66084 Vijai Kumar K              2019-01-23  327  	/* Register extcon device */
4ed754de2d66084 Vijai Kumar K              2019-01-23  328  	ret = devm_extcon_dev_register(info->dev, info->edev);
4ed754de2d66084 Vijai Kumar K              2019-01-23  329  	if (ret) {
4ed754de2d66084 Vijai Kumar K              2019-01-23  330  		dev_err(info->dev, "failed to register extcon device\n");
4ed754de2d66084 Vijai Kumar K              2019-01-23  331  		return ret;
4ed754de2d66084 Vijai Kumar K              2019-01-23  332  	}
4ed754de2d66084 Vijai Kumar K              2019-01-23  333  
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  334  	extcon_set_property_capability(info->edev, EXTCON_USB,
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  335  					EXTCON_PROP_USB_VBUS);
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  336  	extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  337  					EXTCON_PROP_USB_VBUS);
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  338  	extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  339  					EXTCON_PROP_USB_TYPEC_POLARITY);
ea6a95d09c1bd28 Ramuthevar Vadivel Murugan 2020-08-27  340  
4ed754de2d66084 Vijai Kumar K              2019-01-23  341  	/* Initialize PTN5150 device and print vendor id and version id */
4ed754de2d66084 Vijai Kumar K              2019-01-23  342  	ret = ptn5150_init_dev_type(info);
4ed754de2d66084 Vijai Kumar K              2019-01-23  343  	if (ret)
4ed754de2d66084 Vijai Kumar K              2019-01-23  344  		return -EINVAL;
4ed754de2d66084 Vijai Kumar K              2019-01-23  345  
842546c56345eeb Xu Yang                    2025-09-26  346  	connector = device_get_named_child_node(dev, "connector");
842546c56345eeb Xu Yang                    2025-09-26  347  	if (connector) {
842546c56345eeb Xu Yang                    2025-09-26  348  		info->orient_sw = fwnode_typec_switch_get(connector);
842546c56345eeb Xu Yang                    2025-09-26  349  		if (IS_ERR(info->orient_sw))
842546c56345eeb Xu Yang                    2025-09-26  350  			return dev_err_probe(info->dev, PTR_ERR(info->orient_sw),
842546c56345eeb Xu Yang                    2025-09-26  351  					"failed to get orientation switch\n");
842546c56345eeb Xu Yang                    2025-09-26  352  	}
842546c56345eeb Xu Yang                    2025-09-26  353  
1bfcaa570081111 Li Jun                     2022-04-19  354  	info->role_sw = usb_role_switch_get(info->dev);
9c98fdec70ec15c Xu Yang                    2025-09-26 @355  	if (!info->role_sw && connector)
9c98fdec70ec15c Xu Yang                    2025-09-26  356  		info->role_sw = fwnode_usb_role_switch_get(connector);
1bfcaa570081111 Li Jun                     2022-04-19  357  	if (IS_ERR(info->role_sw))
1bfcaa570081111 Li Jun                     2022-04-19  358  		return dev_err_probe(info->dev, PTR_ERR(info->role_sw),
1bfcaa570081111 Li Jun                     2022-04-19  359  				     "failed to get role switch\n");
1bfcaa570081111 Li Jun                     2022-04-19  360  
782cd939cbe0f56 Li Jun                     2022-04-19  361  	ret = devm_add_action_or_reset(dev, ptn5150_work_sync_and_put, info);
782cd939cbe0f56 Li Jun                     2022-04-19  362  	if (ret)
782cd939cbe0f56 Li Jun                     2022-04-19  363  		return ret;
782cd939cbe0f56 Li Jun                     2022-04-19  364  
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  365  	/*
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  366  	 * Update current extcon state if for example OTG connection was there
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  367  	 * before the probe
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  368  	 */
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  369  	mutex_lock(&info->mutex);
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  370  	ptn5150_check_state(info);
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  371  	mutex_unlock(&info->mutex);
85256f611f664b0 Krzysztof Kozlowski        2020-08-17  372  
4ed754de2d66084 Vijai Kumar K              2019-01-23  373  	return 0;
4ed754de2d66084 Vijai Kumar K              2019-01-23  374  }
4ed754de2d66084 Vijai Kumar K              2019-01-23  375  

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-08 14:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-08 14:50 drivers/extcon/extcon-ptn5150.c:355 ptn5150_i2c_probe() warn: 'info->role_sw' is an error pointer or valid kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.