[PATCH 2/8] usb: typec: altmode_match should handle TYPEC_ANY_MODE

From: Abhishek Pandit-Subedi
Date: Wed Sep 25 2024 - 12:25:47 EST


altmode_match is used when searching for the first port altmode that
matches the partner or plug altmode. If the port registered with mode
set to TYPEC_ANY_MODE, it should always match if the SVID matches.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@xxxxxxxxxxxx>
---

drivers/usb/typec/class.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index 9262fcd4144f..179856503d5d 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -230,7 +230,8 @@ static int altmode_match(struct device *dev, void *data)
if (!is_typec_altmode(dev))
return 0;

- return ((adev->svid == id->svid) && (adev->mode == id->mode));
+ return ((adev->svid == id->svid) &&
+ (adev->mode == id->mode || adev->mode == TYPEC_ANY_MODE));
}

static void typec_altmode_set_partner(struct altmode *altmode)
--
2.46.0.792.g87dc391469-goog