From patchwork Tue Mar 10 12:52:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 1252141 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48cFPn4Bklz9sXK for ; Tue, 10 Mar 2020 23:53:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729148AbgCJMxQ (ORCPT ); Tue, 10 Mar 2020 08:53:16 -0400 Received: from mx2.suse.de ([195.135.220.15]:42728 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728661AbgCJMxL (ORCPT ); Tue, 10 Mar 2020 08:53:11 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 21C95AC67; Tue, 10 Mar 2020 12:53:10 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org Cc: linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, f.fainelli@gmail.com, gregkh@linuxfoundation.org, tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, wahrenst@gmx.net, sergei.shtylyov@cogentembedded.com, Nicolas Saenz Julienne , Andrew Murray Subject: [PATCH v5 0/4] USB: pci-quirks: Add Raspberry Pi 4 quirk Date: Tue, 10 Mar 2020 13:52:38 +0100 Message-Id: <20200310125243.25805-1-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org 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. This series adds support for the later. Note that there are a set of constraints we have to consider (some of them I missed on v1): - We need to make sure the VideoCore firmware interface is up and running before running the VL805 firmware load call. - There is no way to discern RPi4's VL805 chip from other platforms', so we need the firmware load to happen *before* running quirk_usb_handoff_xhci(). Failure to do so results in an unwarranted 5 second wait while the fixup code polls xHC's unexisting state. --- Changes since v4: - Addressed Sergei's comments - Fix potential warning in patch #2 Changes since v3: - Addressed Greg's comments There was no v2, my bad. Changes since v1: - Addressed Floarians comments Nicolas Saenz Julienne (4): soc: bcm2835: Sync xHCI reset firmware property with downstream firmware: raspberrypi: Introduce vl805 init routine PCI: brcmstb: Wait for Raspberry Pi's firmware when present USB: pci-quirks: Add Raspberry Pi 4 quirk drivers/firmware/Kconfig | 1 + drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++ drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++ drivers/usb/host/pci-quirks.c | 16 +++++++++ include/soc/bcm2835/raspberrypi-firmware.h | 9 ++++- 5 files changed, 78 insertions(+), 1 deletion(-)