From 4025c65f14f3036bd186024c1b62bd381e6b1e48 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 10 Sep 2021 14:07:57 +0200 Subject: [PATCH] 4.19-stable patches added patches: alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch pci-call-max-payload-size-related-fixup-quirks-early.patch usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch usb-mtu3-fix-the-wrong-hs-mult-value.patch usb-mtu3-use-mult-for-hs-isoc-or-intr.patch x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch --- ...gistration-quirk-for-jbl-quantum-800.patch | 31 +++++++ ...load-size-related-fixup-quirks-early.patch | 49 +++++++++++ queue-4.19/series | 6 ++ ...reload-firmware-after-the-completion.patch | 38 ++++++++ ...usb-mtu3-fix-the-wrong-hs-mult-value.patch | 49 +++++++++++ ...sb-mtu3-use-mult-for-hs-isoc-or-intr.patch | 32 +++++++ ...lex-990-quirk-to-early-bios-versions.patch | 87 +++++++++++++++++++ 7 files changed, 292 insertions(+) create mode 100644 queue-4.19/alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch create mode 100644 queue-4.19/pci-call-max-payload-size-related-fixup-quirks-early.patch create mode 100644 queue-4.19/usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch create mode 100644 queue-4.19/usb-mtu3-fix-the-wrong-hs-mult-value.patch create mode 100644 queue-4.19/usb-mtu3-use-mult-for-hs-isoc-or-intr.patch create mode 100644 queue-4.19/x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch diff --git a/queue-4.19/alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch b/queue-4.19/alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch new file mode 100644 index 00000000000..5195b25cf16 --- /dev/null +++ b/queue-4.19/alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch @@ -0,0 +1,31 @@ +From c8b177b6e3a005bd8fb0395a4bc5db3470301c28 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Tue, 31 Aug 2021 03:25:31 +0300 +Subject: ALSA: usb-audio: Add registration quirk for JBL Quantum 800 + +From: Alexander Tsoy + +commit c8b177b6e3a005bd8fb0395a4bc5db3470301c28 upstream. + +Add another device ID for JBL Quantum 800. It requires the same quirk as +other JBL Quantum devices. + +Signed-off-by: Alexander Tsoy +Cc: +Link: https://lore.kernel.org/r/20210831002531.116957-1-alexander@tsoy.me +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -1554,6 +1554,7 @@ static const struct registration_quirk r + REG_QUIRK_ENTRY(0x0951, 0x16ed, 2), /* Kingston HyperX Cloud Alpha S */ + REG_QUIRK_ENTRY(0x0951, 0x16ea, 2), /* Kingston HyperX Cloud Flight S */ + REG_QUIRK_ENTRY(0x0ecb, 0x1f46, 2), /* JBL Quantum 600 */ ++ REG_QUIRK_ENTRY(0x0ecb, 0x1f47, 2), /* JBL Quantum 800 */ + REG_QUIRK_ENTRY(0x0ecb, 0x2039, 2), /* JBL Quantum 400 */ + REG_QUIRK_ENTRY(0x0ecb, 0x203c, 2), /* JBL Quantum 600 */ + REG_QUIRK_ENTRY(0x0ecb, 0x203e, 2), /* JBL Quantum 800 */ diff --git a/queue-4.19/pci-call-max-payload-size-related-fixup-quirks-early.patch b/queue-4.19/pci-call-max-payload-size-related-fixup-quirks-early.patch new file mode 100644 index 00000000000..22be501d7fd --- /dev/null +++ b/queue-4.19/pci-call-max-payload-size-related-fixup-quirks-early.patch @@ -0,0 +1,49 @@ +From b8da302e2955fe4d41eb9d48199242674d77dbe0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marek=20Beh=C3=BAn?= +Date: Thu, 24 Jun 2021 19:14:17 +0200 +Subject: PCI: Call Max Payload Size-related fixup quirks early +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Marek Behún + +commit b8da302e2955fe4d41eb9d48199242674d77dbe0 upstream. + +pci_device_add() calls HEADER fixups after pci_configure_device(), which +configures Max Payload Size. + +Convert MPS-related fixups to EARLY fixups so pci_configure_mps() takes +them into account. + +Fixes: 27d868b5e6cfa ("PCI: Set MPS to match upstream bridge") +Link: https://lore.kernel.org/r/20210624171418.27194-1-kabel@kernel.org +Signed-off-by: Marek Behún +Signed-off-by: Bjorn Helgaas +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pci/quirks.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -3152,12 +3152,12 @@ static void fixup_mpss_256(struct pci_de + { + dev->pcie_mpss = 1; /* 256 bytes */ + } +-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE, +- PCI_DEVICE_ID_SOLARFLARE_SFC4000A_0, fixup_mpss_256); +-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE, +- PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256); +-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE, +- PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256); ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE, ++ PCI_DEVICE_ID_SOLARFLARE_SFC4000A_0, fixup_mpss_256); ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE, ++ PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256); ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE, ++ PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256); + + /* + * Intel 5000 and 5100 Memory controllers have an erratum with read completion diff --git a/queue-4.19/series b/queue-4.19/series index 799aa28e231..3a230c0f09e 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -23,3 +23,9 @@ powerpc-boot-delete-unneeded-.globl-_zimage_start.patch net-ll_temac-remove-left-over-debug-message.patch mm-page_alloc-speed-up-the-iteration-of-max_order.patch revert-btrfs-compression-don-t-try-to-compress-if-we-don-t-have-enough-pages.patch +alsa-usb-audio-add-registration-quirk-for-jbl-quantum-800.patch +usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch +usb-mtu3-use-mult-for-hs-isoc-or-intr.patch +usb-mtu3-fix-the-wrong-hs-mult-value.patch +x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch +pci-call-max-payload-size-related-fixup-quirks-early.patch diff --git a/queue-4.19/usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch b/queue-4.19/usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch new file mode 100644 index 00000000000..8d5e2bf34d5 --- /dev/null +++ b/queue-4.19/usb-host-xhci-rcar-don-t-reload-firmware-after-the-completion.patch @@ -0,0 +1,38 @@ +From 57f3ffdc11143f56f1314972fe86fe17a0dcde85 Mon Sep 17 00:00:00 2001 +From: Yoshihiro Shimoda +Date: Fri, 27 Aug 2021 15:32:27 +0900 +Subject: usb: host: xhci-rcar: Don't reload firmware after the completion + +From: Yoshihiro Shimoda + +commit 57f3ffdc11143f56f1314972fe86fe17a0dcde85 upstream. + +According to the datasheet, "Upon the completion of FW Download, +there is no need to write or reload FW.". Otherwise, it's possible +to cause unexpected behaviors. So, adds such a condition. + +Fixes: 4ac8918f3a73 ("usb: host: xhci-plat: add support for the R-Car H2 and M2 xHCI controllers") +Cc: stable@vger.kernel.org # v3.17+ +Signed-off-by: Yoshihiro Shimoda +Link: https://lore.kernel.org/r/20210827063227.81990-1-yoshihiro.shimoda.uh@renesas.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/host/xhci-rcar.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/usb/host/xhci-rcar.c ++++ b/drivers/usb/host/xhci-rcar.c +@@ -143,6 +143,13 @@ static int xhci_rcar_download_firmware(s + const struct soc_device_attribute *attr; + const char *firmware_name; + ++ /* ++ * According to the datasheet, "Upon the completion of FW Download, ++ * there is no need to write or reload FW". ++ */ ++ if (readl(regs + RCAR_USB3_DL_CTRL) & RCAR_USB3_DL_CTRL_FW_SUCCESS) ++ return 0; ++ + attr = soc_device_match(rcar_quirks_match); + if (attr) + quirks = (uintptr_t)attr->data; diff --git a/queue-4.19/usb-mtu3-fix-the-wrong-hs-mult-value.patch b/queue-4.19/usb-mtu3-fix-the-wrong-hs-mult-value.patch new file mode 100644 index 00000000000..dcf4ff4d60e --- /dev/null +++ b/queue-4.19/usb-mtu3-fix-the-wrong-hs-mult-value.patch @@ -0,0 +1,49 @@ +From 44e4439d8f9f8d0e9da767d1f31e7c211081feca Mon Sep 17 00:00:00 2001 +From: Chunfeng Yun +Date: Fri, 13 Aug 2021 14:30:49 +0800 +Subject: usb: mtu3: fix the wrong HS mult value + +From: Chunfeng Yun + +commit 44e4439d8f9f8d0e9da767d1f31e7c211081feca upstream. + +usb_endpoint_maxp() returns actual max packet size, @mult will +always be zero, fix it by using usb_endpoint_maxp_mult() instead +to get mult. + +Fixes: 4d79e042ed8b ("usb: mtu3: add support for usb3.1 IP") +Cc: stable@vger.kernel.org +Signed-off-by: Chunfeng Yun +Link: https://lore.kernel.org/r/1628836253-7432-3-git-send-email-chunfeng.yun@mediatek.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/mtu3/mtu3_gadget.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +--- a/drivers/usb/mtu3/mtu3_gadget.c ++++ b/drivers/usb/mtu3/mtu3_gadget.c +@@ -69,14 +69,12 @@ static int mtu3_ep_enable(struct mtu3_ep + u32 interval = 0; + u32 mult = 0; + u32 burst = 0; +- int max_packet; + int ret; + + desc = mep->desc; + comp_desc = mep->comp_desc; + mep->type = usb_endpoint_type(desc); +- max_packet = usb_endpoint_maxp(desc); +- mep->maxp = max_packet & GENMASK(10, 0); ++ mep->maxp = usb_endpoint_maxp(desc); + + switch (mtu->g.speed) { + case USB_SPEED_SUPER: +@@ -97,7 +95,7 @@ static int mtu3_ep_enable(struct mtu3_ep + usb_endpoint_xfer_int(desc)) { + interval = desc->bInterval; + interval = clamp_val(interval, 1, 16) - 1; +- mult = (max_packet & GENMASK(12, 11)) >> 11; ++ mult = usb_endpoint_maxp_mult(desc) - 1; + } + break; + default: diff --git a/queue-4.19/usb-mtu3-use-mult-for-hs-isoc-or-intr.patch b/queue-4.19/usb-mtu3-use-mult-for-hs-isoc-or-intr.patch new file mode 100644 index 00000000000..1eb64a0d8cc --- /dev/null +++ b/queue-4.19/usb-mtu3-use-mult-for-hs-isoc-or-intr.patch @@ -0,0 +1,32 @@ +From fd7cb394ec7efccc3985feb0978cee4d352e1817 Mon Sep 17 00:00:00 2001 +From: Chunfeng Yun +Date: Fri, 13 Aug 2021 14:30:48 +0800 +Subject: usb: mtu3: use @mult for HS isoc or intr + +From: Chunfeng Yun + +commit fd7cb394ec7efccc3985feb0978cee4d352e1817 upstream. + +For HS isoc or intr, should use @mult but not @burst +to save mult value. + +Fixes: 4d79e042ed8b ("usb: mtu3: add support for usb3.1 IP") +Cc: stable@vger.kernel.org +Signed-off-by: Chunfeng Yun +Link: https://lore.kernel.org/r/1628836253-7432-2-git-send-email-chunfeng.yun@mediatek.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/mtu3/mtu3_gadget.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/mtu3/mtu3_gadget.c ++++ b/drivers/usb/mtu3/mtu3_gadget.c +@@ -97,7 +97,7 @@ static int mtu3_ep_enable(struct mtu3_ep + usb_endpoint_xfer_int(desc)) { + interval = desc->bInterval; + interval = clamp_val(interval, 1, 16) - 1; +- burst = (max_packet & GENMASK(12, 11)) >> 11; ++ mult = (max_packet & GENMASK(12, 11)) >> 11; + } + break; + default: diff --git a/queue-4.19/x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch b/queue-4.19/x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch new file mode 100644 index 00000000000..bfce2f72bb4 --- /dev/null +++ b/queue-4.19/x86-reboot-limit-dell-optiplex-990-quirk-to-early-bios-versions.patch @@ -0,0 +1,87 @@ +From a729691b541f6e63043beae72e635635abe5dc09 Mon Sep 17 00:00:00 2001 +From: Paul Gortmaker +Date: Sun, 30 May 2021 12:24:47 -0400 +Subject: x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions + +From: Paul Gortmaker + +commit a729691b541f6e63043beae72e635635abe5dc09 upstream. + +When this platform was relatively new in November 2011, with early BIOS +revisions, a reboot quirk was added in commit 6be30bb7d750 ("x86/reboot: +Blacklist Dell OptiPlex 990 known to require PCI reboot") + +However, this quirk (and several others) are open-ended to all BIOS +versions and left no automatic expiry if/when the system BIOS fixed the +issue, meaning that nobody is likely to come along and re-test. + +What is really problematic with using PCI reboot as this quirk does, is +that it causes this platform to do a full power down, wait one second, +and then power back on. This is less than ideal if one is using it for +boot testing and/or bisecting kernels when legacy rotating hard disks +are installed. + +It was only by chance that the quirk was noticed in dmesg - and when +disabled it turned out that it wasn't required anymore (BIOS A24), and a +default reboot would work fine without the "harshness" of power cycling the +machine (and disks) down and up like the PCI reboot does. + +Doing a bit more research, it seems that the "newest" BIOS for which the +issue was reported[1] was version A06, however Dell[2] seemed to suggest +only up to and including version A05, with the A06 having a large number of +fixes[3] listed. + +As is typical with a new platform, the initial BIOS updates come frequently +and then taper off (and in this case, with a revival for CPU CVEs); a +search for O990-A.exe reveals the following dates: + + A02 16 Mar 2011 + A03 11 May 2011 + A06 14 Sep 2011 + A07 24 Oct 2011 + A10 08 Dec 2011 + A14 06 Sep 2012 + A16 15 Oct 2012 + A18 30 Sep 2013 + A19 23 Sep 2015 + A20 02 Jun 2017 + A23 07 Mar 2018 + A24 21 Aug 2018 + +While it's overkill to flash and test each of the above, it would seem +likely that the issue was contained within A0x BIOS versions, given the +dates above and the dates of issue reports[4] from distros. So rather than +just throw out the quirk entirely, limit the scope to just those early BIOS +versions, in case people are still running systems from 2011 with the +original as-shipped early A0x BIOS versions. + +[1] https://lore.kernel.org/lkml/1320373471-3942-1-git-send-email-trenn@suse.de/ +[2] https://www.dell.com/support/kbdoc/en-ca/000131908/linux-based-operating-systems-stall-upon-reboot-on-optiplex-390-790-990-systems +[3] https://www.dell.com/support/home/en-ca/drivers/driversdetails?driverid=85j10 +[4] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/768039 + +Fixes: 6be30bb7d750 ("x86/reboot: Blacklist Dell OptiPlex 990 known to require PCI reboot") +Signed-off-by: Paul Gortmaker +Signed-off-by: Thomas Gleixner +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20210530162447.996461-4-paul.gortmaker@windriver.com +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kernel/reboot.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/reboot.c ++++ b/arch/x86/kernel/reboot.c +@@ -388,10 +388,11 @@ static const struct dmi_system_id reboot + }, + { /* Handle problems with rebooting on the OptiPlex 990. */ + .callback = set_pci_reboot, +- .ident = "Dell OptiPlex 990", ++ .ident = "Dell OptiPlex 990 BIOS A0x", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), ++ DMI_MATCH(DMI_BIOS_VERSION, "A0"), + }, + }, + { /* Handle problems with rebooting on Dell 300's */ -- 2.47.3