Message ID | 20240925092505.2.Ie0d37646f18461234777d88b4c3e21faed92ed4f@changeid (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Thunderbolt and DP altmode support for cros-ec-typec | expand |
On Wed, Sep 25, 2024 at 09:25:03AM GMT, Abhishek Pandit-Subedi wrote: > 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@chromium.org> Fixes? > --- > > 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 >
On Wed, Sep 25, 2024 at 9:54 AM Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > > On Wed, Sep 25, 2024 at 09:25:03AM GMT, Abhishek Pandit-Subedi wrote: > > 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@chromium.org> > > Fixes? This is new for Thunderbolt which registers as TYPEC_ANY_MODE so there's no FIXES. I think Heikki may need to chime in on how the `mode` is supposed to be used. IMO, it may be appropriate to get rid of the mode check entirely. > > > --- > > > > 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 > > > > -- > With best wishes > Dmitry
On Wed, Sep 25, 2024 at 10:31:33AM -0700, Abhishek Pandit-Subedi wrote: > On Wed, Sep 25, 2024 at 9:54 AM Dmitry Baryshkov > <dmitry.baryshkov@linaro.org> wrote: > > > > On Wed, Sep 25, 2024 at 09:25:03AM GMT, Abhishek Pandit-Subedi wrote: > > > 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@chromium.org> > > > > Fixes? > > This is new for Thunderbolt which registers as TYPEC_ANY_MODE so > there's no FIXES. I think Heikki may need to chime in on how the > `mode` is supposed to be used. > > IMO, it may be appropriate to get rid of the mode check entirely. It's probable okay to just drop it. > > > > > --- > > > > > > 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 > > > > > > > -- > > With best wishes > > Dmitry
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)
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@chromium.org> --- drivers/usb/typec/class.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)