From 60fd6260b95af92864e0038226b58de78d7fb9a6 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 29 Jun 2020 09:39:00 -0500 Subject: Linux v5.7.6 rebase Signed-off-by: Justin M. Forbes --- USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 714 -------------------------- 1 file changed, 714 deletions(-) delete mode 100644 USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch (limited to 'USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch') diff --git a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch deleted file mode 100644 index b1f4e7942..000000000 --- a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +++ /dev/null @@ -1,714 +0,0 @@ -From patchwork Tue May 5 16:13:14 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: 11529601 -Return-Path: - -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 1BF82139A - for ; - Tue, 5 May 2020 16:13:46 +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 ED4E0206A4 - for ; - Tue, 5 May 2020 16:13:45 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="u/J7plS1" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ED4E0206A4 -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=bGQLzaoeWIDpTINYetpnA2L/vb7OmdXvhp2NJuW0F3A=; b=u/J7plS1Bwu25p - 31YlPyAxNHzkNz73OdF7ft5uhn9vS8dF3TEBhhmSu83IWYwAhsjyqTB+Hn8104w1KT17o0ihuNG++ - UIf6ftYyM8/v9W57OPJcwcWqPpKyFVB7fs9hgR9IE1/Qm8Ur/aUjmD1HK272ZJYsgrFqyFO4PP7DD - 1LwVH20tWs3UvX317QDIn5VIq8EAX5ImabSfeYHw1LlyhQUYF10UPX5zw4I2TlLRd2hFvfyUy7s8b - 1uMZFqLeqfTHrauQ43p5IBZs/wNGKGJbQlZvuENJxPcbBharqHBVDZrFvtV2MLnvrDOnv6A2QSfpt - vv++WCa+crrbmyL2v/pw==; -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 1jW0CU-00035T-KT; Tue, 05 May 2020 16:13:42 +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 1jW0CF-0002rM-7U; Tue, 05 May 2020 16:13:28 +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 0992CAF4F; - Tue, 5 May 2020 16:13:28 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Ray Jui , Scott Branden , - bcm-kernel-feedback-list@broadcom.com, - Nicolas Saenz Julienne -Subject: [PATCH v8 1/4] soc: bcm2835: Add notify xHCI reset property -Date: Tue, 5 May 2020 18:13:14 +0200 -Message-Id: <20200505161318.26200-2-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091327_410061_22E5BD39 -X-CRM114-Status: GOOD ( 13.67 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 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 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 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: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -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 gap between the property introduced and the previous one is due to -the properties not being defined. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Florian Fainelli ---- - 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 Tue May 5 16:13:15 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: 11529609 -Return-Path: - -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 337F6139A - for ; - Tue, 5 May 2020 16:14: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 062432084D - for ; - Tue, 5 May 2020 16:14: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="SDl3WXtu" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 062432084D -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=Zr8RX4pUFuT9LYq/WsMx8aWZosDB52n4Q59lcyexfbE=; b=SDl3WXtuTc/nTE - liOc14IJBVmzylTRvqtl7RNlIur09j/+2VWz/L9i6UGqjG6N3L8XsQ0hQjdunHpod9jj3p3Az+4sq - FgwzoSdghy8rfnfxhcqJSbvMvX34yzGnoQBS46jClcjky9iNoijO+nBo3SE9wC8vSKKIafCzmVqHw - P7p44IgFrwgnBKbAgdUWCjUVQqolk2pLJr7jw/TG8pvfv0R6XJGmz3Lbl8gP14FyWfkkqsKqC+0g1 - Jq6JPtdl+W0AfEWVrFr6/74LhLTpnhsPqXGEPJjrLqtkbZ2c9pulOQ3f85qAed9slCbkVxe5fHetC - bwaYOp++AlOj7kNN25Qw==; -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 1jW0Ch-0003KV-Mk; Tue, 05 May 2020 16:13:55 +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 1jW0CG-0002rw-Mm; Tue, 05 May 2020 16:13:30 +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 4B6EDAF5D; - Tue, 5 May 2020 16:13:29 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Ray Jui , Scott Branden , - bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine -Date: Tue, 5 May 2020 18:13:15 +0200 -Message-Id: <20200505161318.26200-3-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091329_063893_301DE39B -X-CRM114-Status: GOOD ( 18.76 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 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 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 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: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip -that implements xHCI. After a PCI reset, VL805's firmware may either be -loaded directly from an EEPROM or, if not present, by the SoC's -co-processor, VideoCore. RPi4's VideoCore OS contains both the non public -firmware load logic and the VL805 firmware blob. The function this patch -introduces triggers the aforementioned process. - -Signed-off-by: Nicolas Saenz Julienne ---- - -Change since v7: -- Use usleep_delay() -- Add comment about PCI errors -- Don't wait on error -- Typos - -Change since v6: -- Add test to avoid loading the firmware when not needed -- Since we have it around, print VL805's firmware version, it'll make -debugging easier in the future -- Correct typos -- Add a clearer view of HW topology in patch description - -Changes since v4: -- Inline function definition when RASPBERRYPI_FIRMWARE is not defined - -Changes since v1: -- Move include into .c file and add forward declaration to .h - - drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ - include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ - 2 files changed, 68 insertions(+) - -diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c -index da26a584dca0..a166ad0cec2c 100644 ---- a/drivers/firmware/raspberrypi.c -+++ b/drivers/firmware/raspberrypi.c -@@ -12,6 +12,8 @@ - #include - #include - #include -+#include -+#include - #include - - #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) -@@ -19,6 +21,8 @@ - #define MBOX_DATA28(msg) ((msg) & ~0xf) - #define MBOX_CHAN_PROPERTY 8 - -+#define VL805_PCI_CONFIG_VERSION_OFFSET 0x50 -+ - static struct platform_device *rpi_hwmon; - static struct platform_device *rpi_clk; - -@@ -286,6 +290,63 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) - } - EXPORT_SYMBOL_GPL(rpi_firmware_get); - -+/* -+ * The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip that -+ * implements xHCI. After a PCI reset, VL805's firmware may either be loaded -+ * directly from an EEPROM or, if not present, by the SoC's co-processor, -+ * VideoCore. RPi4's VideoCore OS contains both the non public firmware load -+ * logic and the VL805 firmware blob. This function triggers the aforementioned -+ * process. -+ */ -+int rpi_firmware_init_vl805(struct pci_dev *pdev) -+{ -+ struct device_node *fw_np; -+ struct rpi_firmware *fw; -+ u32 dev_addr, version; -+ 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 -ENODEV; -+ -+ /* -+ * Make sure we don't trigger a firmware load unnecessarily. -+ * -+ * If something went wrong with PCI, this whole exercise would be -+ * futile as VideoCore expects from us a configured PCI bus. Just take -+ * the faulty version (likely ~0) and let xHCI's registration fail -+ * further down the line. -+ */ -+ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); -+ if (version) -+ goto exit; -+ -+ 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; -+ -+ /* Wait for vl805 to startup */ -+ usleep_range(200, 1000); -+ -+ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, -+ &version); -+exit: -+ pci_info(pdev, "VL805 firmware version %08x\n", version); -+ -+ 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..3025aca3c358 100644 ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -10,6 +10,7 @@ - #include - - 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 inline int rpi_firmware_init_vl805(struct pci_dev *pdev) -+{ -+ return 0; -+} - #endif - - #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ - -From patchwork Tue May 5 16:13:16 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: 11529613 -Return-Path: - -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 09B41139A - for ; - Tue, 5 May 2020 16:14:12 +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 D0DF22078D - for ; - Tue, 5 May 2020 16:14:11 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="SAMPLJUW" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0DF22078D -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=KaAXr2YFGUN9aHABYMGoI6lDCplKLkueaLach3EcLIQ=; b=SAMPLJUWqAiuYn - Ols6qNQTSsb2o1pxY1yuF4MaX8dUzqsSCkylXQf5SkLRki0hXDsY/eVzwcypdH60m5jdk31wU1MJD - O88oZLgP0rvsSmG//a4xMHn/EpxntBmXZvNxlvZ9RuDATHjuA2w1+GKUOEvREG9jBi1M4+r5QZXrY - nRQqxUi1CldsZHzGt3IJi1mXzlNIhZq+fi48xOWUdgCSXYfpJO4qsr3b3QhwJklPSO0c4jMAHKYTQ - z3kKMMszvYgug/JraC4fZD2qDKGic3IxeOSxP2c8dLYBfxMxfBz7gya5rpBpjvFelYZMN2qXaQInv - gND7kQ/fU/heR7N6g6Dg==; -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 1jW0Cv-0003b2-3s; Tue, 05 May 2020 16:14:09 +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 1jW0CI-0002tA-MY; Tue, 05 May 2020 16:13:32 +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 3372DAF7A; - Tue, 5 May 2020 16:13:31 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Lorenzo Pieralisi , - Rob Herring , bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v8 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when - present -Date: Tue, 5 May 2020 18:13:16 +0200 -Message-Id: <20200505161318.26200-4-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091330_993258_A3A56727 -X-CRM114-Status: GOOD ( 11.90 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 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 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 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: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - Bjorn Helgaas , linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -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 to -starting. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Florian Fainelli ---- - -Changes since v6: -- Add more complete comment - - drivers/pci/controller/pcie-brcmstb.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c -index 6d79d14527a6..0b97b94c4a9a 100644 ---- a/drivers/pci/controller/pcie-brcmstb.c -+++ b/drivers/pci/controller/pcie-brcmstb.c -@@ -28,6 +28,8 @@ - #include - #include - -+#include -+ - #include "../pci.h" - - /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ -@@ -917,11 +919,26 @@ 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 Raspberry Pi's firmware interface to be up as a -+ * PCI fixup, rpi_firmware_init_vl805(), depends on it. This driver's -+ * probe can race with the firmware interface's (see -+ * drivers/firmware/raspberrypi.c) and potentially break the PCI fixup. -+ */ -+ 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 Tue May 5 16:13:17 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: 11529615 -Return-Path: - -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 9C85E1392 - for ; - Tue, 5 May 2020 16:14:26 +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 75AD8206FA - for ; - Tue, 5 May 2020 16:14:26 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="pXZpPhrT" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 75AD8206FA -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=/GYWkYF77JxYJ9PRLu3wczjjHT+GnXqD2IyzZ0uR8KY=; b=pXZpPhrTtgd1O0 - sy/khBh4MMWq9sIqFwH9HgDbPFDzQ5eCkfiS/YZoDGJPFFwsUcitnTfFX9VGMnYzLf7eCCLfm1hta - f3X7UNpk1SvaeJKc59x7OvHTLVAwByuEPTqm4bmcqw+aRWdaYShUiv+105SG6JShQF5gjuBpEn3w0 - vzQNYGEl4BeHnlREFZU+Wi1qQ8sa1BwpU6Rx/NmGk8qLv1GOO4+UNf/ABycGTH6jZU101ck7/nvKL - Da7jehxCo1CCUiqM69fvoKabrfI76uVP4OdJcCihqzOWzmkiVwhQAWB0qFa9LR2h4CObuPthIqmW7 - oaRbCgJg+N26f/dtw1mg==; -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 1jW0D6-0003ov-Og; Tue, 05 May 2020 16:14:20 +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 1jW0CJ-0002ui-S6; Tue, 05 May 2020 16:13:33 +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 80D21AF4F; - Tue, 5 May 2020 16:13:32 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Mathias Nyman -Subject: [PATCH v8 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk -Date: Tue, 5 May 2020 18:13:17 +0200 -Message-Id: <20200505161318.26200-5-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091332_068613_1A981780 -X-CRM114-Status: GOOD ( 16.37 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 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 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 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: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, - linux-usb@vger.kernel.org, Nicolas Saenz Julienne , - bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -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 -VideoCore. Inform VideoCore that VL805 was just reset. - -Also, as this creates a dependency between USB_PCI and VideoCore's -firmware interface, and since USB_PCI can't be set as a module neither -this can. Reflect that on the firmware interface Kconfg. - -Signed-off-by: Nicolas Saenz Julienne ---- - -Changes since v5: - - Fix Kconfig issue with allmodconfig - -Changes since v4: - - Do not split up error message - -Changes since v3: - - Add more complete error message - -Changes since v1: - - Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it - gets compiled when needed. - - drivers/firmware/Kconfig | 3 ++- - drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ - 2 files changed, 18 insertions(+), 1 deletion(-) - -diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig -index 8007d4aa76dc..b42140cff8ac 100644 ---- a/drivers/firmware/Kconfig -+++ b/drivers/firmware/Kconfig -@@ -178,8 +178,9 @@ config ISCSI_IBFT - Otherwise, say N. - - config RASPBERRYPI_FIRMWARE -- tristate "Raspberry Pi Firmware Driver" -+ bool "Raspberry Pi Firmware Driver" - depends on BCM2835_MBOX -+ default USB_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 92150ecdb036..0b949acfa258 100644 ---- a/drivers/usb/host/pci-quirks.c -+++ b/drivers/usb/host/pci-quirks.c -@@ -16,6 +16,9 @@ - #include - #include - #include -+ -+#include -+ - #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. Will continue to attempt to work, but bad things might happen. You should fix this...\n", -+ ret); -+ } -+ } -+ - if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && - pdev->class != PCI_CLASS_SERIAL_USB_OHCI && - pdev->class != PCI_CLASS_SERIAL_USB_EHCI && -- cgit