Commit 304719b1 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Wen Zhiwei
Browse files

usb: typec: ucsi: add update_connector callback

stable inclusion
from stable-v6.6.70
commit 01059e0b5cc00f128f5b37e51ce60e21727f7773
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBOHV1

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=01059e0b5cc00f128f5b37e51ce60e21727f7773



--------------------------------

[ Upstream commit 62866465196228917f233aea68de73be6cdb9fae ]

Add a callback to allow glue drivers to update the connector before
registering corresponding power supply and Type-C port. In particular
this is useful if glue drivers want to touch the connector's Type-C
capabilities structure.

Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240411-ucsi-orient-aware-v2-4-d4b1cb22a33f@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: de9df030ccb5 ("usb: typec: ucsi: glink: be more precise on orientation-aware ports")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarWen Zhiwei <wenzhiwei@kylinos.cn>
parent 8d368229
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1261,6 +1261,9 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con)
	cap->driver_data = con;
	cap->ops = &ucsi_ops;

	if (ucsi->ops->update_connector)
		ucsi->ops->update_connector(con);

	ret = ucsi_register_port_psy(con);
	if (ret)
		goto out;
+2 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ struct dentry;
 * @sync_write: Blocking write operation
 * @async_write: Non-blocking write operation
 * @update_altmodes: Squashes duplicate DP altmodes
 * @update_connector: Update connector capabilities before registering
 * @connector_status: Updates connector status, called holding connector lock
 *
 * Read and write routines for UCSI interface. @sync_write must wait for the
@@ -68,6 +69,7 @@ struct ucsi_operations {
			   const void *val, size_t val_len);
	bool (*update_altmodes)(struct ucsi *ucsi, struct ucsi_altmode *orig,
				struct ucsi_altmode *updated);
	void (*update_connector)(struct ucsi_connector *con);
	void (*connector_status)(struct ucsi_connector *con);
};