]> Git Repo - linux.git/commit
xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers
authorMarc Zyngier <[email protected]>
Wed, 23 May 2018 17:41:37 +0000 (18:41 +0100)
committerGreg Kroah-Hartman <[email protected]>
Fri, 1 Jun 2018 11:24:51 +0000 (13:24 +0200)
commit12de0a35c996c3a75d050bff748815db3432849c
tree3009c2b100d6cbc0ade131c531bbd52fed455430
parent36b6857932f380fcb55c31ac75857e3e81dd583a
xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers

Some Renesas controllers get into a weird state if they are reset while
programmed with 64bit addresses (they will preserve the top half of the
address in internal, non visible registers).

You end up with half the address coming from the kernel, and the other
half coming from the firmware.

Also, changing the programming leads to extra accesses even if the
controller is supposed to be halted. The controller ends up with a fatal
fault, and is then ripe for being properly reset. On the flip side,
this is completely unsafe if the defvice isn't behind an IOMMU, so
we have to make sure that this is the case. Can you say "broken"?

This is an alternative method to the one introduced in 8466489ef5ba
("xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue"),
which will subsequently be removed.

Tested-by: Domenico Andreoli <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Tested-by: Faiz Abbas <[email protected]>
Tested-by: Domenico Andreoli <[email protected]>
Acked-by: Mathias Nyman <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
drivers/usb/host/xhci-pci.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h
This page took 0.0563 seconds and 4 git commands to generate.