[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zy34-G0uOUyA6EQc@kuha.fi.intel.com>
Date: Fri, 8 Nov 2024 13:41:44 +0200
From: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
To: Abhishek Pandit-Subedi <abhishekpandit@...omium.org>
Cc: tzungbi@...nel.org, linux-usb@...r.kernel.org,
chrome-platform@...ts.linux.dev, jthies@...gle.com,
akuchynski@...gle.com, pmalani@...omium.org,
dmitry.baryshkov@...aro.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Masahiro Yamada <masahiroy@...nel.org>,
Nathan Chancellor <nathan@...nel.org>,
Nicolas Schier <nicolas@...sle.eu>, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 1/7] usb: typec: Only use SVID for matching altmodes
On Thu, Nov 07, 2024 at 11:29:54AM -0800, Abhishek Pandit-Subedi wrote:
> Mode in struct typec_altmode is used to indicate the index of the
> altmode on a port, partner or plug. It is used in enter mode VDMs but
> doesn't make much sense for matching against altmode drivers or for
> matching partner to port altmodes.
>
> Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@...omium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
> ---
>
> Changes in v3:
> - Removed mode from altmode device ids
> - Updated modalias for typecd bus to remove mode
> - Re-ordered to start of series
>
> Changes in v2:
> - Update altmode_match to ignore mode entirely
> - Also apply the same behavior to typec_match
>
> drivers/usb/typec/altmodes/displayport.c | 2 +-
> drivers/usb/typec/altmodes/nvidia.c | 2 +-
> drivers/usb/typec/bus.c | 6 ++----
> drivers/usb/typec/class.c | 4 ++--
> scripts/mod/devicetable-offsets.c | 1 -
> scripts/mod/file2alias.c | 4 +---
> 6 files changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c
> index 2f03190a9873..3245e03d59e6 100644
> --- a/drivers/usb/typec/altmodes/displayport.c
> +++ b/drivers/usb/typec/altmodes/displayport.c
> @@ -791,7 +791,7 @@ void dp_altmode_remove(struct typec_altmode *alt)
> EXPORT_SYMBOL_GPL(dp_altmode_remove);
>
> static const struct typec_device_id dp_typec_id[] = {
> - { USB_TYPEC_DP_SID, USB_TYPEC_DP_MODE },
> + { USB_TYPEC_DP_SID },
> { },
> };
> MODULE_DEVICE_TABLE(typec, dp_typec_id);
> diff --git a/drivers/usb/typec/altmodes/nvidia.c b/drivers/usb/typec/altmodes/nvidia.c
> index fe70b36f078f..2b77d931e494 100644
> --- a/drivers/usb/typec/altmodes/nvidia.c
> +++ b/drivers/usb/typec/altmodes/nvidia.c
> @@ -24,7 +24,7 @@ static void nvidia_altmode_remove(struct typec_altmode *alt)
> }
>
> static const struct typec_device_id nvidia_typec_id[] = {
> - { USB_TYPEC_NVIDIA_VLINK_SID, TYPEC_ANY_MODE },
> + { USB_TYPEC_NVIDIA_VLINK_SID },
> { },
> };
> MODULE_DEVICE_TABLE(typec, nvidia_typec_id);
> diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c
> index aa879253d3b8..ae90688d23e4 100644
> --- a/drivers/usb/typec/bus.c
> +++ b/drivers/usb/typec/bus.c
> @@ -454,8 +454,7 @@ static int typec_match(struct device *dev, const struct device_driver *driver)
> const struct typec_device_id *id;
>
> for (id = drv->id_table; id->svid; id++)
> - if (id->svid == altmode->svid &&
> - (id->mode == TYPEC_ANY_MODE || id->mode == altmode->mode))
> + if (id->svid == altmode->svid)
> return 1;
> return 0;
> }
> @@ -470,8 +469,7 @@ static int typec_uevent(const struct device *dev, struct kobj_uevent_env *env)
> if (add_uevent_var(env, "MODE=%u", altmode->mode))
> return -ENOMEM;
>
> - return add_uevent_var(env, "MODALIAS=typec:id%04Xm%02X",
> - altmode->svid, altmode->mode);
> + return add_uevent_var(env, "MODALIAS=typec:id%04X", altmode->svid);
> }
>
> static int typec_altmode_create_links(struct altmode *alt)
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index 4b3047e055a3..febe453b96be 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -237,13 +237,13 @@ 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);
> }
>
> static void typec_altmode_set_partner(struct altmode *altmode)
> {
> struct typec_altmode *adev = &altmode->adev;
> - struct typec_device_id id = { adev->svid, adev->mode, };
> + struct typec_device_id id = { adev->svid };
> struct typec_port *port = typec_altmode2port(adev);
> struct altmode *partner;
> struct device *dev;
> diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c
> index 9c7b404defbd..d3d00e85edf7 100644
> --- a/scripts/mod/devicetable-offsets.c
> +++ b/scripts/mod/devicetable-offsets.c
> @@ -237,7 +237,6 @@ int main(void)
>
> DEVID(typec_device_id);
> DEVID_FIELD(typec_device_id, svid);
> - DEVID_FIELD(typec_device_id, mode);
>
> DEVID(tee_client_device_id);
> DEVID_FIELD(tee_client_device_id, uuid);
> diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
> index c4cc11aa558f..218ccb7150bf 100644
> --- a/scripts/mod/file2alias.c
> +++ b/scripts/mod/file2alias.c
> @@ -1343,14 +1343,12 @@ static int do_tbsvc_entry(const char *filename, void *symval, char *alias)
> return 1;
> }
>
> -/* Looks like: typec:idNmN */
> +/* Looks like: typec:idN */
> static int do_typec_entry(const char *filename, void *symval, char *alias)
> {
> DEF_FIELD(symval, typec_device_id, svid);
> - DEF_FIELD(symval, typec_device_id, mode);
>
> sprintf(alias, "typec:id%04X", svid);
> - ADD(alias, "m", mode != TYPEC_ANY_MODE, mode);
>
> return 1;
> }
> --
> 2.47.0.277.g8800431eea-goog
--
heikki
Powered by blists - more mailing lists