Re: [PATCH 3/4] usb: typec: Factor out non-PD fwnode properties

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

 



Hi Samuel,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on robh/for-next v5.17-rc2 next-20220202]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Samuel-Holland/dt-bindings-vendor-prefixes-Add-willsemi/20220201-112541
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: openrisc-randconfig-m031-20220201 (https://download.01.org/0day-ci/archive/20220202/202202021458.xcH4F4SQ-lkp@xxxxxxxxx/config)
compiler: or1k-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

smatch warnings:
drivers/usb/typec/class.c:1919 typec_get_fw_cap() warn: unsigned 'cap->type' is never less than zero.
drivers/usb/typec/class.c:1926 typec_get_fw_cap() warn: unsigned 'cap->data' is never less than zero.

vim +1919 drivers/usb/typec/class.c

  1896	
  1897	int typec_get_fw_cap(struct typec_capability *cap,
  1898			     struct fwnode_handle *fwnode)
  1899	{
  1900		const char *cap_str;
  1901		int ret;
  1902	
  1903		/*
  1904		 * This fwnode has a "compatible" property, but is never populated as a
  1905		 * struct device. Instead we simply parse it to read the properties.
  1906		 * This it breaks fw_devlink=on. To maintain backward compatibility
  1907		 * with existing DT files, we work around this by deleting any
  1908		 * fwnode_links to/from this fwnode.
  1909		 */
  1910		fw_devlink_purge_absent_suppliers(fwnode);
  1911	
  1912		cap->fwnode = fwnode;
  1913	
  1914		ret = fwnode_property_read_string(fwnode, "power-role", &cap_str);
  1915		if (ret < 0)
  1916			return ret;
  1917	
  1918		cap->type = typec_find_port_power_role(cap_str);
> 1919		if (cap->type < 0)
  1920			return cap->type;
  1921	
  1922		/* USB data support is optional */
  1923		ret = fwnode_property_read_string(fwnode, "data-role", &cap_str);
  1924		if (ret == 0) {
  1925			cap->data = typec_find_port_data_role(cap_str);
> 1926			if (cap->data < 0)
  1927				return cap->data;
  1928		}
  1929	
  1930		/* Get the preferred power role for a DRP */
  1931		if (cap->type == TYPEC_PORT_DRP) {
  1932			cap->prefer_role = TYPEC_NO_PREFERRED_ROLE;
  1933	
  1934			ret = fwnode_property_read_string(fwnode, "try-power-role", &cap_str);
  1935			if (ret == 0) {
  1936				cap->prefer_role = typec_find_power_role(cap_str);
  1937				if (cap->prefer_role < 0)
  1938					return cap->prefer_role;
  1939			}
  1940		}
  1941	
  1942		return 0;
  1943	}
  1944	EXPORT_SYMBOL_GPL(typec_get_fw_cap);
  1945	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx



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

  Powered by Linux