From fe8568be94b3ef8e3e1cb36a2d6340a5e1f7b5cf Mon Sep 17 00:00:00 2001 From: yafen Date: Wed, 9 Nov 2022 23:25:08 +0800 Subject: [PATCH] RPi: update kernel version to openEuler 5.10.0-126.0.0 --- 0000-raspberrypi-kernel.patch | 453 +++++++++++++++++----------------- raspberrypi-kernel.spec | 7 +- 2 files changed, 232 insertions(+), 228 deletions(-) diff --git a/0000-raspberrypi-kernel.patch b/0000-raspberrypi-kernel.patch index d2f8b8c..a3989f0 100644 --- a/0000-raspberrypi-kernel.patch +++ b/0000-raspberrypi-kernel.patch @@ -1,7 +1,7 @@ -From c1d6aa23673d4e317f836e581899a58d84c16ffb Mon Sep 17 00:00:00 2001 +From 483c4e1ba58a9897927d52847237ede7d78d38c2 Mon Sep 17 00:00:00 2001 From: yafen -Date: Wed, 10 Aug 2022 20:53:16 +0800 -Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) +Date: Wed, 9 Nov 2022 22:58:47 +0800 +Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-126.0.0) --- .../admin-guide/media/bcm2835-isp.rst | 127 + @@ -479,7 +479,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) drivers/gpu/drm/i915/display/intel_hdmi.c | 5 +- drivers/gpu/drm/imx/dcss/dcss-crtc.c | 13 +- drivers/gpu/drm/imx/ipuv3-crtc.c | 16 +- - drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 35 +- + drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 37 +- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 21 +- drivers/gpu/drm/meson/meson_crtc.c | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 34 +- @@ -566,7 +566,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) drivers/leds/trigger/ledtrig-actpwr.c | 190 + drivers/leds/trigger/ledtrig-input.c | 55 + drivers/mailbox/bcm2835-mailbox.c | 18 +- - drivers/mailbox/mailbox.c | 12 +- + drivers/mailbox/mailbox.c | 5 +- .../media/common/videobuf2/videobuf2-core.c | 21 +- drivers/media/i2c/Kconfig | 45 + drivers/media/i2c/Makefile | 4 + @@ -713,10 +713,10 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) .../vchiq-mmal/mmal-parameters.h | 251 +- .../vc04_services/vchiq-mmal/mmal-vchiq.c | 413 +- .../vc04_services/vchiq-mmal/mmal-vchiq.h | 5 + - drivers/thermal/broadcom/bcm2711_thermal.c | 2 +- + drivers/thermal/broadcom/bcm2711_thermal.c | 5 +- drivers/thermal/gov_step_wise.c | 33 +- drivers/tty/serial/8250/8250_bcm2835aux.c | 7 + - drivers/tty/serial/amba-pl011.c | 73 +- + drivers/tty/serial/amba-pl011.c | 75 +- drivers/tty/serial/sc16is7xx.c | 16 +- drivers/usb/Makefile | 1 + drivers/usb/core/generic.c | 1 + @@ -899,7 +899,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) sound/soc/soc-core.c | 14 +- sound/usb/quirks-table.h | 9 + sound/usb/quirks.c | 6 + - 895 files changed, 175492 insertions(+), 4847 deletions(-) + 895 files changed, 175491 insertions(+), 4848 deletions(-) create mode 100644 Documentation/admin-guide/media/bcm2835-isp.rst create mode 100644 Documentation/devicetree/bindings/clock/raspberrypi,firmware-clocks.yaml create mode 100644 Documentation/devicetree/bindings/hwmon/rpi-poe-fan.txt @@ -4152,7 +4152,7 @@ index 4a05a105a9e6..ba3a5b599362 100644 pixfmt-nv16m pixfmt-nv24 diff --git a/MAINTAINERS b/MAINTAINERS -index 9908e5442110..df1f27dcaf3d 100644 +index 4a563ba62a49..b91a7bdd7a7a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,29 @@ N: bcm113* @@ -4200,7 +4200,7 @@ index 9908e5442110..df1f27dcaf3d 100644 DRM DRIVER FOR GRAIN MEDIA GM12U320 PROJECTORS M: Hans de Goede S: Maintained -@@ -16410,6 +16441,23 @@ S: Maintained +@@ -16420,6 +16451,23 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c @@ -4225,10 +4225,10 @@ index 9908e5442110..df1f27dcaf3d 100644 M: Maxim Levitsky M: Alex Dubov diff --git a/Makefile b/Makefile -index 3ebf74787e93..e16eb72067f4 100644 +index 47377bdc2656..d52391beef08 100644 --- a/Makefile +++ b/Makefile -@@ -1354,6 +1354,9 @@ ifneq ($(dtstree),) +@@ -1363,6 +1363,9 @@ ifneq ($(dtstree),) %.dtb: include/config/kernel.release scripts_dtc $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ @@ -9477,10 +9477,10 @@ index a23c25c00eea..547c88a3ae9f 100644 + pinctrl-1 = <&i2c0_gpio0>; +}; diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts -index 1b63d6b19750..073fc99ef8a2 100644 +index 25d87212cefd..c9f3c4558442 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-b.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts -@@ -116,3 +116,10 @@ &uart0 { +@@ -115,3 +115,10 @@ &uart0 { pinctrl-0 = <&uart0_gpio14>; status = "okay"; }; @@ -9505,10 +9505,10 @@ index a75c882e6575..95564c93a645 100644 + pinctrl-1 = <&i2c0_gpio28>; +}; diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -index 33b2b77aa47d..3ea5c7e6be54 100644 +index 00582eb2c12e..7d3273496186 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -@@ -149,3 +149,8 @@ &uart1 { +@@ -151,3 +151,8 @@ &uart1 { pinctrl-0 = <&uart1_gpio14>; status = "okay"; }; @@ -9618,7 +9618,7 @@ index 77099a7871b0..9529c0475673 100644 + pinctrl-1 = <&i2c0_gpio44>; +}; diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts -index 61010266ca9a..40cb269aed0f 100644 +index 90472e76a313..23fd63be2d4b 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts @@ -181,3 +181,8 @@ &uart1 { @@ -9644,7 +9644,7 @@ index dd4a48604097..8f16b6b3fe08 100644 + pinctrl-1 = <&i2c0_gpio44>; +}; diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts -index 588d9411ceb6..dde209ade51b 100644 +index 3dfce4312dfc..f0a7ef168fa7 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts @@ -94,3 +94,8 @@ &uart0 { @@ -42757,7 +42757,7 @@ index 2cb355c1b5b7..1e2dcf81aefa 100644 /* * Save the userland NEON/VFP state. Under UP, diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms -index dd6b7466fe28..2a7abe568db7 100644 +index c924fce750f1..eed51552be27 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -39,6 +39,7 @@ config ARCH_BCM2835 @@ -45950,10 +45950,10 @@ index fb507d569922..cc52829d426a 100644 asmlinkage void aesbs_ecb_encrypt(u8 out[], u8 const in[], u8 const rk[], diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c -index ba0d6b35461b..750f7239e86c 100644 +index 4a0ba2800e45..d3962c3ab827 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c -@@ -182,10 +182,15 @@ static void __init register_insn_emulation(struct insn_emulation_ops *ops) +@@ -183,10 +183,15 @@ static void __init register_insn_emulation(struct insn_emulation_ops *ops) switch (ops->status) { case INSN_DEPRECATED: @@ -46053,7 +46053,7 @@ index 996729e78105..6d179e455721 100644 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig -index f75f9e3ea324..636e68e4eaeb 100644 +index 701811fcc0fd..f8c7070bd71b 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,6 +5,8 @@ @@ -52344,7 +52344,7 @@ index 81569009f884..78dd8e12525d 100644 obj-y += xlnx/ +obj-y += gud/ diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -index 7bb151283f44..83a979fd5083 100644 +index f069d0faba64..f45dd99cecc2 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4993,7 +4993,6 @@ static void dm_disable_vblank(struct drm_crtc *crtc) @@ -52594,7 +52594,7 @@ index af67fefed38d..a3234bfb0917 100644 struct drm_pending_vblank_event *event = crtc->state->event; diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c -index 587d94798f5c..494075ddbef6 100644 +index af729094260c..b5928b52e279 100644 --- a/drivers/gpu/drm/arm/malidp_crtc.c +++ b/drivers/gpu/drm/arm/malidp_crtc.c @@ -46,7 +46,7 @@ static enum drm_mode_status malidp_crtc_mode_valid(struct drm_crtc *crtc, @@ -52673,7 +52673,7 @@ index 587d94798f5c..494075ddbef6 100644 return ret; } -@@ -506,7 +510,6 @@ static void malidp_crtc_disable_vblank(struct drm_crtc *crtc) +@@ -509,7 +513,6 @@ static void malidp_crtc_disable_vblank(struct drm_crtc *crtc) } static const struct drm_crtc_funcs malidp_crtc_funcs = { @@ -52940,7 +52940,7 @@ index b10228b9e3a9..add1da26d8da 100644 drm_connector_attach_encoder(connector, hdmi->bridge.encoder); diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c -index 8a871e5c3e26..95addc0070ac 100644 +index 7fc8e7000046..dce69bffb34c 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -122,7 +122,8 @@ static int handle_conflicting_encoders(struct drm_atomic_state *state, @@ -52984,7 +52984,7 @@ index 8a871e5c3e26..95addc0070ac 100644 if (ret) { DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic driver check failed\n", crtc->base.id, crtc->name); -@@ -1093,7 +1098,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) +@@ -1103,7 +1108,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) if (new_crtc_state->enable && funcs->prepare) funcs->prepare(crtc); else if (funcs->atomic_disable) @@ -52993,7 +52993,7 @@ index 8a871e5c3e26..95addc0070ac 100644 else if (funcs->disable) funcs->disable(crtc); else if (funcs->dpms) -@@ -1313,7 +1318,7 @@ static void drm_atomic_helper_commit_writebacks(struct drm_device *dev, +@@ -1323,7 +1328,7 @@ static void drm_atomic_helper_commit_writebacks(struct drm_device *dev, if (new_conn_state->writeback_job && new_conn_state->writeback_job->fb) { WARN_ON(connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK); @@ -53002,7 +53002,7 @@ index 8a871e5c3e26..95addc0070ac 100644 } } } -@@ -1358,7 +1363,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, +@@ -1368,7 +1373,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", crtc->base.id, crtc->name); if (funcs->atomic_enable) @@ -53011,7 +53011,7 @@ index 8a871e5c3e26..95addc0070ac 100644 else if (funcs->commit) funcs->commit(crtc); } -@@ -2034,6 +2039,9 @@ crtc_or_fake_commit(struct drm_atomic_state *state, struct drm_crtc *crtc) +@@ -2044,6 +2049,9 @@ crtc_or_fake_commit(struct drm_atomic_state *state, struct drm_crtc *crtc) * should always call this function from their * &drm_mode_config_funcs.atomic_commit hook. * @@ -53021,7 +53021,7 @@ index 8a871e5c3e26..95addc0070ac 100644 * 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 -@@ -2077,8 +2085,11 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, +@@ -2087,8 +2095,11 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, struct drm_plane *plane; struct drm_plane_state *old_plane_state, *new_plane_state; struct drm_crtc_commit *commit; @@ -53033,7 +53033,7 @@ index 8a871e5c3e26..95addc0070ac 100644 for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { commit = kzalloc(sizeof(*commit), GFP_KERNEL); if (!commit) -@@ -2155,6 +2166,9 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, +@@ -2165,6 +2176,9 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, new_plane_state->commit = drm_crtc_commit_get(commit); } @@ -53043,7 +53043,7 @@ index 8a871e5c3e26..95addc0070ac 100644 return 0; } EXPORT_SYMBOL(drm_atomic_helper_setup_commit); -@@ -2507,7 +2521,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, +@@ -2517,7 +2531,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, if (active_only && !new_crtc_state->active) continue; @@ -53052,7 +53052,7 @@ index 8a871e5c3e26..95addc0070ac 100644 } for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { -@@ -2565,7 +2579,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, +@@ -2575,7 +2589,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, if (active_only && !new_crtc_state->active) continue; @@ -53061,7 +53061,7 @@ index 8a871e5c3e26..95addc0070ac 100644 } } EXPORT_SYMBOL(drm_atomic_helper_commit_planes); -@@ -2603,7 +2617,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) +@@ -2613,7 +2627,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) crtc_funcs = crtc->helper_private; if (crtc_funcs && crtc_funcs->atomic_begin) @@ -53070,7 +53070,7 @@ index 8a871e5c3e26..95addc0070ac 100644 drm_for_each_plane_mask(plane, crtc->dev, plane_mask) { struct drm_plane_state *old_plane_state = -@@ -2629,7 +2643,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) +@@ -2639,7 +2653,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) } if (crtc_funcs && crtc_funcs->atomic_flush) @@ -53079,7 +53079,7 @@ index 8a871e5c3e26..95addc0070ac 100644 } EXPORT_SYMBOL(drm_atomic_helper_commit_planes_on_crtc); -@@ -3485,76 +3499,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc, +@@ -3495,76 +3509,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc, } EXPORT_SYMBOL(drm_atomic_helper_page_flip_target); @@ -53405,7 +53405,7 @@ index 5163433ac561..a0803ac21a43 100644 * drm_connector_set_vrr_capable_property - sets the variable refresh rate * capable property for a connector diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c -index 862e173d3431..3fe530b58732 100644 +index 4334e466b4e0..8ba175445a6b 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -4960,8 +4960,15 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, @@ -56173,7 +56173,7 @@ index 45c2556d6395..32f440223bd1 100644 .destroy = intel_crtc_destroy, \ .page_flip = drm_atomic_helper_page_flip, \ diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c -index ecaa538b2d35..3e5558def1c5 100644 +index ef7878193491..2e2d14fcfbac 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -23,6 +23,7 @@ @@ -56276,7 +56276,7 @@ index 36abff0890b2..31267c00782f 100644 base); struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private; diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c -index d412fc265395..7ebd99ee3240 100644 +index fd9d8e51837f..987fc13bca25 100644 --- a/drivers/gpu/drm/imx/ipuv3-crtc.c +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c @@ -47,7 +47,7 @@ static inline struct ipu_crtc *to_ipu_crtc(struct drm_crtc *crtc) @@ -56332,10 +56332,10 @@ index d412fc265395..7ebd99ee3240 100644 spin_lock_irq(&crtc->dev->event_lock); if (crtc->state->event) { diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -index b6bb5fc7d183..0f52e5f4aa2f 100644 +index e34718cf5c2e..b0a4bbb0b6c4 100644 --- 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_crtc_get_priv(struct drm_crtc *crtc) +@@ -151,7 +151,7 @@ static int ingenic_drm_update_pixclk(struct notifier_block *nb, } static void ingenic_drm_crtc_atomic_enable(struct drm_crtc *crtc, @@ -56344,7 +56344,7 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 { struct ingenic_drm *priv = drm_crtc_get_priv(crtc); -@@ -126,7 +126,7 @@ static void ingenic_drm_crtc_atomic_enable(struct drm_crtc *crtc, +@@ -165,7 +165,7 @@ static void ingenic_drm_crtc_atomic_enable(struct drm_crtc *crtc, } static void ingenic_drm_crtc_atomic_disable(struct drm_crtc *crtc, @@ -56353,7 +56353,7 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 { struct ingenic_drm *priv = drm_crtc_get_priv(crtc); unsigned int var; -@@ -195,22 +195,27 @@ static void ingenic_drm_crtc_update_timings(struct ingenic_drm *priv, +@@ -234,22 +234,27 @@ static void ingenic_drm_crtc_update_timings(struct ingenic_drm *priv, } static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc, @@ -56386,7 +56386,7 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 if (IS_ERR(ipu_state)) return PTR_ERR(ipu_state); -@@ -248,7 +253,7 @@ ingenic_drm_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode +@@ -287,7 +292,7 @@ ingenic_drm_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode } static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, @@ -56395,7 +56395,7 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 { struct ingenic_drm *priv = drm_crtc_get_priv(crtc); u32 ctrl = 0; -@@ -268,20 +273,20 @@ static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, +@@ -307,16 +312,14 @@ static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, } static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc, @@ -56410,10 +56410,14 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 - if (drm_atomic_crtc_needs_modeset(state)) { - ingenic_drm_crtc_update_timings(priv, &state->mode); +- priv->update_clk_rate = true; +- } + if (drm_atomic_crtc_needs_modeset(crtc_state)) { + ingenic_drm_crtc_update_timings(priv, &crtc_state->mode); - clk_set_rate(priv->pix_clk, state->adjusted_mode.clock * 1000); + if (priv->update_clk_rate) { + mutex_lock(&priv->clk_mutex); +@@ -326,7 +329,7 @@ static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc, } if (event) { @@ -56422,7 +56426,7 @@ index b6bb5fc7d183..0f52e5f4aa2f 100644 spin_lock_irq(&crtc->dev->event_lock); if (drm_crtc_vblank_get(crtc) == 0) -@@ -642,8 +647,6 @@ static const struct drm_crtc_funcs ingenic_drm_crtc_funcs = { +@@ -687,8 +690,6 @@ static const struct drm_crtc_funcs ingenic_drm_crtc_funcs = { .enable_vblank = ingenic_drm_enable_vblank, .disable_vblank = ingenic_drm_disable_vblank, @@ -56719,7 +56723,7 @@ index a0253297bc76..34e3186e236d 100644 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); struct drm_device *dev = crtc->dev; diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -index a8fa084dfa49..58dd302950d9 100644 +index ff4f207cbdea..ee30ec6ad84d 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c @@ -7,6 +7,7 @@ @@ -56748,7 +56752,7 @@ index a8fa084dfa49..58dd302950d9 100644 { struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc); struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state); -@@ -682,15 +683,17 @@ static enum mdp_mixer_stage_id get_start_stage(struct drm_crtc *crtc, +@@ -688,15 +689,17 @@ static enum mdp_mixer_stage_id get_start_stage(struct drm_crtc *crtc, } static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, @@ -56768,7 +56772,7 @@ index a8fa084dfa49..58dd302950d9 100644 bool cursor_plane = false; bool need_right_mixer = false; int cnt = 0, i; -@@ -699,7 +702,7 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, +@@ -705,7 +708,7 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, DBG("%s: check", crtc->name); @@ -56777,7 +56781,7 @@ index a8fa084dfa49..58dd302950d9 100644 if (!pstate->visible) continue; -@@ -731,7 +734,7 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, +@@ -737,7 +740,7 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, if (mode->hdisplay > hw_cfg->lm.max_width) need_right_mixer = true; @@ -56786,7 +56790,7 @@ index a8fa084dfa49..58dd302950d9 100644 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 drm_crtc *crtc, +@@ -750,7 +753,7 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, WARN_ON(cursor_plane && (pstates[cnt - 1].plane->type != DRM_PLANE_TYPE_CURSOR)); @@ -56795,7 +56799,7 @@ index a8fa084dfa49..58dd302950d9 100644 /* verify that there are not too many planes attached to crtc * and that we don't have conflicting mixer stages: -@@ -769,13 +772,13 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, +@@ -775,13 +778,13 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, } static void mdp5_crtc_atomic_begin(struct drm_crtc *crtc, @@ -57427,7 +57431,7 @@ index 4b92c6341490..3f0c11fa60a5 100644 } diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 959dcbd8a29c..ec34380ebc5a 100644 +index bf2c845ef3a2..0471e68dbabc 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -112,8 +112,6 @@ struct panel_simple { @@ -57551,7 +57555,7 @@ index 959dcbd8a29c..ec34380ebc5a 100644 static const struct drm_display_mode innolux_at070tn92_mode = { .clock = 33333, .hdisplay = 800, -@@ -3188,6 +3238,31 @@ static const struct panel_desc qd43003c0_40 = { +@@ -3189,6 +3239,31 @@ static const struct panel_desc qd43003c0_40 = { .bus_format = MEDIA_BUS_FMT_RGB888_1X24, }; @@ -57583,7 +57587,7 @@ index 959dcbd8a29c..ec34380ebc5a 100644 static const struct display_timing rocktech_rk070er9427_timing = { .pixelclock = { 26400000, 33300000, 46800000 }, .hactive = { 800, 800, 800 }, -@@ -4058,6 +4133,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4059,6 +4134,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "friendlyarm,hd702e", .data = &friendlyarm_hd702e, @@ -57593,7 +57597,7 @@ index 959dcbd8a29c..ec34380ebc5a 100644 }, { .compatible = "giantplus,gpg482739qs5", .data = &giantplus_gpg482739qs5 -@@ -4076,6 +4154,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4077,6 +4155,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "innolux,at043tn24", .data = &innolux_at043tn24, @@ -57603,7 +57607,7 @@ index 959dcbd8a29c..ec34380ebc5a 100644 }, { .compatible = "innolux,at070tn92", .data = &innolux_at070tn92, -@@ -4205,6 +4286,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4206,6 +4287,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "qiaodian,qd43003c0-40", .data = &qd43003c0_40, @@ -57722,7 +57726,7 @@ index 065604c5837d..41a2f8d3e992 100644 /* ----------------------------------------------------------------------------- diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -index 0f23144491e4..5a108247ace4 100644 +index 91568f166a8a..dd068ddc47c8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -693,7 +693,7 @@ static void rockchip_drm_set_win_enabled(struct drm_crtc *crtc, bool enabled) @@ -57822,7 +57826,7 @@ index 6f37c104c46f..409795786f03 100644 struct drm_device *drm_dev = crtc->dev; struct sti_mixer *mixer = to_sti_mixer(crtc); diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c -index 62488ac14923..6f3b523e16e8 100644 +index 089c00a8e7d4..ef05b58eeac3 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c @@ -420,7 +420,7 @@ static void ltdc_crtc_update_clut(struct drm_crtc *crtc) @@ -57843,7 +57847,7 @@ index 62488ac14923..6f3b523e16e8 100644 { struct ltdc_device *ldev = crtc_to_ltdc(crtc); struct drm_device *ddev = crtc->dev; -@@ -625,7 +625,7 @@ static void ltdc_crtc_mode_set_nofb(struct drm_crtc *crtc) +@@ -629,7 +629,7 @@ static void ltdc_crtc_mode_set_nofb(struct drm_crtc *crtc) } static void ltdc_crtc_atomic_flush(struct drm_crtc *crtc, @@ -57852,7 +57856,7 @@ index 62488ac14923..6f3b523e16e8 100644 { struct ltdc_device *ldev = crtc_to_ltdc(crtc); struct drm_device *ddev = crtc->dev; -@@ -742,7 +742,6 @@ static const struct drm_crtc_funcs ltdc_crtc_funcs = { +@@ -746,7 +746,6 @@ static const struct drm_crtc_funcs ltdc_crtc_funcs = { .enable_vblank = ltdc_crtc_enable_vblank, .disable_vblank = ltdc_crtc_disable_vblank, .get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp, @@ -65825,7 +65829,7 @@ index 6c0dfbbe1a7e..0198de96c7b2 100644 dev_warn(&hdmi->pdev->dev, "Invalid register ID %u\n", reg); diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index ad691571d759..a873d9d8fd58 100644 +index 95fa6fc052a7..fc4de2f6e922 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -95,6 +95,123 @@ static int vc4_hvs_debugfs_underrun(struct seq_file *m, void *data) @@ -66241,7 +66245,7 @@ index ad691571d759..a873d9d8fd58 100644 } HVS_WRITE(SCALER_DISPBKGNDX(vc4_state->assigned_channel), dispbkgndx); } -@@ -671,6 +937,11 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) +@@ -687,6 +953,11 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset); vc4_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun, NULL); @@ -67245,7 +67249,7 @@ index be2c32a519b3..f40dd93f2cdd 100644 #define SCALER_TPZ0_VERT_RECALC BIT(31) #define SCALER_TPZ0_SCALE_MASK VC4_MASK(28, 8) diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c -index d13502ae973d..9809ca3e2945 100644 +index f8fa09dfea5d..82beb8c159f2 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -13,6 +13,7 @@ @@ -67268,7 +67272,7 @@ index d13502ae973d..9809ca3e2945 100644 struct vc4_txp *txp = connector_to_vc4_txp(conn); struct drm_gem_cma_object *gem; struct drm_display_mode *mode; -@@ -379,43 +382,42 @@ static const struct drm_crtc_funcs vc4_txp_crtc_funcs = { +@@ -385,43 +388,42 @@ static const struct drm_crtc_funcs vc4_txp_crtc_funcs = { .reset = vc4_crtc_reset, .atomic_duplicate_state = vc4_crtc_duplicate_state, .atomic_destroy_state = vc4_crtc_destroy_state, @@ -67320,7 +67324,7 @@ index d13502ae973d..9809ca3e2945 100644 /* * Make sure we issue a vblank event after disabling the CRTC if -@@ -433,6 +435,7 @@ static void vc4_txp_atomic_disable(struct drm_crtc *crtc, +@@ -439,6 +441,7 @@ static void vc4_txp_atomic_disable(struct drm_crtc *crtc, static const struct drm_crtc_helper_funcs vc4_txp_crtc_helper_funcs = { .atomic_check = vc4_txp_atomic_check, @@ -67328,7 +67332,7 @@ index d13502ae973d..9809ca3e2945 100644 .atomic_flush = vc4_hvs_atomic_flush, .atomic_enable = vc4_txp_atomic_enable, .atomic_disable = vc4_txp_atomic_disable, -@@ -478,6 +481,7 @@ static int vc4_txp_bind(struct device *dev, struct device *master, void *data) +@@ -484,6 +487,7 @@ static int vc4_txp_bind(struct device *dev, struct device *master, void *data) vc4_crtc->pdev = pdev; vc4_crtc->data = &vc4_txp_crtc_data; @@ -68091,7 +68095,7 @@ index 000000000000..e8d2b4b162f7 + VC_IMAGE_YUVINFO_CSC_REC_2020 = 9, +}; diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c -index f84b7e61311b..4bf74836bd53 100644 +index 9b2b99e85342..e156dd651c0c 100644 --- a/drivers/gpu/drm/virtio/virtgpu_display.c +++ b/drivers/gpu/drm/virtio/virtgpu_display.c @@ -95,12 +95,12 @@ static void virtio_gpu_crtc_mode_set_nofb(struct drm_crtc *crtc) @@ -68433,7 +68437,7 @@ index 5259ff2825f9..904f62f3bfc1 100644 struct drm_pending_vblank_event *event = crtc->state->event; diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index d2e4f9f5507d..2c671990f18e 100644 +index 3744c3db5140..7284ca3a2326 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -221,6 +221,9 @@ @@ -68446,7 +68450,7 @@ index d2e4f9f5507d..2c671990f18e 100644 #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 @@ -68509,7 +68513,7 @@ index 009a0469d54f..1f0e61d1312d 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig -index f2fe56e6f8bd..82373d84dd4f 100644 +index 8bcffda38cb7..f2057f1ad090 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig @@ -1499,6 +1499,17 @@ config SENSORS_RASPBERRYPI_HWMON @@ -70799,38 +70803,23 @@ index 39761d190545..9766d8b50778 100644 MODULE_AUTHOR("Lubomir Rintel "); MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c -index 3e7d4b20ab34..0b821a5b2db8 100644 +index 4229b9b5da98..2358ec3431ad 100644 --- a/drivers/mailbox/mailbox.c +++ b/drivers/mailbox/mailbox.c @@ -82,12 +82,9 @@ static void msg_submit(struct mbox_chan *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); + /* kick start the timer immediately to avoid delays */ +- spin_lock_irqsave(&chan->mbox->poll_hrt_lock, flags); + hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL); +- spin_unlock_irqrestore(&chan->mbox->poll_hrt_lock, flags); +- } } static void tx_tick(struct mbox_chan *chan, int r) -@@ -125,10 +122,11 @@ static enum hrtimer_restart txdone_hrtimer(struct hrtimer *hrtimer) - 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; - } - } - diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c index 72350343a56a..3c6a74b29683 100644 --- a/drivers/media/common/videobuf2/videobuf2-core.c @@ -86526,7 +86515,7 @@ index 000000000000..f1a7f6a3e966 +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 99b981a05b6c..2eae0a77b2f7 100644 +index 70eb3d03937f..e5deccee8673 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -165,6 +165,13 @@ static DEFINE_MUTEX(open_lock); @@ -86543,7 +86532,7 @@ index 99b981a05b6c..2eae0a77b2f7 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, -@@ -2897,6 +2904,7 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2896,6 +2903,7 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -86551,7 +86540,7 @@ index 99b981a05b6c..2eae0a77b2f7 100644 /* * Check that the card supports the command class(es) we need. -@@ -2904,7 +2912,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2903,7 +2911,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -86569,7 +86558,7 @@ index 99b981a05b6c..2eae0a77b2f7 100644 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 *card) +@@ -2918,9 +2935,14 @@ static int mmc_blk_probe(struct mmc_card *card) string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); @@ -90522,7 +90511,7 @@ index d42e86cdff12..0533339d7979 100644 sdhci_dumpregs(host); diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index b341b823fdbf..594ff3862569 100644 +index 6ee6c34f28f2..a48f3c482b01 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,6 +67,9 @@ @@ -90591,7 +90580,7 @@ index b341b823fdbf..594ff3862569 100644 /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4073,9 +4089,12 @@ static int bcmgenet_probe(struct platform_device *pdev) +@@ -4077,9 +4093,12 @@ static int bcmgenet_probe(struct platform_device *pdev) netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ @@ -90605,7 +90594,7 @@ index b341b823fdbf..594ff3862569 100644 /* libphy will determine the link state */ netif_carrier_off(dev); -@@ -4191,7 +4210,7 @@ static int bcmgenet_resume(struct device *d) +@@ -4195,7 +4214,7 @@ static int bcmgenet_resume(struct device *d) bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ @@ -90983,7 +90972,7 @@ index 6f7b70522d92..54b3eb586b7e 100644 buf = kmalloc(maxp, GFP_KERNEL); if (buf) { diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 842f16815395..257dc21e2bc7 100644 +index eaff8f83b5ac..706325f52f62 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -26,9 +26,10 @@ @@ -91568,7 +91557,7 @@ index 842f16815395..257dc21e2bc7 100644 static int rtl8152_set_mac_address(struct net_device *netdev, void *p) { struct r8152 *tp = netdev_priv(netdev); -@@ -2410,11 +2572,9 @@ static void tx_bottom(struct r8152 *tp) +@@ -2412,11 +2574,9 @@ static void tx_bottom(struct r8152 *tp) } while (res == 0); } @@ -91582,7 +91571,7 @@ index 842f16815395..257dc21e2bc7 100644 if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; -@@ -2612,7 +2772,7 @@ static netdev_tx_t rtl8152_start_xmit(struct sk_buff *skb, +@@ -2614,7 +2774,7 @@ static netdev_tx_t rtl8152_start_xmit(struct sk_buff *skb, static void r8152b_reset_packet_filter(struct r8152 *tp) { @@ -91591,7 +91580,7 @@ index 842f16815395..257dc21e2bc7 100644 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_FMC); ocp_data &= ~FMC_FCR_MCU_EN; -@@ -2623,45 +2783,78 @@ static void r8152b_reset_packet_filter(struct r8152 *tp) +@@ -2625,45 +2785,78 @@ static void r8152b_reset_packet_filter(struct r8152 *tp) static void rtl8152_nic_reset(struct r8152 *tp) { @@ -91692,7 +91681,7 @@ index 842f16815395..257dc21e2bc7 100644 } static void rxdy_gated_en(struct r8152 *tp, bool enable) -@@ -2759,6 +2952,29 @@ static int rtl_stop_rx(struct r8152 *tp) +@@ -2761,6 +2954,29 @@ static int rtl_stop_rx(struct r8152 *tp) return 0; } @@ -91722,7 +91711,7 @@ index 842f16815395..257dc21e2bc7 100644 static inline void r8153b_rx_agg_chg_indicate(struct r8152 *tp) { ocp_write_byte(tp, MCU_TYPE_USB, USB_UPT_RXDMA_OWN, -@@ -2778,6 +2994,7 @@ static int rtl_enable(struct r8152 *tp) +@@ -2780,6 +2996,7 @@ static int rtl_enable(struct r8152 *tp) switch (tp->version) { case RTL_VER_08: case RTL_VER_09: @@ -91730,7 +91719,7 @@ index 842f16815395..257dc21e2bc7 100644 r8153b_rx_agg_chg_indicate(tp); break; default: -@@ -2815,6 +3032,7 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp) +@@ -2817,6 +3034,7 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp) case RTL_VER_08: case RTL_VER_09: @@ -91738,7 +91727,7 @@ index 842f16815395..257dc21e2bc7 100644 /* The RTL8153B uses USB_RX_EXTRA_AGGR_TMR for rx timeout * primarily. For USB_RX_EARLY_TIMEOUT, we fix it to 128ns. */ -@@ -2824,6 +3042,18 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp) +@@ -2826,6 +3044,18 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp) ocp_data); break; @@ -91757,7 +91746,7 @@ index 842f16815395..257dc21e2bc7 100644 default: break; } -@@ -2843,8 +3073,19 @@ static void r8153_set_rx_early_size(struct r8152 *tp) +@@ -2845,8 +3075,19 @@ static void r8153_set_rx_early_size(struct r8152 *tp) break; case RTL_VER_08: case RTL_VER_09: @@ -91777,7 +91766,7 @@ index 842f16815395..257dc21e2bc7 100644 break; default: WARN_ON_ONCE(1); -@@ -2854,6 +3095,8 @@ static void r8153_set_rx_early_size(struct r8152 *tp) +@@ -2856,6 +3097,8 @@ static void r8153_set_rx_early_size(struct r8152 *tp) static int rtl8153_enable(struct r8152 *tp) { @@ -91786,7 +91775,7 @@ index 842f16815395..257dc21e2bc7 100644 if (test_bit(RTL8152_UNPLUG, &tp->flags)) return -ENODEV; -@@ -2862,15 +3105,20 @@ static int rtl8153_enable(struct r8152 *tp) +@@ -2864,15 +3107,20 @@ static int rtl8153_enable(struct r8152 *tp) r8153_set_rx_early_timeout(tp); r8153_set_rx_early_size(tp); @@ -91809,7 +91798,7 @@ index 842f16815395..257dc21e2bc7 100644 } return rtl_enable(tp); -@@ -2935,12 +3183,40 @@ static void rtl_rx_vlan_en(struct r8152 *tp, bool enable) +@@ -2937,12 +3185,40 @@ static void rtl_rx_vlan_en(struct r8152 *tp, bool enable) { u32 ocp_data; @@ -91856,7 +91845,7 @@ index 842f16815395..257dc21e2bc7 100644 } static int rtl8152_set_features(struct net_device *dev, -@@ -3033,6 +3309,40 @@ static void __rtl_set_wol(struct r8152 *tp, u32 wolopts) +@@ -3035,6 +3311,40 @@ static void __rtl_set_wol(struct r8152 *tp, u32 wolopts) device_set_wakeup_enable(&tp->udev->dev, false); } @@ -91897,7 +91886,7 @@ index 842f16815395..257dc21e2bc7 100644 static void r8153_u1u2en(struct r8152 *tp, bool enable) { u8 u1u2[8]; -@@ -3092,6 +3402,9 @@ static void r8153b_ups_flags(struct r8152 *tp) +@@ -3094,6 +3404,9 @@ static void r8153b_ups_flags(struct r8152 *tp) if (tp->ups_info.eee_cmod_lv) ups_flags |= UPS_FLAGS_EEE_CMOD_LV_EN; @@ -91907,7 +91896,7 @@ index 842f16815395..257dc21e2bc7 100644 if (tp->ups_info._10m_ckdiv) ups_flags |= UPS_FLAGS_EN_10M_CKDIV; -@@ -3142,10 +3455,104 @@ static void r8153b_ups_flags(struct r8152 *tp) +@@ -3144,10 +3457,104 @@ static void r8153b_ups_flags(struct r8152 *tp) ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags); } @@ -92013,7 +92002,7 @@ index 842f16815395..257dc21e2bc7 100644 if (enable) { sram_write(tp, 0x8045, 0); /* 10M abiq&ldvbias */ sram_write(tp, 0x804d, 0x1222); /* 100M short abiq&ldvbias */ -@@ -3156,11 +3563,7 @@ static void r8153b_green_en(struct r8152 *tp, bool enable) +@@ -3158,11 +3565,7 @@ static void r8153b_green_en(struct r8152 *tp, bool enable) sram_write(tp, 0x805d, 0x2444); /* 1000M short abiq&ldvbias */ } @@ -92026,7 +92015,7 @@ index 842f16815395..257dc21e2bc7 100644 } static u16 r8153_phy_status(struct r8152 *tp, u16 desired) -@@ -3197,61 +3600,137 @@ static void r8153b_ups_en(struct r8152 *tp, bool enable) +@@ -3199,61 +3602,137 @@ static void r8153b_ups_en(struct r8152 *tp, bool enable) ocp_data |= UPS_EN | USP_PREWAKE | PHASE2_EN; ocp_write_byte(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data); @@ -92204,7 +92193,7 @@ index 842f16815395..257dc21e2bc7 100644 ocp_write_word(tp, MCU_TYPE_USB, USB_MISC_0, ocp_data); } -@@ -3363,7 +3842,39 @@ static void rtl8153b_runtime_enable(struct r8152 *tp, bool enable) +@@ -3365,7 +3844,39 @@ static void rtl8153b_runtime_enable(struct r8152 *tp, bool enable) r8153b_ups_en(tp, false); r8153_queue_wake(tp, false); rtl_runtime_suspend_enable(tp, false); @@ -92245,7 +92234,7 @@ index 842f16815395..257dc21e2bc7 100644 r8153b_u1u2en(tp, true); } } -@@ -3388,14 +3899,19 @@ static void r8153_teredo_off(struct r8152 *tp) +@@ -3390,14 +3901,19 @@ static void r8153_teredo_off(struct r8152 *tp) case RTL_VER_08: case RTL_VER_09: @@ -92268,7 +92257,7 @@ index 842f16815395..257dc21e2bc7 100644 } ocp_write_word(tp, MCU_TYPE_PLA, PLA_WDT6_CTRL, WDT6_SET_MODE); -@@ -3430,6 +3946,12 @@ static void rtl_clear_bp(struct r8152 *tp, u16 type) +@@ -3432,6 +3948,12 @@ static void rtl_clear_bp(struct r8152 *tp, u16 type) break; case RTL_VER_08: case RTL_VER_09: @@ -92281,7 +92270,7 @@ index 842f16815395..257dc21e2bc7 100644 default: if (type == MCU_TYPE_USB) { ocp_write_word(tp, MCU_TYPE_USB, USB_BP2_EN, 0); -@@ -3462,65 +3984,238 @@ static void rtl_clear_bp(struct r8152 *tp, u16 type) +@@ -3464,65 +3986,238 @@ static void rtl_clear_bp(struct r8152 *tp, u16 type) ocp_write_word(tp, type, PLA_BP_BA, 0); } @@ -92545,7 +92534,7 @@ index 842f16815395..257dc21e2bc7 100644 static bool rtl8152_is_fw_phy_nc_ok(struct r8152 *tp, struct fw_phy_nc *phy) { u32 length; -@@ -3622,6 +4317,11 @@ static bool rtl8152_is_fw_mac_ok(struct r8152 *tp, struct fw_mac *mac) +@@ -3624,6 +4319,11 @@ static bool rtl8152_is_fw_mac_ok(struct r8152 *tp, struct fw_mac *mac) case RTL_VER_06: case RTL_VER_08: case RTL_VER_09: @@ -92557,7 +92546,7 @@ index 842f16815395..257dc21e2bc7 100644 fw_reg = 0xf800; bp_ba_addr = PLA_BP_BA; bp_en_addr = PLA_BP_EN; -@@ -3645,6 +4345,11 @@ static bool rtl8152_is_fw_mac_ok(struct r8152 *tp, struct fw_mac *mac) +@@ -3647,6 +4347,11 @@ static bool rtl8152_is_fw_mac_ok(struct r8152 *tp, struct fw_mac *mac) break; case RTL_VER_08: case RTL_VER_09: @@ -92569,7 +92558,7 @@ index 842f16815395..257dc21e2bc7 100644 fw_reg = 0xe600; bp_ba_addr = USB_BP_BA; bp_en_addr = USB_BP2_EN; -@@ -3772,10 +4477,7 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) +@@ -3774,10 +4479,7 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) { const struct firmware *fw = rtl_fw->fw; struct fw_header *fw_hdr = (struct fw_header *)fw->data; @@ -92581,7 +92570,7 @@ index 842f16815395..257dc21e2bc7 100644 long ret = -EFAULT; int i; -@@ -3804,50 +4506,56 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) +@@ -3806,50 +4508,56 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) goto fail; goto fw_end; case RTL_FW_PLA: @@ -92649,7 +92638,7 @@ index 842f16815395..257dc21e2bc7 100644 dev_err(&tp->intf->dev, "Check PHY_STOP fail\n"); goto fail; -@@ -3858,53 +4566,336 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) +@@ -3860,53 +4568,336 @@ static long rtl8152_check_firmware(struct r8152 *tp, struct rtl_fw *rtl_fw) "Invalid length for PHY_STOP\n"); goto fail; } @@ -93012,7 +93001,7 @@ index 842f16815395..257dc21e2bc7 100644 u16 mode_reg, bp_index; u32 length, i, num; __le16 *data; -@@ -3956,6 +4947,12 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) +@@ -3958,6 +4949,12 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) return; } @@ -93025,7 +93014,7 @@ index 842f16815395..257dc21e2bc7 100644 rtl_clear_bp(tp, type); /* Enable backup/restore of MACDBG. This is required after clearing PLA -@@ -3991,7 +4988,6 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) +@@ -3993,7 +4990,6 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) ocp_write_word(tp, type, bp_en_addr, __le16_to_cpu(mac->bp_en_value)); @@ -93033,7 +93022,7 @@ index 842f16815395..257dc21e2bc7 100644 if (fw_ver_reg) ocp_write_byte(tp, MCU_TYPE_USB, fw_ver_reg, mac->fw_ver_data); -@@ -3999,14 +4995,14 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) +@@ -4001,14 +4997,14 @@ static void rtl8152_fw_mac_apply(struct r8152 *tp, struct fw_mac *mac) dev_dbg(&tp->intf->dev, "successfully applied %s\n", mac->info); } @@ -93050,7 +93039,7 @@ index 842f16815395..257dc21e2bc7 100644 if (IS_ERR_OR_NULL(rtl_fw->fw)) return; -@@ -4028,18 +5024,40 @@ static void rtl8152_apply_firmware(struct r8152 *tp) +@@ -4030,18 +5026,40 @@ static void rtl8152_apply_firmware(struct r8152 *tp) rtl8152_fw_mac_apply(tp, (struct fw_mac *)block); break; case RTL_FW_PHY_START: @@ -93094,7 +93083,7 @@ index 842f16815395..257dc21e2bc7 100644 default: break; } -@@ -4186,6 +5204,22 @@ static void r8153_eee_en(struct r8152 *tp, bool enable) +@@ -4188,6 +5206,22 @@ static void r8153_eee_en(struct r8152 *tp, bool enable) tp->ups_info.eee = enable; } @@ -93117,7 +93106,7 @@ index 842f16815395..257dc21e2bc7 100644 static void rtl_eee_enable(struct r8152 *tp, bool enable) { switch (tp->version) { -@@ -4207,6 +5241,7 @@ static void rtl_eee_enable(struct r8152 *tp, bool enable) +@@ -4209,6 +5243,7 @@ static void rtl_eee_enable(struct r8152 *tp, bool enable) case RTL_VER_06: case RTL_VER_08: case RTL_VER_09: @@ -93125,7 +93114,7 @@ index 842f16815395..257dc21e2bc7 100644 if (enable) { r8153_eee_en(tp, true); ocp_reg_write(tp, OCP_EEE_ADV, tp->eee_adv); -@@ -4215,6 +5250,19 @@ static void rtl_eee_enable(struct r8152 *tp, bool enable) +@@ -4217,6 +5252,19 @@ static void rtl_eee_enable(struct r8152 *tp, bool enable) ocp_reg_write(tp, OCP_EEE_ADV, 0); } break; @@ -93145,7 +93134,7 @@ index 842f16815395..257dc21e2bc7 100644 default: break; } -@@ -4240,7 +5288,7 @@ static void rtl8152_disable(struct r8152 *tp) +@@ -4242,7 +5290,7 @@ static void rtl8152_disable(struct r8152 *tp) static void r8152b_hw_phy_cfg(struct r8152 *tp) { @@ -93154,7 +93143,7 @@ index 842f16815395..257dc21e2bc7 100644 rtl_eee_enable(tp, tp->eee_en); r8152_aldps_en(tp, true); r8152b_enable_fc(tp); -@@ -4261,6 +5309,20 @@ static void wait_oob_link_list_ready(struct r8152 *tp) +@@ -4263,6 +5311,20 @@ static void wait_oob_link_list_ready(struct r8152 *tp) } } @@ -93175,7 +93164,7 @@ index 842f16815395..257dc21e2bc7 100644 static void r8152b_exit_oob(struct r8152 *tp) { u32 ocp_data; -@@ -4311,7 +5373,7 @@ static void r8152b_exit_oob(struct r8152 *tp) +@@ -4313,7 +5375,7 @@ static void r8152b_exit_oob(struct r8152 *tp) } /* TX share fifo free credit full threshold */ @@ -93184,7 +93173,7 @@ index 842f16815395..257dc21e2bc7 100644 ocp_write_byte(tp, MCU_TYPE_USB, USB_TX_AGG, TX_AGG_MAX_THRESHOLD); ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_HIGH); -@@ -4488,6 +5550,36 @@ static int r8153b_post_firmware_1(struct r8152 *tp) +@@ -4490,6 +5552,36 @@ static int r8153b_post_firmware_1(struct r8152 *tp) return 0; } @@ -93221,7 +93210,7 @@ index 842f16815395..257dc21e2bc7 100644 static void r8153_aldps_en(struct r8152 *tp, bool enable) { u16 data; -@@ -4522,7 +5614,7 @@ static void r8153_hw_phy_cfg(struct r8152 *tp) +@@ -4524,7 +5616,7 @@ static void r8153_hw_phy_cfg(struct r8152 *tp) /* disable EEE before updating the PHY parameters */ rtl_eee_enable(tp, false); @@ -93230,7 +93219,7 @@ index 842f16815395..257dc21e2bc7 100644 if (tp->version == RTL_VER_03) { data = ocp_reg_read(tp, OCP_EEE_CFG); -@@ -4590,13 +5682,37 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) +@@ -4592,13 +5684,37 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) u32 ocp_data; u16 data; @@ -93269,7 +93258,7 @@ index 842f16815395..257dc21e2bc7 100644 r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags)); -@@ -4637,7 +5753,7 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) +@@ -4639,7 +5755,7 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); /* Advnace EEE */ @@ -93278,7 +93267,7 @@ index 842f16815395..257dc21e2bc7 100644 data = ocp_reg_read(tp, OCP_POWER_CFG); data |= EEE_CLKDIV_EN; ocp_reg_write(tp, OCP_POWER_CFG, data); -@@ -4654,7 +5770,7 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) +@@ -4656,7 +5772,7 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) ocp_reg_write(tp, OCP_SYSCLK_CFG, clk_div_expo(5)); tp->ups_info._250m_ckdiv = true; @@ -93287,7 +93276,7 @@ index 842f16815395..257dc21e2bc7 100644 } if (tp->eee_en) -@@ -4666,6 +5782,19 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) +@@ -4668,6 +5784,19 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp) set_bit(PHY_RESET, &tp->flags); } @@ -93307,7 +93296,7 @@ index 842f16815395..257dc21e2bc7 100644 static void r8153_first_init(struct r8152 *tp) { u32 ocp_data; -@@ -4698,9 +5827,7 @@ static void r8153_first_init(struct r8152 *tp) +@@ -4700,9 +5829,7 @@ static void r8153_first_init(struct r8152 *tp) rtl_rx_vlan_en(tp, tp->netdev->features & NETIF_F_HW_VLAN_CTAG_RX); @@ -93318,7 +93307,7 @@ index 842f16815395..257dc21e2bc7 100644 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0); ocp_data |= TCR0_AUTO_FIFO; -@@ -4735,8 +5862,7 @@ static void r8153_enter_oob(struct r8152 *tp) +@@ -4737,8 +5864,7 @@ static void r8153_enter_oob(struct r8152 *tp) wait_oob_link_list_ready(tp); @@ -93328,7 +93317,7 @@ index 842f16815395..257dc21e2bc7 100644 switch (tp->version) { case RTL_VER_03: -@@ -4750,6 +5876,7 @@ static void r8153_enter_oob(struct r8152 *tp) +@@ -4752,6 +5878,7 @@ static void r8153_enter_oob(struct r8152 *tp) case RTL_VER_08: case RTL_VER_09: @@ -93336,7 +93325,7 @@ index 842f16815395..257dc21e2bc7 100644 /* Clear teredo wake event. bit[15:8] is the teredo wakeup * type. Set it to zero. bits[7:0] are the W1C bits about * the events. Set them to all 1 to clear them. -@@ -4786,27 +5913,117 @@ static void rtl8153_disable(struct r8152 *tp) +@@ -4788,27 +5915,117 @@ static void rtl8153_disable(struct r8152 *tp) r8153_aldps_en(tp, true); } @@ -93472,7 +93461,7 @@ index 842f16815395..257dc21e2bc7 100644 bmcr = BMCR_SPEED100; if (duplex == DUPLEX_FULL) { bmcr |= BMCR_FULLDPLX; -@@ -4834,58 +6051,73 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex, +@@ -4836,58 +6053,73 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex, tp->mii.force_media = 1; } else { @@ -93564,7 +93553,7 @@ index 842f16815395..257dc21e2bc7 100644 } bmcr = BMCR_ANENABLE | BMCR_ANRESTART; -@@ -5016,7 +6248,7 @@ static void rtl8153b_up(struct r8152 *tp) +@@ -5018,7 +6250,7 @@ static void rtl8153b_up(struct r8152 *tp) r8153_aldps_en(tp, true); @@ -93573,7 +93562,7 @@ index 842f16815395..257dc21e2bc7 100644 r8153b_u1u2en(tp, true); } -@@ -5041,239 +6273,486 @@ static void rtl8153b_down(struct r8152 *tp) +@@ -5043,239 +6275,486 @@ static void rtl8153b_down(struct r8152 *tp) r8153_aldps_en(tp, true); } @@ -94233,7 +94222,7 @@ index 842f16815395..257dc21e2bc7 100644 rtl_drop_queued_tx(tp); rtl_stop_rx(tp); } else { -@@ -5281,95 +6760,775 @@ static int rtl8152_close(struct net_device *netdev) +@@ -5283,95 +6762,775 @@ static int rtl8152_close(struct net_device *netdev) tp->rtl_ops.down(tp); @@ -95057,7 +95046,7 @@ index 842f16815395..257dc21e2bc7 100644 data = r8152_mdio_read(tp, MII_BMCR); if (data & BMCR_PDOWN) { -@@ -5377,119 +7536,450 @@ static void r8153_init(struct r8152 *tp) +@@ -5379,119 +7538,450 @@ static void r8153_init(struct r8152 *tp) r8152_mdio_write(tp, MII_BMCR, data); } @@ -95592,7 +95581,7 @@ index 842f16815395..257dc21e2bc7 100644 { u32 ocp_data; u16 data; -@@ -5498,8 +7988,31 @@ static void r8153b_init(struct r8152 *tp) +@@ -5500,8 +7990,31 @@ static void r8153b_init(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; @@ -95624,7 +95613,7 @@ index 842f16815395..257dc21e2bc7 100644 for (i = 0; i < 500; i++) { if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) & AUTOLOAD_DONE) -@@ -5507,10 +8020,19 @@ static void r8153b_init(struct r8152 *tp) +@@ -5509,10 +8022,19 @@ static void r8153b_init(struct r8152 *tp) msleep(20); if (test_bit(RTL8152_UNPLUG, &tp->flags)) @@ -95645,7 +95634,7 @@ index 842f16815395..257dc21e2bc7 100644 data = r8152_mdio_read(tp, MII_BMCR); if (data & BMCR_PDOWN) { -@@ -5529,39 +8051,50 @@ static void r8153b_init(struct r8152 *tp) +@@ -5531,39 +8053,50 @@ static void r8153b_init(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_USB, USB_U1U2_TIMER, 500); r8153b_power_cut_en(tp, false); @@ -95718,7 +95707,7 @@ index 842f16815395..257dc21e2bc7 100644 set_bit(GREEN_ETHERNET, &tp->flags); -@@ -5575,6 +8108,39 @@ static void r8153b_init(struct r8152 *tp) +@@ -5577,6 +8110,39 @@ static void r8153b_init(struct r8152 *tp) tp->coalesce = 15000; /* 15 us */ } @@ -95758,7 +95747,7 @@ index 842f16815395..257dc21e2bc7 100644 static int rtl8152_pre_reset(struct usb_interface *intf) { struct r8152 *tp = usb_get_intfdata(intf); -@@ -5725,6 +8291,9 @@ static int rtl8152_runtime_suspend(struct r8152 *tp) +@@ -5727,6 +8293,9 @@ static int rtl8152_runtime_suspend(struct r8152 *tp) struct net_device *netdev = tp->netdev; int ret = 0; @@ -95768,7 +95757,7 @@ index 842f16815395..257dc21e2bc7 100644 set_bit(SELECTIVE_SUSPEND, &tp->flags); smp_mb__after_atomic(); -@@ -5935,6 +8504,22 @@ int rtl8152_get_link_ksettings(struct net_device *netdev, +@@ -5937,6 +8506,22 @@ int rtl8152_get_link_ksettings(struct net_device *netdev, mii_ethtool_get_link_ksettings(&tp->mii, cmd); @@ -95791,7 +95780,7 @@ index 842f16815395..257dc21e2bc7 100644 mutex_unlock(&tp->control); usb_autopm_put_interface(tp->intf); -@@ -5978,6 +8563,10 @@ static int rtl8152_set_link_ksettings(struct net_device *dev, +@@ -5980,6 +8565,10 @@ static int rtl8152_set_link_ksettings(struct net_device *dev, cmd->link_modes.advertising)) advertising |= RTL_ADVERTISED_1000_FULL; @@ -95802,7 +95791,7 @@ index 842f16815395..257dc21e2bc7 100644 mutex_lock(&tp->control); ret = rtl8152_set_speed(tp, cmd->base.autoneg, cmd->base.speed, -@@ -6124,6 +8713,11 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata) +@@ -6126,6 +8715,11 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata) struct r8152 *tp = netdev_priv(net); int ret; @@ -95814,7 +95803,7 @@ index 842f16815395..257dc21e2bc7 100644 ret = usb_autopm_get_interface(tp->intf); if (ret < 0) goto out; -@@ -6146,6 +8740,11 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata) +@@ -6148,6 +8742,11 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata) struct r8152 *tp = netdev_priv(net); int ret; @@ -95826,7 +95815,7 @@ index 842f16815395..257dc21e2bc7 100644 ret = usb_autopm_get_interface(tp->intf); if (ret < 0) goto out; -@@ -6434,12 +9033,21 @@ static int rtl8152_change_mtu(struct net_device *dev, int new_mtu) +@@ -6436,12 +9035,21 @@ static int rtl8152_change_mtu(struct net_device *dev, int new_mtu) dev->mtu = new_mtu; if (netif_running(dev)) { @@ -95853,7 +95842,7 @@ index 842f16815395..257dc21e2bc7 100644 } mutex_unlock(&tp->control); -@@ -6528,6 +9136,7 @@ static int rtl_ops_init(struct r8152 *tp) +@@ -6530,6 +9138,7 @@ static int rtl_ops_init(struct r8152 *tp) ops->in_nway = rtl8153_in_nway; ops->hw_phy_cfg = r8153_hw_phy_cfg; ops->autosuspend_en = rtl8153_runtime_enable; @@ -95861,7 +95850,7 @@ index 842f16815395..257dc21e2bc7 100644 if (tp->udev->speed < USB_SPEED_SUPER) tp->rx_buf_sz = 16 * 1024; else -@@ -6549,6 +9158,68 @@ static int rtl_ops_init(struct r8152 *tp) +@@ -6551,6 +9160,68 @@ static int rtl_ops_init(struct r8152 *tp) ops->in_nway = rtl8153_in_nway; ops->hw_phy_cfg = r8153b_hw_phy_cfg; ops->autosuspend_en = rtl8153b_runtime_enable; @@ -95930,7 +95919,7 @@ index 842f16815395..257dc21e2bc7 100644 tp->rx_buf_sz = 32 * 1024; tp->eee_en = true; tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX; -@@ -6556,7 +9227,7 @@ static int rtl_ops_init(struct r8152 *tp) +@@ -6558,7 +9229,7 @@ static int rtl_ops_init(struct r8152 *tp) default: ret = -ENODEV; @@ -95939,7 +95928,7 @@ index 842f16815395..257dc21e2bc7 100644 break; } -@@ -6567,11 +9238,17 @@ static int rtl_ops_init(struct r8152 *tp) +@@ -6569,11 +9240,17 @@ static int rtl_ops_init(struct r8152 *tp) #define FIRMWARE_8153A_3 "rtl_nic/rtl8153a-3.fw" #define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw" #define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw" @@ -95957,7 +95946,7 @@ index 842f16815395..257dc21e2bc7 100644 static int rtl_fw_init(struct r8152 *tp) { -@@ -6597,6 +9274,19 @@ static int rtl_fw_init(struct r8152 *tp) +@@ -6599,6 +9276,19 @@ static int rtl_fw_init(struct r8152 *tp) rtl_fw->pre_fw = r8153b_pre_firmware_1; rtl_fw->post_fw = r8153b_post_firmware_1; break; @@ -95977,7 +95966,7 @@ index 842f16815395..257dc21e2bc7 100644 default: break; } -@@ -6604,7 +9294,7 @@ static int rtl_fw_init(struct r8152 *tp) +@@ -6606,7 +9296,7 @@ static int rtl_fw_init(struct r8152 *tp) return 0; } @@ -95986,7 +95975,7 @@ index 842f16815395..257dc21e2bc7 100644 { struct usb_device *udev = interface_to_usbdev(intf); u32 ocp_data = 0; -@@ -6652,6 +9342,27 @@ static u8 rtl_get_version(struct usb_interface *intf) +@@ -6654,6 +9344,27 @@ static u8 rtl_get_version(struct usb_interface *intf) case 0x6010: version = RTL_VER_09; break; @@ -96014,7 +96003,7 @@ index 842f16815395..257dc21e2bc7 100644 default: version = RTL_VER_UNKNOWN; dev_info(&intf->dev, "Unknown version 0x%04x\n", ocp_data); -@@ -6662,12 +9373,13 @@ static u8 rtl_get_version(struct usb_interface *intf) +@@ -6664,12 +9375,13 @@ static u8 rtl_get_version(struct usb_interface *intf) return version; } @@ -96029,7 +96018,7 @@ index 842f16815395..257dc21e2bc7 100644 struct r8152 *tp; struct net_device *netdev; int ret; -@@ -6675,10 +9387,8 @@ static int rtl8152_probe(struct usb_interface *intf, +@@ -6677,10 +9389,8 @@ static int rtl8152_probe(struct usb_interface *intf, if (version == RTL_VER_UNKNOWN) return -ENODEV; @@ -96041,7 +96030,7 @@ index 842f16815395..257dc21e2bc7 100644 if (intf->cur_altsetting->desc.bNumEndpoints < 3) return -ENODEV; -@@ -6719,7 +9429,7 @@ static int rtl8152_probe(struct usb_interface *intf, +@@ -6721,7 +9431,7 @@ static int rtl8152_probe(struct usb_interface *intf, mutex_init(&tp->control); INIT_DELAYED_WORK(&tp->schedule, rtl_work_func_t); INIT_DELAYED_WORK(&tp->hw_phy_work, rtl_hw_phy_work_func_t); @@ -96050,7 +96039,7 @@ index 842f16815395..257dc21e2bc7 100644 tasklet_disable(&tp->tx_tl); netdev->netdev_ops = &rtl8152_netdev_ops; -@@ -6763,12 +9473,29 @@ static int rtl8152_probe(struct usb_interface *intf, +@@ -6765,12 +9475,29 @@ static int rtl8152_probe(struct usb_interface *intf, /* MTU range: 68 - 1500 or 9194 */ netdev->min_mtu = ETH_MIN_MTU; switch (tp->version) { @@ -96083,7 +96072,7 @@ index 842f16815395..257dc21e2bc7 100644 break; } -@@ -6784,7 +9511,13 @@ static int rtl8152_probe(struct usb_interface *intf, +@@ -6786,7 +9513,13 @@ static int rtl8152_probe(struct usb_interface *intf, tp->advertising = RTL_ADVERTISED_10_HALF | RTL_ADVERTISED_10_FULL | RTL_ADVERTISED_100_HALF | RTL_ADVERTISED_100_FULL; if (tp->mii.supports_gmii) { @@ -96098,7 +96087,7 @@ index 842f16815395..257dc21e2bc7 100644 tp->advertising |= RTL_ADVERTISED_1000_FULL; } tp->duplex = DUPLEX_FULL; -@@ -6808,11 +9541,15 @@ static int rtl8152_probe(struct usb_interface *intf, +@@ -6810,11 +9543,15 @@ static int rtl8152_probe(struct usb_interface *intf, set_ethernet_addr(tp); usb_set_intfdata(intf, tp); @@ -96116,7 +96105,7 @@ index 842f16815395..257dc21e2bc7 100644 goto out1; } -@@ -6844,7 +9581,8 @@ static void rtl8152_disconnect(struct usb_interface *intf) +@@ -6846,7 +9583,8 @@ static void rtl8152_disconnect(struct usb_interface *intf) unregister_netdev(tp->netdev); tasklet_kill(&tp->tx_tl); cancel_delayed_work_sync(&tp->hw_phy_work); @@ -96126,7 +96115,7 @@ index 842f16815395..257dc21e2bc7 100644 rtl8152_release_firmware(tp); free_netdev(tp->netdev); } -@@ -6864,13 +9602,28 @@ static void rtl8152_disconnect(struct usb_interface *intf) +@@ -6866,13 +9604,28 @@ static void rtl8152_disconnect(struct usb_interface *intf) .idProduct = (prod), \ .bInterfaceClass = USB_CLASS_COMM, \ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ @@ -97437,10 +97426,10 @@ index 000000000000..ac04301dabe1 +} +late_initcall(of_cfs_init); diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c -index 43a77d720008..bccef312f4c3 100644 +index c8a0c0e9dec1..7682daa65ba1 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c -@@ -245,6 +245,8 @@ static struct property *dup_and_fixup_symbol_prop( +@@ -243,6 +243,8 @@ static struct property *dup_and_fixup_symbol_prop( if (!target_path) return NULL; target_path_len = strlen(target_path); @@ -98215,10 +98204,10 @@ index 000000000000..5ae2bdaa88b4 +MODULE_LICENSE("GPL"); + diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 6768b2f03d68..a94a9c82f0e5 100644 +index 39d2024dc2ee..cd8a0d5596ed 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -362,7 +362,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { +@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -98226,8 +98215,8 @@ index 6768b2f03d68..a94a9c82f0e5 100644 + .base = 0, .ngpio = BCM2835_NUM_GPIOS, .can_sleep = false, - }; -@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { + .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback, +@@ -395,7 +395,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -98235,8 +98224,8 @@ index 6768b2f03d68..a94a9c82f0e5 100644 + .base = 0, .ngpio = BCM2711_NUM_GPIOS, .can_sleep = false, - }; -@@ -1290,9 +1290,13 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) + .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback, +@@ -1308,9 +1308,13 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) char *name; girq->parents[i] = irq_of_parse_and_map(np, i); @@ -98252,7 +98241,7 @@ index 6768b2f03d68..a94a9c82f0e5 100644 /* Skip over the all banks interrupts */ pc->wake_irq[i] = irq_of_parse_and_map(np, i + BCM2835_NUM_IRQS + 1); -@@ -1318,7 +1322,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) +@@ -1336,7 +1340,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) girq->default_type = IRQ_TYPE_NONE; girq->handler = handle_level_irq; @@ -115688,14 +115677,24 @@ index 1dc81ecf9268..247521fbcc1d 100644 struct vchiq_mmal_component { diff --git a/drivers/thermal/broadcom/bcm2711_thermal.c b/drivers/thermal/broadcom/bcm2711_thermal.c -index 67c2a737bc9d..73cf85fc24b7 100644 +index 7b536c8a59dc..73cf85fc24b7 100644 --- 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, int *temp) - /* Convert a HW code to a temperature reading (millidegree celsius) */ - t = slope * val + offset; +@@ -38,6 +38,7 @@ static int bcm2711_get_temp(void *data, int *temp) + int offset = thermal_zone_get_offset(priv->thermal); + u32 val; + int ret; ++ long t; -- *temp = t < 0 ? 0 : t; + ret = regmap_read(priv->regmap, AVS_RO_TEMP_STATUS, &val); + if (ret) +@@ -49,7 +50,9 @@ static int bcm2711_get_temp(void *data, int *temp) + val &= AVS_RO_TEMP_STATUS_DATA_MSK; + + /* Convert a HW code to a temperature reading (millidegree celsius) */ +- *temp = slope * val + offset; ++ t = slope * val + offset; ++ + *temp = t; return 0; @@ -115792,7 +115791,7 @@ index fd95860cd661..fc36e5963e30 100644 ret = serial8250_register_8250_port(&up); if (ret < 0) { diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index 90b370ee9a34..a99152331448 100644 +index d80e8064b75e..75aa943f683e 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -266,6 +266,7 @@ struct uart_amba_port { @@ -115852,7 +115851,7 @@ index 90b370ee9a34..a99152331448 100644 static void pl011_stop_rx(struct uart_port *port) { struct uart_amba_port *uap = -@@ -1342,6 +1371,7 @@ __acquires(&uap->port.lock) +@@ -1351,6 +1380,7 @@ __acquires(&uap->port.lock) { pl011_fifo_to_tty(uap); @@ -115860,7 +115859,7 @@ index 90b370ee9a34..a99152331448 100644 spin_unlock(&uap->port.lock); tty_flip_buffer_push(&uap->port.state->port); /* -@@ -1378,6 +1408,7 @@ static bool pl011_tx_char(struct uart_amba_port *uap, unsigned char c, +@@ -1387,6 +1417,7 @@ static bool pl011_tx_char(struct uart_amba_port *uap, unsigned char c, return false; /* unable to transmit character */ pl011_write(c, uap, REG_DR); @@ -115868,7 +115867,7 @@ index 90b370ee9a34..a99152331448 100644 uap->port.icount.tx++; return true; -@@ -1408,6 +1439,10 @@ static bool pl011_tx_chars(struct uart_amba_port *uap, bool from_irq) +@@ -1417,6 +1448,10 @@ static bool pl011_tx_chars(struct uart_amba_port *uap, bool from_irq) if (likely(from_irq) && count-- == 0) break; @@ -115879,7 +115878,7 @@ index 90b370ee9a34..a99152331448 100644 if (!pl011_tx_char(uap, xmit->buf[xmit->tail], from_irq)) break; -@@ -1535,6 +1570,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id) +@@ -1544,6 +1579,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id) int handled = 0; spin_lock_irqsave(&uap->port.lock, flags); @@ -115887,7 +115886,7 @@ index 90b370ee9a34..a99152331448 100644 status = pl011_read(uap, REG_RIS) & uap->im; if (status) { do { -@@ -1554,7 +1590,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id) +@@ -1563,7 +1599,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id) UART011_CTSMIS|UART011_RIMIS)) pl011_modem_status(uap); if (status & UART011_TXIS) @@ -115896,7 +115895,7 @@ index 90b370ee9a34..a99152331448 100644 if (pass_counter-- == 0) break; -@@ -1709,6 +1745,23 @@ static void pl011_put_poll_char(struct uart_port *port, +@@ -1718,6 +1754,23 @@ static void pl011_put_poll_char(struct uart_port *port, #endif /* CONFIG_CONSOLE_POLL */ @@ -115920,7 +115919,7 @@ index 90b370ee9a34..a99152331448 100644 static int pl011_hwinit(struct uart_port *port) { struct uart_amba_port *uap = -@@ -1725,7 +1778,7 @@ static int pl011_hwinit(struct uart_port *port) +@@ -1734,7 +1787,7 @@ static int pl011_hwinit(struct uart_port *port) if (retval) return retval; @@ -115929,16 +115928,18 @@ index 90b370ee9a34..a99152331448 100644 /* Clear pending error and receive interrupts */ pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS | -@@ -2185,6 +2238,8 @@ static const struct uart_ops amba_pl011_pops = { +@@ -2202,8 +2255,8 @@ static const struct uart_ops amba_pl011_pops = { .stop_tx = pl011_stop_tx, .start_tx = pl011_start_tx, .stop_rx = pl011_stop_rx, +- .throttle = pl011_throttle_rx, +- .unthrottle = pl011_unthrottle_rx, + .throttle = pl011_throttle, + .unthrottle = pl011_unthrottle, .enable_ms = pl011_enable_ms, .break_ctl = pl011_break_ctl, .startup = pl011_startup, -@@ -2361,7 +2416,7 @@ static int pl011_console_setup(struct console *co, char *options) +@@ -2380,7 +2433,7 @@ static int pl011_console_setup(struct console *co, char *options) plat->init(); } @@ -115947,7 +115948,7 @@ index 90b370ee9a34..a99152331448 100644 if (uap->vendor->fixed_options) { baud = uap->fixed_baud; -@@ -2578,6 +2633,7 @@ static struct uart_driver amba_reg = { +@@ -2597,6 +2650,7 @@ static struct uart_driver amba_reg = { .cons = AMBA_CONSOLE, }; @@ -115955,7 +115956,7 @@ index 90b370ee9a34..a99152331448 100644 static int pl011_probe_dt_alias(int index, struct device *dev) { struct device_node *np; -@@ -2609,6 +2665,7 @@ static int pl011_probe_dt_alias(int index, struct device *dev) +@@ -2628,6 +2682,7 @@ static int pl011_probe_dt_alias(int index, struct device *dev) return ret; } @@ -115963,7 +115964,7 @@ index 90b370ee9a34..a99152331448 100644 /* unregisters the driver also if no more ports are left */ static void pl011_unregister_port(struct uart_amba_port *uap) -@@ -2647,7 +2704,12 @@ static int pl011_setup_port(struct device *dev, struct uart_amba_port *uap, +@@ -2666,7 +2721,12 @@ static int pl011_setup_port(struct device *dev, struct uart_amba_port *uap, if (IS_ERR(base)) return PTR_ERR(base); @@ -115976,7 +115977,7 @@ index 90b370ee9a34..a99152331448 100644 uap->old_cr = 0; uap->port.dev = dev; -@@ -2709,6 +2771,11 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) +@@ -2728,6 +2788,11 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) if (IS_ERR(uap->clk)) return PTR_ERR(uap->clk); @@ -116068,7 +116069,7 @@ index 26f9fb9f67ca..fe8c7a85e141 100644 return i; } diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c -index ddd1d3eef912..92357f32d2c1 100644 +index bf5e37667697..0b7d73e979e0 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1966,6 +1966,16 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev, @@ -176317,10 +176318,10 @@ index 4aab93d5b651..f482c43bc64e 100644 "// Write ERST size = %i to ir_set 0 (some bits preserved)", val); diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 405c2fe8b104..fa9453d5029e 100644 +index c4cf3b138131..c3479d595bc7 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -299,6 +299,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -305,6 +305,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; @@ -176416,10 +176417,10 @@ index fa3a7ac15f82..b01cc54aeef6 100644 /* This function gets called from contexts where it cannot sleep */ diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 8beb17c67d73..7fc2b3688998 100644 +index 1c32b40b4316..51c86b6f8634 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -867,8 +867,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -878,8 +878,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) seg = ring->deq_seg; do { memset(seg->trbs, 0, @@ -176430,7 +176431,7 @@ index 8beb17c67d73..7fc2b3688998 100644 cpu_to_le32(~TRB_CYCLE); seg = seg->next; } while (seg != ring->deq_seg); -@@ -879,7 +879,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -890,7 +890,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) ring->enq_seg = ring->deq_seg; ring->enqueue = ring->dequeue; @@ -176439,7 +176440,7 @@ index 8beb17c67d73..7fc2b3688998 100644 /* * Ring is now zeroed, so the HW should look for change of ownership * when the cycle bit is set to 1. -@@ -1482,6 +1482,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1493,6 +1493,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -176543,7 +176544,7 @@ index 8beb17c67d73..7fc2b3688998 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5438,6 +5535,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5449,6 +5546,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -176552,7 +176553,7 @@ index 8beb17c67d73..7fc2b3688998 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 1c84d73250d0..c21db3a78b10 100644 +index edf423afd545..56605cb6a276 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1618,6 +1618,7 @@ struct xhci_ring { @@ -178261,7 +178262,7 @@ index a2bb276a8b24..436494fba15a 100644 start_index, pitch_index); } else diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 3b3ccb235522..2272606cf003 100644 +index d787a344b3b8..68203a093367 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1095,6 +1095,30 @@ fb_blank(struct fb_info *info, int blank) @@ -182674,10 +182675,10 @@ index d6a41841b93e..32be892f53cf 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 3dbb42c637c1..a60b7fc02fce 100644 +index 9f05016d823f..710e24d74759 100644 --- 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 *); @@ -182689,7 +182690,7 @@ index 3dbb42c637c1..a60b7fc02fce 100644 /* 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_dma(struct usb_hcd *, struct urb *); +@@ -445,6 +450,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); @@ -183645,10 +183646,10 @@ index 817545ff80b9..375a43d99b28 100644 for (;;) { tmp = *p; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index cf9c69d631f3..d920ef24438c 100644 +index ff6fffec8770..eea54e228d9e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -8894,8 +8894,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -8906,8 +8906,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, 0)) { @@ -183765,7 +183766,7 @@ index 358f48b173dc..030254e040b5 100644 cpuhp_remove_state(CPUHP_MM_ZSWP_MEM_PREPARE); dstmem_fail: diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c -index 31a01aa6f139..4dc15fe4473d 100644 +index db3d7c80017d..f0a7cedc0e74 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c @@ -883,16 +883,9 @@ static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth, @@ -196484,7 +196485,7 @@ index 000000000000..835d0f9420e7 +MODULE_DESCRIPTION("ASoC Raspberry Pi Hat generic digi driver for WM8804 based cards"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 52c89a6f54e9..0e8391a1f1f2 100644 +index 25f331551f68..890cd6d074e6 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -100,12 +100,14 @@ config SND_SOC_ALL_CODECS @@ -196556,7 +196557,7 @@ index 52c89a6f54e9..0e8391a1f1f2 100644 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 @@ -196567,7 +196568,7 @@ index 52c89a6f54e9..0e8391a1f1f2 100644 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 @@ -196577,7 +196578,7 @@ index 52c89a6f54e9..0e8391a1f1f2 100644 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 @@ -199549,7 +199550,7 @@ index a6d6d10cd471..54dfa830633b 100644 dev_warn(codec_dai->dev, "ASoC: Failed to set DAI format: %d\n", ret); diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h -index aabd3a10ec5b..f45a570be4ab 100644 +index 1ac91c46da3c..6dd5aac4c319 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -46,6 +46,15 @@ diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec index 518af9d..08bb87d 100644 --- a/raspberrypi-kernel.spec +++ b/raspberrypi-kernel.spec @@ -2,13 +2,13 @@ %global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 112.0.0 +%global hulkrelease 126.0.0 %global debug_package %{nil} Name: raspberrypi-kernel Version: 5.10.0 -Release: %{hulkrelease}.12 +Release: %{hulkrelease}.13 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -166,6 +166,9 @@ install -m 644 /boot/dtb-%{KernelVer}/overlays/README /boot/overlays/ /lib/modules/%{KernelVer} %changelog +* Wed Nov 9 2022 Yafen Fang - 5.10.0-126.0.0.13 +- update kernel version to openEuler 5.10.0-126.0.0 + * Thu Aug 18 2022 Yafen Fang - 5.10.0-112.0.0.12 - update kernel version to openEuler 5.10.0-112.0.0