endif
LINUX_VERSION-5.4 = .145
-LINUX_VERSION-5.10 = .66
+LINUX_VERSION-5.10 = .67
LINUX_KERNEL_HASH-5.4.145 = 5cf7782ec2e91417edf0d5e6555da6d556962c8985e33ba9e7dadba5cbdc68f9
-LINUX_KERNEL_HASH-5.10.66 = 5dfa06bbbbd164b9ea669ec637b1e6d05fb5fea8ef3aeb6729f2cbcd0dfcc8a7
+LINUX_KERNEL_HASH-5.10.67 = 8c5740aa782593b8fabf9b71c2800182d4fe965adabd3595634113d48cb98a82
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -2898,6 +2905,7 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2897,6 +2904,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
/*
* Check that the card supports the command class(es) we need.
-@@ -2905,7 +2913,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2904,7 +2912,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -2920,9 +2937,14 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2919,9 +2936,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1488,9 +1488,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1490,9 +1490,6 @@ static int vc4_hdmi_cec_init(struct vc4_
u32 value;
int ret;
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
vc4_hdmi, "vc4",
CEC_CAP_DEFAULTS |
-@@ -1910,7 +1907,6 @@ static const struct vc4_hdmi_variant bcm
+@@ -1912,7 +1909,6 @@ static const struct vc4_hdmi_variant bcm
.debugfs_name = "hdmi_regs",
.card_name = "vc4-hdmi",
.max_pixel_clock = 162000000,
+++ /dev/null
-From 1a0b802bb6bca3b42034245d35b56309749a362c Mon Sep 17 00:00:00 2001
-From: Dom Cobley <popcornmix@gmail.com>
-Date: Tue, 23 Jun 2020 18:37:01 +0100
-Subject: [PATCH] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
-
-Symptom is random switching of speakers when using multichannel.
-
-Repeatedly running speakertest -c8 occasionally starts with
-channels jumbled. This is fixed with HD_CTL_WHOLSMP.
-
-The other bit looks beneficial and apears harmless in testing so
-I'd suggest adding it too.
-
-Documentation says: HD_CTL_WHILSMP_SET
-Wait for whole sample. When this bit is set MAI transmit will start
-only when there is at least one whole sample available in the fifo.
-
-Documentation says: HD_CTL_CHALIGN_SET
-Channel Align When Overflow. This bit is used to realign the audio
-channels in case of an overflow.
-If this bit is set, after the detection of an overflow, equal
-amount of dummy words to the missing words will be written to fifo,
-filling up the broken sample and maintaining alignment.
-
-Signed-off-by: Dom Cobley <popcornmix@gmail.com>
----
- drivers/gpu/drm/vc4/vc4_hdmi.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/vc4/vc4_hdmi.c
-+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1074,7 +1074,9 @@ static int vc4_hdmi_audio_trigger(struct
- HDMI_WRITE(HDMI_MAI_CTL,
- VC4_SET_FIELD(vc4_hdmi->audio.channels,
- VC4_HD_MAI_CTL_CHNUM) |
-- VC4_HD_MAI_CTL_ENABLE);
-+ VC4_HD_MAI_CTL_WHOLSMP |
-+ VC4_HD_MAI_CTL_CHALIGN |
-+ VC4_HD_MAI_CTL_ENABLE);
- break;
- case SNDRV_PCM_TRIGGER_STOP:
- HDMI_WRITE(HDMI_MAI_CTL,
{
struct zynqmp_disp *disp = crtc_to_disp(crtc);
struct drm_display_mode *adjusted_mode = &crtc->state->adjusted_mode;
-@@ -1472,8 +1472,10 @@ zynqmp_disp_crtc_atomic_enable(struct dr
+@@ -1473,8 +1473,10 @@ zynqmp_disp_crtc_atomic_enable(struct dr
static void
zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc,
void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc,
--- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
-@@ -1505,9 +1505,11 @@ zynqmp_disp_crtc_atomic_disable(struct d
+@@ -1506,9 +1506,11 @@ zynqmp_disp_crtc_atomic_disable(struct d
}
static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc,
void vmw_du_crtc_destroy_state(struct drm_crtc *crtc,
--- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
-@@ -1514,14 +1514,14 @@ static int zynqmp_disp_crtc_atomic_check
+@@ -1515,14 +1515,14 @@ static int zynqmp_disp_crtc_atomic_check
static void
zynqmp_disp_crtc_atomic_begin(struct drm_crtc *crtc,
continue;
--- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
-@@ -1507,9 +1507,7 @@ zynqmp_disp_crtc_atomic_disable(struct d
+@@ -1508,9 +1508,7 @@ zynqmp_disp_crtc_atomic_disable(struct d
static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{
#include <asm/byteorder.h>
#include <asm/irq.h>
-@@ -5556,6 +5560,72 @@ static void fotg210_init(struct fotg210_
+@@ -5553,6 +5557,72 @@ static void fotg210_init(struct fotg210_
}
/*
* fotg210_hcd_probe - initialize faraday FOTG210 HCDs
*
* Allocates basic resources for this USB host controller, and
-@@ -5632,6 +5702,12 @@ static int fotg210_hcd_probe(struct plat
+@@ -5629,6 +5699,12 @@ static int fotg210_hcd_probe(struct plat
fotg210_init(fotg210);
}
static int nf_flow_table_block_setup(struct nf_flowtable *flowtable,
-@@ -1012,15 +1022,33 @@ EXPORT_SYMBOL_GPL(nf_flow_table_offload_
+@@ -1013,15 +1023,33 @@ EXPORT_SYMBOL_GPL(nf_flow_table_offload_
int nf_flow_table_offload_init(void)
{
of_id = of_match_device(w5100_of_match, &spi->dev);
--- a/drivers/net/ethernet/wiznet/w5100.c
+++ b/drivers/net/ethernet/wiznet/w5100.c
-@@ -1157,7 +1157,7 @@ int w5100_probe(struct device *dev, cons
+@@ -1159,7 +1159,7 @@ int w5100_probe(struct device *dev, cons
INIT_WORK(&priv->setrx_work, w5100_setrx_work);
INIT_WORK(&priv->restart_work, w5100_restart_work);
select OF_EARLY_FLATTREE if OF
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
-@@ -98,6 +98,7 @@ $(foreach o, $(libfdt_objs) atags_to_fdt
+@@ -100,6 +100,7 @@ $(foreach o, $(libfdt_objs) atags_to_fdt
ifdef building_out_of_srctree
$(shell rm -f $(addprefix $(obj)/, fdt_rw.c fdt_ro.c fdt_wip.c fdt.c))
endif
/*
* The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip"
-@@ -3322,6 +3323,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3323,6 +3324,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
-@@ -3347,6 +3350,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3348,6 +3351,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
-@@ -3385,6 +3390,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3386,6 +3391,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -4513,6 +4526,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4517,6 +4530,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;
-@@ -5291,6 +5307,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5295,6 +5311,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;
-@@ -5326,6 +5345,12 @@ static void ata_host_release(struct kref
+@@ -5330,6 +5349,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link);
kfree(ap->slave_link);
kfree(ap);
host->ports[i] = NULL;
}
-@@ -5732,7 +5757,23 @@ int ata_host_register(struct ata_host *h
+@@ -5736,7 +5761,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;
}
val = stmmac_get_platform_resources(pdev, &stmmac_res);
if (val)
-@@ -346,6 +388,17 @@ static int ipq806x_gmac_probe(struct pla
+@@ -339,6 +381,17 @@ static int ipq806x_gmac_probe(struct pla
0x1ul << QSGMII_PHY_RX_INPUT_EQU_OFFSET |
0x2ul << QSGMII_PHY_CDR_PI_SLEW_OFFSET |
0xCul << QSGMII_PHY_TX_DRV_AMP_OFFSET);
#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -287,7 +287,7 @@ static const struct serial8250_config ua
+@@ -288,7 +288,7 @@ static const struct serial8250_config ua
.tx_loadsz = 16,
.fcr = UART_FCR_ENABLE_FIFO |
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2718,6 +2718,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2719,6 +2719,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
#include <linux/suspend.h>
-@@ -5707,3 +5708,34 @@ static void apex_pci_fixup_class(struct
+@@ -5708,3 +5709,34 @@ static void apex_pci_fixup_class(struct
}
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
/* initialize internal qc */
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
-@@ -4520,6 +4528,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4524,6 +4532,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);
-@@ -4565,6 +4576,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -4569,6 +4580,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);