~vicamo/+git/ubuntu-kernel:bug-1962349/amd-yellow-carp-tbt3/korg-next

Last commit made on 2022-03-10
Get this branch:
git clone -b bug-1962349/amd-yellow-carp-tbt3/korg-next https://git.launchpad.net/~vicamo/+git/ubuntu-kernel
Only You-Sheng Yang can upload to this branch. If you are You-Sheng Yang please log in for upload directions.

Branch merges

Branch information

Name:
bug-1962349/amd-yellow-carp-tbt3/korg-next
Repository:
lp:~vicamo/+git/ubuntu-kernel

Recent commits

66a6a92... by Mario Limonciello <email address hidden>

UBUNTU: SAUCE: PCI: ACPI: Don't blindly trust `HotPlugSupportInD3`

BugLink: https://bugs.launchpad.net/amd/+bug/1962350

The `_DSD` `HotPlugSupportInD3` is supposed to indicate the ability for a
bridge to be able to wakeup from D3.

This however is static information in the ACPI table at BIOS compilation
time and on some platforms it's possible to configure the firmware at boot
up such that `_S0W` will not return "0" indicating the inability to wake
up the system from D3.

To fix these situations explicitly check that the ACPI device claims the
system can be awoken in `acpi_pci_bridge_d3`.

Link: https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/07_Power_and_Performance_Mgmt/device-power-management-objects.html?highlight=s0w#s0w-s0-device-wake-state
Link: https://docs.microsoft.com/en-us/windows-hardware/drivers/pci/dsd-for-pcie-root-ports#identifying-pcie-root-ports-supporting-hot-plug-in-d3
Fixes: 26ad34d510a87 ("PCI / ACPI: Whitelist D3 for more PCIe hotplug ports")
Signed-off-by: Mario Limonciello <email address hidden>
(cherry picked from https://lore<email address hidden>/)
Signed-off-by: You-Sheng Yang <email address hidden>

6915812... by Mario Limonciello <email address hidden>

thunderbolt: Do not make DROM read success compulsory

The USB4 specification doesn't make any requirements that reading
a device router's DROM is needed for the operation of the device.

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

So make failures when reading the DROM show warnings but not
fail the initialization of the router.

Signed-off-by: Mario Limonciello <email address hidden>
Signed-off-by: Mika Westerberg <email address hidden>

a283de3... by Mario Limonciello <email address hidden>

thunderbolt: Do not resume routers if UID is not set

Routers might not have a UID set if the DROM read failed during
initialization previously.

Normally upon resume the UID is re-read to confirm it's the same
device connected.
* If the DROM read failed during init but then succeeded during
  resume it could either be a new device or faulty device
* If the DROM read failed during init and also failed during resume
  it might be a different device plugged in all together.

Detect this situation and prevent re-using the same configuration in
these cirucmstances.

Signed-off-by: Mario Limonciello <email address hidden>
Signed-off-by: Mika Westerberg <email address hidden>

e87491a... by Mario Limonciello <email address hidden>

thunderbolt: Retry DROM reads for more failure scenarios

Currently DROM reads are only retried in the case that parsing failed.
However if the size or CRC fails, then there should also be a retry.

This helps with reading the DROM on TBT3 devices connected to AMD
Yellow Carp which will sometimes fail on the first attempt.

Signed-off-by: Mario Limonciello <email address hidden>
Signed-off-by: Mika Westerberg <email address hidden>

7f7b571... by "Rafael J. Wysocki" <email address hidden>

thunderbolt: Replace acpi_bus_get_device()

Replace acpi_bus_get_device() that is going to be dropped with
acpi_fetch_acpi_dev().

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <email address hidden>
Signed-off-by: Mika Westerberg <email address hidden>

30a4eca... by Mika Westerberg <email address hidden>

thunderbolt: Add internal xHCI connect flows for Thunderbolt 3 devices

Both Alpine Ridge and Titan Ridge require special flows in order to
activate the internal xHCI controller when there is USB device connected
to the downstream type-C port. This implements the missing flows for
both.

Signed-off-by: Mika Westerberg <email address hidden>

f1d5ec3... by Mika Westerberg <email address hidden>

thunderbolt: Add missing device ID to tb_switch_is_alpine_ridge()

tb_switch_is_alpine_ridge() is missing device ID for Intel Alpine Ridge
dual port version so add this.

Signed-off-by: Mika Westerberg <email address hidden>

3eddfc1... by Mika Westerberg <email address hidden>

thunderbolt: Disable LTTPR on Intel Titan Ridge

Intel Titan Ridge does not disable AUX timers when it gets SET_CONFIG
with SET_LTTPR_MODE set which makes DP tunneling to fail. For this
reason disable LTTPR on Titan Ridge device side.

Signed-off-by: Mika Westerberg <email address hidden>

97486e9... by tititou

thunderbolt: Remove useless DMA-32 fallback configuration

As stated in [1], dma_set_mask() with a 64-bit mask never fails if
dev->dma_mask is non-NULL.
So, if it fails, the 32 bits case will also fail for the same reason.

Simplify code and remove some dead code accordingly.

While at it, include directly <linux/dma-mapping.h> instead on relying on
indirect inclusion.

[1]: https://lkml.org/lkml/2021/6/7/398

Signed-off-by: Christophe JAILLET <email address hidden>
Signed-off-by: Mika Westerberg <email address hidden>

e783362... by Linus Torvalds <email address hidden>

Linux 5.17-rc1