diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/thunderbolt/retimer.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/thunderbolt/retimer.c')
| -rw-r--r-- | drivers/thunderbolt/retimer.c | 23 | 
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/thunderbolt/retimer.c b/drivers/thunderbolt/retimer.c index 56008eb91e2e..9cc28197dbc4 100644 --- a/drivers/thunderbolt/retimer.c +++ b/drivers/thunderbolt/retimer.c @@ -187,6 +187,22 @@ static ssize_t nvm_authenticate_show(struct device *dev,  	return ret;  } +static void tb_retimer_set_inbound_sbtx(struct tb_port *port) +{ +	int i; + +	for (i = 1; i <= TB_MAX_RETIMER_INDEX; i++) +		usb4_port_retimer_set_inbound_sbtx(port, i); +} + +static void tb_retimer_unset_inbound_sbtx(struct tb_port *port) +{ +	int i; + +	for (i = TB_MAX_RETIMER_INDEX; i >= 1; i--) +		usb4_port_retimer_unset_inbound_sbtx(port, i); +} +  static ssize_t nvm_authenticate_store(struct device *dev,  	struct device_attribute *attr, const char *buf, size_t count)  { @@ -213,6 +229,7 @@ static ssize_t nvm_authenticate_store(struct device *dev,  	rt->auth_status = 0;  	if (val) { +		tb_retimer_set_inbound_sbtx(rt->port);  		if (val == AUTHENTICATE_ONLY) {  			ret = tb_retimer_nvm_authenticate(rt, true);  		} else { @@ -232,6 +249,7 @@ static ssize_t nvm_authenticate_store(struct device *dev,  	}  exit_unlock: +	tb_retimer_unset_inbound_sbtx(rt->port);  	mutex_unlock(&rt->tb->lock);  exit_rpm:  	pm_runtime_mark_last_busy(&rt->dev); @@ -440,8 +458,7 @@ int tb_retimer_scan(struct tb_port *port, bool add)  	 * Enable sideband channel for each retimer. We can do this  	 * regardless whether there is device connected or not.  	 */ -	for (i = 1; i <= TB_MAX_RETIMER_INDEX; i++) -		usb4_port_retimer_set_inbound_sbtx(port, i); +	tb_retimer_set_inbound_sbtx(port);  	/*  	 * Before doing anything else, read the authentication status. @@ -464,6 +481,8 @@ int tb_retimer_scan(struct tb_port *port, bool add)  			break;  	} +	tb_retimer_unset_inbound_sbtx(port); +  	if (!last_idx)  		return 0;  |