All of lore.kernel.org
 help / color / mirror / Atom feed
* [asahilinux:bits/170-atcphy 4/17] drivers/phy/apple/atc.c:1908:32: sparse: sparse: symbol 'atcphy_dwc3_reset_ops' was not declared. Should it be static?
@ 2024-11-29 12:12 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-11-29 12:12 UTC (permalink / raw)
  To: Sven Peter; +Cc: oe-kbuild-all, Janne Grunau

tree:   https://github.com/AsahiLinux/linux bits/170-atcphy
head:   8dfc5f7c0d07db963b0187fd96cd06bdff046404
commit: 44d2e75b8057a2d871fb6b76134828645f25df45 [4/17] WIP: phy: apple: Add Apple Type-C PHY
config: alpha-randconfig-r131-20241118 (https://download.01.org/0day-ci/archive/20241129/202411292017.wKwFKTd8-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20241129/202411292017.wKwFKTd8-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411292017.wKwFKTd8-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/phy/apple/atc.c:1908:32: sparse: sparse: symbol 'atcphy_dwc3_reset_ops' was not declared. Should it be static?
>> drivers/phy/apple/atc.c:2104:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2104:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2104:44: sparse:     got restricted __le32 const [usertype] *p
>> drivers/phy/apple/atc.c:2104:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2104:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2104:19: sparse:     got restricted __be32 const [usertype] *
   drivers/phy/apple/atc.c:2105:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2105:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2105:44: sparse:     got restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2105:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2105:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2105:19: sparse:     got restricted __be32 const [usertype] *
   drivers/phy/apple/atc.c:2106:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2106:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2106:44: sparse:     got restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2106:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2106:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2106:19: sparse:     got restricted __be32 const [usertype] *

vim +/atcphy_dwc3_reset_ops +1908 drivers/phy/apple/atc.c

  1907	
> 1908	const struct reset_control_ops atcphy_dwc3_reset_ops = {
  1909		.assert = atcphy_dwc3_reset_assert,
  1910		.deassert = atcphy_dwc3_reset_deassert,
  1911	};
  1912	
  1913	static int atcphy_reset_xlate(struct reset_controller_dev *rcdev,
  1914				      const struct of_phandle_args *reset_spec)
  1915	{
  1916		return 0;
  1917	}
  1918	
  1919	static int atcphy_probe_rcdev(struct apple_atcphy *atcphy)
  1920	{
  1921		atcphy->rcdev.owner = THIS_MODULE;
  1922		atcphy->rcdev.nr_resets = 1;
  1923		atcphy->rcdev.ops = &atcphy_dwc3_reset_ops;
  1924		atcphy->rcdev.of_node = atcphy->dev->of_node;
  1925		atcphy->rcdev.of_reset_n_cells = 0;
  1926		atcphy->rcdev.of_xlate = atcphy_reset_xlate;
  1927	
  1928		return devm_reset_controller_register(atcphy->dev, &atcphy->rcdev);
  1929	}
  1930	
  1931	static int atcphy_sw_set(struct typec_switch_dev *sw,
  1932				 enum typec_orientation orientation)
  1933	{
  1934		struct apple_atcphy *atcphy = typec_switch_get_drvdata(sw);
  1935	
  1936		trace_atcphy_sw_set(orientation);
  1937	
  1938		mutex_lock(&atcphy->lock);
  1939		switch (orientation) {
  1940		case TYPEC_ORIENTATION_NONE:
  1941			break;
  1942		case TYPEC_ORIENTATION_NORMAL:
  1943			atcphy->swap_lanes = false;
  1944			break;
  1945		case TYPEC_ORIENTATION_REVERSE:
  1946			atcphy->swap_lanes = true;
  1947			break;
  1948		}
  1949		mutex_unlock(&atcphy->lock);
  1950	
  1951		return 0;
  1952	}
  1953	
  1954	static int atcphy_probe_switch(struct apple_atcphy *atcphy)
  1955	{
  1956		struct typec_switch_desc sw_desc = {
  1957			.drvdata = atcphy,
  1958			.fwnode = atcphy->dev->fwnode,
  1959			.set = atcphy_sw_set,
  1960		};
  1961	
  1962		return PTR_ERR_OR_ZERO(typec_switch_register(atcphy->dev, &sw_desc));
  1963	}
  1964	
  1965	static void atcphy_mux_set_work(struct work_struct *work)
  1966	{
  1967		struct apple_atcphy *atcphy = container_of(work, struct apple_atcphy, mux_set_work);
  1968	
  1969		mutex_lock(&atcphy->lock);
  1970		/*
  1971		 * If we're transitiong to TYPEC_STATE_SAFE dwc3 will have gotten
  1972		 * a usb-role-switch event to ROLE_NONE which is deferred to a work
  1973		 * queue. dwc3 will try to switch the pipehandler mux to USB2 and
  1974		 * we have to make sure that has happened before we disable ATCPHY.
  1975		 * If we instead disable ATCPHY first dwc3 will get stuck and the
  1976		 * port won't work anymore until a full SoC reset.
  1977		 * We're guaranteed that no other role switch event will be generated
  1978		 * before we return because the mux_set callback runs in the same
  1979		 * thread that generates these. We can thus unlock the mutex, wait
  1980		 * for dwc3_shutdown_event from the usb3 phy's power_off callback after
  1981		 * it has taken the mutex and the lock again.
  1982		 */
  1983		if (atcphy->dwc3_online && atcphy->target_mode == APPLE_ATCPHY_MODE_OFF) {
  1984			reinit_completion(&atcphy->dwc3_shutdown_event);
  1985			mutex_unlock(&atcphy->lock);
  1986			wait_for_completion_timeout(&atcphy->dwc3_shutdown_event,
  1987						    msecs_to_jiffies(1000));
  1988			mutex_lock(&atcphy->lock);
  1989			WARN_ON(atcphy->dwc3_online);
  1990		}
  1991	
  1992		switch (atcphy->target_mode) {
  1993		case APPLE_ATCPHY_MODE_DP:
  1994		case APPLE_ATCPHY_MODE_USB3_DP:
  1995		case APPLE_ATCPHY_MODE_USB3:
  1996		case APPLE_ATCPHY_MODE_USB4:
  1997			atcphy_cio_configure(atcphy, atcphy->target_mode);
  1998			break;
  1999		default:
  2000			dev_warn(atcphy->dev, "Unknown mode %d in atcphy_mux_set\n",
  2001				 atcphy->target_mode);
  2002			fallthrough;
  2003		case APPLE_ATCPHY_MODE_USB2:
  2004		case APPLE_ATCPHY_MODE_OFF:
  2005			atcphy->mode = APPLE_ATCPHY_MODE_OFF;
  2006			atcphy_disable_dp_aux(atcphy);
  2007			atcphy_cio_power_off(atcphy);
  2008		}
  2009	
  2010		complete(&atcphy->atcphy_online_event);
  2011		mutex_unlock(&atcphy->lock);
  2012	}
  2013	
  2014	static int atcphy_mux_set(struct typec_mux_dev *mux,
  2015				  struct typec_mux_state *state)
  2016	{
  2017		struct apple_atcphy *atcphy = typec_mux_get_drvdata(mux);
  2018	
  2019		// TODO: 
  2020		flush_work(&atcphy->mux_set_work);
  2021	
  2022		mutex_lock(&atcphy->lock);
  2023		trace_atcphy_mux_set(state);
  2024	
  2025		if (state->mode == TYPEC_STATE_SAFE) {
  2026			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2027		} else if (state->mode == TYPEC_STATE_USB) {
  2028			atcphy->target_mode = APPLE_ATCPHY_MODE_USB3;
  2029		} else if (state->alt && state->alt->svid == USB_TYPEC_DP_SID) {
  2030			switch (state->mode) {
  2031			case TYPEC_DP_STATE_C:
  2032			case TYPEC_DP_STATE_E:
  2033				atcphy->target_mode = APPLE_ATCPHY_MODE_DP;
  2034				break;
  2035			case TYPEC_DP_STATE_D:
  2036				atcphy->target_mode = APPLE_ATCPHY_MODE_USB3_DP;
  2037				break;
  2038			default:
  2039				dev_err(atcphy->dev,
  2040					"Unsupported DP pin assignment: 0x%lx.\n",
  2041					state->mode);
  2042				atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2043			}
  2044		} else if (state->alt && state->alt->svid == USB_TYPEC_TBT_SID) {
  2045			dev_err(atcphy->dev, "USB4/TBT mode is not supported yet.\n");
  2046			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2047		} else if (state->alt) {
  2048			dev_err(atcphy->dev, "Unknown alternate mode SVID: 0x%x\n",
  2049				state->alt->svid);
  2050			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2051		} else {
  2052			dev_err(atcphy->dev, "Unknown mode: 0x%lx\n", state->mode);
  2053			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2054		}
  2055	
  2056		if (atcphy->mode != atcphy->target_mode)
  2057			WARN_ON(!schedule_work(&atcphy->mux_set_work));
  2058	
  2059		mutex_unlock(&atcphy->lock);
  2060	
  2061		return 0;
  2062	}
  2063	
  2064	static int atcphy_probe_mux(struct apple_atcphy *atcphy)
  2065	{
  2066		struct typec_mux_desc mux_desc = {
  2067			.drvdata = atcphy,
  2068			.fwnode = atcphy->dev->fwnode,
  2069			.set = atcphy_mux_set,
  2070		};
  2071	
  2072		return PTR_ERR_OR_ZERO(typec_mux_register(atcphy->dev, &mux_desc));
  2073	}
  2074	
  2075	static int atcphy_parse_legacy_tunable(struct apple_atcphy *atcphy,
  2076					       struct atcphy_tunable *tunable,
  2077					       const char *name)
  2078	{
  2079		struct property *prop;
  2080		const __le32 *p = NULL;
  2081		int i;
  2082	
  2083	#if 0
  2084		WARN_TAINT_ONCE(1, TAINT_FIRMWARE_WORKAROUND,
  2085				"parsing legacy tunable; please update m1n1");
  2086	#endif
  2087	
  2088		prop = of_find_property(atcphy->np, name, NULL);
  2089		if (!prop) {
  2090			dev_err(atcphy->dev, "tunable %s not found\n", name);
  2091			return -ENOENT;
  2092		}
  2093	
  2094		if (prop->length % (3 * sizeof(u32)))
  2095			return -EINVAL;
  2096	
  2097		tunable->sz = prop->length / (3 * sizeof(u32));
  2098		tunable->values = devm_kcalloc(atcphy->dev, tunable->sz,
  2099					       sizeof(*tunable->values), GFP_KERNEL);
  2100		if (!tunable->values)
  2101			return -ENOMEM;
  2102	
  2103		for (i = 0; i < tunable->sz; ++i) {
> 2104			p = of_prop_next_u32(prop, p, &tunable->values[i].offset);
  2105			p = of_prop_next_u32(prop, p, &tunable->values[i].mask);
  2106			p = of_prop_next_u32(prop, p, &tunable->values[i].value);
  2107		}
  2108	
  2109		trace_atcphy_parsed_tunable(name, tunable);
  2110	
  2111		return 0;
  2112	}
  2113	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [asahilinux:bits/170-atcphy 4/17] drivers/phy/apple/atc.c:1908:32: sparse: sparse: symbol 'atcphy_dwc3_reset_ops' was not declared. Should it be static?
@ 2024-11-18 14:05 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-11-18 14:05 UTC (permalink / raw)
  To: Sven Peter; +Cc: oe-kbuild-all, Janne Grunau

tree:   https://github.com/AsahiLinux/linux bits/170-atcphy
head:   58c27a2b420c2f6e49fdef1ce8b065e01a10f00c
commit: 44d2e75b8057a2d871fb6b76134828645f25df45 [4/17] WIP: phy: apple: Add Apple Type-C PHY
config: alpha-randconfig-r131-20241118 (https://download.01.org/0day-ci/archive/20241118/202411182200.37HF6h2M-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20241118/202411182200.37HF6h2M-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411182200.37HF6h2M-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/phy/apple/atc.c:1908:32: sparse: sparse: symbol 'atcphy_dwc3_reset_ops' was not declared. Should it be static?
>> drivers/phy/apple/atc.c:2104:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2104:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2104:44: sparse:     got restricted __le32 const [usertype] *p
>> drivers/phy/apple/atc.c:2104:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2104:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2104:19: sparse:     got restricted __be32 const [usertype] *
   drivers/phy/apple/atc.c:2105:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2105:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2105:44: sparse:     got restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2105:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2105:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2105:19: sparse:     got restricted __be32 const [usertype] *
   drivers/phy/apple/atc.c:2106:44: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __be32 const [usertype] *cur @@     got restricted __le32 const [usertype] *p @@
   drivers/phy/apple/atc.c:2106:44: sparse:     expected restricted __be32 const [usertype] *cur
   drivers/phy/apple/atc.c:2106:44: sparse:     got restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2106:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 const [usertype] *p @@     got restricted __be32 const [usertype] * @@
   drivers/phy/apple/atc.c:2106:19: sparse:     expected restricted __le32 const [usertype] *p
   drivers/phy/apple/atc.c:2106:19: sparse:     got restricted __be32 const [usertype] *

vim +/atcphy_dwc3_reset_ops +1908 drivers/phy/apple/atc.c

  1907	
> 1908	const struct reset_control_ops atcphy_dwc3_reset_ops = {
  1909		.assert = atcphy_dwc3_reset_assert,
  1910		.deassert = atcphy_dwc3_reset_deassert,
  1911	};
  1912	
  1913	static int atcphy_reset_xlate(struct reset_controller_dev *rcdev,
  1914				      const struct of_phandle_args *reset_spec)
  1915	{
  1916		return 0;
  1917	}
  1918	
  1919	static int atcphy_probe_rcdev(struct apple_atcphy *atcphy)
  1920	{
  1921		atcphy->rcdev.owner = THIS_MODULE;
  1922		atcphy->rcdev.nr_resets = 1;
  1923		atcphy->rcdev.ops = &atcphy_dwc3_reset_ops;
  1924		atcphy->rcdev.of_node = atcphy->dev->of_node;
  1925		atcphy->rcdev.of_reset_n_cells = 0;
  1926		atcphy->rcdev.of_xlate = atcphy_reset_xlate;
  1927	
  1928		return devm_reset_controller_register(atcphy->dev, &atcphy->rcdev);
  1929	}
  1930	
  1931	static int atcphy_sw_set(struct typec_switch_dev *sw,
  1932				 enum typec_orientation orientation)
  1933	{
  1934		struct apple_atcphy *atcphy = typec_switch_get_drvdata(sw);
  1935	
  1936		trace_atcphy_sw_set(orientation);
  1937	
  1938		mutex_lock(&atcphy->lock);
  1939		switch (orientation) {
  1940		case TYPEC_ORIENTATION_NONE:
  1941			break;
  1942		case TYPEC_ORIENTATION_NORMAL:
  1943			atcphy->swap_lanes = false;
  1944			break;
  1945		case TYPEC_ORIENTATION_REVERSE:
  1946			atcphy->swap_lanes = true;
  1947			break;
  1948		}
  1949		mutex_unlock(&atcphy->lock);
  1950	
  1951		return 0;
  1952	}
  1953	
  1954	static int atcphy_probe_switch(struct apple_atcphy *atcphy)
  1955	{
  1956		struct typec_switch_desc sw_desc = {
  1957			.drvdata = atcphy,
  1958			.fwnode = atcphy->dev->fwnode,
  1959			.set = atcphy_sw_set,
  1960		};
  1961	
  1962		return PTR_ERR_OR_ZERO(typec_switch_register(atcphy->dev, &sw_desc));
  1963	}
  1964	
  1965	static void atcphy_mux_set_work(struct work_struct *work)
  1966	{
  1967		struct apple_atcphy *atcphy = container_of(work, struct apple_atcphy, mux_set_work);
  1968	
  1969		mutex_lock(&atcphy->lock);
  1970		/*
  1971		 * If we're transitiong to TYPEC_STATE_SAFE dwc3 will have gotten
  1972		 * a usb-role-switch event to ROLE_NONE which is deferred to a work
  1973		 * queue. dwc3 will try to switch the pipehandler mux to USB2 and
  1974		 * we have to make sure that has happened before we disable ATCPHY.
  1975		 * If we instead disable ATCPHY first dwc3 will get stuck and the
  1976		 * port won't work anymore until a full SoC reset.
  1977		 * We're guaranteed that no other role switch event will be generated
  1978		 * before we return because the mux_set callback runs in the same
  1979		 * thread that generates these. We can thus unlock the mutex, wait
  1980		 * for dwc3_shutdown_event from the usb3 phy's power_off callback after
  1981		 * it has taken the mutex and the lock again.
  1982		 */
  1983		if (atcphy->dwc3_online && atcphy->target_mode == APPLE_ATCPHY_MODE_OFF) {
  1984			reinit_completion(&atcphy->dwc3_shutdown_event);
  1985			mutex_unlock(&atcphy->lock);
  1986			wait_for_completion_timeout(&atcphy->dwc3_shutdown_event,
  1987						    msecs_to_jiffies(1000));
  1988			mutex_lock(&atcphy->lock);
  1989			WARN_ON(atcphy->dwc3_online);
  1990		}
  1991	
  1992		switch (atcphy->target_mode) {
  1993		case APPLE_ATCPHY_MODE_DP:
  1994		case APPLE_ATCPHY_MODE_USB3_DP:
  1995		case APPLE_ATCPHY_MODE_USB3:
  1996		case APPLE_ATCPHY_MODE_USB4:
  1997			atcphy_cio_configure(atcphy, atcphy->target_mode);
  1998			break;
  1999		default:
  2000			dev_warn(atcphy->dev, "Unknown mode %d in atcphy_mux_set\n",
  2001				 atcphy->target_mode);
  2002			fallthrough;
  2003		case APPLE_ATCPHY_MODE_USB2:
  2004		case APPLE_ATCPHY_MODE_OFF:
  2005			atcphy->mode = APPLE_ATCPHY_MODE_OFF;
  2006			atcphy_disable_dp_aux(atcphy);
  2007			atcphy_cio_power_off(atcphy);
  2008		}
  2009	
  2010		complete(&atcphy->atcphy_online_event);
  2011		mutex_unlock(&atcphy->lock);
  2012	}
  2013	
  2014	static int atcphy_mux_set(struct typec_mux_dev *mux,
  2015				  struct typec_mux_state *state)
  2016	{
  2017		struct apple_atcphy *atcphy = typec_mux_get_drvdata(mux);
  2018	
  2019		// TODO: 
  2020		flush_work(&atcphy->mux_set_work);
  2021	
  2022		mutex_lock(&atcphy->lock);
  2023		trace_atcphy_mux_set(state);
  2024	
  2025		if (state->mode == TYPEC_STATE_SAFE) {
  2026			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2027		} else if (state->mode == TYPEC_STATE_USB) {
  2028			atcphy->target_mode = APPLE_ATCPHY_MODE_USB3;
  2029		} else if (state->alt && state->alt->svid == USB_TYPEC_DP_SID) {
  2030			switch (state->mode) {
  2031			case TYPEC_DP_STATE_C:
  2032			case TYPEC_DP_STATE_E:
  2033				atcphy->target_mode = APPLE_ATCPHY_MODE_DP;
  2034				break;
  2035			case TYPEC_DP_STATE_D:
  2036				atcphy->target_mode = APPLE_ATCPHY_MODE_USB3_DP;
  2037				break;
  2038			default:
  2039				dev_err(atcphy->dev,
  2040					"Unsupported DP pin assignment: 0x%lx.\n",
  2041					state->mode);
  2042				atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2043			}
  2044		} else if (state->alt && state->alt->svid == USB_TYPEC_TBT_SID) {
  2045			dev_err(atcphy->dev, "USB4/TBT mode is not supported yet.\n");
  2046			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2047		} else if (state->alt) {
  2048			dev_err(atcphy->dev, "Unknown alternate mode SVID: 0x%x\n",
  2049				state->alt->svid);
  2050			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2051		} else {
  2052			dev_err(atcphy->dev, "Unknown mode: 0x%lx\n", state->mode);
  2053			atcphy->target_mode = APPLE_ATCPHY_MODE_OFF;
  2054		}
  2055	
  2056		if (atcphy->mode != atcphy->target_mode)
  2057			WARN_ON(!schedule_work(&atcphy->mux_set_work));
  2058	
  2059		mutex_unlock(&atcphy->lock);
  2060	
  2061		return 0;
  2062	}
  2063	
  2064	static int atcphy_probe_mux(struct apple_atcphy *atcphy)
  2065	{
  2066		struct typec_mux_desc mux_desc = {
  2067			.drvdata = atcphy,
  2068			.fwnode = atcphy->dev->fwnode,
  2069			.set = atcphy_mux_set,
  2070		};
  2071	
  2072		return PTR_ERR_OR_ZERO(typec_mux_register(atcphy->dev, &mux_desc));
  2073	}
  2074	
  2075	static int atcphy_parse_legacy_tunable(struct apple_atcphy *atcphy,
  2076					       struct atcphy_tunable *tunable,
  2077					       const char *name)
  2078	{
  2079		struct property *prop;
  2080		const __le32 *p = NULL;
  2081		int i;
  2082	
  2083	#if 0
  2084		WARN_TAINT_ONCE(1, TAINT_FIRMWARE_WORKAROUND,
  2085				"parsing legacy tunable; please update m1n1");
  2086	#endif
  2087	
  2088		prop = of_find_property(atcphy->np, name, NULL);
  2089		if (!prop) {
  2090			dev_err(atcphy->dev, "tunable %s not found\n", name);
  2091			return -ENOENT;
  2092		}
  2093	
  2094		if (prop->length % (3 * sizeof(u32)))
  2095			return -EINVAL;
  2096	
  2097		tunable->sz = prop->length / (3 * sizeof(u32));
  2098		tunable->values = devm_kcalloc(atcphy->dev, tunable->sz,
  2099					       sizeof(*tunable->values), GFP_KERNEL);
  2100		if (!tunable->values)
  2101			return -ENOMEM;
  2102	
  2103		for (i = 0; i < tunable->sz; ++i) {
> 2104			p = of_prop_next_u32(prop, p, &tunable->values[i].offset);
  2105			p = of_prop_next_u32(prop, p, &tunable->values[i].mask);
  2106			p = of_prop_next_u32(prop, p, &tunable->values[i].value);
  2107		}
  2108	
  2109		trace_atcphy_parsed_tunable(name, tunable);
  2110	
  2111		return 0;
  2112	}
  2113	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-11-29 12:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-29 12:12 [asahilinux:bits/170-atcphy 4/17] drivers/phy/apple/atc.c:1908:32: sparse: sparse: symbol 'atcphy_dwc3_reset_ops' was not declared. Should it be static? kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2024-11-18 14:05 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.