From 7995f61330c232d89fedfba329546c5127dd2292 Mon Sep 17 00:00:00 2001 From: Yafen Date: Fri, 10 May 2024 18:45:15 +0800 Subject: [PATCH] RPi: update kernel version to openEuler 6.6.0-25.0.0 --- 0000-raspberrypi-kernel.patch | 355 +++++++++++++++------------------- raspberrypi-kernel.spec | 7 +- 2 files changed, 165 insertions(+), 197 deletions(-) diff --git a/0000-raspberrypi-kernel.patch b/0000-raspberrypi-kernel.patch index c8ae472..dc001f4 100644 --- a/0000-raspberrypi-kernel.patch +++ b/0000-raspberrypi-kernel.patch @@ -1,7 +1,7 @@ -From b609199a78451b9d24d2432728a2fba22afc3bff Mon Sep 17 00:00:00 2001 +From cdb17cc37ef917eafea723f83212e58b4c824c13 Mon Sep 17 00:00:00 2001 From: Yafen -Date: Tue, 16 Apr 2024 06:59:06 +0800 -Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-19.0.0) +Date: Fri, 10 May 2024 08:18:47 +0800 +Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-25.0.0) --- .../admin-guide/media/bcm2835-isp.rst | 127 + @@ -629,7 +629,7 @@ Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-19.0.0) drivers/gpu/drm/vc4/vc4_irq.c | 10 +- drivers/gpu/drm/vc4/vc4_kms.c | 135 +- drivers/gpu/drm/vc4/vc4_perfmon.c | 20 +- - drivers/gpu/drm/vc4/vc4_plane.c | 1036 ++- + drivers/gpu/drm/vc4/vc4_plane.c | 1031 ++- drivers/gpu/drm/vc4/vc4_regs.h | 357 +- drivers/gpu/drm/vc4/vc4_render_cl.c | 2 +- drivers/gpu/drm/vc4/vc4_txp.c | 91 +- @@ -761,7 +761,7 @@ Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-19.0.0) drivers/misc/Kconfig | 8 + drivers/misc/Makefile | 1 + drivers/misc/bcm2835_smi.c | 953 +++ - drivers/mmc/core/block.c | 58 +- + drivers/mmc/core/block.c | 59 +- drivers/mmc/core/bus.c | 2 + drivers/mmc/core/card.h | 1 + drivers/mmc/core/core.c | 10 +- @@ -795,11 +795,10 @@ Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-19.0.0) drivers/net/phy/bcm-phy-ptp.c | 12 + drivers/net/phy/broadcom.c | 48 +- drivers/net/phy/microchip.c | 27 + - drivers/net/usb/ax88179_178a.c | 2 + drivers/net/usb/lan78xx.c | 64 +- drivers/net/usb/smsc95xx.c | 51 +- .../broadcom/brcm80211/brcmfmac/bus.h | 2 +- - .../broadcom/brcm80211/brcmfmac/cfg80211.c | 367 +- + .../broadcom/brcm80211/brcmfmac/cfg80211.c | 364 +- .../broadcom/brcm80211/brcmfmac/cfg80211.h | 18 + .../broadcom/brcm80211/brcmfmac/common.c | 39 + .../broadcom/brcm80211/brcmfmac/core.c | 13 +- @@ -1135,7 +1134,7 @@ Subject: [PATCH] apply RPi patch of 6.6.26 (openEuler 6.6.0-19.0.0) sound/soc/soc-core.c | 14 +- sound/usb/card.c | 8 +- sound/usb/quirks.c | 2 + - 1131 files changed, 229610 insertions(+), 4285 deletions(-) + 1130 files changed, 229605 insertions(+), 4281 deletions(-) create mode 100644 Documentation/admin-guide/media/bcm2835-isp.rst create mode 100644 Documentation/devicetree/bindings/display/panel/panel-dsi.yaml create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,emc2305.yaml @@ -5184,7 +5183,7 @@ index 24b34cdfa6fe..44589ac3e909 100644 + pixfmt-nv24 pixfmt-m420 diff --git a/MAINTAINERS b/MAINTAINERS -index cd4f9e589245..9c9668adac5d 100644 +index 1c70622103e0..2e813db650d1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1563,6 +1563,22 @@ S: Maintained @@ -5240,7 +5239,7 @@ index cd4f9e589245..9c9668adac5d 100644 BROADCOM BCM47XX MIPS ARCHITECTURE M: Hauke Mehrtens M: Rafał Miłecki -@@ -15852,6 +15891,14 @@ S: Maintained +@@ -15868,6 +15907,14 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/ov5695.c @@ -5255,7 +5254,7 @@ index cd4f9e589245..9c9668adac5d 100644 OMNIVISION OV7670 SENSOR DRIVER L: linux-media@vger.kernel.org S: Orphan -@@ -17410,7 +17457,7 @@ F: drivers/video/backlight/pwm_bl.c +@@ -17426,7 +17473,7 @@ F: drivers/video/backlight/pwm_bl.c F: include/dt-bindings/pwm/ F: include/linux/pwm.h F: include/linux/pwm_backlight.h @@ -5264,7 +5263,7 @@ index cd4f9e589245..9c9668adac5d 100644 PXA GPIO DRIVER M: Robert Jarzmik -@@ -18602,6 +18649,13 @@ S: Supported +@@ -18618,6 +18665,13 @@ S: Supported F: drivers/iio/light/rohm-bu27008.c F: drivers/iio/light/rohm-bu27034.c @@ -5278,7 +5277,7 @@ index cd4f9e589245..9c9668adac5d 100644 ROHM MULTIFUNCTION BD9571MWV-M PMIC DEVICE DRIVERS M: Marek Vasut L: linux-kernel@vger.kernel.org -@@ -19995,7 +20049,7 @@ M: Sakari Ailus +@@ -20011,7 +20065,7 @@ M: Sakari Ailus L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git @@ -5287,7 +5286,7 @@ index cd4f9e589245..9c9668adac5d 100644 F: drivers/media/i2c/imx258.c SONY IMX274 SENSOR DRIVER -@@ -20072,6 +20126,31 @@ T: git git://linuxtv.org/media_tree.git +@@ -20088,6 +20142,31 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/sony,imx415.yaml F: drivers/media/i2c/imx415.c @@ -58131,10 +58130,10 @@ index 7e8773a2d99d..a1ff693e49bf 100644 /* * Save the userland NEON/VFP state. Under UP, diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 8def51744a10..942cc2f5340f 100644 +index fc56e4e30e29..bb49f48de832 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -123,7 +123,8 @@ config ARM64 +@@ -124,7 +124,8 @@ config ARM64 select CRC32 select DCACHE_WORD_ACCESS select DYNAMIC_FTRACE if FUNCTION_TRACER @@ -63424,10 +63423,10 @@ index 0a5445ac5e1b..3029004fa262 100644 }; diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c -index 71e748a9477e..c58c16817e97 100644 +index c0436881a533..0717d12f972a 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c -@@ -357,7 +357,8 @@ static void h5_handle_internal_rx(struct hci_uart *hu) +@@ -358,7 +358,8 @@ static void h5_handle_internal_rx(struct hci_uart *hu) h5_link_control(hu, conf_req, 3); } else if (memcmp(data, conf_req, 2) == 0) { h5_link_control(hu, conf_rsp, 2); @@ -64975,7 +64974,7 @@ index 440fe28bddc0..33bc28f429f6 100644 ret = devm_hwrng_register(dev, &priv->rng); if (ret) { diff --git a/drivers/char/random.c b/drivers/char/random.c -index b9ae54c243a9..09a441d24065 100644 +index c97875cbd08c..b7c12d49e7f9 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -843,6 +843,14 @@ void __init random_init_early(const char *command_line) @@ -69397,7 +69396,7 @@ index 000000000000..b4964babf84a +MODULE_DESCRIPTION("RP1 clock driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index 4ccae1a3b884..7d3435a7df41 100644 +index 7a618f629e86..60b10aed1b81 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -669,6 +669,10 @@ config UNIPHIER_XDMAC @@ -71362,7 +71361,7 @@ index f66efaa5196d..17abde1e7d55 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index 3d186a39dd71..7d651afd4c20 100644 +index e52e8b5ae88e..7e646ea60873 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -207,10 +207,16 @@ config GPIO_BCM_XGS_IPROC @@ -71398,7 +71397,7 @@ index 3d186a39dd71..7d651afd4c20 100644 config GPIO_PXA bool "PXA GPIO support" depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST -@@ -1301,6 +1315,15 @@ config GPIO_ELKHARTLAKE +@@ -1302,6 +1316,15 @@ config GPIO_ELKHARTLAKE To compile this driver as a module, choose M here: the module will be called gpio-elkhartlake. @@ -73359,7 +73358,7 @@ index 000000000000..4a718b365a6f +MODULE_AUTHOR("Dave Stevenson "); +MODULE_DESCRIPTION("PWM GPIO driver"); diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index deca1d43de9c..48acc58cdf2d 100644 +index 1c512ed3fa6d..d15870f7cbc0 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -57,6 +57,8 @@ @@ -73394,10 +73393,10 @@ index deca1d43de9c..48acc58cdf2d 100644 "%s: tried to flag a GPIO set as output for IRQ\n", __func__); diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig -index c4a0e10b9704..a67248eb854e 100644 +index d1cad875d2f7..89eb6afe2688 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig -@@ -345,6 +345,8 @@ source "drivers/gpu/drm/v3d/Kconfig" +@@ -346,6 +346,8 @@ source "drivers/gpu/drm/v3d/Kconfig" source "drivers/gpu/drm/vc4/Kconfig" @@ -73809,10 +73808,10 @@ index ac9a406250c5..5a6d966f7ada 100644 break; diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c -index 3f479483d7d8..cb9c201250d5 100644 +index c90afb5d0898..49816a7353bc 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c -@@ -1247,8 +1247,9 @@ int drm_connector_helper_tv_get_modes(struct drm_connector *connector) +@@ -1267,8 +1267,9 @@ int drm_connector_helper_tv_get_modes(struct drm_connector *connector) for (i = 0; i < tv_mode_property->num_values; i++) supported_tv_modes |= BIT(tv_mode_property->values[i]); @@ -73856,10 +73855,10 @@ index 2e8f17c04522..ff9b9918b0a1 100644 static void __intel_backlight_enable(const struct intel_crtc_state *crtc_state, diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c -index a072fbb9872a..066a3cd74df1 100644 +index 1a59fca40252..0e941ce3d5a4 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c -@@ -7267,6 +7267,19 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, +@@ -7280,6 +7280,19 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, state->base.legacy_cursor_update = false; } @@ -90550,7 +90549,7 @@ index 03648f954985..0d94165d4b6b 100644 switch (args->madv) { diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 25c9c71256d3..7429bbee5bec 100644 +index 4626fe9aac56..b76bb2c1e2b6 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -41,6 +41,8 @@ @@ -94632,7 +94631,7 @@ index c4ac2c946238..4cd3643c3ba7 100644 if (!vc4->v3d) { diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index 00e713faecd5..2d1039aa2dcf 100644 +index 5948e34f7f81..2d1039aa2dcf 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -109,6 +109,18 @@ static const struct hvs_format { @@ -95911,18 +95910,18 @@ index 00e713faecd5..2d1039aa2dcf 100644 + ret = vc6_plane_mode_set(plane, new_plane_state); + else + ret = vc4_plane_mode_set(plane, new_plane_state); - if (ret) - return ret; - -- return vc4_plane_allocate_lbm(new_plane_state); ++ if (ret) ++ return ret; ++ + if (!vc4_state->src_w[0] || !vc4_state->src_h[0] || + !vc4_state->crtc_w || !vc4_state->crtc_h) + return 0; + + ret = vc4_plane_allocate_lbm(new_plane_state); -+ if (ret) -+ return ret; -+ + if (ret) + return ret; + +- return vc4_plane_allocate_lbm(new_plane_state); + if (vc4->gen >= VC4_GEN_6) { + ret = vc6_plane_allocate_upm(new_plane_state); + if (ret) @@ -96059,26 +96058,7 @@ index 00e713faecd5..2d1039aa2dcf 100644 (new_vc4_state->lbm_offset && i == new_vc4_state->lbm_offset)) continue; -@@ -1505,9 +2278,6 @@ static int vc4_prepare_fb(struct drm_plane *plane, - - drm_gem_plane_helper_prepare_fb(plane, state); - -- if (plane->state->fb == state->fb) -- return 0; -- - return vc4_bo_inc_usecnt(bo); - } - -@@ -1516,7 +2286,7 @@ static void vc4_cleanup_fb(struct drm_plane *plane, - { - struct vc4_bo *bo; - -- if (plane->state->fb == state->fb || !state->fb) -+ if (!state->fb) - return; - - bo = to_vc4_bo(&drm_fb_dma_get_gem_obj(state->fb, 0)->base); -@@ -1632,7 +2402,7 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1629,7 +2402,7 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, }; for (i = 0; i < ARRAY_SIZE(hvs_formats); i++) { @@ -96087,7 +96067,7 @@ index 00e713faecd5..2d1039aa2dcf 100644 formats[num_formats] = hvs_formats[i].drm; num_formats++; } -@@ -1647,7 +2417,7 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1644,7 +2417,7 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, return ERR_CAST(vc4_plane); plane = &vc4_plane->base; @@ -96096,7 +96076,7 @@ index 00e713faecd5..2d1039aa2dcf 100644 drm_plane_helper_add(plane, &vc5_plane_helper_funcs); else drm_plane_helper_add(plane, &vc4_plane_helper_funcs); -@@ -1672,6 +2442,8 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1669,6 +2442,8 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, DRM_COLOR_YCBCR_BT709, DRM_COLOR_YCBCR_LIMITED_RANGE); @@ -97311,7 +97291,7 @@ index 000000000000..e8d2b4b162f7 + VC_IMAGE_YUVINFO_CSC_REC_2020 = 9, +}; diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 72046039d1be..c3d576c6f1ec 100644 +index 0a4daff4846f..a2b2fb75b5ed 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -239,6 +239,9 @@ @@ -97324,7 +97304,7 @@ index 72046039d1be..c3d576c6f1ec 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1403,6 +1406,9 @@ +@@ -1404,6 +1407,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 @@ -99041,7 +99021,7 @@ index 83803a63e23f..5cb4fcf562eb 100644 return -EIO; } diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h -index 2c97fff25b07..c5c5b8d048de 100644 +index 03483288ecf8..20c29e6c997f 100644 --- a/drivers/i2c/busses/i2c-designware-core.h +++ b/drivers/i2c/busses/i2c-designware-core.h @@ -79,9 +79,12 @@ @@ -100080,7 +100060,7 @@ index 87797cc88b32..235dd5f264c5 100644 int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len); diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig -index c59b1942d5bb..4b4461d56aaf 100644 +index 75131a1b762c..4a95b12a37c4 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -527,4 +527,11 @@ config SMMU_BYPASS_DEV @@ -102019,7 +101999,7 @@ index fbfd0202047c..7e0d62fbc83e 100644 MODULE_AUTHOR("Lubomir Rintel "); MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c -index cf6727d9c81f..9bd4cfefa24d 100644 +index 468191438849..33c39d5daa46 100644 --- a/drivers/media/common/videobuf2/videobuf2-core.c +++ b/drivers/media/common/videobuf2/videobuf2-core.c @@ -2229,12 +2229,12 @@ static int __find_plane_by_offset(struct vb2_queue *q, unsigned long off, @@ -123269,7 +123249,7 @@ index 068c7449f50e..0b092a425cfc 100644 dev_err(ov9282->dev, "chip id mismatch: %x!=%x", OV9282_ID, val); diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 2785935da497..5b6f74e56bde 100644 +index 558152575d10..d4fb57d5b123 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -110,7 +110,7 @@ static inline struct tc358743_state *to_state(struct v4l2_subdev *sd) @@ -135883,7 +135863,7 @@ index f4d9d6279094..0ba33c03bb21 100644 if (fmt->description[0]) return; diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c -index 0cc30397fbad..55444b9b3a5a 100644 +index 8db9ac9c1433..c21ddbbfa50e 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -301,9 +301,10 @@ static void __v4l2_m2m_try_queue(struct v4l2_m2m_dev *m2m_dev, @@ -137609,7 +137589,7 @@ index 000000000000..acb54c2224cd +MODULE_DESCRIPTION("Device driver for BCM2835's secondary memory interface"); +MODULE_AUTHOR("Luke Wren "); diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index 32d49100dff5..00cb1f4ceadf 100644 +index 3564a0f63c9c..a5794d2ee6ce 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -171,6 +171,13 @@ static DEFINE_MUTEX(open_lock); @@ -137626,10 +137606,11 @@ index 32d49100dff5..00cb1f4ceadf 100644 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, -@@ -880,6 +887,10 @@ static int mmc_blk_part_switch_pre(struct mmc_card *card, - if ((part_type & mask) == mask) { +@@ -880,7 +887,10 @@ static int mmc_blk_part_switch_pre(struct mmc_card *card, + + if ((part_type & mask) == rpmb) { if (card->ext_csd.cmdq_en) { - ret = mmc_cmdq_disable(card); +- ret = mmc_cmdq_disable(card); + if (mmc_card_sd(card)) + ret = mmc_sd_cmdq_disable(card); + else @@ -137637,9 +137618,9 @@ index 32d49100dff5..00cb1f4ceadf 100644 if (ret) return ret; } -@@ -897,8 +908,12 @@ static int mmc_blk_part_switch_post(struct mmc_card *card, +@@ -899,8 +909,12 @@ static int mmc_blk_part_switch_post(struct mmc_card *card, - if ((part_type & mask) == mask) { + if ((part_type & mask) == rpmb) { mmc_retune_unpause(card->host); - if (card->reenable_cmdq && !card->ext_csd.cmdq_en) - ret = mmc_cmdq_enable(card); @@ -137652,7 +137633,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 } return ret; -@@ -1094,7 +1109,10 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req) +@@ -1096,7 +1110,10 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req) switch (mq_rq->drv_op) { case MMC_DRV_OP_IOCTL: if (card->ext_csd.cmdq_en) { @@ -137664,7 +137645,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 if (ret) break; } -@@ -1112,8 +1130,12 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req) +@@ -1114,8 +1131,12 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req) /* Always switch back to main area after RPMB access */ if (rpmb_ioctl) mmc_blk_part_switch(card, 0); @@ -137679,7 +137660,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 break; case MMC_DRV_OP_BOOT_WP: ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BOOT_WP, -@@ -1940,7 +1962,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) +@@ -1942,7 +1963,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) return; } @@ -137688,7 +137669,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 queue_physical_block_size(mq->queue) >> 9) { /* Read one (native) sector at a time */ mmc_blk_read_single(mq, req); -@@ -3006,6 +3028,8 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -3008,6 +3029,8 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md; int ret = 0; @@ -137697,7 +137678,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 /* * Check that the card supports the command class(es) we need. -@@ -3013,7 +3037,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -3015,7 +3038,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -137715,7 +137696,7 @@ index 32d49100dff5..00cb1f4ceadf 100644 card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -3028,6 +3061,17 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -3030,6 +3062,17 @@ static int mmc_blk_probe(struct mmc_card *card) goto out_free; } @@ -142801,7 +142782,7 @@ index 10235fdff246..f014437cb911 100644 .reset = sdhci_reset, .set_uhs_signaling = sdhci_set_uhs_signaling, diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c -index 3a3bae6948a8..e9a3b29b409d 100644 +index a0524127ca07..b99b5678361a 100644 --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c @@ -90,6 +90,7 @@ struct rk35xx_priv { @@ -143780,7 +143761,7 @@ index 000000000000..007d077edcad + rtl8168_setup_ldev(leds + i, ndev, i); +} diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c -index 81fd31f6fac4..47d2f4f13220 100644 +index e6f1da66c450..59f1f156d4ea 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -289,6 +289,7 @@ enum rtl8168_8101_registers { @@ -143862,7 +143843,7 @@ index 81fd31f6fac4..47d2f4f13220 100644 static void r8168fp_adjust_ocp_cmd(struct rtl8169_private *tp, u32 *cmd, int type) { /* based on RTL8168FP_OOBMAC_BASE in vendor driver */ -@@ -5227,6 +5285,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -5259,6 +5317,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) raw_spin_lock_init(&tp->cfg9346_usage_lock); raw_spin_lock_init(&tp->config25_lock); raw_spin_lock_init(&tp->mac_ocp_lock); @@ -143870,7 +143851,7 @@ index 81fd31f6fac4..47d2f4f13220 100644 dev->tstats = devm_netdev_alloc_pcpu_stats(&pdev->dev, struct pcpu_sw_netstats); -@@ -5383,6 +5442,12 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -5415,6 +5474,12 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (rc) return rc; @@ -144077,19 +144058,6 @@ index 0b88635f4fbc..ae266a69822a 100644 /* these values can be used to identify internal PHY */ priv->chip_id = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_ID); priv->chip_rev = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_REV); -diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c -index d837c1887416..5a1bf42ce156 100644 ---- a/drivers/net/usb/ax88179_178a.c -+++ b/drivers/net/usb/ax88179_178a.c -@@ -1315,6 +1315,8 @@ static int ax88179_bind(struct usbnet *dev, struct usb_interface *intf) - - netif_set_tso_max_size(dev->net, 16384); - -+ ax88179_reset(dev); -+ - return 0; - } - diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 921ae046f860..a7f24d6c0cae 100644 --- a/drivers/net/usb/lan78xx.c @@ -144222,7 +144190,7 @@ index 921ae046f860..a7f24d6c0cae 100644 buf = kmalloc(maxp, GFP_KERNEL); if (!buf) { diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index a530f20ee257..340a877eaf69 100644 +index 2fa46baa589e..44aefcb23930 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -79,6 +79,18 @@ static bool turbo_mode = true; @@ -144334,7 +144302,7 @@ index fe31051a9e11..8c3613ff23f5 100644 void brcmf_detach(struct device *dev); void brcmf_free(struct device *dev); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index 6049f9a761d9..07f07373fbb7 100644 +index c230bc8900a5..29cc020e0b15 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -9,6 +9,7 @@ @@ -144345,7 +144313,7 @@ index 6049f9a761d9..07f07373fbb7 100644 #include #include #include -@@ -88,6 +89,9 @@ +@@ -89,6 +90,9 @@ #define BRCMF_PS_MAX_TIMEOUT_MS 2000 @@ -144355,7 +144323,7 @@ index 6049f9a761d9..07f07373fbb7 100644 /* Dump obss definitions */ #define ACS_MSRMNT_DELAY 80 #define CHAN_NOISE_DUMMY (-80) -@@ -1957,14 +1961,18 @@ static s32 brcmf_set_wpa_version(struct net_device *ndev, +@@ -1944,14 +1948,18 @@ static s32 brcmf_set_wpa_version(struct net_device *ndev, s32 val = 0; s32 err = 0; @@ -144379,7 +144347,7 @@ index 6049f9a761d9..07f07373fbb7 100644 brcmf_dbg(CONN, "setting wpa_auth to 0x%0x\n", val); err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", val); if (err) { -@@ -2229,7 +2237,7 @@ brcmf_set_key_mgmt(struct net_device *ndev, struct cfg80211_connect_params *sme) +@@ -2216,7 +2224,7 @@ brcmf_set_key_mgmt(struct net_device *ndev, struct cfg80211_connect_params *sme) brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "mfp", mfp); skip_mfp_config: @@ -144388,7 +144356,7 @@ index 6049f9a761d9..07f07373fbb7 100644 err = brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "wpa_auth", val); if (err) { bphy_err(drvr, "could not set wpa_auth (%d)\n", err); -@@ -2474,44 +2482,52 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, +@@ -2461,43 +2469,50 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, goto done; } @@ -144443,15 +144411,11 @@ index 6049f9a761d9..07f07373fbb7 100644 - bphy_err(drvr, "failed to clean up user-space RSNE\n"); - goto done; - } -- err = brcmf_set_sae_password(ifp, sme->crypto.sae_pwd, -- sme->crypto.sae_pwd_len); +- err = brcmf_fwvid_set_sae_password(ifp, &sme->crypto); - if (!err && sme->crypto.psk) + if (profile->use_fwsup == BRCMF_PROFILE_FWSUP_PSK) { err = brcmf_set_pmk(ifp, sme->crypto.psk, BRCMF_WSEC_MAX_PSK_LEN); -- } -- if (err) -- goto done; + } else if (profile->use_fwsup == BRCMF_PROFILE_FWSUP_SAE) { + /* clean up user-space RSNE */ + err = brcmf_fil_iovar_data_set(ifp, "wpaie", NULL, 0); @@ -144459,20 +144423,21 @@ index 6049f9a761d9..07f07373fbb7 100644 + bphy_err(drvr, "failed to clean up user-space RSNE\n"); + goto done; + } - -+ err = brcmf_set_sae_password(ifp, sme->crypto.sae_pwd, -+ sme->crypto.sae_pwd_len); ++ err = brcmf_fwvid_set_sae_password(ifp, &sme->crypto); + if (!err && sme->crypto.psk) + err = brcmf_set_pmk(ifp, sme->crypto.psk, + BRCMF_WSEC_MAX_PSK_LEN); + } + if (err) + goto done; -+ } + } +- if (err) +- goto done; +- /* Join with specific BSSID and cached SSID * If SSID is zero join based on BSSID only */ -@@ -3312,7 +3328,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -3298,7 +3313,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, brcmf_dbg(INFO, "Do not enable power save for P2P clients\n"); pm = PM_OFF; } @@ -144481,7 +144446,7 @@ index 6049f9a761d9..07f07373fbb7 100644 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); if (err) { -@@ -3322,6 +3338,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -3308,6 +3323,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, bphy_err(drvr, "error (%d)\n", err); } @@ -144489,7 +144454,7 @@ index 6049f9a761d9..07f07373fbb7 100644 err = brcmf_fil_iovar_int_set(ifp, "pm2_sleep_ret", min_t(u32, timeout, BRCMF_PS_MAX_TIMEOUT_MS)); if (err) -@@ -5519,9 +5536,12 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, +@@ -5509,9 +5525,12 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, s32 ie_len; struct brcmf_fil_action_frame_le *action_frame; struct brcmf_fil_af_params_le *af_params; @@ -144503,7 +144468,7 @@ index 6049f9a761d9..07f07373fbb7 100644 brcmf_dbg(TRACE, "Enter\n"); -@@ -5602,6 +5622,71 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, +@@ -5592,6 +5611,71 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, ack, GFP_KERNEL); kfree(af_params); @@ -144575,7 +144540,7 @@ index 6049f9a761d9..07f07373fbb7 100644 } else { brcmf_dbg(TRACE, "Unhandled, fc=%04x!!\n", mgmt->frame_control); brcmf_dbg_hex_dump(true, buf, len, "payload, len=%zu\n", len); -@@ -5925,6 +6010,40 @@ static int brcmf_cfg80211_del_pmk(struct wiphy *wiphy, struct net_device *dev, +@@ -5915,6 +5999,40 @@ static int brcmf_cfg80211_del_pmk(struct wiphy *wiphy, struct net_device *dev, return brcmf_set_pmk(ifp, NULL, 0); } @@ -144616,7 +144581,7 @@ index 6049f9a761d9..07f07373fbb7 100644 static struct cfg80211_ops brcmf_cfg80211_ops = { .add_virtual_intf = brcmf_cfg80211_add_iface, .del_virtual_intf = brcmf_cfg80211_del_iface, -@@ -5972,6 +6091,7 @@ static struct cfg80211_ops brcmf_cfg80211_ops = { +@@ -5962,6 +6080,7 @@ static struct cfg80211_ops brcmf_cfg80211_ops = { .update_connect_params = brcmf_cfg80211_update_conn_params, .set_pmk = brcmf_cfg80211_set_pmk, .del_pmk = brcmf_cfg80211_del_pmk, @@ -144624,7 +144589,7 @@ index 6049f9a761d9..07f07373fbb7 100644 }; struct cfg80211_ops *brcmf_cfg80211_get_ops(struct brcmf_mp_device *settings) -@@ -6018,6 +6138,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, +@@ -6008,6 +6127,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, vif->mbss = mbss; } @@ -144632,7 +144597,7 @@ index 6049f9a761d9..07f07373fbb7 100644 list_add_tail(&vif->list, &cfg->vif_list); return vif; } -@@ -6709,6 +6830,122 @@ static s32 brcmf_notify_vif_event(struct brcmf_if *ifp, +@@ -6699,6 +6819,122 @@ static s32 brcmf_notify_vif_event(struct brcmf_if *ifp, return -EINVAL; } @@ -144755,7 +144720,7 @@ index 6049f9a761d9..07f07373fbb7 100644 static void brcmf_init_conf(struct brcmf_cfg80211_conf *conf) { conf->frag_threshold = (u32)-1; -@@ -6753,7 +6990,16 @@ static void brcmf_register_event_handlers(struct brcmf_cfg80211_info *cfg) +@@ -6743,7 +6979,16 @@ static void brcmf_register_event_handlers(struct brcmf_cfg80211_info *cfg) brcmf_p2p_notify_action_tx_complete); brcmf_fweh_register(cfg->pub, BRCMF_E_PSK_SUP, brcmf_notify_connect_status); @@ -144773,7 +144738,7 @@ index 6049f9a761d9..07f07373fbb7 100644 } static void brcmf_deinit_priv_mem(struct brcmf_cfg80211_info *cfg) -@@ -7341,6 +7587,7 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] = { +@@ -7331,6 +7576,7 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] = { [NL80211_IFTYPE_STATION] = { .tx = 0xffff, .rx = BIT(IEEE80211_STYPE_ACTION >> 4) | @@ -144781,7 +144746,7 @@ index 6049f9a761d9..07f07373fbb7 100644 BIT(IEEE80211_STYPE_PROBE_REQ >> 4) }, [NL80211_IFTYPE_P2P_CLIENT] = { -@@ -7646,6 +7893,8 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp) +@@ -7636,6 +7882,8 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp) wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_SAE_OFFLOAD_AP); } @@ -144790,7 +144755,7 @@ index 6049f9a761d9..07f07373fbb7 100644 wiphy->mgmt_stypes = brcmf_txrx_stypes; wiphy->max_remain_on_channel_duration = 5000; if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) { -@@ -8187,31 +8436,45 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, +@@ -8177,31 +8425,45 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0); struct brcmf_pub *drvr = cfg->pub; struct brcmf_fil_country_le ccreq; @@ -144849,7 +144814,7 @@ index 6049f9a761d9..07f07373fbb7 100644 return; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h -index 0e1fa3f0dea2..ae1c8a416336 100644 +index dc3a6a537507..f6573da57dc0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h @@ -178,6 +178,21 @@ enum brcmf_vif_status { @@ -145006,10 +144971,10 @@ index 9bb5f709d41a..f3804d6f8768 100644 __printf(3, 4) void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c -index 6d10c9efbe93..2bdf95179609 100644 +index 909a34a1ab50..e300212f8763 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c -@@ -43,6 +43,7 @@ static const struct brcmf_feat_fwcap brcmf_fwcap_map[] = { +@@ -44,6 +44,7 @@ static const struct brcmf_feat_fwcap brcmf_fwcap_map[] = { { BRCMF_FEAT_DOT11H, "802.11h" }, { BRCMF_FEAT_SAE, "sae" }, { BRCMF_FEAT_FWAUTH, "idauth" }, @@ -145197,7 +145162,7 @@ index 48414e8b9389..65e33df996dd 100644 const struct brcmf_event_msg *evtmsg, void *data); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -index 611d1a6aabb9..c02e852fcda4 100644 +index b68c46caabe8..a5f96efdbac0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h @@ -178,6 +178,11 @@ @@ -146328,7 +146293,7 @@ index a9a292d6d59b..2cc25b5811b9 100644 new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL); if (!new_prop) diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c -index f9dd6622fe10..4b2c457c26fe 100644 +index e47a77f943b1..e0cb694ee60b 100644 --- a/drivers/pci/controller/pcie-brcmstb.c +++ b/drivers/pci/controller/pcie-brcmstb.c @@ -14,6 +14,7 @@ @@ -152883,7 +152848,7 @@ index 823317772bac..89c1cae675a0 100644 static int brcm_rescal_reset_probe(struct platform_device *pdev) diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig -index 179c99a0e706..7e423b2876ac 100644 +index 6f270577df86..2941a6e46aed 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -223,6 +223,17 @@ config RTC_DRV_AC100 @@ -169863,7 +169828,7 @@ index a0cdd28101f2..825daadf2fea 100644 #endif diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c -index 258aa0e37f55..86a4c5260278 100644 +index 4c3684dd902e..d36ad71cc8bc 100644 --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c @@ -27,9 +27,22 @@ @@ -170228,7 +170193,7 @@ index 258aa0e37f55..86a4c5260278 100644 vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -962,9 +1101,9 @@ static int create_component(struct vchiq_mmal_instance *instance, +@@ -963,9 +1102,9 @@ static int create_component(struct vchiq_mmal_instance *instance, component->outputs = rmsg->u.component_create_reply.output_num; component->clocks = rmsg->u.component_create_reply.clock_num; @@ -170241,7 +170206,7 @@ index 258aa0e37f55..86a4c5260278 100644 release_msg: vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -1133,10 +1272,9 @@ static int port_action_port(struct vchiq_mmal_instance *instance, +@@ -1134,10 +1273,9 @@ static int port_action_port(struct vchiq_mmal_instance *instance, ret = -rmsg->u.port_action_reply.status; @@ -170255,7 +170220,7 @@ index 258aa0e37f55..86a4c5260278 100644 release_msg: vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -1180,11 +1318,11 @@ static int port_action_handle(struct vchiq_mmal_instance *instance, +@@ -1181,11 +1319,11 @@ static int port_action_handle(struct vchiq_mmal_instance *instance, ret = -rmsg->u.port_action_reply.status; @@ -170272,7 +170237,7 @@ index 258aa0e37f55..86a4c5260278 100644 release_msg: vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -1223,9 +1361,9 @@ static int port_parameter_set(struct vchiq_mmal_instance *instance, +@@ -1224,9 +1362,9 @@ static int port_parameter_set(struct vchiq_mmal_instance *instance, ret = -rmsg->u.port_parameter_set_reply.status; @@ -170285,7 +170250,7 @@ index 258aa0e37f55..86a4c5260278 100644 release_msg: vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -1283,8 +1421,9 @@ static int port_parameter_get(struct vchiq_mmal_instance *instance, +@@ -1284,8 +1422,9 @@ static int port_parameter_get(struct vchiq_mmal_instance *instance, /* Always report the size of the returned parameter to the caller */ *value_size = rmsg->u.port_parameter_get_reply.size; @@ -170297,7 +170262,7 @@ index 258aa0e37f55..86a4c5260278 100644 release_msg: vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle); -@@ -1329,6 +1468,7 @@ static int port_disable(struct vchiq_mmal_instance *instance, +@@ -1330,6 +1469,7 @@ static int port_disable(struct vchiq_mmal_instance *instance, mmalbuf->mmal_flags = 0; mmalbuf->dts = MMAL_TIME_UNKNOWN; mmalbuf->pts = MMAL_TIME_UNKNOWN; @@ -170305,7 +170270,7 @@ index 258aa0e37f55..86a4c5260278 100644 port->buffer_cb(instance, port, 0, mmalbuf); } -@@ -1360,6 +1500,8 @@ static int port_enable(struct vchiq_mmal_instance *instance, +@@ -1361,6 +1501,8 @@ static int port_enable(struct vchiq_mmal_instance *instance, port->enabled = true; @@ -170314,7 +170279,7 @@ index 258aa0e37f55..86a4c5260278 100644 if (port->buffer_cb) { /* send buffer headers to videocore */ hdr_count = 1; -@@ -1425,6 +1567,9 @@ int vchiq_mmal_port_parameter_set(struct vchiq_mmal_instance *instance, +@@ -1426,6 +1568,9 @@ int vchiq_mmal_port_parameter_set(struct vchiq_mmal_instance *instance, mutex_unlock(&instance->vchiq_mutex); @@ -170324,7 +170289,7 @@ index 258aa0e37f55..86a4c5260278 100644 return ret; } EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_set); -@@ -1537,7 +1682,7 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, +@@ -1538,7 +1683,7 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, if (!dst) { /* do not make new connection */ ret = 0; @@ -170333,7 +170298,7 @@ index 258aa0e37f55..86a4c5260278 100644 goto release_unlock; } -@@ -1555,14 +1700,14 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, +@@ -1556,14 +1701,14 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, /* set new format */ ret = port_info_set(instance, dst); if (ret) { @@ -170350,7 +170315,7 @@ index 258aa0e37f55..86a4c5260278 100644 goto release_unlock; } -@@ -1571,9 +1716,9 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, +@@ -1572,9 +1717,9 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance, MMAL_MSG_PORT_ACTION_TYPE_CONNECT, dst->component->handle, dst->handle); if (ret < 0) { @@ -170363,7 +170328,7 @@ index 258aa0e37f55..86a4c5260278 100644 goto release_unlock; } src->connected = dst; -@@ -1593,6 +1738,32 @@ int vchiq_mmal_submit_buffer(struct vchiq_mmal_instance *instance, +@@ -1594,6 +1739,32 @@ int vchiq_mmal_submit_buffer(struct vchiq_mmal_instance *instance, unsigned long flags = 0; int ret; @@ -170396,7 +170361,7 @@ index 258aa0e37f55..86a4c5260278 100644 ret = buffer_from_host(instance, port, buffer); if (ret == -EINVAL) { /* Port is disabled. Queue for when it is enabled. */ -@@ -1626,10 +1797,74 @@ int mmal_vchi_buffer_cleanup(struct mmal_buffer *buf) +@@ -1627,10 +1798,74 @@ int mmal_vchi_buffer_cleanup(struct mmal_buffer *buf) release_msg_context(msg_context); buf->msg_context = NULL; @@ -170471,7 +170436,7 @@ index 258aa0e37f55..86a4c5260278 100644 /* Initialise a mmal component and its ports * */ -@@ -1679,6 +1914,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, +@@ -1680,6 +1915,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, ret = port_info_get(instance, &component->control); if (ret < 0) goto release_component; @@ -170479,7 +170444,7 @@ index 258aa0e37f55..86a4c5260278 100644 for (idx = 0; idx < component->inputs; idx++) { component->input[idx].type = MMAL_PORT_TYPE_INPUT; -@@ -1689,6 +1925,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, +@@ -1690,6 +1926,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, ret = port_info_get(instance, &component->input[idx]); if (ret < 0) goto release_component; @@ -170487,7 +170452,7 @@ index 258aa0e37f55..86a4c5260278 100644 } for (idx = 0; idx < component->outputs; idx++) { -@@ -1700,6 +1937,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, +@@ -1701,6 +1938,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, ret = port_info_get(instance, &component->output[idx]); if (ret < 0) goto release_component; @@ -170495,7 +170460,7 @@ index 258aa0e37f55..86a4c5260278 100644 } for (idx = 0; idx < component->clocks; idx++) { -@@ -1711,6 +1949,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, +@@ -1712,6 +1950,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, ret = port_info_get(instance, &component->clock[idx]); if (ret < 0) goto release_component; @@ -170503,7 +170468,7 @@ index 258aa0e37f55..86a4c5260278 100644 } *component_out = component; -@@ -1721,6 +1960,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, +@@ -1722,6 +1961,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance, release_component: destroy_component(instance, component); @@ -170511,7 +170476,7 @@ index 258aa0e37f55..86a4c5260278 100644 unlock: if (component) component->in_use = false; -@@ -1748,6 +1988,8 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance, +@@ -1749,6 +1989,8 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance, component->in_use = false; @@ -170520,7 +170485,7 @@ index 258aa0e37f55..86a4c5260278 100644 mutex_unlock(&instance->vchiq_mutex); return ret; -@@ -1772,7 +2014,7 @@ int vchiq_mmal_component_enable(struct vchiq_mmal_instance *instance, +@@ -1773,7 +2015,7 @@ int vchiq_mmal_component_enable(struct vchiq_mmal_instance *instance, ret = enable_component(instance, component); if (ret == 0) @@ -170681,10 +170646,10 @@ index 3449f8790e46..e561f21cd6c3 100644 * If the "interrupt" for this port doesn't correspond with any * hardware interrupt, we use a timer-based system. The original diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 141627370aab..345076d7221b 100644 +index a17803da83f8..8099e6a261c2 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -1535,6 +1535,9 @@ static void serial8250_stop_tx(struct uart_port *port) +@@ -1529,6 +1529,9 @@ static void serial8250_stop_tx(struct uart_port *port) serial_icr_write(up, UART_ACR, up->acr); } serial8250_rpm_put(up); @@ -170694,7 +170659,7 @@ index 141627370aab..345076d7221b 100644 } static inline void __start_tx(struct uart_port *port) -@@ -1648,6 +1651,9 @@ static void serial8250_start_tx(struct uart_port *port) +@@ -1642,6 +1645,9 @@ static void serial8250_start_tx(struct uart_port *port) /* Port locked to synchronize UART_IER access against the console. */ lockdep_assert_held_once(&port->lock); @@ -170704,7 +170669,7 @@ index 141627370aab..345076d7221b 100644 if (!port->x_char && uart_circ_empty(&port->state->xmit)) return; -@@ -1872,6 +1878,9 @@ unsigned int serial8250_modem_status(struct uart_8250_port *up) +@@ -1866,6 +1872,9 @@ unsigned int serial8250_modem_status(struct uart_8250_port *up) uart_handle_cts_change(port, status & UART_MSR_CTS); wake_up_interruptible(&port->state->port.delta_msr_wait); @@ -170937,10 +170902,10 @@ index 12b6dfeaf658..0de6ac768188 100644 * endpoint state is gone from hardware. usb_hcd_flush_endpoint() must * have been called previously. Use for set_configuration, set_interface, diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 71635dfa741d..2dbfbd076493 100644 +index 7417972202b8..a3ed81c7674f 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5689,7 +5689,7 @@ static void port_event(struct usb_hub *hub, int port1) +@@ -5709,7 +5709,7 @@ static void port_event(struct usb_hub *hub, int port1) port_dev->over_current_count++; port_over_current_notify(port_dev); @@ -171219,7 +171184,7 @@ index db67df29fb2b..b16e528859a8 100644 } diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index b73b79fea281..ab3395199030 100644 +index 7d50c81ce97e..192c22bec46e 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1162,6 +1162,24 @@ static void dwc3_config_threshold(struct dwc3 *dwc) @@ -171309,7 +171274,7 @@ index b73b79fea281..ab3395199030 100644 dwc->maximum_speed = usb_get_maximum_speed(dev); dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); dwc->dr_mode = usb_get_dr_mode(dev); -@@ -1580,6 +1625,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) +@@ -1582,6 +1627,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) "snps,parkmode-disable-ss-quirk"); dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev, "snps,parkmode-disable-hs-quirk"); @@ -171318,7 +171283,7 @@ index b73b79fea281..ab3395199030 100644 dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev, "snps,gfladj-refclk-lpm-sel-quirk"); -@@ -1600,6 +1647,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) +@@ -1602,6 +1649,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) dwc->dis_split_quirk = device_property_read_bool(dev, "snps,dis-split-quirk"); @@ -171328,7 +171293,7 @@ index b73b79fea281..ab3395199030 100644 dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1617,6 +1667,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) +@@ -1619,6 +1669,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd; dwc->tx_max_burst_prd = tx_max_burst_prd; @@ -171337,7 +171302,7 @@ index b73b79fea281..ab3395199030 100644 dwc->imod_interval = 0; dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; -@@ -1892,6 +1944,12 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -1894,6 +1946,12 @@ static int dwc3_probe(struct platform_device *pdev) dwc3_get_properties(dwc); @@ -171351,7 +171316,7 @@ index b73b79fea281..ab3395199030 100644 if (IS_ERR(dwc->reset)) { ret = PTR_ERR(dwc->reset); diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index 6782ec8bfd64..2dd962bada45 100644 +index 5e6ead35dffc..7a7af6caae91 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -185,6 +185,9 @@ @@ -171397,7 +171362,7 @@ index 6782ec8bfd64..2dd962bada45 100644 * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk * @tx_de_emphasis: Tx de-emphasis value * 0 - -6dB de-emphasis -@@ -1292,6 +1299,7 @@ struct dwc3 { +@@ -1293,6 +1300,7 @@ struct dwc3 { u8 tx_max_burst_prd; u8 tx_fifo_resize_max_num; u8 clear_stall_protocol; @@ -171405,7 +171370,7 @@ index 6782ec8bfd64..2dd962bada45 100644 const char *hsphy_interface; -@@ -1335,6 +1343,7 @@ struct dwc3 { +@@ -1336,6 +1344,7 @@ struct dwc3 { unsigned ulpi_ext_vbus_drv:1; unsigned parkmode_disable_ss_quirk:1; unsigned parkmode_disable_hs_quirk:1; @@ -171414,7 +171379,7 @@ index 6782ec8bfd64..2dd962bada45 100644 unsigned tx_de_emphasis_quirk:1; diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c -index 43230915323c..7b33f226531d 100644 +index f6a020d77fa1..799ab2a42995 100644 --- a/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c @@ -61,16 +61,23 @@ static int dwc3_host_get_irq(struct dwc3 *dwc) @@ -231215,7 +231180,7 @@ index 000000000000..cdc9963176e5 +test_main(); +0; diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 0a37f0d511cf..482963bf0018 100644 +index b1e3fa54c639..1b31f629c657 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -1400,6 +1400,7 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, @@ -231272,7 +231237,7 @@ index 0a37f0d511cf..482963bf0018 100644 /* FIXME dig Mult and streams info out of ep companion desc */ /* Allow 3 retries for everything but isoc, set CErr = 3 */ -@@ -2239,12 +2268,17 @@ xhci_alloc_interrupter(struct xhci_hcd *xhci, gfp_t flags) +@@ -2241,12 +2270,17 @@ xhci_alloc_interrupter(struct xhci_hcd *xhci, gfp_t flags) struct device *dev = xhci_to_hcd(xhci)->self.sysdev; struct xhci_interrupter *ir; int ret; @@ -231291,7 +231256,7 @@ index 0a37f0d511cf..482963bf0018 100644 0, flags); if (!ir->event_ring) { xhci_warn(xhci, "Failed to allocate interrupter event ring\n"); -@@ -2281,7 +2315,7 @@ xhci_add_interrupter(struct xhci_hcd *xhci, struct xhci_interrupter *ir, +@@ -2283,7 +2317,7 @@ xhci_add_interrupter(struct xhci_hcd *xhci, struct xhci_interrupter *ir, /* set ERST count with the number of entries in the segment table */ erst_size = readl(&ir->ir_set->erst_size); erst_size &= ERST_SIZE_MASK; @@ -231348,10 +231313,10 @@ index 44a749fdcafd..71ea283a4f23 100644 if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) { diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index d9e6a3bd3c2a..0ff536c4d61e 100644 +index c91b6348aa30..82fddeb2ffe7 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -626,8 +626,11 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -633,8 +633,11 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, struct xhci_ring *ep_ring; struct xhci_command *cmd; struct xhci_segment *new_seg; @@ -231363,7 +231328,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 dma_addr_t addr; u64 hw_dequeue; bool cycle_found = false; -@@ -665,7 +668,27 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -672,7 +675,27 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id); new_seg = ep_ring->deq_seg; new_deq = ep_ring->dequeue; @@ -231392,7 +231357,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 /* * We want to find the pointer, segment and cycle state of the new trb -@@ -698,6 +721,15 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -705,6 +728,15 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, } while (!cycle_found || !td_last_trb_found); deq_found: @@ -231408,7 +231373,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 /* Don't update the ring cycle state for the producer (us). */ addr = xhci_trb_virt_to_dma(new_seg, new_deq); -@@ -708,9 +740,9 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -715,9 +747,9 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, } if ((ep->ep_state & SET_DEQ_PENDING)) { @@ -231421,7 +231386,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 } /* This function gets called from contexts where it cannot sleep */ -@@ -3589,6 +3621,48 @@ static int xhci_align_td(struct xhci_hcd *xhci, struct urb *urb, u32 enqd_len, +@@ -3596,6 +3628,48 @@ static int xhci_align_td(struct xhci_hcd *xhci, struct urb *urb, u32 enqd_len, return 1; } @@ -231470,7 +231435,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3745,6 +3819,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3752,6 +3826,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, } check_trb_math(urb, enqd_len); @@ -231479,7 +231444,7 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3880,6 +3956,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3887,6 +3963,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); @@ -231489,10 +231454,10 @@ index d9e6a3bd3c2a..0ff536c4d61e 100644 start_cycle, start_trb); return 0; diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 132b76fa7ca6..34a21cc5b530 100644 +index 573b5784d1c3..6515eb72500a 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1484,6 +1484,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1486,6 +1486,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -231602,7 +231567,7 @@ index 132b76fa7ca6..34a21cc5b530 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5305,6 +5408,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5316,6 +5419,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -231611,10 +231576,10 @@ index 132b76fa7ca6..34a21cc5b530 100644 .enable_device = xhci_enable_device, .update_hub_device = xhci_update_hub_device, diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 3aabdb06b7a3..7b5933633ea0 100644 +index d57471a9e643..56c8d5dc340f 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1674,8 +1674,9 @@ struct urb_priv { +@@ -1679,8 +1679,9 @@ struct urb_priv { * Each segment table entry is 4*32bits long. 1K seems like an ok size: * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table, * meaning 64 ring segments. @@ -231626,7 +231591,7 @@ index 3aabdb06b7a3..7b5933633ea0 100644 /* Poll every 60 seconds */ #define POLL_TIMEOUT 60 /* Stop endpoint command timeout (secs) for URB cancellation watchdog timer */ -@@ -1909,6 +1910,11 @@ struct xhci_hcd { +@@ -1914,6 +1915,11 @@ struct xhci_hcd { #define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45) #define XHCI_ZHAOXIN_HOST BIT_ULL(46) @@ -231687,7 +231652,7 @@ index f72e1c3c59e9..e03cc5a394e5 100644 obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o obj-$(CONFIG_BACKLIGHT_SKY81452) += sky81452-backlight.o diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight/lm3630a_bl.c -index 8fcb62be597b..a3412c936ca2 100644 +index 7115d7bb2a14..26ff4178cc16 100644 --- a/drivers/video/backlight/lm3630a_bl.c +++ b/drivers/video/backlight/lm3630a_bl.c @@ -180,7 +180,7 @@ static int lm3630a_pwm_ctrl(struct lm3630a_chip *pchip, int br, int br_max) @@ -233308,7 +233273,7 @@ index eadb81f53a82..df06a9ecba8d 100644 fallthrough; case FBIOBLANK: diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c -index 1ae1d35a5942..4708c6e19a65 100644 +index b9607d5a370d..c846d4de679d 100644 --- a/drivers/video/fbdev/core/fb_defio.c +++ b/drivers/video/fbdev/core/fb_defio.c @@ -313,7 +313,8 @@ static void fb_deferred_io_lastclose(struct fb_info *info) @@ -237979,7 +237944,7 @@ index a21074861f91..4a521591a357 100644 /* this request isn't really synchronous, but it belongs with the others */ extern int usb_driver_set_configuration(struct usb_device *udev, int config); diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h -index 61d4f0b793dc..d3c789ac5a05 100644 +index d0e19ac3ba6c..e5d141653cd5 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h @@ -372,6 +372,11 @@ struct hc_driver { @@ -237991,10 +237956,10 @@ index 61d4f0b793dc..d3c789ac5a05 100644 + */ + void (*fixup_endpoint)(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint *ep, int interval); - /* 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 */ -@@ -436,6 +441,8 @@ extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *); + /* Set the hardware-chosen device address */ + int (*address_device)(struct usb_hcd *, struct usb_device *udev, + unsigned int timeout_ms); +@@ -437,6 +442,8 @@ extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *); 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); @@ -239013,7 +238978,7 @@ index e3f5680a564c..ded9cf87d603 100644 for (;;) { tmp = *p; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index fafdbf5ae169..d00b0e3b3669 100644 +index b17fec17f6bf..d769c3173c1b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -206,6 +206,27 @@ EXPORT_SYMBOL(node_states); @@ -239062,10 +239027,10 @@ index fafdbf5ae169..d00b0e3b3669 100644 if (page) return page; diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c -index fef9ab95ad3d..d136f94eaa0e 100644 +index 1bc58b324b73..e2ae1bd4dfd0 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c -@@ -4681,6 +4681,7 @@ static const struct { +@@ -4737,6 +4737,7 @@ static const struct { */ static int hci_dev_setup_sync(struct hci_dev *hdev) { @@ -239073,7 +239038,7 @@ index fef9ab95ad3d..d136f94eaa0e 100644 int ret = 0; bool invalid_bdaddr; size_t i; -@@ -4709,7 +4710,8 @@ static int hci_dev_setup_sync(struct hci_dev *hdev) +@@ -4765,7 +4766,8 @@ static int hci_dev_setup_sync(struct hci_dev *hdev) test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); if (!ret) { if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) && @@ -256833,7 +256798,7 @@ index dce88c9ad5f3..9f21eb68bd6c 100644 u32 ccr; u32 xfer_resolution; diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index 9de98c01d815..25f695474209 100644 +index e65fe3a7c3e4..df3a3046c9f8 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1080,7 +1080,7 @@ static int snd_soc_add_pcm_runtime(struct snd_soc_card *card, @@ -256854,7 +256819,7 @@ index 9de98c01d815..25f695474209 100644 codec->dai_name); goto _err_defer; } -@@ -1313,7 +1313,15 @@ int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, +@@ -1316,7 +1316,15 @@ int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, return 0; for_each_rtd_codec_dais(rtd, i, codec_dai) { diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec index 390f9bc..8cb78ba 100644 --- a/raspberrypi-kernel.spec +++ b/raspberrypi-kernel.spec @@ -2,13 +2,13 @@ %global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 22.0.0 +%global hulkrelease 25.0.0 %global debug_package %{nil} Name: raspberrypi-kernel Version: 6.6.0 -Release: %{hulkrelease}.2 +Release: %{hulkrelease}.3 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -260,6 +260,9 @@ fi /usr/src/kernels/%{KernelVer} %changelog +* Fri May 10 2024 heppen - 6.6.0-25.0.0.3 +- update kernel version to openEuler 6.6.0.25.0.0 + * Thu Apr 25 2024 heppen - 6.6.0-22.0.0.2 - add subpackage raspberrypi-kernel-devel - update kernel version to openEuler 6.6.0.22.0.0