]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: typec: maxim_contaminant: re-enable cc toggle if cc is open and port is clean
authorAmit Sunil Dhamne <amitsd@google.com>
Fri, 15 Aug 2025 18:31:52 +0000 (11:31 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:31:09 +0000 (16:31 +0200)
commitadeb6ccc145f0b24f12ad1b7dd846afacd3037e7
tree24190f109d1c5713e6f9b20047e72ce06b52b3ad
parentb21f9560a9708d4fae9b01678ddd3b970cdbb6a8
usb: typec: maxim_contaminant: re-enable cc toggle if cc is open and port is clean

commit a381c6d6f646226924809d0ad01a9465786da463 upstream.

Presently in `max_contaminant_is_contaminant()` if there's no
contaminant detected previously, CC is open & stopped toggling and no
contaminant is currently present, TCPC.RC would be programmed to do DRP
toggling. However, it didn't actively look for a connection. This would
lead to Type-C not detect *any* new connections. Hence, in the above
situation, re-enable toggling & program TCPC to look for a new
connection.

Also, return early if TCPC was looking for connection as this indicates
TCPC has neither detected a potential connection nor a change in
contaminant state.

In addition, once dry detection is complete (port is dry), restart
toggling.

Fixes: 02b332a06397e ("usb: typec: maxim_contaminant: Implement check_contaminant callback")
Cc: stable <stable@kernel.org>
Signed-off-by: Amit Sunil Dhamne <amitsd@google.com>
Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
Link: https://lore.kernel.org/r/20250815-fix-upstream-contaminant-v2-2-6c8d6c3adafb@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/maxim_contaminant.c