KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .179
+LINUX_VERSION-5.4 = .182
-LINUX_KERNEL_HASH-5.4.179 = 2c9bdec0922a95aff34e8d53d2e0ecf7e842033cd908d2959a43d34afb5d897d
+LINUX_KERNEL_HASH-5.4.182 = b2f1201f64f010e9e3c85d6f303a559a7944a80a0244a86b8f5035bd23f1f40d
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
-@@ -1441,8 +1441,8 @@ struct sk_buff *inet_gro_receive(struct
+@@ -1444,8 +1444,8 @@ struct sk_buff *inet_gro_receive(struct
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock;
goto next_ht;
--- a/net/ipv6/ip6_offload.c
+++ b/net/ipv6/ip6_offload.c
-@@ -240,7 +240,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
+@@ -242,7 +242,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
continue;
iph2 = (struct ipv6hdr *)(p->data + off);
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1468,6 +1468,103 @@ command_cleanup:
+@@ -1475,6 +1475,103 @@ command_cleanup:
}
/*
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5366,6 +5463,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5376,6 +5473,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
-@@ -193,6 +194,7 @@ static const struct hid_device_id hid_qu
+@@ -194,6 +195,7 @@ static const struct hid_device_id hid_qu
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
{}, \
}; \
\
-@@ -344,6 +355,11 @@ static void __exit fbtft_driver_module_e
+@@ -347,6 +358,11 @@ static void __exit fbtft_driver_module_e
module_init(fbtft_driver_module_init); \
module_exit(fbtft_driver_module_exit);
+++ /dev/null
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 15 Feb 2022 08:27:35 +0100
-Subject: [PATCH] i2c: brcmstb: fix support for DSL and CM variants
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-DSL and CM (Cable Modem) support 8 B max transfer size and have a custom
-DT binding for that reason. This driver was checking for a wrong
-"compatible" however which resulted in an incorrect setup.
-
-Fixes: e2e5a2c61837 ("i2c: brcmstb: Adding support for CM and DSL SoCs")
-Cc: Kamal Dasu <kdasu.kdev@gmail.com>
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Acked-by: Florian Fainelli <f.fainelli@gmail.com>
----
- drivers/i2c/busses/i2c-brcmstb.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/i2c/busses/i2c-brcmstb.c
-+++ b/drivers/i2c/busses/i2c-brcmstb.c
-@@ -640,7 +640,7 @@ static int brcmstb_i2c_probe(struct plat
-
- /* set the data in/out register size for compatible SoCs */
- if (of_device_is_compatible(dev->device->of_node,
-- "brcmstb,brcmper-i2c"))
-+ "brcm,brcmper-i2c"))
- dev->data_regsz = sizeof(u8);
- else
- dev->data_regsz = sizeof(u32);
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
-@@ -36,6 +36,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
- struct ethhdr *eth;
+@@ -35,6 +35,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
+ const unsigned char *dest;
u16 vid = 0;
+ memset(skb->cb, 0, sizeof(struct br_input_skb_cb));
# CONFIG_BPFILTER is not set
CONFIG_BPF_JIT=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
+# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
# CONFIG_BPF_STREAM_PARSER is not set
CONFIG_BPF_SYSCALL=y
# CONFIG_BPQETHER is not set
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -2198,6 +2198,13 @@ config TRIM_UNUSED_KSYMS
+@@ -2208,6 +2208,13 @@ config TRIM_UNUSED_KSYMS
If unsure, or if you need to build out-of-tree modules, say N.
+MODULE_ALIAS("nf-flow-table-hw");
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -5743,6 +5743,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5748,6 +5748,13 @@ static int nf_tables_flowtable_parse_hoo
if (err < 0)
return err;
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
if (!ops)
return -ENOMEM;
-@@ -5873,10 +5880,19 @@ static int nf_tables_newflowtable(struct
+@@ -5878,10 +5885,19 @@ static int nf_tables_newflowtable(struct
}
flowtable->data.type = type;
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
flowtable);
if (err < 0)
-@@ -6002,7 +6018,8 @@ static int nf_tables_fill_flowtable_info
+@@ -6007,7 +6023,8 @@ static int nf_tables_fill_flowtable_info
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
#include <linux/uaccess.h>
#include "br_private.h"
-@@ -384,6 +388,28 @@ static const struct ethtool_ops br_ethto
+@@ -382,6 +386,28 @@ static const struct ethtool_ops br_ethto
.get_link = ethtool_op_get_link,
};
static const struct net_device_ops br_netdev_ops = {
.ndo_open = br_dev_open,
.ndo_stop = br_dev_stop,
-@@ -412,6 +438,9 @@ static const struct net_device_ops br_ne
+@@ -410,6 +436,9 @@ static const struct net_device_ops br_ne
.ndo_bridge_setlink = br_setlink,
.ndo_bridge_dellink = br_dellink,
.ndo_features_check = passthru_features_check,
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -5151,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5152,6 +5165,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
qc = __ata_qc_from_tag(ap, tag);
qc->tag = qc->hw_tag = tag;
-@@ -6087,6 +6103,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6088,6 +6104,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
ata_sff_port_init(ap);
return ap;
-@@ -6122,6 +6141,12 @@ static void ata_host_release(struct kref
+@@ -6123,6 +6142,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link);
kfree(ap->slave_link);
kfree(ap);
host->ports[i] = NULL;
}
-@@ -6585,7 +6610,23 @@ int ata_host_register(struct ata_host *h
+@@ -6586,7 +6611,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1665,6 +1665,15 @@ config EMBEDDED
+@@ -1675,6 +1675,15 @@ config EMBEDDED
an embedded system so certain expert options are available
for configuration.
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
-@@ -250,6 +250,60 @@ void wakeup_source_unregister(struct wak
+@@ -251,6 +251,60 @@ void wakeup_source_unregister(struct wak
EXPORT_SYMBOL_GPL(wakeup_source_unregister);
/**
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
-@@ -592,6 +592,32 @@ static void esdhc_clock_enable(struct sd
+@@ -596,6 +596,32 @@ static void esdhc_clock_enable(struct sd
}
}
static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
-@@ -684,9 +710,7 @@ static void esdhc_of_set_clock(struct sd
+@@ -688,9 +714,7 @@ static void esdhc_of_set_clock(struct sd
sdhci_writel(host, temp | ESDHC_HS400_WNDW_ADJUST, ESDHC_TBCTL);
esdhc_clock_enable(host, false);
}
/* Wait max 20 ms */
-@@ -888,10 +912,7 @@ static void esdhc_tuning_block_enable(st
+@@ -892,10 +916,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
-@@ -924,20 +924,11 @@ static void esdhc_tuning_block_enable(st
+@@ -928,20 +928,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);
-@@ -956,6 +947,25 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -960,6 +951,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 */
-@@ -966,10 +976,8 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -970,10 +980,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
-@@ -890,20 +890,20 @@ static int esdhc_signal_voltage_switch(s
+@@ -894,20 +894,20 @@ static int esdhc_signal_voltage_switch(s
}
static struct soc_device_attribute soc_tuning_erratum_type1[] = {
{ },
};
-@@ -971,13 +971,13 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -975,13 +975,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 {
-@@ -1061,6 +1061,19 @@ static int esdhc_execute_tuning(struct m
+@@ -1065,6 +1065,19 @@ static int esdhc_execute_tuning(struct m
if (ret)
break;
* 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
-@@ -3655,6 +3655,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3670,6 +3670,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true;
* 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
-@@ -5393,6 +5393,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5403,6 +5403,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,
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5414,6 +5414,8 @@ void xhci_init_driver(struct hc_driver *
+@@ -5424,6 +5424,8 @@ void xhci_init_driver(struct hc_driver *
drv->check_bandwidth = over->check_bandwidth;
if (over->reset_bandwidth)
drv->reset_bandwidth = over->reset_bandwidth;
/* initialize internal qc */
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
-@@ -5158,6 +5166,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5159,6 +5167,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL;
/* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap);
-@@ -5203,6 +5214,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -5204,6 +5215,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap);