endif
LINUX_VERSION-5.4 = .117
-LINUX_VERSION-5.10 = .35
+LINUX_VERSION-5.10 = .36
LINUX_KERNEL_HASH-5.4.117 = 4e989b5775830092e5c76b5cca65ebff862ad0c87d0b58c3a20d415c3d4ec770
-LINUX_KERNEL_HASH-5.10.35 = ac37a19d45b77a87e58e3aae8b127a6e7eb85ed7467fc8e58474b387bfd498fd
+LINUX_KERNEL_HASH-5.10.36 = 899ce7f728007321288e632f0c2f8db9c8c2d625cef0e5a331d4c213fce1b268
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
xhci->quirks |= XHCI_RESET_ON_RESUME;
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -423,10 +423,14 @@ static int xhci_try_enable_msi(struct us
+@@ -427,10 +427,14 @@ static int xhci_try_enable_msi(struct us
free_irq(hcd->irq, hcd);
hcd->irq = 0;
unsigned long rate;
int ret;
-@@ -152,16 +150,10 @@ static int ath79_spi_probe(struct platfo
+@@ -152,15 +150,9 @@ static int ath79_spi_probe(struct platfo
master->dev.of_node = pdev->dev.of_node;
platform_set_drvdata(pdev, sp);
-
master->use_gpio_descriptors = true;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
- master->setup = spi_bitbang_setup;
- master->cleanup = spi_bitbang_cleanup;
+ master->flags = SPI_MASTER_GPIO_SS;
- if (pdata) {
- master->bus_num = pdata->bus_num;
- master->num_chipselect = pdata->num_chipselect;
+++ /dev/null
-From b142b1beb199f62d47370c98a3dd8e13f792e9c0 Mon Sep 17 00:00:00 2001
-From: David Bauer <mail@david-bauer.net>
-Date: Thu, 27 Feb 2020 23:03:20 +0100
-Subject: [PATCH] spi: ath79: remove spi-master setup and cleanup assignment
-
-This removes the assignment of setup and cleanup functions for the ath79
-target. Assigning the setup-method will lead to 'setup_transfer' not
-being assigned in spi_bitbang_init.
-
-Also drop the redundant cleanup assignment, as this also happens in
-spi_bitbang_init.
-
-Signed-off-by: David Bauer <mail@david-bauer.net>
----
- drivers/spi/spi-ath79.c | 2 --
- 1 file changed, 2 deletions(-)
-
---- a/drivers/spi/spi-ath79.c
-+++ b/drivers/spi/spi-ath79.c
-@@ -152,8 +152,6 @@ static int ath79_spi_probe(struct platfo
-
- master->use_gpio_descriptors = true;
- master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
-- master->setup = spi_bitbang_setup;
-- master->cleanup = spi_bitbang_cleanup;
-
- sp->bitbang.master = master;
- sp->bitbang.chipselect = ath79_spi_chipselect;
+++ /dev/null
-From 4b7d7f85abac1e7ad9e8b745694e470f0729f527 Mon Sep 17 00:00:00 2001
-From: David Bauer <mail@david-bauer.net>
-Date: Wed, 3 Mar 2021 17:11:34 +0100
-Subject: [PATCH] spi: sync up initial chipselect state
-
-When initially probing the SPI slave device, the call for disabling an
-SPI device without the SPI_CS_HIGH flag is not applied, as the
-condition for checking whether or not the state to be applied equals the
-one currently set evaluates to true.
-
-This however might not necessarily be the case, as the chipselect might
-be active.
-
-Add a force flag to spi_set_cs which allows to override this
-early access condition. Set it to false everywhere except when called
-from spi_setup to sync up the initial CS state.
-
-Fixes commit d40f0b6f2e21 ("spi: Avoid setting the chip select if we don't
-need to")
-
-Signed-off-by: David Bauer <mail@david-bauer.net>
----
- drivers/spi/spi.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
---- a/drivers/spi/spi.c
-+++ b/drivers/spi/spi.c
-@@ -787,7 +787,7 @@ int spi_register_board_info(struct spi_b
-
- /*-------------------------------------------------------------------------*/
-
--static void spi_set_cs(struct spi_device *spi, bool enable)
-+static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
- {
- bool enable1 = enable;
-
-@@ -795,7 +795,7 @@ static void spi_set_cs(struct spi_device
- * Avoid calling into the driver (or doing delays) if the chip select
- * isn't actually changing from the last time this was called.
- */
-- if ((spi->controller->last_cs_enable == enable) &&
-+ if (!force && (spi->controller->last_cs_enable == enable) &&
- (spi->controller->last_cs_mode_high == (spi->mode & SPI_CS_HIGH)))
- return;
-
-@@ -1243,7 +1243,7 @@ static int spi_transfer_one_message(stru
- struct spi_statistics *statm = &ctlr->statistics;
- struct spi_statistics *stats = &msg->spi->statistics;
-
-- spi_set_cs(msg->spi, true);
-+ spi_set_cs(msg->spi, true, false);
-
- SPI_STATISTICS_INCREMENT_FIELD(statm, messages);
- SPI_STATISTICS_INCREMENT_FIELD(stats, messages);
-@@ -1311,9 +1311,9 @@ fallback_pio:
- &msg->transfers)) {
- keep_cs = true;
- } else {
-- spi_set_cs(msg->spi, false);
-+ spi_set_cs(msg->spi, false, false);
- _spi_transfer_cs_change_delay(msg, xfer);
-- spi_set_cs(msg->spi, true);
-+ spi_set_cs(msg->spi, true, false);
- }
- }
-
-@@ -1322,7 +1322,7 @@ fallback_pio:
-
- out:
- if (ret != 0 || !keep_cs)
-- spi_set_cs(msg->spi, false);
-+ spi_set_cs(msg->spi, false, false);
-
- if (msg->status == -EINPROGRESS)
- msg->status = ret;
-@@ -3400,11 +3400,11 @@ int spi_setup(struct spi_device *spi)
- */
- status = 0;
-
-- spi_set_cs(spi, false);
-+ spi_set_cs(spi, false, true);
- pm_runtime_mark_last_busy(spi->controller->dev.parent);
- pm_runtime_put_autosuspend(spi->controller->dev.parent);
- } else {
-- spi_set_cs(spi, false);
-+ spi_set_cs(spi, false, true);
- }
-
- mutex_unlock(&spi->controller->io_mutex);
static int ath79_spi_probe(struct platform_device *pdev)
{
struct spi_master *master;
-@@ -163,6 +197,7 @@ static int ath79_spi_probe(struct platfo
+@@ -164,6 +198,7 @@ static int ath79_spi_probe(struct platfo
ret = PTR_ERR(sp->base);
goto err_put_master;
}
+++ /dev/null
-From 55e2fff639d4297ffeb478113aef6d3e26c2c4c2 Mon Sep 17 00:00:00 2001
-From: David Bauer <mail@david-bauer.net>
-Date: Wed, 17 Feb 2021 02:44:55 +0100
-Subject: [PATCH 1/2] spi: ath79: add SPI_MASTER_GPIO_SS flag
-
-Add the SPI_MASTER_GPIO_SS flag for the spi-ath79 driver. Otherwise,
-the custom chipselect function is never called. This breaks hardware,
-where the three dedicated chipselect lines are used instead of generic
-GPIO pins.
-
-Fixes commit 4a07b8bcd503 ("spi: bitbang: Make chipselect callback optional")
-
-Signed-off-by: David Bauer <mail@david-bauer.net>
----
- drivers/spi/spi-ath79.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/spi/spi-ath79.c
-+++ b/drivers/spi/spi-ath79.c
-@@ -186,6 +186,7 @@ static int ath79_spi_probe(struct platfo
-
- master->use_gpio_descriptors = true;
- master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
-+ master->flags = SPI_MASTER_GPIO_SS;
-
- sp->bitbang.master = master;
- sp->bitbang.chipselect = ath79_spi_chipselect;
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
-@@ -644,23 +644,30 @@ static struct gpio_desc *of_parse_own_gp
+@@ -646,23 +646,30 @@ static struct gpio_desc *of_parse_own_gp
* of_gpiochip_add_hog - Add all hogs in a hog device node
* @chip: gpio chip to act on
* @hog: device node describing the hogs
ret = gpiod_hog(desc, name, lflags, dflags);
if (ret < 0)
return ret;
-@@ -676,12 +683,15 @@ static int of_gpiochip_add_hog(struct gp
+@@ -678,12 +685,15 @@ static int of_gpiochip_add_hog(struct gp
/**
* of_gpiochip_scan_gpios - Scan gpio-controller for gpio definitions
* @chip: gpio chip to act on
{
struct device_node *np;
int ret;
-@@ -690,7 +700,7 @@ static int of_gpiochip_scan_gpios(struct
+@@ -692,7 +702,7 @@ static int of_gpiochip_scan_gpios(struct
if (!of_property_read_bool(np, "gpio-hog"))
continue;
if (ret < 0) {
of_node_put(np);
return ret;
-@@ -756,7 +766,7 @@ static int of_gpio_notify(struct notifie
+@@ -758,7 +768,7 @@ static int of_gpio_notify(struct notifie
if (chip == NULL)
return NOTIFY_OK; /* not for us */
if (ret < 0) {
pr_err("%s: failed to add hogs for %pOF\n", __func__,
rd->dn);
-@@ -1028,9 +1038,11 @@ int of_gpiochip_add(struct gpio_chip *ch
+@@ -1030,9 +1040,11 @@ int of_gpiochip_add(struct gpio_chip *ch
of_node_get(chip->of_node);
--- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c
-@@ -96,6 +96,7 @@ static void macronix_default_init(struct
+@@ -93,6 +93,7 @@ static void macronix_default_init(struct
{
nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -907,8 +907,25 @@
+@@ -907,8 +907,25 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq4019-ap.dk04.1-c3.dtb \
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
#define QSGMII_PCS_CAL_LCKDT_CTL 0x120
#define QSGMII_PCS_CAL_LCKDT_CTL_RST BIT(19)
-@@ -241,6 +252,36 @@ static void ipq806x_gmac_fix_mac_speed(v
+@@ -242,6 +253,36 @@ static void ipq806x_gmac_fix_mac_speed(v
ipq806x_gmac_set_speed(gmac, speed);
}
static int ipq806x_gmac_probe(struct platform_device *pdev)
{
struct plat_stmmacenet_data *plat_dat;
-@@ -249,6 +290,7 @@ static int ipq806x_gmac_probe(struct pla
+@@ -250,6 +291,7 @@ static int ipq806x_gmac_probe(struct pla
struct ipq806x_gmac *gmac;
int val;
int err;
val = stmmac_get_platform_resources(pdev, &stmmac_res);
if (val)
-@@ -345,6 +387,17 @@ static int ipq806x_gmac_probe(struct pla
+@@ -346,6 +388,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);
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
-@@ -352,6 +352,8 @@ static int ipq806x_gmac_probe(struct pla
+@@ -405,6 +405,8 @@ static int ipq806x_gmac_probe(struct pla
plat_dat->bsp_priv = gmac;
plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
plat_dat->multicast_filter_bins = 0;