Re: [PATCH 3/5] drivers/thunderbolt: Don't make DROM read success compulsory

From: Mika Westerberg
Date: Thu Mar 03 2022 - 02:47:32 EST


Hi Mario,

On Wed, Mar 02, 2022 at 04:07:07PM -0600, Mario Limonciello wrote:
> The USB4 specification doesn't make any requirements that reading
> a device router's DROM is needed for the operation of the device.
>
> On page 207 of the USB4 1.0 spec it does mention that a CM may use
> the DROM to make decision though:
> ```
> After enumerating a Router, the Connection Manager may read the
> contents of the Router’s DROM. If, after reading the contents of
> DROM, the Connection Manager decides that it does not want the
> Router in its Domain...
> ```

You don't need to quote the spec for Thunderbolt patches. I can read,
and it's not like it is going to change anyway ;-)

> Other connection manager solutions don't necessarily read it or gate
> the usability of the device on whether it was read.

Indeed.

> So make failures when reading the DROM show warnings but not
> fail the initialization of the switch.
>
> Link: https://www.usb.org/sites/default/files/USB4%20Specification%2020211116.zip

Also no need to "link" the spec. I know where the spec can be
downloaded.

Ditto for all patches.

> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
> drivers/thunderbolt/switch.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
> index 294518af4ee4..ac87e8b50e52 100644
> --- a/drivers/thunderbolt/switch.c
> +++ b/drivers/thunderbolt/switch.c
> @@ -2784,10 +2784,8 @@ int tb_switch_add(struct tb_switch *sw)
>
> /* read drom */
> ret = tb_drom_read(sw);
> - if (ret) {
> - dev_err(&sw->dev, "reading DROM failed\n");
> - return ret;
> - }
> + if (ret)
> + dev_warn(&sw->dev, "reading DROM failed: %d\n", ret);
> tb_sw_dbg(sw, "uid: %#llx\n", sw->uid);
>
> tb_check_quirks(sw);
> --
> 2.34.1