public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: linux-usb@vger.kernel.org
Cc: Yehezkel Bernat <YehezkelShB@gmail.com>,
	Michael Jamet <michael.jamet@intel.com>,
	Andreas Noever <andreas.noever@gmail.com>,
	Lukas Wunner <lukas@wunner.de>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-acpi@vger.kernel.org,
	Casey G Bowman <casey.g.bowman@intel.com>,
	Rajmohan Mani <rajmohan.mani@intel.com>,
	Christian Kellner <ckellner@redhat.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Mika Westerberg <mika.westerberg@linux.intel.com>
Subject: [PATCH 0/9] thunderbolt: Offline on-board retimer NVM upgrade support
Date: Wed, 19 May 2021 17:12:50 +0300	[thread overview]
Message-ID: <20210519141259.84839-1-mika.westerberg@linux.intel.com> (raw)

Hi all,

USB4 retimers are only accessible when the USB4 is up. However, sometimes
it may be useful to be able to upgrade on-board retimers even if the link
is not up. For instance if the user simply does not have any USB4 devices.

Making retimers accessible in "offline" mode requires some help from the
platform firmware (ACPI in our case) to turn on power to the retimers and
cycle them through different modes to get the sideband link up. This may
also involve other firmwares such as Embedded Controller (as it is the case
with recent Chromebooks).

This series adds support for "offline" retimer NVM upgrade so that it first
exposes each USB4 port to the userspace. If the platform firmware provides
a special _DSM-method (Device Specific Method) under the USB4 port ACPI
description, we expose two attributes under the port that the userspace can
use to put the port to offline mode and rescan for the retimers. Otherwise
the NVM upgrade works the same way than with the online mode. We also add
documentation to the admin-guide how this can be done.

In addition to this, at least Intel USB4 devices (and retimers) allow
running NVM authenticate (upgrade) separately from write so we make it
possible for the userspace to run the write and authenticate in two steps.
This allows userspace to trigger the authentication at later time, like
when the user logs out.

Mika Westerberg (4):
  thunderbolt: Log the link as TBT instead of TBT3
  thunderbolt: Add USB4 port devices
  thunderbolt: Allow router NVM authenticate separately
  thunderbolt: Check for NVM authentication status after the operation started

Rajmohan Mani (5):
  thunderbolt: Add support for ACPI _DSM to power on/off retimers
  thunderbolt: Add additional USB4 port operations for retimer access
  thunderbolt: Add support for retimer NVM upgrade when there is no link
  thunderbolt: Move nvm_write_ops to tb.h
  thunderbolt: Add WRITE_ONLY and AUTHENTICATE_ONLY NVM operations for retimers

 .../ABI/testing/sysfs-bus-thunderbolt         |  38 ++-
 Documentation/admin-guide/thunderbolt.rst     |  29 ++
 drivers/thunderbolt/Makefile                  |   2 +-
 drivers/thunderbolt/acpi.c                    | 206 +++++++++++++
 drivers/thunderbolt/domain.c                  |   9 +-
 drivers/thunderbolt/retimer.c                 | 108 +++++--
 drivers/thunderbolt/sb_regs.h                 |   2 +
 drivers/thunderbolt/switch.c                  | 120 +++++---
 drivers/thunderbolt/tb.c                      |   4 +-
 drivers/thunderbolt/tb.h                      |  60 +++-
 drivers/thunderbolt/usb4.c                    | 153 +++++++++-
 drivers/thunderbolt/usb4_port.c               | 281 ++++++++++++++++++
 12 files changed, 930 insertions(+), 82 deletions(-)
 create mode 100644 drivers/thunderbolt/usb4_port.c

-- 
2.30.2


             reply	other threads:[~2021-05-19 14:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-19 14:12 Mika Westerberg [this message]
2021-05-19 14:12 ` [PATCH 1/9] thunderbolt: Log the link as TBT instead of TBT3 Mika Westerberg
2021-05-19 14:12 ` [PATCH 2/9] thunderbolt: Add USB4 port devices Mika Westerberg
2021-05-19 15:14   ` Heikki Krogerus
2021-05-19 15:30     ` Heikki Krogerus
2021-05-19 15:40     ` Mika Westerberg
2021-05-20  9:23       ` Heikki Krogerus
2021-05-19 14:12 ` [PATCH 3/9] thunderbolt: Add support for ACPI _DSM to power on/off retimers Mika Westerberg
2021-05-19 14:12 ` [PATCH 4/9] thunderbolt: Add additional USB4 port operations for retimer access Mika Westerberg
2021-05-19 14:12 ` [PATCH 5/9] thunderbolt: Add support for retimer NVM upgrade when there is no link Mika Westerberg
2021-05-19 14:12 ` [PATCH 6/9] thunderbolt: Move nvm_write_ops to tb.h Mika Westerberg
2021-05-19 14:12 ` [PATCH 7/9] thunderbolt: Allow router NVM authenticate separately Mika Westerberg
2021-05-19 14:12 ` [PATCH 8/9] thunderbolt: Add WRITE_ONLY and AUTHENTICATE_ONLY NVM operations for retimers Mika Westerberg
2021-05-19 14:12 ` [PATCH 9/9] thunderbolt: Check for NVM authentication status after the operation started Mika Westerberg
2021-05-20  8:59 ` [PATCH 0/9] thunderbolt: Offline on-board retimer NVM upgrade support Greg Kroah-Hartman
2021-06-01  7:56   ` Mika Westerberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210519141259.84839-1-mika.westerberg@linux.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=YehezkelShB@gmail.com \
    --cc=andreas.noever@gmail.com \
    --cc=casey.g.bowman@intel.com \
    --cc=ckellner@redhat.com \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=michael.jamet@intel.com \
    --cc=rajmohan.mani@intel.com \
    --cc=rjw@rjwysocki.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox