Update RPi4 USB patch to latest, drop no longer used tegra patch
This commit is contained in:
parent
b48a24fbaa
commit
7f70f668f8
658
USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
Normal file
658
USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
Normal file
@ -0,0 +1,658 @@
|
|||||||
|
From patchwork Fri Mar 6 11:43:45 2020
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
X-Patchwork-Id: 11423679
|
||||||
|
Return-Path:
|
||||||
|
<SRS0=iJpk=4X=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||||
|
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||||
|
[172.30.200.123])
|
||||||
|
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 70B5914B7
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:02 +0000 (UTC)
|
||||||
|
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||||
|
[198.137.202.133])
|
||||||
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||||
|
(No client certificate requested)
|
||||||
|
by mail.kernel.org (Postfix) with ESMTPS id 4E4F92072A
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:02 +0000 (UTC)
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||||
|
header.i=@lists.infradead.org header.b="dGEE0Sg7"
|
||||||
|
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4E4F92072A
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dmarc=none (p=none dis=none) header.from=suse.de
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
spf=none
|
||||||
|
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||||
|
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||||
|
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||||
|
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||||
|
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||||
|
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||||
|
List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=dGEE0Sg7v5PBTu
|
||||||
|
5qGfgXA4+4sJpnFfsp+cAr2DAwAeCgqMmQrm4uAPZLI8efXK5VHLKP6PEX2JrH7D3MfzTF0dU9g6/
|
||||||
|
WQUqXvxsGGnePdDZw5//mlUcq+gml374oe11NwXONXbBo79sEsxrYx25OjFsZt2RxgNXg4bZlQrMy
|
||||||
|
YnqIMx3EPz58Ah2d69LlezGH3br2KiByqaG0B1TUiU6oD2BLFMZE7Z4g8Ndb5AvkxTwsWjFnpacZN
|
||||||
|
95uzRzQy042X9al5ZuSokOeT3hDAaTFHQc0JwQYX+YxpN1aK/AnIYTATOGlsfmCosK5cOsOJk+aSD
|
||||||
|
+zIXNMdtqtSwEzzEk9QA==;
|
||||||
|
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||||
|
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABOb-00053O-32; Fri, 06 Mar 2020 11:44:01 +0000
|
||||||
|
Received: from mx2.suse.de ([195.135.220.15])
|
||||||
|
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABOY-00051E-01; Fri, 06 Mar 2020 11:43:59 +0000
|
||||||
|
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 A2B70AEF6;
|
||||||
|
Fri, 6 Mar 2020 11:43:55 +0000 (UTC)
|
||||||
|
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
To: linux-kernel@vger.kernel.org,
|
||||||
|
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||||
|
Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>,
|
||||||
|
Scott Branden <sbranden@broadcom.com>,
|
||||||
|
bcm-kernel-feedback-list@broadcom.com
|
||||||
|
Subject: [PATCH v4 1/4] soc: bcm2835: Sync xHCI reset firmware property with
|
||||||
|
downstream
|
||||||
|
Date: Fri, 6 Mar 2020 12:43:45 +0100
|
||||||
|
Message-Id: <20200306114348.5172-2-nsaenzjulienne@suse.de>
|
||||||
|
X-Mailer: git-send-email 2.25.1
|
||||||
|
In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
References: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||||
|
X-CRM114-CacheID: sfid-20200306_034358_187314_7B4D5C40
|
||||||
|
X-CRM114-Status: GOOD ( 13.62 )
|
||||||
|
X-Spam-Score: -2.3 (--)
|
||||||
|
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||||
|
Content analysis details: (-2.3 points)
|
||||||
|
pts rule name description
|
||||||
|
---- ----------------------
|
||||||
|
--------------------------------------------------
|
||||||
|
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||||
|
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||||
|
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||||
|
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||||
|
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||||
|
[195.135.220.15 listed in wl.mailspike.net]
|
||||||
|
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||||
|
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||||
|
X-Mailman-Version: 2.1.29
|
||||||
|
Precedence: list
|
||||||
|
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||||
|
List-Unsubscribe:
|
||||||
|
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||||
|
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||||
|
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||||
|
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||||
|
List-Subscribe:
|
||||||
|
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||||
|
Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org,
|
||||||
|
linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||||
|
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
|
||||||
|
wahrenst@gmx.net
|
||||||
|
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||||
|
Errors-To:
|
||||||
|
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
|
||||||
|
The property is needed in order to trigger VL805's firmware load. Note
|
||||||
|
that there is a gap between the property introduced and the previous
|
||||||
|
one. This is also the case downstream.
|
||||||
|
|
||||||
|
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
---
|
||||||
|
include/soc/bcm2835/raspberrypi-firmware.h | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
index 7800e12ee042..cc9cdbc66403 100644
|
||||||
|
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag {
|
||||||
|
RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045,
|
||||||
|
RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049,
|
||||||
|
RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
|
||||||
|
-
|
||||||
|
+ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
|
||||||
|
|
||||||
|
/* Dispmanx TAGS */
|
||||||
|
RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
|
||||||
|
|
||||||
|
From patchwork Fri Mar 6 11:43:46 2020
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
X-Patchwork-Id: 11423697
|
||||||
|
Return-Path:
|
||||||
|
<SRS0=iJpk=4X=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||||
|
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||||
|
[172.30.200.123])
|
||||||
|
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B5ACE14B7
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:32 +0000 (UTC)
|
||||||
|
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||||
|
[198.137.202.133])
|
||||||
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||||
|
(No client certificate requested)
|
||||||
|
by mail.kernel.org (Postfix) with ESMTPS id 91DF92072A
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:32 +0000 (UTC)
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||||
|
header.i=@lists.infradead.org header.b="DG1Rd9pv"
|
||||||
|
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 91DF92072A
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dmarc=none (p=none dis=none) header.from=suse.de
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
spf=none
|
||||||
|
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||||
|
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||||
|
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||||
|
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||||
|
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||||
|
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||||
|
List-Owner; bh=3Y9Bl+SWHCBoW9h0wXyUxKrcbYUmxn2lHa+AZSrB9sI=; b=DG1Rd9pvKLqCNK
|
||||||
|
BTo7HtqMLcSMlDp9MBV7S9jQys3aZp0d0DfZzySKxREwIFwG/vrhhs5Wl6fIyF0s/UxzUT0PRv1w8
|
||||||
|
JST/Eeac+0SyEf03QO0muMBhXms+lS7Xj2W5ExGRLjsTRb5fF3tb7VD9yiiyqaaYlnS1pmtpwwBwf
|
||||||
|
fMemr/A/aOYHmcEV3wtSwDyFpKzbn3LGtIVeaPDKZhnkYvyJGD52G4h6pr/KLRQv2oFt8rA/U9QR/
|
||||||
|
R4So9MJxK3FyVioYRdBqwgN7ijrfhh2UtaBLKzk77k59/nMuQoGm19vSwRCus5axiQJisYFNrDwvv
|
||||||
|
kiKbXXrYW68JvUUXZxGQ==;
|
||||||
|
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||||
|
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABP4-0005Wb-RE; Fri, 06 Mar 2020 11:44:30 +0000
|
||||||
|
Received: from mx2.suse.de ([195.135.220.15])
|
||||||
|
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABOY-00051M-46; Fri, 06 Mar 2020 11:44:00 +0000
|
||||||
|
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 B52A5AFD8;
|
||||||
|
Fri, 6 Mar 2020 11:43:56 +0000 (UTC)
|
||||||
|
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
To: linux-kernel@vger.kernel.org,
|
||||||
|
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||||
|
Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>,
|
||||||
|
Scott Branden <sbranden@broadcom.com>,
|
||||||
|
bcm-kernel-feedback-list@broadcom.com
|
||||||
|
Subject: [PATCH v4 2/4] firmware: raspberrypi: Introduce vl805 init routine
|
||||||
|
Date: Fri, 6 Mar 2020 12:43:46 +0100
|
||||||
|
Message-Id: <20200306114348.5172-3-nsaenzjulienne@suse.de>
|
||||||
|
X-Mailer: git-send-email 2.25.1
|
||||||
|
In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
References: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||||
|
X-CRM114-CacheID: sfid-20200306_034358_450028_ABB3A519
|
||||||
|
X-CRM114-Status: GOOD ( 15.23 )
|
||||||
|
X-Spam-Score: -2.3 (--)
|
||||||
|
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||||
|
Content analysis details: (-2.3 points)
|
||||||
|
pts rule name description
|
||||||
|
---- ----------------------
|
||||||
|
--------------------------------------------------
|
||||||
|
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||||
|
[195.135.220.15 listed in wl.mailspike.net]
|
||||||
|
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||||
|
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||||
|
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||||
|
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||||
|
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||||
|
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||||
|
X-Mailman-Version: 2.1.29
|
||||||
|
Precedence: list
|
||||||
|
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||||
|
List-Unsubscribe:
|
||||||
|
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||||
|
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||||
|
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||||
|
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||||
|
List-Subscribe:
|
||||||
|
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||||
|
Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org,
|
||||||
|
linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||||
|
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
|
||||||
|
wahrenst@gmx.net
|
||||||
|
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||||
|
Errors-To:
|
||||||
|
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.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. The function informs VideCore that VL805 was just reset, or
|
||||||
|
requests for a probe defer.
|
||||||
|
|
||||||
|
Based on Tim Gover's downstream implementation.
|
||||||
|
|
||||||
|
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
---
|
||||||
|
Changes since v1:
|
||||||
|
- Move include into .c file and add forward declaration to .h
|
||||||
|
|
||||||
|
drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++
|
||||||
|
include/soc/bcm2835/raspberrypi-firmware.h | 7 ++++
|
||||||
|
2 files changed, 45 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
|
||||||
|
index da26a584dca0..cbb495aff6a0 100644
|
||||||
|
--- a/drivers/firmware/raspberrypi.c
|
||||||
|
+++ b/drivers/firmware/raspberrypi.c
|
||||||
|
@@ -12,6 +12,7 @@
|
||||||
|
#include <linux/of_platform.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/slab.h>
|
||||||
|
+#include <linux/pci.h>
|
||||||
|
#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||||
|
|
||||||
|
#define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf))
|
||||||
|
@@ -286,6 +287,43 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(rpi_firmware_get);
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * 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, or defer xhci's probe if not yet
|
||||||
|
+ * joinable trough the mailbox interface.
|
||||||
|
+ */
|
||||||
|
+int rpi_firmware_init_vl805(struct pci_dev *pdev)
|
||||||
|
+{
|
||||||
|
+ struct device_node *fw_np;
|
||||||
|
+ struct rpi_firmware *fw;
|
||||||
|
+ u32 dev_addr;
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ fw_np = of_find_compatible_node(NULL, NULL,
|
||||||
|
+ "raspberrypi,bcm2835-firmware");
|
||||||
|
+ if (!fw_np)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ fw = rpi_firmware_get(fw_np);
|
||||||
|
+ of_node_put(fw_np);
|
||||||
|
+ if (!fw)
|
||||||
|
+ return -EPROBE_DEFER;
|
||||||
|
+
|
||||||
|
+ dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 |
|
||||||
|
+ PCI_FUNC(pdev->devfn) << 12;
|
||||||
|
+
|
||||||
|
+ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET,
|
||||||
|
+ &dev_addr, sizeof(dev_addr));
|
||||||
|
+ if (ret)
|
||||||
|
+ return ret;
|
||||||
|
+
|
||||||
|
+ dev_dbg(&pdev->dev, "loaded Raspberry Pi's VL805 firmware\n");
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805);
|
||||||
|
+
|
||||||
|
static const struct of_device_id rpi_firmware_of_match[] = {
|
||||||
|
{ .compatible = "raspberrypi,bcm2835-firmware", },
|
||||||
|
{},
|
||||||
|
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
index cc9cdbc66403..c161bdab759d 100644
|
||||||
|
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include <linux/of_device.h>
|
||||||
|
|
||||||
|
struct rpi_firmware;
|
||||||
|
+struct pci_dev;
|
||||||
|
|
||||||
|
enum rpi_firmware_property_status {
|
||||||
|
RPI_FIRMWARE_STATUS_REQUEST = 0,
|
||||||
|
@@ -141,6 +142,7 @@ int rpi_firmware_property(struct rpi_firmware *fw,
|
||||||
|
int rpi_firmware_property_list(struct rpi_firmware *fw,
|
||||||
|
void *data, size_t tag_size);
|
||||||
|
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node);
|
||||||
|
+int rpi_firmware_init_vl805(struct pci_dev *pdev);
|
||||||
|
#else
|
||||||
|
static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag,
|
||||||
|
void *data, size_t len)
|
||||||
|
@@ -158,6 +160,11 @@ static inline struct rpi_firmware *rpi_firmware_get(struct device_node *firmware
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+static int rpi_firmware_init_vl805(struct pci_dev *pdev)
|
||||||
|
+{
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __SOC_RASPBERRY_FIRMWARE_H__ */
|
||||||
|
|
||||||
|
From patchwork Fri Mar 6 11:43:47 2020
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
X-Patchwork-Id: 11423699
|
||||||
|
Return-Path:
|
||||||
|
<SRS0=iJpk=4X=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||||
|
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||||
|
[172.30.200.123])
|
||||||
|
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A184A14B7
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:49 +0000 (UTC)
|
||||||
|
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||||
|
[198.137.202.133])
|
||||||
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||||
|
(No client certificate requested)
|
||||||
|
by mail.kernel.org (Postfix) with ESMTPS id 6921A2072A
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:44:49 +0000 (UTC)
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||||
|
header.i=@lists.infradead.org header.b="Y5dY1L75"
|
||||||
|
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6921A2072A
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dmarc=none (p=none dis=none) header.from=suse.de
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
spf=none
|
||||||
|
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||||
|
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||||
|
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||||
|
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||||
|
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||||
|
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||||
|
List-Owner; bh=2ExZWVTw9LuCk0+3FVpp99SpZhZ8GLF00iI2upbbmVU=; b=Y5dY1L75FQ1OgS
|
||||||
|
TFgcuSnOZaeUh5zcKRjkext3cOjhQ8m9HMKNy8qhAxoD092CEriDJrZZ/JJEAzKFBe5ekgjmTiU/q
|
||||||
|
SbhN3NfLpL0N13VD1SZy2PP6nTiTWBxwD6pbF0JewFUqH9koK8EmH7Pd3udj4+kKLWOVH0fP9gZhl
|
||||||
|
ftPrHyJo07K7pMVX0t4bt2OildDgMK3xzHkHl7U8KKttcwMQFAY7xD+eC5GwrccDhlZJMANHZku9N
|
||||||
|
vLsFCNWq7b6z+otqy+7cUEbUSkWqS0KeNKpRlKx0h/j3zxl6eAi2KtQlgD2StgkVrJZGb0plNBch6
|
||||||
|
JZAjf1oTo1/nzgnp1+MA==;
|
||||||
|
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||||
|
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABPH-0005lM-Om; Fri, 06 Mar 2020 11:44:43 +0000
|
||||||
|
Received: from mx2.suse.de ([195.135.220.15])
|
||||||
|
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABOZ-00052G-7b; Fri, 06 Mar 2020 11:44:00 +0000
|
||||||
|
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 EA31EAF21;
|
||||||
|
Fri, 6 Mar 2020 11:43:57 +0000 (UTC)
|
||||||
|
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
To: linux-kernel@vger.kernel.org, Florian Fainelli <f.fainelli@gmail.com>,
|
||||||
|
bcm-kernel-feedback-list@broadcom.com,
|
||||||
|
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||||
|
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
|
||||||
|
Andrew Murray <amurray@thegoodpenguin.co.uk>
|
||||||
|
Subject: [PATCH v4 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when
|
||||||
|
present
|
||||||
|
Date: Fri, 6 Mar 2020 12:43:47 +0100
|
||||||
|
Message-Id: <20200306114348.5172-4-nsaenzjulienne@suse.de>
|
||||||
|
X-Mailer: git-send-email 2.25.1
|
||||||
|
In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
References: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||||
|
X-CRM114-CacheID: sfid-20200306_034359_420497_DC31988D
|
||||||
|
X-CRM114-Status: GOOD ( 12.02 )
|
||||||
|
X-Spam-Score: -2.3 (--)
|
||||||
|
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||||
|
Content analysis details: (-2.3 points)
|
||||||
|
pts rule name description
|
||||||
|
---- ----------------------
|
||||||
|
--------------------------------------------------
|
||||||
|
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||||
|
[195.135.220.15 listed in wl.mailspike.net]
|
||||||
|
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||||
|
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||||
|
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||||
|
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||||
|
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||||
|
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||||
|
X-Mailman-Version: 2.1.29
|
||||||
|
Precedence: list
|
||||||
|
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||||
|
List-Unsubscribe:
|
||||||
|
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||||
|
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||||
|
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||||
|
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||||
|
List-Subscribe:
|
||||||
|
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||||
|
Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org,
|
||||||
|
linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||||
|
linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
|
||||||
|
linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net
|
||||||
|
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||||
|
Errors-To:
|
||||||
|
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
|
||||||
|
xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on
|
||||||
|
RPi4's VideoCore firmware interface to be up and running. It's possible
|
||||||
|
for both initializations to race, so make sure it's available prior
|
||||||
|
starting.
|
||||||
|
|
||||||
|
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
---
|
||||||
|
drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++
|
||||||
|
1 file changed, 15 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
|
||||||
|
index 3a10e678c7f4..a3d3070a5832 100644
|
||||||
|
--- a/drivers/pci/controller/pcie-brcmstb.c
|
||||||
|
+++ b/drivers/pci/controller/pcie-brcmstb.c
|
||||||
|
@@ -28,6 +28,8 @@
|
||||||
|
#include <linux/string.h>
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||||
|
+
|
||||||
|
#include "../pci.h"
|
||||||
|
|
||||||
|
/* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */
|
||||||
|
@@ -917,11 +919,24 @@ static int brcm_pcie_probe(struct platform_device *pdev)
|
||||||
|
{
|
||||||
|
struct device_node *np = pdev->dev.of_node, *msi_np;
|
||||||
|
struct pci_host_bridge *bridge;
|
||||||
|
+ struct device_node *fw_np;
|
||||||
|
struct brcm_pcie *pcie;
|
||||||
|
struct pci_bus *child;
|
||||||
|
struct resource *res;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * We have to wait for the Raspberry Pi's firmware interface to be up
|
||||||
|
+ * as some PCI fixups depend on it.
|
||||||
|
+ */
|
||||||
|
+ fw_np = of_find_compatible_node(NULL, NULL,
|
||||||
|
+ "raspberrypi,bcm2835-firmware");
|
||||||
|
+ if (fw_np && !rpi_firmware_get(fw_np)) {
|
||||||
|
+ of_node_put(fw_np);
|
||||||
|
+ return -EPROBE_DEFER;
|
||||||
|
+ }
|
||||||
|
+ of_node_put(fw_np);
|
||||||
|
+
|
||||||
|
bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie));
|
||||||
|
if (!bridge)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
From patchwork Fri Mar 6 11:43:48 2020
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
X-Patchwork-Id: 11423701
|
||||||
|
Return-Path:
|
||||||
|
<SRS0=iJpk=4X=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||||
|
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||||
|
[172.30.200.123])
|
||||||
|
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A07E214B7
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:45:15 +0000 (UTC)
|
||||||
|
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||||
|
[198.137.202.133])
|
||||||
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||||
|
(No client certificate requested)
|
||||||
|
by mail.kernel.org (Postfix) with ESMTPS id 7E7512072A
|
||||||
|
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||||
|
Fri, 6 Mar 2020 11:45:15 +0000 (UTC)
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||||
|
header.i=@lists.infradead.org header.b="MgZdlxvb"
|
||||||
|
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7E7512072A
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
dmarc=none (p=none dis=none) header.from=suse.de
|
||||||
|
Authentication-Results: mail.kernel.org;
|
||||||
|
spf=none
|
||||||
|
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||||
|
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||||
|
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||||
|
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||||
|
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||||
|
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||||
|
List-Owner; bh=RSrjVuoil+7Cud9POGvsAcP8PYRf4QKzZ03MsRUZFO4=; b=MgZdlxvbm99qLd
|
||||||
|
l3Hb/jk4OC0RFy13iStY4bzUK9vCP+6Vot5m5wzUVCtDKdxS4kdMx5eQDu3ZidH3fcWhQgbkujlwO
|
||||||
|
TxZisATN94E5Xhi9zD+YUkb8+PGNRY8a0dQ3Ggloj2/GcEIkR2dDFe1Zhf4zIVnA7iEAfBcmFHdz3
|
||||||
|
GP7Ab6fR6jGjs98nJ/vRx+vT6RNArA7Lzg+QthfGGIL//I6DtSigSOYxlnGfKGLU+cEgodxmpLPzf
|
||||||
|
qXxV5iRqCQ6tFmpueyjF2J/OL91jR8MAt5TnWiCSx83x3Ao0lsTd7htOh38t7RDefC86yce98OJdx
|
||||||
|
ku00uNE2FVPvudJC9ScQ==;
|
||||||
|
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||||
|
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABPl-0007AB-9M; Fri, 06 Mar 2020 11:45:13 +0000
|
||||||
|
Received: from mx2.suse.de ([195.135.220.15])
|
||||||
|
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||||
|
id 1jABOa-00052y-EU; Fri, 06 Mar 2020 11:44:02 +0000
|
||||||
|
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 F3588AF77;
|
||||||
|
Fri, 6 Mar 2020 11:43:58 +0000 (UTC)
|
||||||
|
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||||
|
To: linux-kernel@vger.kernel.org,
|
||||||
|
Mathias Nyman <mathias.nyman@intel.com>
|
||||||
|
Subject: [PATCH v4 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk
|
||||||
|
Date: Fri, 6 Mar 2020 12:43:48 +0100
|
||||||
|
Message-Id: <20200306114348.5172-5-nsaenzjulienne@suse.de>
|
||||||
|
X-Mailer: git-send-email 2.25.1
|
||||||
|
In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
References: <20200306114348.5172-1-nsaenzjulienne@suse.de>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||||
|
X-CRM114-CacheID: sfid-20200306_034400_661945_E65B756F
|
||||||
|
X-CRM114-Status: GOOD ( 14.98 )
|
||||||
|
X-Spam-Score: -2.3 (--)
|
||||||
|
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||||
|
Content analysis details: (-2.3 points)
|
||||||
|
pts rule name description
|
||||||
|
---- ----------------------
|
||||||
|
--------------------------------------------------
|
||||||
|
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||||
|
[195.135.220.15 listed in wl.mailspike.net]
|
||||||
|
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||||
|
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||||
|
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||||
|
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||||
|
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||||
|
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||||
|
X-Mailman-Version: 2.1.29
|
||||||
|
Precedence: list
|
||||||
|
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||||
|
List-Unsubscribe:
|
||||||
|
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||||
|
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||||
|
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||||
|
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||||
|
List-Subscribe:
|
||||||
|
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||||
|
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||||
|
Cc: f.fainelli@gmail.com, gregkh@linuxfoundation.org,
|
||||||
|
linux-usb@vger.kernel.org,
|
||||||
|
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>, tim.gover@raspberrypi.org,
|
||||||
|
bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org,
|
||||||
|
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
|
||||||
|
wahrenst@gmx.net
|
||||||
|
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||||
|
Errors-To:
|
||||||
|
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.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. 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@suse.de>
|
||||||
|
---
|
||||||
|
|
||||||
|
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/firmware/Kconfig b/drivers/firmware/Kconfig
|
||||||
|
index ea869addc89b..40a468d712a5 100644
|
||||||
|
--- a/drivers/firmware/Kconfig
|
||||||
|
+++ b/drivers/firmware/Kconfig
|
||||||
|
@@ -180,6 +180,7 @@ config ISCSI_IBFT
|
||||||
|
config RASPBERRYPI_FIRMWARE
|
||||||
|
tristate "Raspberry Pi Firmware Driver"
|
||||||
|
depends on BCM2835_MBOX
|
||||||
|
+ default XHCI_PCI
|
||||||
|
help
|
||||||
|
This option enables support for communicating with the firmware on the
|
||||||
|
Raspberry Pi.
|
||||||
|
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");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
|
||||||
|
pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
|
||||||
|
pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
|
@ -1,39 +0,0 @@
|
|||||||
From aea4a7a551fd7342299d34f04a8b75f58644ac07 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Robinson <pbrobinson@gmail.com>
|
|
||||||
Date: Sat, 23 Mar 2019 17:45:10 +0000
|
|
||||||
Subject: [PATCH 2/3] arm64: tegra210: Jetson TX1: disable display panel and
|
|
||||||
associated backlight
|
|
||||||
|
|
||||||
The Jetson TX1 dev kit doesn't ship with a screen by default and if
|
|
||||||
it's not there it appears to crash on boot so disable them both by
|
|
||||||
default until we work out the problem.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
|
||||||
---
|
|
||||||
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
|
||||||
index 37e3c46e753f..a16f24f1d5ff 100644
|
|
||||||
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
|
||||||
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
|
||||||
@@ -36,7 +36,7 @@
|
|
||||||
|
|
||||||
host1x@50000000 {
|
|
||||||
dsi@54300000 {
|
|
||||||
- status = "okay";
|
|
||||||
+ status = "disabled";
|
|
||||||
|
|
||||||
avdd-dsi-csi-supply = <&vdd_dsi_csi>;
|
|
||||||
|
|
||||||
@@ -54,6 +54,8 @@
|
|
||||||
|
|
||||||
i2c@7000c400 {
|
|
||||||
backlight: backlight@2c {
|
|
||||||
+ status = "disabled";
|
|
||||||
+
|
|
||||||
compatible = "ti,lp8557";
|
|
||||||
reg = <0x2c>;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.20.1
|
|
@ -822,8 +822,8 @@ Patch304: ARM-tegra-usb-no-reset.patch
|
|||||||
# Raspberry Pi
|
# Raspberry Pi
|
||||||
# https://patchwork.kernel.org/cover/11353083/
|
# https://patchwork.kernel.org/cover/11353083/
|
||||||
Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch
|
Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch
|
||||||
# https://github.com/raspberrypi/linux/commit/c74b1b53254016fd83b580b8d49bb02d72ce4836
|
# https://patchwork.kernel.org/cover/11423693/
|
||||||
Patch311: usb-xhci-Raspberry-Pi-FW-loader-for-VIA-VL805.patch
|
Patch311: USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
|
||||||
# https://patchwork.kernel.org/patch/11372935/
|
# https://patchwork.kernel.org/patch/11372935/
|
||||||
Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch
|
Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch
|
||||||
# https://patchwork.kernel.org/patch/11398981/
|
# https://patchwork.kernel.org/patch/11398981/
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
From eb05efbfe58a7815957844e6dbe28735e85393cf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tim Gover <990920+timg236@users.noreply.github.com>
|
|
||||||
Date: Wed, 15 Jan 2020 11:26:19 +0000
|
|
||||||
Subject: [PATCH] usb: xhci: Raspberry Pi FW loader for VIA VL805
|
|
||||||
|
|
||||||
The VL805 FW may either be loaded from an SPI EEPROM or alternatively
|
|
||||||
loaded directly by the VideoCore firmware. A PCI reset will reset
|
|
||||||
the VL805 XHCI controller on the Raspberry Pi4 requiring the firmware
|
|
||||||
to be reloaded if an SPI EEPROM is not present.
|
|
||||||
|
|
||||||
Use a VideoCore mailbox to trigger the loading of the VL805
|
|
||||||
firmware (if necessary) after a PCI reset.
|
|
||||||
|
|
||||||
Signed-off-by: Tim Gover <tim.gover@raspberrypi.org>
|
|
||||||
---
|
|
||||||
drivers/usb/host/pci-quirks.c | 31 +++++++++++++++++++++-
|
|
||||||
include/soc/bcm2835/raspberrypi-firmware.h | 2 +-
|
|
||||||
2 files changed, 31 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
|
|
||||||
index 6c7f0a876b96..c3367b053044 100644
|
|
||||||
--- a/drivers/usb/host/pci-quirks.c
|
|
||||||
+++ b/drivers/usb/host/pci-quirks.c
|
|
||||||
@@ -18,7 +18,7 @@
|
|
||||||
#include <linux/dmi.h>
|
|
||||||
#include "pci-quirks.h"
|
|
||||||
#include "xhci-ext-caps.h"
|
|
||||||
-
|
|
||||||
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
|
||||||
|
|
||||||
#define UHCI_USBLEGSUP 0xc0 /* legacy support */
|
|
||||||
#define UHCI_USBCMD 0 /* command register */
|
|
||||||
@@ -630,6 +630,32 @@ bool usb_amd_pt_check_port(struct device *device, int port)
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(usb_amd_pt_check_port);
|
|
||||||
|
|
||||||
+/* The VL805 firmware may either be loaded from an EEPROM or by the BIOS into
|
|
||||||
+ * memory. If run from memory it must be reloaded after a PCI fundmental reset.
|
|
||||||
+ * The Raspberry Pi firmware acts as the BIOS in this case.
|
|
||||||
+ */
|
|
||||||
+static void usb_vl805_init(struct pci_dev *pdev)
|
|
||||||
+{
|
|
||||||
+#if IS_ENABLED(CONFIG_RASPBERRYPI_FIRMWARE)
|
|
||||||
+ struct rpi_firmware *fw;
|
|
||||||
+ struct {
|
|
||||||
+ u32 dev_addr;
|
|
||||||
+ } packet;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ fw = rpi_firmware_get(NULL);
|
|
||||||
+ if (!fw)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ packet.dev_addr = (pdev->bus->number << 20) |
|
|
||||||
+ (PCI_SLOT(pdev->devfn) << 15) | (PCI_FUNC(pdev->devfn) << 12);
|
|
||||||
+
|
|
||||||
+ dev_dbg(&pdev->dev, "RPI_FIRMWARE_NOTIFY_XHCI_RESET %x", packet.dev_addr);
|
|
||||||
+ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET,
|
|
||||||
+ &packet, sizeof(packet));
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Make sure the controller is completely inactive, unable to
|
|
||||||
* generate interrupts or do DMA.
|
|
||||||
@@ -1207,6 +1233,9 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
|
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
|
||||||
usb_enable_intel_xhci_ports(pdev);
|
|
||||||
|
|
||||||
+ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483)
|
|
||||||
+ usb_vl805_init(pdev);
|
|
||||||
+
|
|
||||||
op_reg_base = base + XHCI_HC_LENGTH(readl(base));
|
|
||||||
|
|
||||||
/* Wait for the host controller to be ready before writing any
|
|
||||||
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
|
||||||
index 7800e12ee042..cc9cdbc66403 100644
|
|
||||||
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
|
||||||
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
|
||||||
@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag {
|
|
||||||
RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045,
|
|
||||||
RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049,
|
|
||||||
RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
|
|
||||||
-
|
|
||||||
+ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
|
|
||||||
|
|
||||||
/* Dispmanx TAGS */
|
|
||||||
RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user