select SWCONFIG
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
-@@ -31,6 +31,7 @@ ar8xxx-y += ar8216.o
- ar8xxx-y += ar8327.o
+@@ -29,6 +29,7 @@ obj-$(CONFIG_ADM6996_PHY) += adm6996.o
+ obj-$(CONFIG_AR8216_PHY) += ar8216.o ar8327.o
obj-$(CONFIG_SWCONFIG_B53) += b53/
obj-$(CONFIG_IP17XX_PHY) += ip17xx.o
+obj-$(CONFIG_MVSWITCH_PHY) += mvswitch.o
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -3156,6 +3156,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3157,6 +3157,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
int ret;
int i;
-@@ -3210,7 +3211,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3211,7 +3212,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -778,6 +778,17 @@ out_error:
+@@ -788,6 +788,17 @@ out_error:
*/
static void mtd_set_dev_defaults(struct mtd_info *mtd)
{
+++ /dev/null
-From a8fb0d43b8acd25d68a0d2c24fd0260393148447 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.com>
-Date: Tue, 3 Nov 2020 11:49:53 +0000
-Subject: [PATCH] Revert "mailbox: avoid timer start from callback"
-
-This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743.
-
-The Pi 400 shutdown/poweroff mechanism relies on being able to set
-a GPIO on the expander in the pm_power_off handler, something that
-requires two mailbox calls - GET_GPIO_STATE and SET_GPIO_STATE. A
-recent kernel change introduces a reasonable possibility that the
-GET call doesn't completes, and bisecting led to a commit from
-October that changes the timer usage of the mailbox.
-
-My theory is that there is a race condition in the new code that breaks
-the poll timer, but that it normally goes unnoticed because subsequent
-mailbox activity wakes it up again. The power-off mailbox calls happen
-at a time when other subsystems have been shut down, so if one of them
-fails then there is nothing to allow it to recover.
-
-See: https://github.com/raspberrypi/linux/issues/3941
-
-Signed-off-by: Phil Elwell <phil@raspberrypi.com>
----
- drivers/mailbox/mailbox.c | 12 +++++-------
- 1 file changed, 5 insertions(+), 7 deletions(-)
-
---- a/drivers/mailbox/mailbox.c
-+++ b/drivers/mailbox/mailbox.c
-@@ -82,12 +82,9 @@ static void msg_submit(struct mbox_chan
- exit:
- spin_unlock_irqrestore(&chan->lock, flags);
-
-- /* kick start the timer immediately to avoid delays */
-- if (!err && (chan->txdone_method & TXDONE_BY_POLL)) {
-- /* but only if not already active */
-- if (!hrtimer_active(&chan->mbox->poll_hrt))
-- hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
-- }
-+ if (!err && (chan->txdone_method & TXDONE_BY_POLL))
-+ /* kick start the timer immediately to avoid delays */
-+ hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
- }
-
- static void tx_tick(struct mbox_chan *chan, int r)
-@@ -125,10 +122,11 @@ static enum hrtimer_restart txdone_hrtim
- struct mbox_chan *chan = &mbox->chans[i];
-
- if (chan->active_req && chan->cl) {
-- resched = true;
- txdone = chan->mbox->ops->last_tx_done(chan);
- if (txdone)
- tx_tick(chan, 0);
-+ else
-+ resched = true;
- }
- }
-
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -362,7 +362,7 @@ static const struct gpio_chip bcm2835_gp
+@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2835_gp
.get = bcm2835_gpio_get,
.set = bcm2835_gpio_set,
.set_config = gpiochip_generic_config,
+ .base = 0,
.ngpio = BCM2835_NUM_GPIOS,
.can_sleep = false,
- };
+ .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
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,
-@@ -2897,6 +2904,7 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2896,6 +2903,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.
-@@ -2904,7 +2912,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2903,7 +2911,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);
-@@ -2919,9 +2936,14 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2918,9 +2935,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));
config SND_SOC_MADERA
tristate
default y if SND_SOC_CS47L15=y
-@@ -1130,6 +1141,10 @@ config SND_SOC_RT5616
+@@ -1128,6 +1139,10 @@ config SND_SOC_RT5616
tristate "Realtek RT5616 CODEC"
depends on I2C
config SND_SOC_RT5631
tristate "Realtek ALC5631/RT5631 CODEC"
depends on I2C
-@@ -1351,6 +1366,9 @@ config SND_SOC_TFA9879
+@@ -1349,6 +1364,9 @@ config SND_SOC_TFA9879
tristate "NXP Semiconductors TFA9879 amplifier"
depends on I2C
config SND_SOC_TLV320AIC23
tristate
-@@ -1789,4 +1807,8 @@ config SND_SOC_TPA6130A2
+@@ -1787,4 +1805,8 @@ config SND_SOC_TPA6130A2
tristate "Texas Instruments TPA6130A2 headphone amplifier"
depends on I2C
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -4069,9 +4069,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4073,9 +4073,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 */
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
-@@ -382,6 +382,11 @@ struct hc_driver {
+@@ -384,6 +384,11 @@ struct hc_driver {
* or bandwidth constraints.
*/
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
/* Returns the hardware-chosen device address */
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
/* prepares the hardware to send commands to the device */
-@@ -443,6 +448,8 @@ extern void usb_hcd_unmap_urb_setup_for_
+@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
struct usb_host_endpoint *ep);
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1483,6 +1483,103 @@ command_cleanup:
+@@ -1494,6 +1494,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
*/
-@@ -5389,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5400,6 +5497,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1270,6 +1273,9 @@
+@@ -1271,6 +1274,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1318,7 +1318,7 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1336,7 +1336,7 @@ static int bcm2835_pinctrl_probe(struct
girq->default_type = IRQ_TYPE_NONE;
girq->handler = handle_level_irq;
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1290,9 +1290,13 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1308,9 +1308,13 @@ static int bcm2835_pinctrl_probe(struct
char *name;
girq->parents[i] = irq_of_parse_and_map(np, i);
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
-@@ -245,6 +245,8 @@ static struct property *dup_and_fixup_sy
+@@ -243,6 +243,8 @@ static struct property *dup_and_fixup_sy
if (!target_path)
return NULL;
target_path_len = strlen(target_path);
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2711_gp
+@@ -395,7 +395,7 @@ static const struct gpio_chip bcm2711_gp
.get = bcm2835_gpio_get,
.set = bcm2835_gpio_set,
.set_config = gpiochip_generic_config,
+ .base = 0,
.ngpio = BCM2711_NUM_GPIOS,
.can_sleep = false,
- };
+ .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -16346,6 +16346,14 @@ S: Maintained
+@@ -16348,6 +16348,14 @@ S: Maintained
T: git git://linuxtv.org/media_tree.git
F: drivers/media/i2c/imx355.c
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -4198,7 +4206,7 @@ static int bcmgenet_resume(struct device
+@@ -4202,7 +4210,7 @@ static int bcmgenet_resume(struct device
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
/* Disable RX/TX DMA and flush TX queues */
/* The filter kernel is composed of dwords each containing 3 9-bit
* signed integers packed next to each other.
*/
-@@ -671,6 +710,8 @@ static int vc4_hvs_bind(struct device *d
+@@ -687,6 +726,8 @@ static int vc4_hvs_bind(struct device *d
vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset);
vc4_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun,
NULL);
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
+@@ -299,6 +299,7 @@ static void xhci_pci_quirks(struct devic
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c);
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
-@@ -1093,7 +1093,7 @@ disable_outputs(struct drm_device *dev,
+@@ -1103,7 +1103,7 @@ disable_outputs(struct drm_device *dev,
if (new_crtc_state->enable && funcs->prepare)
funcs->prepare(crtc);
else if (funcs->atomic_disable)
else if (funcs->disable)
funcs->disable(crtc);
else if (funcs->dpms)
-@@ -1358,7 +1358,7 @@ void drm_atomic_helper_commit_modeset_en
+@@ -1368,7 +1368,7 @@ void drm_atomic_helper_commit_modeset_en
DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n",
crtc->base.id, crtc->name);
if (funcs->atomic_enable)
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
-@@ -112,7 +112,7 @@ static inline struct ingenic_drm *drm_cr
+@@ -151,7 +151,7 @@ static int ingenic_drm_update_pixclk(str
}
static void ingenic_drm_crtc_atomic_enable(struct drm_crtc *crtc,
{
struct ingenic_drm *priv = drm_crtc_get_priv(crtc);
-@@ -126,7 +126,7 @@ static void ingenic_drm_crtc_atomic_enab
+@@ -165,7 +165,7 @@ static void ingenic_drm_crtc_atomic_enab
}
static void ingenic_drm_crtc_atomic_disable(struct drm_crtc *crtc,
#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_fb_cma_helper.h>
-@@ -401,15 +402,19 @@ static int vc4_txp_atomic_check(struct d
+@@ -407,15 +408,19 @@ static int vc4_txp_atomic_check(struct d
}
static void vc4_txp_atomic_enable(struct drm_crtc *crtc,
return 0;
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
-@@ -195,22 +195,27 @@ static void ingenic_drm_crtc_update_timi
+@@ -234,22 +234,27 @@ static void ingenic_drm_crtc_update_timi
}
static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc,
#include <drm/drm_mode.h>
#include <drm/drm_crtc.h>
#include <drm/drm_flip_work.h>
-@@ -682,15 +683,17 @@ static enum mdp_mixer_stage_id get_start
+@@ -688,15 +689,17 @@ static enum mdp_mixer_stage_id get_start
}
static int mdp5_crtc_atomic_check(struct drm_crtc *crtc,
bool cursor_plane = false;
bool need_right_mixer = false;
int cnt = 0, i;
-@@ -699,7 +702,7 @@ static int mdp5_crtc_atomic_check(struct
+@@ -705,7 +708,7 @@ static int mdp5_crtc_atomic_check(struct
DBG("%s: check", crtc->name);
if (!pstate->visible)
continue;
-@@ -731,7 +734,7 @@ static int mdp5_crtc_atomic_check(struct
+@@ -737,7 +740,7 @@ static int mdp5_crtc_atomic_check(struct
if (mode->hdisplay > hw_cfg->lm.max_width)
need_right_mixer = true;
if (ret) {
DRM_DEV_ERROR(dev->dev, "couldn't assign mixers %d\n", ret);
return ret;
-@@ -744,7 +747,7 @@ static int mdp5_crtc_atomic_check(struct
+@@ -750,7 +753,7 @@ static int mdp5_crtc_atomic_check(struct
WARN_ON(cursor_plane &&
(pstates[cnt - 1].plane->type != DRM_PLANE_TYPE_CURSOR));
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
-@@ -386,16 +386,18 @@ static const struct drm_crtc_funcs vc4_t
+@@ -392,16 +392,18 @@ static const struct drm_crtc_funcs vc4_t
};
static int vc4_txp_atomic_check(struct drm_crtc *crtc,
}
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
-@@ -2507,7 +2507,7 @@ void drm_atomic_helper_commit_planes(str
+@@ -2517,7 +2517,7 @@ void drm_atomic_helper_commit_planes(str
if (active_only && !new_crtc_state->active)
continue;
}
for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) {
-@@ -2565,7 +2565,7 @@ void drm_atomic_helper_commit_planes(str
+@@ -2575,7 +2575,7 @@ void drm_atomic_helper_commit_planes(str
if (active_only && !new_crtc_state->active)
continue;
}
}
EXPORT_SYMBOL(drm_atomic_helper_commit_planes);
-@@ -2603,7 +2603,7 @@ drm_atomic_helper_commit_planes_on_crtc(
+@@ -2613,7 +2613,7 @@ drm_atomic_helper_commit_planes_on_crtc(
crtc_funcs = crtc->helper_private;
if (crtc_funcs && crtc_funcs->atomic_begin)
drm_for_each_plane_mask(plane, crtc->dev, plane_mask) {
struct drm_plane_state *old_plane_state =
-@@ -2629,7 +2629,7 @@ drm_atomic_helper_commit_planes_on_crtc(
+@@ -2639,7 +2639,7 @@ drm_atomic_helper_commit_planes_on_crtc(
}
if (crtc_funcs && crtc_funcs->atomic_flush)
if (crtc->state->event) {
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
-@@ -253,7 +253,7 @@ ingenic_drm_crtc_mode_valid(struct drm_c
+@@ -292,7 +292,7 @@ ingenic_drm_crtc_mode_valid(struct drm_c
}
static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc,
{
struct ingenic_drm *priv = drm_crtc_get_priv(crtc);
u32 ctrl = 0;
-@@ -273,20 +273,20 @@ static void ingenic_drm_crtc_atomic_begi
+@@ -312,26 +312,26 @@ static void ingenic_drm_crtc_atomic_begi
}
static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc,
+ struct drm_pending_vblank_event *event = crtc_state->event;
- if (drm_atomic_crtc_needs_modeset(state)) {
-- ingenic_drm_crtc_update_timings(priv, &state->mode);
+ if (drm_atomic_crtc_needs_modeset(crtc_state)) {
-+ ingenic_drm_crtc_update_timings(priv, &crtc_state->mode);
+ ingenic_drm_crtc_update_timings(priv, &state->mode);
+ priv->update_clk_rate = true;
+ }
- clk_set_rate(priv->pix_clk, state->adjusted_mode.clock * 1000);
+ if (priv->update_clk_rate) {
+ mutex_lock(&priv->clk_mutex);
+- clk_set_rate(priv->pix_clk, state->adjusted_mode.clock * 1000);
++ clk_set_rate(priv->pix_clk, crtc_state->adjusted_mode.clock * 1000);
+ priv->update_clk_rate = false;
+ mutex_unlock(&priv->clk_mutex);
}
if (event) {
struct drm_device *dev = crtc->dev;
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
-@@ -772,13 +772,13 @@ static int mdp5_crtc_atomic_check(struct
+@@ -778,13 +778,13 @@ static int mdp5_crtc_atomic_check(struct
}
static void mdp5_crtc_atomic_begin(struct drm_crtc *crtc,
struct sti_mixer *mixer = to_sti_mixer(crtc);
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
-@@ -625,7 +625,7 @@ static void ltdc_crtc_mode_set_nofb(stru
+@@ -629,7 +629,7 @@ static void ltdc_crtc_mode_set_nofb(stru
}
static void ltdc_crtc_atomic_flush(struct drm_crtc *crtc,
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
-@@ -406,23 +406,19 @@ static int vc4_txp_atomic_check(struct d
+@@ -412,23 +412,19 @@ static int vc4_txp_atomic_check(struct d
static void vc4_txp_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{
static const struct drm_display_mode innolux_at070tn92_mode = {
.clock = 33333,
.hdisplay = 800,
-@@ -4077,6 +4109,9 @@ static const struct of_device_id platfor
+@@ -4078,6 +4110,9 @@ static const struct of_device_id platfor
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
}, {
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -16360,6 +16360,7 @@ M: Raspberry Pi Kernel Maintenance <kern
+@@ -16362,6 +16362,7 @@ M: Raspberry Pi Kernel Maintenance <kern
L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media_tree.git
+++ /dev/null
-From 8f367667b69df3af3d5fa2695f14f97910beadfa Mon Sep 17 00:00:00 2001
-From: Dom Cobley <popcornmix@gmail.com>
-Date: Thu, 8 Jul 2021 13:48:11 +0100
-Subject: [PATCH] bcm2711_thermal: Don't clamp temperature at zero
-
-The temperature sensor is valid below zero and the linux framework is happy with it.
-
-See: https://www.raspberrypi.org/forums/viewtopic.php?f=98&t=315382
-Signed-off-by: Dom Cobley <popcornmix@gmail.com>
----
- drivers/thermal/broadcom/bcm2711_thermal.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/thermal/broadcom/bcm2711_thermal.c
-+++ b/drivers/thermal/broadcom/bcm2711_thermal.c
-@@ -52,7 +52,7 @@ static int bcm2711_get_temp(void *data,
- /* Convert a HW code to a temperature reading (millidegree celsius) */
- t = slope * val + offset;
-
-- *temp = t < 0 ? 0 : t;
-+ *temp = t;
-
- return 0;
- }
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
-@@ -2039,6 +2039,9 @@ crtc_or_fake_commit(struct drm_atomic_st
+@@ -2049,6 +2049,9 @@ crtc_or_fake_commit(struct drm_atomic_st
* should always call this function from their
* &drm_mode_config_funcs.atomic_commit hook.
*
* To be able to use this support drivers need to use a few more helper
* functions. drm_atomic_helper_wait_for_dependencies() must be called before
* actually committing the hardware state, and for nonblocking commits this call
-@@ -2082,8 +2085,11 @@ int drm_atomic_helper_setup_commit(struc
+@@ -2092,8 +2095,11 @@ int drm_atomic_helper_setup_commit(struc
struct drm_plane *plane;
struct drm_plane_state *old_plane_state, *new_plane_state;
struct drm_crtc_commit *commit;
for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
commit = kzalloc(sizeof(*commit), GFP_KERNEL);
if (!commit)
-@@ -2160,6 +2166,9 @@ int drm_atomic_helper_setup_commit(struc
+@@ -2170,6 +2176,9 @@ int drm_atomic_helper_setup_commit(struc
new_plane_state->commit = drm_crtc_commit_get(commit);
}
dlist_count++; /* Account for SCALER_CTL0_END. */
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
-@@ -393,7 +393,7 @@ static int vc4_txp_atomic_check(struct d
+@@ -399,7 +399,7 @@ static int vc4_txp_atomic_check(struct d
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
int ret;
.page_flip = drm_atomic_helper_page_flip,
--- a/drivers/gpu/drm/arm/malidp_crtc.c
+++ b/drivers/gpu/drm/arm/malidp_crtc.c
-@@ -510,7 +510,6 @@ static void malidp_crtc_disable_vblank(s
+@@ -513,7 +513,6 @@ static void malidp_crtc_disable_vblank(s
}
static const struct drm_crtc_funcs malidp_crtc_funcs = {
int atmel_hlcdc_crtc_create(struct drm_device *dev)
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
-@@ -3500,76 +3500,6 @@ fail:
+@@ -3510,76 +3510,6 @@ fail:
EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
/**
.page_flip = drm_atomic_helper_page_flip, \
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
-@@ -647,8 +647,6 @@ static const struct drm_crtc_funcs ingen
+@@ -692,8 +692,6 @@ static const struct drm_crtc_funcs ingen
.enable_vblank = ingenic_drm_enable_vblank,
.disable_vblank = ingenic_drm_disable_vblank,
static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
-@@ -742,7 +742,6 @@ static const struct drm_crtc_funcs ltdc_
+@@ -746,7 +746,6 @@ static const struct drm_crtc_funcs ltdc_
.enable_vblank = ltdc_crtc_enable_vblank,
.disable_vblank = ltdc_crtc_disable_vblank,
.get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp,
.get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp,
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
-@@ -380,7 +380,6 @@ static const struct drm_crtc_funcs vc4_t
+@@ -386,7 +386,6 @@ static const struct drm_crtc_funcs vc4_t
.reset = vc4_crtc_reset,
.atomic_duplicate_state = vc4_crtc_duplicate_state,
.atomic_destroy_state = vc4_crtc_destroy_state,
else if (funcs->best_encoder)
new_encoder = funcs->best_encoder(connector);
else
-@@ -1318,7 +1318,7 @@ static void drm_atomic_helper_commit_wri
+@@ -1328,7 +1328,7 @@ static void drm_atomic_helper_commit_wri
if (new_conn_state->writeback_job && new_conn_state->writeback_job->fb) {
WARN_ON(connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK);
#include "mtdcore.h"
-@@ -851,6 +852,8 @@ int mtd_device_parse_register(struct mtd
+@@ -861,6 +862,8 @@ int mtd_device_parse_register(struct mtd
register_reboot_notifier(&mtd->reboot_notifier);
}
#include <linux/nvmem-provider.h>
#include <linux/mtd/mtd.h>
-@@ -694,6 +695,19 @@ int add_mtd_device(struct mtd_info *mtd)
+@@ -704,6 +705,19 @@ int add_mtd_device(struct mtd_info *mtd)
of this try_ nonsense, and no bitching about it
either. :) */
__module_get(THIS_MODULE);
endif # MTD_SPI_NOR
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -2801,6 +2801,21 @@ static void spi_nor_info_init_params(str
+@@ -2802,6 +2802,21 @@ static void spi_nor_info_init_params(str
*/
erase_mask = 0;
i = 0;
if (info->flags & SECT_4K_PMC) {
erase_mask |= BIT(i);
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
-@@ -2812,6 +2827,7 @@ static void spi_nor_info_init_params(str
+@@ -2813,6 +2828,7 @@ static void spi_nor_info_init_params(str
SPINOR_OP_BE_4K);
i++;
}
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -1046,6 +1046,44 @@ out_unlock:
+@@ -1056,6 +1056,44 @@ out_unlock:
}
EXPORT_SYMBOL_GPL(get_mtd_device_nm);
help
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
-@@ -88,6 +88,7 @@ obj-$(CONFIG_MICROSEMI_PHY) += mscc/
+@@ -86,6 +86,7 @@ obj-$(CONFIG_MICROSEMI_PHY) += mscc/
obj-$(CONFIG_NATIONAL_PHY) += national.o
obj-$(CONFIG_NXP_TJA11XX_PHY) += nxp-tja11xx.o
obj-$(CONFIG_QSEMI_PHY) += qsemi.o
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -3156,6 +3156,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3157,6 +3157,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
int ret;
int i;
-@@ -3210,7 +3211,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3211,7 +3212,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -778,6 +778,17 @@ out_error:
+@@ -788,6 +788,17 @@ out_error:
*/
static void mtd_set_dev_defaults(struct mtd_info *mtd)
{
help
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
-@@ -89,6 +89,7 @@ obj-$(CONFIG_NATIONAL_PHY) += national.o
+@@ -87,6 +87,7 @@ obj-$(CONFIG_NATIONAL_PHY) += national.o
obj-$(CONFIG_NXP_TJA11XX_PHY) += nxp-tja11xx.o
obj-$(CONFIG_QSEMI_PHY) += qsemi.o
obj-$(CONFIG_REALTEK_PHY) += realtek.o