Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp2401778ybf; Mon, 2 Mar 2020 07:57:09 -0800 (PST) X-Google-Smtp-Source: ADFU+vvkYOiSTwrN0ZLow4Y5hFHSvXkbFuPrqP/G4LWk5ekr882s2LsSK9hlqUqKH/XdBIuE9YdL X-Received: by 2002:a05:6808:8ca:: with SMTP id k10mr108788oij.164.1583164628938; Mon, 02 Mar 2020 07:57:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583164628; cv=none; d=google.com; s=arc-20160816; b=xm+6EBlXRJiRNMBWsr6Hht7cZ+cbRk+Vxzl0GWv+bQqExRJ4V/3x3g/InWMMAwA8UD 1h4ggkdblJFIeVNiquECFqhIUHqUBrZsKkOeJW3iJHa5NWPk0jnQwkaTaoVcMtUZYX7k 55kcDhFPd1R6GMpxGscD0q3GEebz8jIQilVASyza3Z7UIQ/PgBcIpAbzpF1EOOUNrsnG VvRzSz2th1/NZtBxCnbdiCdlo5YUYKRj+gVPsnKuiJQhANY31d485oRUc+Lxxt+AKwP3 CXF4NLTJTbWreOpM50KVUX8PUoB6tumoneb5pvxrkpcmkPrmsGdIDm60HVZcuoRHA32o /+RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ngmZvDqruhT0KIzl318yOILbU6MtSXoXrcDg0ntl6bE=; b=qnYQgEmyj/+FfkbEU/xDaZzau7V+ie/Ug+MJ/qMDoKystBIBC2GTL9RgTZ9uRifJgN dwwvkniJQvHuG3NSDih9vrwV+ws5m2V9SGHKrxcSo17AjtvrKs2wyyJ6Y6jxm6mLBKNK VL6WgCKk77yBVNSpw2X8sj/yG0y/R05fj/NX1vgDnjLtvm0f2VqvZVXFs84elE0lYbGo x9gu+japvg480uwI91BS4W+NwWvlyNBZkFxfQigMJu8e0lMvS6A5M0Z2+BM/c6EzHssP rpC97vRADAo33WsI5W1HJ+SdH9XQgdMWFb50yMQJu6pKLcnFIaLt5PsT9ehkMM+SKmYI 0zeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h23si3770385otr.53.2020.03.02.07.56.57; Mon, 02 Mar 2020 07:57:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727485AbgCBP4W (ORCPT + 99 others); Mon, 2 Mar 2020 10:56:22 -0500 Received: from mx2.suse.de ([195.135.220.15]:51348 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727306AbgCBP4J (ORCPT ); Mon, 2 Mar 2020 10:56:09 -0500 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 E0C1BAF00; Mon, 2 Mar 2020 15:56:06 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org, Mathias Nyman 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, Nicolas Saenz Julienne Subject: [PATCH v3 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk Date: Mon, 2 Mar 2020 16:55:28 +0100 Message-Id: <20200302155528.19505-5-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200302155528.19505-1-nsaenzjulienne@suse.de> References: <20200302155528.19505-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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. Inform VideCore that VL805 was just reset. Also, as this creates a dependency between XHCI_PCI and VideoCore's, reflect that on the firmware interface Kconfg. Signed-off-by: Nicolas Saenz Julienne --- 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 | 18 ++++++++++++++++++ 2 files changed, 19 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..aee2eaa3f0e1 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,26 @@ 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 else, something + * failed, keep going and hope for the best. + */ + dev_warn(&pdev->dev, + "Failed to load VL805's firmware: %d\n", + ret); + } + if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && pdev->class != PCI_CLASS_SERIAL_USB_OHCI && pdev->class != PCI_CLASS_SERIAL_USB_EHCI && -- 2.25.1