Hi Andrei,
--- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -1922,6 +1922,42 @@ void ucsi_set_drvdata(struct ucsi *ucsi, void *data) } EXPORT_SYMBOL_GPL(ucsi_set_drvdata); +/**
- ucsi_con_mutex_lock - Acquire the connector mutex
- @con: The connector interface to lock
- Returns true on success, false if the connector is disconnected
- */
+bool ucsi_con_mutex_lock(struct ucsi_connector *con) +{
- bool mutex_locked = false;
- bool connected = true;
- while (connected && !mutex_locked) {
mutex_locked = mutex_trylock(&con->lock) != 0;
connected = UCSI_CONSTAT(con, CONNECTED);
if (connected && !mutex_locked)
msleep(20);
- }
- connected = connected && con->partner;
- if (!connected && mutex_locked)
mutex_unlock(&con->lock);
- return connected;
+} +EXPORT_SYMBOL_GPL(ucsi_con_mutex_lock);
+/**
- ucsi_con_mutex_unlock - Release the connector mutex
- @con: The connector interface to unlock
- */
+void ucsi_con_mutex_unlock(struct ucsi_connector *con) +{
- mutex_unlock(&con->lock);
+} +EXPORT_SYMBOL_GPL(ucsi_con_mutex_unlock);
No need to export these.
thanks,