Refreshed all patches.
Compile-tested on: imx6
Runtime-tested on: imx6
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-4.14 = .180
LINUX_VERSION-4.19 = .122
-LINUX_VERSION-5.4 = .39
+LINUX_VERSION-5.4 = .40
LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e
LINUX_KERNEL_HASH-4.19.122 = 5050268ec5cf003d96366d1611ecfa4ab6974125d6fa26cea1ccb81dd4df00a5
-LINUX_KERNEL_HASH-5.4.39 = 5141965a61a7b1c538443782ec3ef25fe0c3f9cd4d70c4e9f969d16883f365c8
+LINUX_KERNEL_HASH-5.4.40 = 83563f027687ecaafb41d0d2d52056f40ec9822f8a9e43592e215349730020ab
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2147,7 +2147,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2148,7 +2148,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -3570,9 +3570,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3571,9 +3571,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
-@@ -1993,6 +1997,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -1994,6 +1998,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3471,7 +3471,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3472,7 +3472,7 @@ static int bcmgenet_probe(struct platfor
priv = netdev_priv(dev);
priv->irq0 = platform_get_irq(pdev, 0);
priv->irq1 = platform_get_irq(pdev, 1);
--- a/drivers/crypto/caam/caamalg_desc.c
+++ b/drivers/crypto/caam/caamalg_desc.c
-@@ -1386,8 +1386,14 @@ void cnstr_shdsc_skcipher_encap(u32 * co
+@@ -1389,8 +1389,14 @@ void cnstr_shdsc_skcipher_encap(u32 * co
JUMP_COND_SHRD);
/* Load class1 key only */
/* Load nonce into CONTEXT1 reg */
if (is_rfc3686) {
-@@ -1458,8 +1464,14 @@ void cnstr_shdsc_skcipher_decap(u32 * co
+@@ -1464,8 +1470,14 @@ void cnstr_shdsc_skcipher_decap(u32 * co
JUMP_COND_SHRD);
/* Load class1 key only */
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -2444,6 +2444,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
+@@ -2510,6 +2510,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -2450,6 +2450,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
+@@ -2516,6 +2516,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ec, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ef, quirk_disable_all_msi);
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
-@@ -248,6 +248,60 @@ void wakeup_source_unregister(struct wak
+@@ -250,6 +250,60 @@ void wakeup_source_unregister(struct wak
EXPORT_SYMBOL_GPL(wakeup_source_unregister);
/**
}
/* Wait max 20 ms */
-@@ -852,10 +876,7 @@ static void esdhc_tuning_block_enable(st
+@@ -887,10 +911,7 @@ static void esdhc_tuning_block_enable(st
u32 val;
esdhc_clock_enable(host, false);
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
-@@ -888,20 +888,11 @@ static void esdhc_tuning_block_enable(st
+@@ -923,20 +923,11 @@ static void esdhc_tuning_block_enable(st
esdhc_clock_enable(host, true);
}
/* Write TBCTL[11:8]=4'h8 */
val = sdhci_readl(host, ESDHC_TBCTL);
val &= ~(0xf << 8);
-@@ -920,6 +911,25 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -955,6 +946,25 @@ static void esdhc_prepare_sw_tuning(stru
val = sdhci_readl(host, ESDHC_TBSTAT);
val = sdhci_readl(host, ESDHC_TBSTAT);
/* Reset data lines by setting ESDHCCTL[RSTD] */
sdhci_reset(host, SDHCI_RESET_DATA);
/* Write 32'hFFFF_FFFF to IRQSTAT register */
-@@ -930,10 +940,8 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -965,10 +975,8 @@ static void esdhc_prepare_sw_tuning(stru
* then program TBPTR[TB_WNDW_END_PTR] = 4 * div_ratio
* and program TBPTR[TB_WNDW_START_PTR] = 8 * div_ratio.
*/
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
-@@ -854,20 +854,20 @@ static int esdhc_signal_voltage_switch(s
+@@ -889,20 +889,20 @@ static int esdhc_signal_voltage_switch(s
}
static struct soc_device_attribute soc_tuning_erratum_type1[] = {
{ },
};
-@@ -935,13 +935,13 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -970,13 +970,13 @@ static void esdhc_prepare_sw_tuning(stru
/* Write 32'hFFFF_FFFF to IRQSTAT register */
sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS);
*window_start = 8 * esdhc->div_ratio;
*window_end = 4 * esdhc->div_ratio;
} else {
-@@ -1014,6 +1014,19 @@ static int esdhc_execute_tuning(struct m
+@@ -1049,6 +1049,19 @@ static int esdhc_execute_tuning(struct m
if (ret)
break;
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -2352,7 +2352,7 @@ static const struct flash_info spi_nor_i
+@@ -2410,7 +2410,7 @@ static const struct flash_info spi_nor_i
{ "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256,
SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_HAS_LOCK | USE_CLSR) },
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1260,6 +1260,17 @@ static void dwc3_get_properties(struct d
+@@ -1263,6 +1263,17 @@ static void dwc3_get_properties(struct d
dwc->maximum_speed = usb_get_maximum_speed(dev);
dwc->dr_mode = usb_get_dr_mode(dev);
dwc->sysdev_is_parent = device_property_read_bool(dev,
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -944,6 +944,7 @@ struct dwc3_scratchpad_array {
+@@ -949,6 +949,7 @@ struct dwc3_scratchpad_array {
* @nr_scratch: number of scratch buffers
* @u1u2: only used on revisions <1.83a for workaround
* @maximum_speed: maximum speed requested (mainly for testing purposes)
* @revision: revision register contents
* @version_type: VERSIONTYPE register contents, a sub release of a revision
* @dr_mode: requested mode of operation
-@@ -1097,6 +1098,7 @@ struct dwc3 {
+@@ -1104,6 +1105,7 @@ struct dwc3 {
u32 nr_scratch;
u32 u1u2;
u32 maximum_speed;
* All 3.1 IP version constants are greater than the 3.0 IP
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
-@@ -3376,6 +3376,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3392,6 +3392,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true;
#include <linux/ulpi/interface.h>
#include <linux/phy/phy.h>
-@@ -1082,6 +1083,7 @@ struct dwc3 {
+@@ -1089,6 +1090,7 @@ struct dwc3 {
void __iomem *regs;
size_t regs_size;
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1350,6 +1350,9 @@ static void dwc3_get_properties(struct d
+@@ -1355,6 +1355,9 @@ static void dwc3_get_properties(struct d
dwc->dis_metastability_quirk = device_property_read_bool(dev,
"snps,dis_metastability_quirk");
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -1034,6 +1034,8 @@ struct dwc3_scratchpad_array {
+@@ -1041,6 +1041,8 @@ struct dwc3_scratchpad_array {
* 2 - No de-emphasis
* 3 - Reserved
* @dis_metastability_quirk: set to disable metastability quirk.
* @imod_interval: set the interrupt moderation interval in 250ns
* increments or 0 to disable.
*/
-@@ -1225,6 +1227,7 @@ struct dwc3 {
+@@ -1233,6 +1235,7 @@ struct dwc3 {
unsigned tx_de_emphasis:2;
unsigned dis_metastability_quirk:1;
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1030,6 +1030,21 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1033,6 +1033,21 @@ static int dwc3_core_init(struct dwc3 *d
reg |= DWC3_GUCTL_HSTINAUTORETRY;
dwc3_writel(dwc->regs, DWC3_GUCTL, reg);
/*
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -253,6 +253,7 @@
- /* Global User Control 1 Register */
+@@ -254,6 +254,7 @@
+ #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
+#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1890,12 +1942,9 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1895,12 +1947,9 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
-@@ -1378,6 +1378,15 @@ int xhci_hub_control(struct usb_hcd *hcd
+@@ -1419,6 +1419,15 @@ int xhci_hub_control(struct usb_hcd *hcd
/* 4.19.6 Port Test Modes (USB2 Test Mode) */
if (hcd->speed != HCD_USB2)
goto error;
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3545,6 +3545,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3580,6 +3580,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
return 0;
}
* bursts that are required to move all packets in this TD. Only SuperSpeed
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5352,6 +5352,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5354,6 +5354,7 @@ static const struct hc_driver xhci_hc_dr
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
.find_raw_port_number = xhci_find_raw_port_number,
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
void xhci_init_driver(struct hc_driver *drv,
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -2141,6 +2141,16 @@ int xhci_find_raw_port_number(struct usb
+@@ -2143,6 +2143,16 @@ int xhci_find_raw_port_number(struct usb
struct xhci_hub *xhci_get_rhub(struct usb_hcd *hcd);
void xhci_hc_died(struct xhci_hcd *xhci);
ret = xhci_handshake(&xhci->op_regs->command,
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1872,6 +1872,7 @@ struct xhci_hcd {
+@@ -1873,6 +1873,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -2027,12 +2027,9 @@ static int process_ctrl_td(struct xhci_h
+@@ -2053,12 +2053,9 @@ static int process_ctrl_td(struct xhci_h
switch (trb_comp_code) {
case COMP_SUCCESS:
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5369,6 +5369,8 @@ void xhci_init_driver(struct hc_driver *
+@@ -5371,6 +5371,8 @@ void xhci_init_driver(struct hc_driver *
drv->reset = over->reset;
if (over->start)
drv->start = over->start;
EXPORT_SYMBOL_GPL(xhci_init_driver);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1910,6 +1910,7 @@ struct xhci_driver_overrides {
+@@ -1911,6 +1911,7 @@ struct xhci_driver_overrides {
size_t extra_priv_size;
int (*reset)(struct usb_hcd *hcd);
int (*start)(struct usb_hcd *hcd);
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -4716,7 +4716,8 @@ hub_port_init(struct usb_hub *hub, struc
+@@ -4728,7 +4728,8 @@ hub_port_init(struct usb_hub *hub, struc
}
if (r) {
if (r != -ENODEV)
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
-@@ -1682,7 +1682,8 @@ static bool xhci_port_missing_cas_quirk(
+@@ -1732,7 +1732,8 @@ static bool xhci_port_missing_cas_quirk(
return false;
if (((portsc & PORT_PLS_MASK) != XDEV_POLLING) &&
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1942,9 +1890,12 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1947,9 +1895,12 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1890,12 +1941,16 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1895,12 +1946,16 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {