On Sat, 2020-03-07 at 12:54 +0300, Sergei Shtylyov wrote: > Hello! > > On 06.03.2020 14:43, Nicolas Saenz Julienne wrote: > > > On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be > > loaded directly from an EEPROM or, if not present, by the SoC's > > VideCore. Inform VideCore that VL805 was just reset. > > > > Also, as this creates a dependency between XHCI_PCI and VideoCore's > > firmware interface, reflect that on the firmware interface Kconfg. > > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx> > > --- > > > > Changes since v3: > > - Add more complete error message. > > - Add braces around if statement > > > > Changes since v1: > > - Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it > > gets compiled when needed. > > > > drivers/firmware/Kconfig | 1 + > > drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ > > 2 files changed, 17 insertions(+) > [...] > > diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c > > index beb2efa71341..452f5f12b042 100644 > > --- a/drivers/usb/host/pci-quirks.c > > +++ b/drivers/usb/host/pci-quirks.c > > @@ -16,6 +16,9 @@ > > #include <linux/export.h> > > #include <linux/acpi.h> > > #include <linux/dmi.h> > > + > > +#include <soc/bcm2835/raspberrypi-firmware.h> > > + > > #include "pci-quirks.h" > > #include "xhci-ext-caps.h" > > > > @@ -1243,11 +1246,24 @@ static void quirk_usb_handoff_xhci(struct pci_dev > > *pdev) > > > > static void quirk_usb_early_handoff(struct pci_dev *pdev) > > { > > + int ret; > > + > > /* Skip Netlogic mips SoC's internal PCI USB controller. > > * This device does not need/support EHCI/OHCI handoff > > */ > > if (pdev->vendor == 0x184e) /* vendor Netlogic */ > > return; > > + > > + if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { > > + ret = rpi_firmware_init_vl805(pdev); > > + if (ret) { > > + /* Firmware might be outdated, or something failed */ > > + dev_warn(&pdev->dev, "Failed to load VL805's firmware: > > %d\n", ret); > > + dev_warn(&pdev->dev, "Will continue to attempt to work, > > " > > + "but bad things might happen. You should fix > > this...\n"); > > Don't break up the long kernel messages (checkpatch.pl should not > complain > about them). I generally don't, but in this specific case IMO it went way too long, as in 140 charaters long, so I figured it'd be better to split it. That said, I don't really care, so I'll happily change it for v5. Regards, Nicolas
Attachment:
signature.asc
Description: This is a digitally signed message part