diff --git a/0000-raspberrypi-kernel.patch b/0000-raspberrypi-kernel.patch index 0e60454..73dadd6 100644 --- a/0000-raspberrypi-kernel.patch +++ b/0000-raspberrypi-kernel.patch @@ -1,7 +1,7 @@ -From 841ff0f5f922bae6091ade91698cbe5c3b5650cb Mon Sep 17 00:00:00 2001 +From 340fc2609d9a9d4135fb092e2e4679a76d81e68b Mon Sep 17 00:00:00 2001 From: yafen -Date: Sun, 22 May 2022 05:00:13 +0800 -Subject: [PATCH] apply RPi patch of 5.10.95 +Date: Wed, 20 Jul 2022 19:42:35 +0800 +Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-106.0.0) --- .../admin-guide/media/bcm2835-isp.rst | 127 + @@ -456,7 +456,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95 drivers/gpu/drm/drm_atomic_helper.c | 106 +- drivers/gpu/drm/drm_color_mgmt.c | 114 +- drivers/gpu/drm/drm_connector.c | 70 + - drivers/gpu/drm/drm_edid.c | 13 +- + drivers/gpu/drm/drm_edid.c | 15 +- drivers/gpu/drm/drm_fourcc.c | 3 + drivers/gpu/drm/drm_framebuffer.c | 16 +- drivers/gpu/drm/drm_panel.c | 15 +- @@ -649,7 +649,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95 drivers/power/supply/Makefile | 1 + drivers/power/supply/rpi_poe_power.c | 227 + drivers/pps/clients/pps-gpio.c | 2 + - .../regulator/rpi-panel-attiny-regulator.c | 285 +- + .../regulator/rpi-panel-attiny-regulator.c | 297 +- drivers/rtc/rtc-pcf2123.c | 1 + drivers/rtc/rtc-pcf85063.c | 2 + drivers/rtc/rtc-pcf8523.c | 25 +- @@ -899,7 +899,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95 sound/soc/soc-core.c | 14 +- sound/usb/quirks-table.h | 9 + sound/usb/quirks.c | 6 + - 895 files changed, 175509 insertions(+), 4829 deletions(-) + 895 files changed, 175502 insertions(+), 4850 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 23a23bd94c00..87dd5d4ac875 100644 +index 466b1c599848..1946b937e054 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,29 @@ N: bcm113* @@ -4200,7 +4200,7 @@ index 23a23bd94c00..87dd5d4ac875 100644 DRM DRIVER FOR GRAIN MEDIA GM12U320 PROJECTORS M: Hans de Goede S: Maintained -@@ -16402,6 +16433,23 @@ S: Maintained +@@ -16408,6 +16439,23 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c @@ -9186,10 +9186,10 @@ index 000000000000..ebf73b789b4a + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index 55ec83bde5a6..2b834efddc06 100644 +index b50229c3102f..f8c327b3c660 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -300,6 +300,14 @@ pixelvalve3: pixelvalve@7ec12000 { +@@ -301,6 +301,14 @@ pixelvalve3: pixelvalve@7ec12000 { status = "disabled"; }; @@ -9204,7 +9204,7 @@ index 55ec83bde5a6..2b834efddc06 100644 dvp: clock@7ef00000 { compatible = "brcm,brcm2711-dvp"; reg = <0x7ef00000 0x10>; -@@ -308,6 +316,15 @@ dvp: clock@7ef00000 { +@@ -309,6 +317,15 @@ dvp: clock@7ef00000 { #reset-cells = <1>; }; @@ -9220,7 +9220,7 @@ index 55ec83bde5a6..2b834efddc06 100644 hdmi0: hdmi@7ef00700 { compatible = "brcm,bcm2711-hdmi0"; reg = <0x7ef00700 0x300>, -@@ -318,7 +335,8 @@ hdmi0: hdmi@7ef00700 { +@@ -319,7 +336,8 @@ hdmi0: hdmi@7ef00700 { <0x7ef01f00 0x400>, <0x7ef00200 0x80>, <0x7ef04300 0x100>, @@ -9230,7 +9230,7 @@ index 55ec83bde5a6..2b834efddc06 100644 reg-names = "hdmi", "dvp", "phy", -@@ -327,11 +345,21 @@ hdmi0: hdmi@7ef00700 { +@@ -328,11 +346,21 @@ hdmi0: hdmi@7ef00700 { "metadata", "csc", "cec", @@ -9254,7 +9254,7 @@ index 55ec83bde5a6..2b834efddc06 100644 dma-names = "audio-rx"; status = "disabled"; }; -@@ -354,7 +382,8 @@ hdmi1: hdmi@7ef05700 { +@@ -355,7 +383,8 @@ hdmi1: hdmi@7ef05700 { <0x7ef06f00 0x400>, <0x7ef00280 0x80>, <0x7ef09300 0x100>, @@ -9264,7 +9264,7 @@ index 55ec83bde5a6..2b834efddc06 100644 reg-names = "hdmi", "dvp", "phy", -@@ -363,11 +392,21 @@ hdmi1: hdmi@7ef05700 { +@@ -364,11 +393,21 @@ hdmi1: hdmi@7ef05700 { "metadata", "csc", "cec", @@ -9288,7 +9288,7 @@ index 55ec83bde5a6..2b834efddc06 100644 dma-names = "audio-rx"; status = "disabled"; }; -@@ -468,14 +507,14 @@ cpu3: cpu@3 { +@@ -519,14 +558,14 @@ l2: l2-cache0 { scb { compatible = "simple-bus"; #address-cells = <2>; @@ -9307,7 +9307,7 @@ index 55ec83bde5a6..2b834efddc06 100644 device_type = "pci"; #address-cells = <3>; #interrupt-cells = <1>; -@@ -495,8 +534,8 @@ IRQ_TYPE_LEVEL_HIGH>, +@@ -546,8 +585,8 @@ IRQ_TYPE_LEVEL_HIGH>, msi-controller; msi-parent = <&pcie0>; @@ -9318,7 +9318,7 @@ index 55ec83bde5a6..2b834efddc06 100644 /* * The wrapper around the PCIe block has a bug * preventing it from accessing beyond the first 3GB of -@@ -509,7 +548,7 @@ IRQ_TYPE_LEVEL_HIGH>, +@@ -560,7 +599,7 @@ IRQ_TYPE_LEVEL_HIGH>, genet: ethernet@7d580000 { compatible = "brcm,bcm2711-genet-v5"; @@ -9327,7 +9327,7 @@ index 55ec83bde5a6..2b834efddc06 100644 #address-cells = <0x1>; #size-cells = <0x1>; interrupts = , -@@ -546,6 +585,7 @@ &dsi0 { +@@ -597,6 +636,7 @@ &dsi0 { &dsi1 { interrupts = ; @@ -9335,7 +9335,7 @@ index 55ec83bde5a6..2b834efddc06 100644 }; &gpio { -@@ -1018,7 +1058,7 @@ &cma { +@@ -1069,7 +1109,7 @@ &cma { alloc-ranges = <0x0 0x00000000 0x40000000>; }; @@ -9344,7 +9344,7 @@ index 55ec83bde5a6..2b834efddc06 100644 compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; interrupts = ; }; -@@ -1074,7 +1114,3 @@ &uart1 { +@@ -1125,7 +1165,3 @@ &uart1 { &usb { interrupts = ; }; @@ -45877,7 +45877,7 @@ index 000000000000..419813140a52 +CONFIG_SCHED_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 5e7d86cf5dfa..73caaa8ceb96 100644 +index d025bafcce43..fe49aafae978 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1027,6 +1027,7 @@ CONFIG_ROCKCHIP_EFUSE=y @@ -45970,7 +45970,7 @@ index ba0d6b35461b..750f7239e86c 100644 case INSN_OBSOLETE: insn->current_mode = INSN_UNDEF; diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index e658b7a17d9b..37713bc17336 100644 +index 97dab8f4634f..74cfb4935f4b 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -17,6 +17,7 @@ @@ -45981,7 +45981,7 @@ index e658b7a17d9b..37713bc17336 100644 #include #include #include -@@ -138,6 +139,10 @@ static int c_show(struct seq_file *m, void *v) +@@ -140,6 +141,10 @@ static int c_show(struct seq_file *m, void *v) { int i, j; bool aarch32 = personality(current->personality) == PER_LINUX32; @@ -45992,7 +45992,7 @@ index e658b7a17d9b..37713bc17336 100644 for_each_online_cpu(i) { struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i); -@@ -198,6 +203,26 @@ static int c_show(struct seq_file *m, void *v) +@@ -200,6 +205,26 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "CPU revision\t: %d\n\n", MIDR_REVISION(midr)); } @@ -47669,7 +47669,7 @@ index 000000000000..ac314617229c +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:rpi-vcio"); diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig -index dda4a9dfad2e..c66453d718d8 100644 +index 87cebb34aecc..f62af547b111 100644 --- a/drivers/char/hw_random/Kconfig +++ b/drivers/char/hw_random/Kconfig @@ -104,7 +104,7 @@ config HW_RANDOM_IPROC_RNG200 @@ -48949,7 +48949,7 @@ index 000000000000..9e2634465823 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:clk-hifiberry-dacpro"); diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c -index b8a0e3d23698..8c10c84098fb 100644 +index 2e56cc0a3bce..fe47ba7d4045 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -77,12 +77,14 @@ struct clk_core { @@ -48980,7 +48980,7 @@ index b8a0e3d23698..8c10c84098fb 100644 /*** runtime pm ***/ static int clk_pm_runtime_get(struct clk_core *core) { -@@ -1308,6 +1316,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core, +@@ -1326,6 +1334,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core, if (!core) return 0; @@ -48989,7 +48989,7 @@ index b8a0e3d23698..8c10c84098fb 100644 /* * At this point, core protection will be disabled if * - if the provider is not protected at all -@@ -1413,10 +1423,14 @@ unsigned long clk_hw_round_rate(struct clk_hw *hw, unsigned long rate) +@@ -1431,10 +1441,14 @@ unsigned long clk_hw_round_rate(struct clk_hw *hw, unsigned long rate) { int ret; struct clk_rate_request req; @@ -49004,7 +49004,7 @@ index b8a0e3d23698..8c10c84098fb 100644 ret = clk_core_round_rate_nolock(hw->core, &req); if (ret) return 0; -@@ -1437,6 +1451,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate); +@@ -1455,6 +1469,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate); long clk_round_rate(struct clk *clk, unsigned long rate) { struct clk_rate_request req; @@ -49012,7 +49012,7 @@ index b8a0e3d23698..8c10c84098fb 100644 int ret; if (!clk) -@@ -1450,6 +1465,9 @@ long clk_round_rate(struct clk *clk, unsigned long rate) +@@ -1468,6 +1483,9 @@ long clk_round_rate(struct clk *clk, unsigned long rate) clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate); req.rate = rate; @@ -49022,7 +49022,7 @@ index b8a0e3d23698..8c10c84098fb 100644 ret = clk_core_round_rate_nolock(clk->core, &req); if (clk->exclusive_count) -@@ -1917,6 +1935,7 @@ static struct clk_core *clk_calc_new_rates(struct clk_core *core, +@@ -1935,6 +1953,7 @@ static struct clk_core *clk_calc_new_rates(struct clk_core *core, unsigned long new_rate; unsigned long min_rate; unsigned long max_rate; @@ -49030,7 +49030,7 @@ index b8a0e3d23698..8c10c84098fb 100644 int p_index = 0; long ret; -@@ -1931,6 +1950,9 @@ static struct clk_core *clk_calc_new_rates(struct clk_core *core, +@@ -1949,6 +1968,9 @@ static struct clk_core *clk_calc_new_rates(struct clk_core *core, clk_core_get_boundaries(core, &min_rate, &max_rate); @@ -49040,7 +49040,7 @@ index b8a0e3d23698..8c10c84098fb 100644 /* find the closest rate and parent clk/rate */ if (clk_core_can_round(core)) { struct clk_rate_request req; -@@ -2135,6 +2157,7 @@ static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core, +@@ -2153,6 +2175,7 @@ static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core, { int ret, cnt; struct clk_rate_request req; @@ -49048,7 +49048,7 @@ index b8a0e3d23698..8c10c84098fb 100644 lockdep_assert_held(&prepare_lock); -@@ -2149,6 +2172,9 @@ static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core, +@@ -2167,6 +2190,9 @@ static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core, clk_core_get_boundaries(core, &req.min_rate, &req.max_rate); req.rate = req_rate; @@ -49058,7 +49058,7 @@ index b8a0e3d23698..8c10c84098fb 100644 ret = clk_core_round_rate_nolock(core, &req); /* restore the protection */ -@@ -2242,6 +2268,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate) +@@ -2260,6 +2286,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate) ret = clk_core_set_rate_nolock(clk->core, rate); @@ -49068,7 +49068,7 @@ index b8a0e3d23698..8c10c84098fb 100644 if (clk->exclusive_count) clk_core_rate_protect(clk->core); -@@ -2401,6 +2430,103 @@ int clk_set_max_rate(struct clk *clk, unsigned long rate) +@@ -2425,6 +2454,103 @@ int clk_set_max_rate(struct clk *clk, unsigned long rate) } EXPORT_SYMBOL_GPL(clk_set_max_rate); @@ -49172,7 +49172,7 @@ index b8a0e3d23698..8c10c84098fb 100644 /** * clk_get_parent - return the parent of a clk * @clk: the clk whose parent gets returned -@@ -3838,6 +3964,7 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw) +@@ -3875,6 +4001,7 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw) goto fail_parents; INIT_HLIST_HEAD(&core->clks); @@ -52287,7 +52287,7 @@ index 000000000000..89f5d6b353ab +MODULE_AUTHOR("Dave Stevenson "); +MODULE_DESCRIPTION("PWM GPIO driver"); diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index af5bb8fedfea..2bd26c985246 100644 +index d18078748200..3cd19e0cc0f5 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -51,6 +51,8 @@ @@ -52299,7 +52299,7 @@ index af5bb8fedfea..2bd26c985246 100644 /* Device and char device-related information */ static DEFINE_IDA(gpio_ida); static dev_t gpio_devt; -@@ -2444,8 +2446,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) +@@ -2463,8 +2465,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) value = !!value; /* GPIOs used for enabled IRQs shall not be set as output */ @@ -52310,7 +52310,7 @@ index af5bb8fedfea..2bd26c985246 100644 gpiod_err(desc, "%s: tried to set a GPIO tied to an IRQ as output\n", __func__); -@@ -3250,8 +3252,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) +@@ -3279,8 +3281,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) } /* To be valid for IRQ the line needs to be input or open drain */ @@ -52344,10 +52344,10 @@ 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 6c8f141103da..374f2bf06c3a 100644 +index 7bb151283f44..83a979fd5083 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -4992,7 +4992,6 @@ static void dm_disable_vblank(struct drm_crtc *crtc) +@@ -4993,7 +4993,6 @@ static void dm_disable_vblank(struct drm_crtc *crtc) static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = { .reset = dm_crtc_reset_state, .destroy = amdgpu_dm_crtc_destroy, @@ -52355,7 +52355,7 @@ index 6c8f141103da..374f2bf06c3a 100644 .set_config = drm_atomic_helper_set_config, .page_flip = drm_atomic_helper_page_flip, .atomic_duplicate_state = dm_crtc_duplicate_state, -@@ -5476,25 +5475,6 @@ static int fill_hdr_info_packet(const struct drm_connector_state *state, +@@ -5477,25 +5476,6 @@ static int fill_hdr_info_packet(const struct drm_connector_state *state, return 0; } @@ -52381,7 +52381,7 @@ index 6c8f141103da..374f2bf06c3a 100644 static int amdgpu_dm_connector_atomic_check(struct drm_connector *conn, struct drm_atomic_state *state) -@@ -5510,7 +5490,7 @@ amdgpu_dm_connector_atomic_check(struct drm_connector *conn, +@@ -5511,7 +5491,7 @@ amdgpu_dm_connector_atomic_check(struct drm_connector *conn, if (!crtc) return 0; @@ -52390,7 +52390,7 @@ index 6c8f141103da..374f2bf06c3a 100644 struct dc_info_packet hdr_infopacket; ret = fill_hdr_info_packet(new_con_state, &hdr_infopacket); -@@ -5605,17 +5585,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, +@@ -5606,17 +5586,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, } static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, @@ -52414,7 +52414,7 @@ index 6c8f141103da..374f2bf06c3a 100644 WARN_ON(1); return ret; } -@@ -5626,8 +5608,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, +@@ -5627,8 +5609,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, * planes are disabled, which is not supported by the hardware. And there is legacy * userspace which stops using the HW cursor altogether in response to the resulting EINVAL. */ @@ -52425,7 +52425,7 @@ index 6c8f141103da..374f2bf06c3a 100644 return -EINVAL; /* In some use cases, like reset, no stream is attached */ -@@ -6526,9 +6508,7 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, +@@ -6530,9 +6512,7 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, if (connector_type == DRM_MODE_CONNECTOR_HDMIA || connector_type == DRM_MODE_CONNECTOR_DisplayPort || connector_type == DRM_MODE_CONNECTOR_eDP) { @@ -52436,7 +52436,7 @@ index 6c8f141103da..374f2bf06c3a 100644 if (!aconnector->mst_port) drm_connector_attach_vrr_capable_property(&aconnector->base); -@@ -7778,7 +7758,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) +@@ -7782,7 +7762,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) dm_old_crtc_state->abm_level; hdr_changed = @@ -52895,7 +52895,7 @@ index c916f4b8907e..a63d6d238e3c 100644 bridge->encoder); diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 29c0eb4bd754..f7830acb45ea 100644 +index b10228b9e3a9..add1da26d8da 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -2403,21 +2403,6 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) @@ -53317,7 +53317,7 @@ index 138ff34b31db..78933e2a5f44 100644 out: DRM_MODESET_LOCK_ALL_END(dev, ctx, ret); diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c -index 717c4e7271b0..c0beaa2ea6ee 100644 +index 5163433ac561..a0803ac21a43 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -94,6 +94,7 @@ static struct drm_conn_prop_enum_list drm_connector_enum_list[] = { @@ -53405,23 +53405,26 @@ index 717c4e7271b0..c0beaa2ea6ee 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 add317bd8d55..46e41ad5e44f 100644 +index 862e173d3431..3fe530b58732 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c -@@ -4961,10 +4961,9 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, +@@ -4960,8 +4960,15 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, + connector->name, dc_bpc); + info->bpc = dc_bpc; - /* - * Deep color support mandates RGB444 support for all video -- * modes and forbids YCRCB422 support for all video modes per -- * HDMI 1.3 spec. ++ /* ++ * Deep color support mandates RGB444 support for all video + * modes. - */ -- info->color_formats = DRM_COLOR_FORMAT_RGB444; ++ */ + info->color_formats |= DRM_COLOR_FORMAT_RGB444; - ++ /* YCRCB444 is optional according to spec. */ if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) { -@@ -5712,13 +5711,13 @@ static const u32 hdmi_colorimetry_val[] = { ++ info->color_formats |= DRM_COLOR_FORMAT_YCRCB444; + DRM_DEBUG("%s: HDMI sink does YCRCB444 in deep color.\n", + connector->name); + } +@@ -5705,13 +5712,13 @@ static const u32 hdmi_colorimetry_val[] = { #undef ACE /** @@ -53438,7 +53441,7 @@ index add317bd8d55..46e41ad5e44f 100644 const struct drm_connector_state *conn_state) { u32 colorimetry_val; -@@ -5737,7 +5736,7 @@ drm_hdmi_avi_infoframe_colorspace(struct hdmi_avi_infoframe *frame, +@@ -5730,7 +5737,7 @@ drm_hdmi_avi_infoframe_colorspace(struct hdmi_avi_infoframe *frame, frame->extended_colorimetry = (colorimetry_val >> 2) & EXTENDED_COLORIMETRY_MASK; } @@ -57460,7 +57463,7 @@ index bbdd086be7f5..3f0c11fa60a5 100644 .get_modes = rpi_touchscreen_get_modes, }; diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 7ffd2a04ab23..08d26e81cbfb 100644 +index 959dcbd8a29c..ec34380ebc5a 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -112,8 +112,6 @@ struct panel_simple { @@ -68466,7 +68469,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 370ec4402ebe..f87d2205be42 100644 +index d2e4f9f5507d..2c671990f18e 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -221,6 +221,9 @@ @@ -68490,7 +68493,7 @@ index 370ec4402ebe..f87d2205be42 100644 #define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1 #define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1 diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c -index 84a30202e3db..fd02b2821daf 100644 +index 2ab71d717bb0..cc9aaea2d9ab 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -41,6 +41,7 @@ static const struct hid_device_id hid_quirks[] = { @@ -68501,7 +68504,7 @@ index 84a30202e3db..fd02b2821daf 100644 { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, -@@ -194,6 +195,7 @@ static const struct hid_device_id hid_quirks[] = { +@@ -195,6 +196,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, @@ -68542,10 +68545,10 @@ index 009a0469d54f..1f0e61d1312d 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig -index 0c2b032ee617..bcba1433f076 100644 +index f2fe56e6f8bd..82373d84dd4f 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig -@@ -1489,6 +1489,17 @@ config SENSORS_RASPBERRYPI_HWMON +@@ -1499,6 +1499,17 @@ config SENSORS_RASPBERRYPI_HWMON This driver can also be built as a module. If so, the module will be called raspberrypi-hwmon. @@ -68564,7 +68567,7 @@ index 0c2b032ee617..bcba1433f076 100644 tristate "Kontron sl28cpld hardware monitoring driver" depends on MFD_SL28CPLD || COMPILE_TEST diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile -index 9db2903b61e5..dc68c9788a5e 100644 +index 95908c478b94..b1489a08325b 100644 --- a/drivers/hwmon/Makefile +++ b/drivers/hwmon/Makefile @@ -157,6 +157,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o @@ -69092,7 +69095,7 @@ index 000000000000..8483b6ce1db8 +MODULE_DESCRIPTION("Raspberry Pi PoE HAT fan driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 036fdcee5eb3..17e3afba7e0d 100644 +index 9535e995ecc9..aacfd573d394 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -9,6 +9,25 @@ menu "I2C Hardware Bus support" @@ -69653,10 +69656,10 @@ index 000000000000..962f2e5c7455 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c -index 37443edbf754..7d8e183bb533 100644 +index ad3b124a2e37..340f29483a61 100644 --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -51,6 +51,22 @@ +@@ -56,6 +56,22 @@ #define BCM2835_I2C_CDIV_MIN 0x0002 #define BCM2835_I2C_CDIV_MAX 0xFFFE @@ -69679,7 +69682,7 @@ index 37443edbf754..7d8e183bb533 100644 struct bcm2835_i2c_dev { struct device *dev; void __iomem *regs; -@@ -63,8 +79,78 @@ struct bcm2835_i2c_dev { +@@ -68,8 +84,78 @@ struct bcm2835_i2c_dev { u32 msg_err; u8 *msg_buf; size_t msg_buf_remaining; @@ -69758,7 +69761,7 @@ index 37443edbf754..7d8e183bb533 100644 static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev, u32 reg, u32 val) { -@@ -106,6 +192,7 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -111,6 +197,7 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, { struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw); u32 redl, fedl; @@ -69766,7 +69769,7 @@ index 37443edbf754..7d8e183bb533 100644 u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate); if (divider == -EINVAL) -@@ -129,6 +216,17 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -134,6 +221,17 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL, (fedl << BCM2835_I2C_FEDL_SHIFT) | (redl << BCM2835_I2C_REDL_SHIFT)); @@ -69784,7 +69787,7 @@ index 37443edbf754..7d8e183bb533 100644 return 0; } -@@ -252,6 +350,7 @@ static void bcm2835_i2c_start_transfer(struct bcm2835_i2c_dev *i2c_dev) +@@ -257,6 +355,7 @@ static void bcm2835_i2c_start_transfer(struct bcm2835_i2c_dev *i2c_dev) bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c); @@ -69792,7 +69795,7 @@ index 37443edbf754..7d8e183bb533 100644 } static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev) -@@ -278,6 +377,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) +@@ -283,6 +382,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) u32 val, err; val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S); @@ -69800,7 +69803,7 @@ index 37443edbf754..7d8e183bb533 100644 err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR); if (err) { -@@ -344,6 +444,13 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -349,6 +449,13 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], unsigned long time_left; int i; @@ -69814,7 +69817,7 @@ index 37443edbf754..7d8e183bb533 100644 for (i = 0; i < (num - 1); i++) if (msgs[i].flags & I2C_M_RD) { dev_warn_once(i2c_dev->dev, -@@ -362,6 +469,10 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -367,6 +474,10 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], bcm2835_i2c_finish_transfer(i2c_dev); @@ -69825,7 +69828,7 @@ index 37443edbf754..7d8e183bb533 100644 if (!time_left) { bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, BCM2835_I2C_C_CLEAR); -@@ -372,7 +483,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -377,7 +488,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], if (!i2c_dev->msg_err) return num; @@ -85249,7 +85252,7 @@ index 6d6d30dbbe68..2ee902f64ddc 100644 default: /* Compressed formats */ diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c -index b221b4e438a1..fb8708ddc1dc 100644 +index 73190652c267..859bf4f535d4 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, @@ -85343,7 +85346,7 @@ index fbf0dcb313c8..bf3aa9252458 100644 EXPORT_SYMBOL_GPL(v4l2_subdev_link_validate_default); diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index 15680c3c9279..947c2ab6fff3 100644 +index 3f9f84f9f288..b515de80b6c1 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -11,6 +11,14 @@ config MFD_CORE @@ -85362,10 +85365,10 @@ index 15680c3c9279..947c2ab6fff3 100644 tristate "AMD CS5535 and CS5536 southbridge core functions" select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index fb1df45a301e..b2eb091e9703 100644 +index ce8f1c0583d5..dfbfa7b7f064 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -263,6 +263,7 @@ obj-$(CONFIG_MFD_ROHM_BD71828) += rohm-bd71828.o +@@ -264,6 +264,7 @@ obj-$(CONFIG_MFD_ROHM_BD71828) += rohm-bd71828.o obj-$(CONFIG_MFD_ROHM_BD718XX) += rohm-bd718x7.o obj-$(CONFIG_MFD_STMFX) += stmfx.o obj-$(CONFIG_MFD_KHADAS_MCU) += khadas-mcu.o @@ -85567,7 +85570,7 @@ index 000000000000..6cfd63e5e8b8 +MODULE_LICENSE("GPL"); + diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig -index fafa8b0d8099..5b01870e8f6f 100644 +index 140716083ab8..43147f3c1fcc 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -9,6 +9,14 @@ config SENSORS_LIS3LV02D @@ -85586,7 +85589,7 @@ index fafa8b0d8099..5b01870e8f6f 100644 tristate "Analog Devices Digital Potentiometers" depends on (I2C || SPI) && SYSFS diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile -index d23231e73330..3fd91279bdd9 100644 +index 3615763234a6..b8803cada725 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_AD525X_DPOT_SPI) += ad525x_dpot-spi.o @@ -86559,7 +86562,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 94caee49da99..da599f075bc2 100644 +index 99b981a05b6c..2eae0a77b2f7 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -165,6 +165,13 @@ static DEFINE_MUTEX(open_lock); @@ -90555,7 +90558,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 8c221666c972..f63ac74227b3 100644 +index 5de37c33a737..0420b61443d3 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,6 +67,9 @@ @@ -90568,7 +90571,7 @@ index 8c221666c972..f63ac74227b3 100644 static inline void bcmgenet_writel(u32 value, void __iomem *offset) { -@@ -2430,6 +2433,11 @@ static void reset_umac(struct bcmgenet_priv *priv) +@@ -2432,6 +2435,11 @@ static void reset_umac(struct bcmgenet_priv *priv) bcmgenet_rbuf_ctrl_set(priv, 0); udelay(10); @@ -90580,7 +90583,7 @@ index 8c221666c972..f63ac74227b3 100644 /* issue soft reset and disable MAC while updating its registers */ bcmgenet_umac_writel(priv, CMD_SW_RESET, UMAC_CMD); udelay(2); -@@ -2599,7 +2607,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, +@@ -2601,7 +2609,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX); bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX); @@ -90589,7 +90592,7 @@ index 8c221666c972..f63ac74227b3 100644 /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -3240,7 +3248,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, +@@ -3242,7 +3250,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, } /* Returns a reusable dma control register value */ @@ -90598,7 +90601,7 @@ index 8c221666c972..f63ac74227b3 100644 { unsigned int i; u32 reg; -@@ -3265,6 +3273,14 @@ static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv) +@@ -3267,6 +3275,14 @@ static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv) udelay(10); bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH); @@ -90613,7 +90616,7 @@ index 8c221666c972..f63ac74227b3 100644 return dma_ctrl; } -@@ -3328,8 +3344,8 @@ static int bcmgenet_open(struct net_device *dev) +@@ -3330,8 +3346,8 @@ static int bcmgenet_open(struct net_device *dev) bcmgenet_set_hw_addr(priv, dev->dev_addr); @@ -90624,7 +90627,7 @@ index 8c221666c972..f63ac74227b3 100644 /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4064,9 +4080,12 @@ static int bcmgenet_probe(struct platform_device *pdev) +@@ -4066,9 +4082,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 */ @@ -90638,7 +90641,7 @@ index 8c221666c972..f63ac74227b3 100644 /* libphy will determine the link state */ netif_carrier_off(dev); -@@ -4182,7 +4201,7 @@ static int bcmgenet_resume(struct device *d) +@@ -4184,7 +4203,7 @@ static int bcmgenet_resume(struct device *d) bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ @@ -90674,10 +90677,10 @@ index f9e91304d232..7abd5ddebd8e 100644 /* Initialize link state variables that bcmgenet_mii_setup() uses */ priv->old_link = -1; diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c -index 644861366d54..992459dcaf39 100644 +index 0cde17bd743f..2122c7171320 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -82,6 +82,11 @@ static int bcm54210e_config_init(struct phy_device *phydev) +@@ -83,6 +83,11 @@ static int bcm54210e_config_init(struct phy_device *phydev) return 0; } @@ -90689,7 +90692,7 @@ index 644861366d54..992459dcaf39 100644 static int bcm54612e_config_init(struct phy_device *phydev) { int reg; -@@ -252,7 +257,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) +@@ -253,7 +258,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810 && @@ -90699,7 +90702,7 @@ index 644861366d54..992459dcaf39 100644 return; val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3); -@@ -313,6 +319,9 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) +@@ -314,6 +320,9 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) static int bcm54xx_config_init(struct phy_device *phydev) { int reg, err, val; @@ -90709,7 +90712,7 @@ index 644861366d54..992459dcaf39 100644 reg = phy_read(phydev, MII_BCM54XX_ECR); if (reg < 0) -@@ -350,6 +359,9 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -351,6 +360,9 @@ static int bcm54xx_config_init(struct phy_device *phydev) case PHY_ID_BCM54612E: err = bcm54612e_config_init(phydev); break; @@ -90719,7 +90722,7 @@ index 644861366d54..992459dcaf39 100644 case PHY_ID_BCM54616S: err = bcm54616s_config_init(phydev); break; -@@ -368,17 +380,15 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -369,17 +381,15 @@ static int bcm54xx_config_init(struct phy_device *phydev) bcm54xx_phydsp_config(phydev); @@ -90741,7 +90744,7 @@ index 644861366d54..992459dcaf39 100644 bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val); return 0; -@@ -762,12 +772,20 @@ static struct phy_driver broadcom_drivers[] = { +@@ -783,12 +793,20 @@ static struct phy_driver broadcom_drivers[] = { .config_intr = bcm_phy_config_intr, }, { .phy_id = PHY_ID_BCM54210E, @@ -90763,7 +90766,7 @@ index 644861366d54..992459dcaf39 100644 }, { .phy_id = PHY_ID_BCM5461, .phy_id_mask = 0xfffffff0, -@@ -924,7 +942,8 @@ module_phy_driver(broadcom_drivers); +@@ -945,7 +963,8 @@ module_phy_driver(broadcom_drivers); static struct mdio_device_id __maybe_unused broadcom_tbl[] = { { PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 }, @@ -96357,7 +96360,7 @@ index 000000000000..2c3fabd38b16 +MODULE_DESCRIPTION("Realtek USB ECM device"); +MODULE_LICENSE("GPL"); diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 465e11dcdf12..2c7c91b4d418 100644 +index e5b744851146..75bc32947c90 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -50,6 +50,7 @@ @@ -96387,7 +96390,7 @@ index 465e11dcdf12..2c7c91b4d418 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -753,6 +766,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) +@@ -765,6 +778,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) return phy_mii_ioctl(netdev->phydev, rq, cmd); } @@ -96441,7 +96444,7 @@ index 465e11dcdf12..2c7c91b4d418 100644 static void smsc95xx_init_mac_address(struct usbnet *dev) { /* maybe the boot loader passed the MAC address in devicetree */ -@@ -775,6 +835,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) +@@ -787,6 +847,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) } } @@ -96452,7 +96455,7 @@ index 465e11dcdf12..2c7c91b4d418 100644 /* no useful static MAC address found. generate a random one */ eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -@@ -901,13 +965,13 @@ static int smsc95xx_reset(struct usbnet *dev) +@@ -913,13 +977,13 @@ static int smsc95xx_reset(struct usbnet *dev) if (!turbo_mode) { burst_cap = 0; @@ -96471,7 +96474,7 @@ index 465e11dcdf12..2c7c91b4d418 100644 } netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -@@ -1830,7 +1894,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1839,7 +1903,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ @@ -96481,7 +96484,7 @@ index 465e11dcdf12..2c7c91b4d418 100644 return 1; } -@@ -1848,7 +1913,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1857,7 +1922,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ @@ -96695,7 +96698,7 @@ index 4146faeed344..d7d0f84f3693 100644 __printf(3, 4) void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -index d821a4758f8c..b14963be17f1 100644 +index a2b8d9171af2..76c5c540a9a5 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c @@ -10,6 +10,7 @@ @@ -96715,7 +96718,7 @@ index d821a4758f8c..b14963be17f1 100644 /** * struct nvram_parser - internal info for parser. * -@@ -545,10 +548,26 @@ static int brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx) +@@ -547,10 +550,26 @@ static int brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx) goto fail; } @@ -96743,7 +96746,7 @@ index d821a4758f8c..b14963be17f1 100644 if (free_bcm47xx_nvram) bcm47xx_nvram_release_contents(data); -@@ -613,7 +632,7 @@ static int brcmf_fw_request_firmware(const struct firmware **fw, +@@ -615,7 +634,7 @@ static int brcmf_fw_request_firmware(const struct firmware **fw, strlcat(alt_path, fwctx->req->board_type, BRCMF_FW_NAME_LEN); strlcat(alt_path, ".txt", BRCMF_FW_NAME_LEN); @@ -96825,10 +96828,10 @@ index 10bf52253337..5b39a39812d0 100644 +} #endif /* CONFIG_OF */ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -index 1f12dfb33938..89cdd2075846 100644 +index 61febc9bfa14..7491710bdec0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -@@ -1400,7 +1400,8 @@ static int brcmf_pcie_get_memdump(struct device *dev, void *data, size_t len) +@@ -1372,7 +1372,8 @@ static int brcmf_pcie_get_memdump(struct device *dev, void *data, size_t len) } static @@ -96838,7 +96841,7 @@ index 1f12dfb33938..89cdd2075846 100644 { struct brcmf_bus *bus_if = dev_get_drvdata(dev); struct brcmf_fw_request *fwreq; -@@ -1408,6 +1409,10 @@ int brcmf_pcie_get_fwname(struct device *dev, const char *ext, u8 *fw_name) +@@ -1380,6 +1381,10 @@ int brcmf_pcie_get_fwname(struct device *dev, const char *ext, u8 *fw_name) { ext, fw_name }, }; @@ -98631,7 +98634,7 @@ index e0de1df2ede0..ee7d8f4e7f2e 100644 } diff --git a/drivers/regulator/rpi-panel-attiny-regulator.c b/drivers/regulator/rpi-panel-attiny-regulator.c -index ee46bfbf5eee..e3decc419814 100644 +index 991b4730d768..e3decc419814 100644 --- a/drivers/regulator/rpi-panel-attiny-regulator.c +++ b/drivers/regulator/rpi-panel-attiny-regulator.c @@ -8,6 +8,7 @@ @@ -98642,7 +98645,7 @@ index ee46bfbf5eee..e3decc419814 100644 #include #include #include -@@ -21,63 +22,130 @@ +@@ -21,87 +22,130 @@ /* I2C registers of the Atmel microcontroller. */ #define REG_ID 0x80 #define REG_PORTA 0x81 @@ -98706,28 +98709,40 @@ index ee46bfbf5eee..e3decc419814 100644 .cache_type = REGCACHE_NONE, }; +-static int attiny_lcd_power_enable(struct regulator_dev *rdev) +static int attiny_set_port_state(struct attiny_lcd *state, int reg, u8 val) -+{ + { +- unsigned int data; +- int ret, i; + state->port_states[reg - REG_PORTA] = val; + return regmap_write(state->regmap, reg, val); +}; -+ + +- regmap_write(rdev->regmap, REG_POWERON, 1); +- msleep(80); +static u8 attiny_get_port_state(struct attiny_lcd *state, int reg) +{ + return state->port_states[reg - REG_PORTA]; +}; -+ - static int attiny_lcd_power_enable(struct regulator_dev *rdev) - { -- unsigned int data; -+ struct attiny_lcd *state = rdev_get_drvdata(rdev); -- regmap_write(rdev->regmap, REG_POWERON, 1); - /* Wait for nPWRDWN to go low to indicate poweron is done. */ -- regmap_read_poll_timeout(rdev->regmap, REG_PORTB, data, -- data & BIT(0), 10, 1000000); -+ mutex_lock(&state->lock); +- for (i = 0; i < 20; i++) { +- ret = regmap_read(rdev->regmap, REG_PORTB, &data); +- if (!ret) { +- if (data & BIT(0)) +- break; +- } +- usleep_range(10000, 12000); +- } +- usleep_range(10000, 12000); ++static int attiny_lcd_power_enable(struct regulator_dev *rdev) ++{ ++ struct attiny_lcd *state = rdev_get_drvdata(rdev); + ++ mutex_lock(&state->lock); + +- if (ret) +- pr_err("%s: regmap_read_poll_timeout failed %d\n", __func__, ret); + /* Ensure bridge, and tp stay in reset */ + attiny_set_port_state(state, REG_PORTC, 0); + usleep_range(5000, 10000); @@ -98761,7 +98776,6 @@ index ee46bfbf5eee..e3decc419814 100644 + regmap_write(rdev->regmap, REG_PWM, 0); - regmap_write(rdev->regmap, REG_POWERON, 0); -- udelay(1); + usleep_range(5000, 10000); + + attiny_set_port_state(state, REG_PORTA, 0); @@ -98769,7 +98783,7 @@ index ee46bfbf5eee..e3decc419814 100644 + attiny_set_port_state(state, REG_PORTB, PB_LCD_VCC_N); + usleep_range(5000, 10000); + attiny_set_port_state(state, REG_PORTC, 0); -+ msleep(30); + msleep(30); + + mutex_unlock(&state->lock); + @@ -98779,26 +98793,37 @@ index ee46bfbf5eee..e3decc419814 100644 static int attiny_lcd_power_is_enabled(struct regulator_dev *rdev) { - unsigned int data; -- int ret; +- int ret, i; - -- ret = regmap_read(rdev->regmap, REG_POWERON, &data); +- for (i = 0; i < 10; i++) { +- ret = regmap_read(rdev->regmap, REG_POWERON, &data); +- if (!ret) +- break; +- usleep_range(10000, 12000); +- } - if (ret < 0) - return ret; - - if (!(data & BIT(0))) - return 0; -- -- ret = regmap_read(rdev->regmap, REG_PORTB, &data); -- if (ret < 0) -- return ret; + struct attiny_lcd *state = rdev_get_drvdata(rdev); +- for (i = 0; i < 10; i++) { +- ret = regmap_read(rdev->regmap, REG_PORTB, &data); +- if (!ret) +- break; +- usleep_range(10000, 12000); +- } +- +- if (ret < 0) +- return ret; +- - return data & BIT(0); + return state->port_states[REG_PORTC - REG_PORTA] & PC_RST_BRIDGE_N; } static const struct regulator_init_data attiny_regulator_default = { -@@ -101,33 +169,104 @@ static const struct regulator_desc attiny_regulator = { +@@ -125,10 +169,13 @@ static const struct regulator_desc attiny_regulator = { static int attiny_update_status(struct backlight_device *bl) { @@ -98806,62 +98831,58 @@ index ee46bfbf5eee..e3decc419814 100644 + struct attiny_lcd *state = bl_get_data(bl); + struct regmap *regmap = state->regmap; int brightness = bl->props.brightness; -+ int ret, i; -+ -+ mutex_lock(&state->lock); + int ret, i; ++ mutex_lock(&state->lock); ++ if (bl->props.power != FB_BLANK_UNBLANK || bl->props.fb_blank != FB_BLANK_UNBLANK) brightness = 0; +@@ -139,30 +186,86 @@ static int attiny_update_status(struct backlight_device *bl) + break; + } -- return regmap_write(regmap, REG_PWM, brightness); --} -- --static int attiny_get_brightness(struct backlight_device *bl) --{ -- struct regmap *regmap = bl_get_data(bl); -- int ret, brightness; -+ for (i = 0; i < 10; i++) { -+ ret = regmap_write(regmap, REG_PWM, brightness); -+ if (!ret) -+ break; -+ } - -- ret = regmap_read(regmap, REG_PWM, &brightness); -- if (ret) -- return ret; + mutex_unlock(&state->lock); - -- return brightness; -+ return ret; ++ + return ret; } - static const struct backlight_ops attiny_bl = { - .update_status = attiny_update_status, -- .get_brightness = attiny_get_brightness, - }; - +-static int attiny_get_brightness(struct backlight_device *bl) ++static const struct backlight_ops attiny_bl = { ++ .update_status = attiny_update_status, ++}; ++ +static int attiny_gpio_get_direction(struct gpio_chip *gc, unsigned int off) +{ + return GPIO_LINE_DIRECTION_OUT; +} + +static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) -+{ + { +- struct regmap *regmap = bl_get_data(bl); +- int ret, brightness, i; + struct attiny_lcd *state = gpiochip_get_data(gc); + u8 last_val; -+ + +- for (i = 0; i < 10; i++) { +- ret = regmap_read(regmap, REG_PWM, &brightness); +- if (!ret) +- break; +- } + if (off >= NUM_GPIO) + return; + + mutex_lock(&state->lock); -+ + +- if (ret) +- return ret; + last_val = attiny_get_port_state(state, mappings[off].reg); + if (val) + last_val |= mappings[off].mask; + else + last_val &= ~mappings[off].mask; -+ + +- return brightness; + attiny_set_port_state(state, mappings[off].reg, last_val); + + if (off == RST_BRIDGE_N && val) { @@ -98878,8 +98899,12 @@ index ee46bfbf5eee..e3decc419814 100644 + } + + mutex_unlock(&state->lock); -+} -+ + } + +-static const struct backlight_ops attiny_bl = { +- .update_status = attiny_update_status, +- .get_brightness = attiny_get_brightness, +-}; +static int attiny_i2c_read(struct i2c_client *client, u8 reg, unsigned int *buf) +{ + struct i2c_msg msgs[1]; @@ -98912,11 +98937,10 @@ index ee46bfbf5eee..e3decc419814 100644 + *buf = data_buf[0]; + return 0; +} -+ + /* * I2C driver interface functions - */ -@@ -138,22 +277,30 @@ static int attiny_i2c_probe(struct i2c_client *i2c, +@@ -174,22 +277,30 @@ static int attiny_i2c_probe(struct i2c_client *i2c, struct regulator_config config = { }; struct backlight_device *bl; struct regulator_dev *rdev; @@ -98950,7 +98974,7 @@ index ee46bfbf5eee..e3decc419814 100644 } switch (data) { -@@ -162,34 +309,73 @@ static int attiny_i2c_probe(struct i2c_client *i2c, +@@ -198,34 +309,73 @@ static int attiny_i2c_probe(struct i2c_client *i2c, break; default: dev_err(&i2c->dev, "Unknown Atmel firmware revision: 0x%02x\n", data); @@ -98960,8 +98984,7 @@ index ee46bfbf5eee..e3decc419814 100644 } regmap_write(regmap, REG_POWERON, 0); -- mdelay(1); -+ msleep(30); + msleep(30); + regmap_write(regmap, REG_PWM, 0); config.dev = &i2c->dev; @@ -99032,7 +99055,7 @@ index ee46bfbf5eee..e3decc419814 100644 return 0; } -@@ -205,6 +391,7 @@ static struct i2c_driver attiny_regulator_driver = { +@@ -241,6 +391,7 @@ static struct i2c_driver attiny_regulator_driver = { .of_match_table = of_match_ptr(attiny_dt_ids), }, .probe = attiny_i2c_probe, @@ -99283,7 +99306,7 @@ index 33c32e931767..0f6a2f7c8b53 100644 if (err) { dev_err(&pdev->dev, "could not request IRQ: %d\n", err); diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c -index 8c261eac2cee..4436fd319df3 100644 +index 6ea7b286c80c..7cc5319bce13 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -3338,6 +3338,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, @@ -99410,7 +99433,7 @@ index 9670a8989b91..1a3219657cbb 100644 MODULE_DESCRIPTION("FB driver for the ST7735R LCD Controller"); MODULE_AUTHOR("Noralf Tronnes"); diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c -index 3a280cc1892c..af4e975e7b30 100644 +index 0a2dbed9ffc7..99258a8224dc 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -66,6 +66,12 @@ enum st7789v_command { @@ -99426,7 +99449,7 @@ index 3a280cc1892c..af4e975e7b30 100644 /** * init_display() - initialize the display controller * -@@ -145,6 +151,22 @@ static int init_display(struct fbtft_par *par) +@@ -147,6 +153,22 @@ static int init_display(struct fbtft_par *par) return 0; } @@ -99449,7 +99472,7 @@ index 3a280cc1892c..af4e975e7b30 100644 /** * set_var() - apply LCD properties like rotation and BGR mode * -@@ -155,20 +177,32 @@ static int init_display(struct fbtft_par *par) +@@ -157,20 +179,32 @@ static int init_display(struct fbtft_par *par) static int set_var(struct fbtft_par *par) { u8 madctl_par = 0; @@ -99482,7 +99505,7 @@ index 3a280cc1892c..af4e975e7b30 100644 break; default: return -EINVAL; -@@ -265,7 +299,16 @@ static struct fbtft_display display = { +@@ -267,7 +301,16 @@ static struct fbtft_display display = { }, }; @@ -115805,7 +115828,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 859d0c30dcc2..f65461d648c7 100644 +index 90b370ee9a34..a99152331448 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -266,6 +266,7 @@ struct uart_amba_port { @@ -116002,7 +116025,7 @@ index 859d0c30dcc2..f65461d648c7 100644 uap->vendor = vendor; uap->fifosize = vendor->get_fifosize(dev); diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index 9adb8362578c..8e3b83fac33c 100644 +index 04b4ed5d0634..5fcac9eba277 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -523,8 +523,9 @@ static int sc16is7xx_set_baud(struct uart_port *port, int baud) @@ -116026,7 +116049,7 @@ index 9adb8362578c..8e3b83fac33c 100644 break; case SC16IS7XX_IIR_THRI_SRC: sc16is7xx_handle_tx(port); -@@ -837,7 +840,7 @@ static unsigned int sc16is7xx_get_mctrl(struct uart_port *port) +@@ -840,7 +843,7 @@ static unsigned int sc16is7xx_get_mctrl(struct uart_port *port) /* DCD and DSR are not wired and CTS/RTS is handled automatically * so just indicate DSR and CAR asserted */ @@ -116035,7 +116058,7 @@ index 9adb8362578c..8e3b83fac33c 100644 } static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl) -@@ -924,14 +927,19 @@ static void sc16is7xx_set_termios(struct uart_port *port, +@@ -927,14 +930,19 @@ static void sc16is7xx_set_termios(struct uart_port *port, regcache_cache_bypass(s->regmap, true); sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]); sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]); @@ -176156,7 +176179,7 @@ index 000000000000..cdc9963176e5 +test_main(); +0; diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 93f429436e45..dce3990ea33b 100644 +index 4aab93d5b651..f482c43bc64e 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -98,6 +98,7 @@ static void xhci_free_segments_for_ring(struct xhci_hcd *xhci, @@ -176429,10 +176452,10 @@ index 76389c0dda8b..545387a0679a 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 7f1e5296d0f6..16b4a4b76da0 100644 +index cc21f5f9d0ad..407527cac378 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -858,8 +858,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -856,8 +856,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) seg = ring->deq_seg; do { memset(seg->trbs, 0, @@ -176443,7 +176466,7 @@ index 7f1e5296d0f6..16b4a4b76da0 100644 cpu_to_le32(~TRB_CYCLE); seg = seg->next; } while (seg != ring->deq_seg); -@@ -870,7 +870,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -868,7 +868,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) ring->enq_seg = ring->deq_seg; ring->enqueue = ring->dequeue; @@ -176452,7 +176475,7 @@ index 7f1e5296d0f6..16b4a4b76da0 100644 /* * Ring is now zeroed, so the HW should look for change of ownership * when the cycle bit is set to 1. -@@ -1466,6 +1466,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1471,6 +1471,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -176556,7 +176579,7 @@ index 7f1e5296d0f6..16b4a4b76da0 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5419,6 +5516,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5427,6 +5524,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -176565,10 +176588,10 @@ index 7f1e5296d0f6..16b4a4b76da0 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 679ef073d99d..3a75a4dfed3c 100644 +index 1c84d73250d0..c21db3a78b10 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1615,6 +1615,7 @@ struct xhci_ring { +@@ -1618,6 +1618,7 @@ struct xhci_ring { unsigned int num_trbs_free; unsigned int num_trbs_free_temp; unsigned int bounce_buf_len; @@ -176576,7 +176599,7 @@ index 679ef073d99d..3a75a4dfed3c 100644 enum xhci_ring_type type; bool last_td_was_short; struct radix_tree_root *trb_address_map; -@@ -1653,8 +1654,8 @@ struct urb_priv { +@@ -1656,8 +1657,8 @@ 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. @@ -176587,7 +176610,7 @@ index 679ef073d99d..3a75a4dfed3c 100644 /* Initial allocated size of the ERST, in number of entries */ #define ERST_SIZE 64 /* Initial number of event segment rings allocated */ -@@ -1887,6 +1888,8 @@ struct xhci_hcd { +@@ -1890,6 +1891,8 @@ struct xhci_hcd { #define XHCI_ZHAOXIN_HOST BIT_ULL(41) #define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(42) #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(43) @@ -183658,10 +183681,10 @@ index 817545ff80b9..375a43d99b28 100644 for (;;) { tmp = *p; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 97eb298a0f57..04d75394eabe 100644 +index ec73cca1726c..60b829755c0b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -8887,8 +8887,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -8894,8 +8894,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)) { @@ -196497,7 +196520,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 34c6dd04b85a..e9be75318723 100644 +index 52c89a6f54e9..0e8391a1f1f2 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -100,12 +100,14 @@ config SND_SOC_ALL_CODECS @@ -196546,7 +196569,7 @@ index 34c6dd04b85a..e9be75318723 100644 depends on I2C select SND_SOC_AD193X -@@ -804,7 +808,7 @@ config SND_SOC_HDAC_HDA +@@ -809,7 +813,7 @@ config SND_SOC_HDAC_HDA select SND_HDA config SND_SOC_ICS43432 @@ -196555,7 +196578,7 @@ index 34c6dd04b85a..e9be75318723 100644 config SND_SOC_INNO_RK3036 tristate "Inno codec driver for RK3036 SoC" -@@ -825,6 +829,13 @@ config SND_SOC_LOCHNAGAR_SC +@@ -830,6 +834,13 @@ config SND_SOC_LOCHNAGAR_SC This driver support the sound card functionality of the Cirrus Logic Lochnagar audio development board. @@ -196569,7 +196592,7 @@ index 34c6dd04b85a..e9be75318723 100644 config SND_SOC_MADERA tristate default y if SND_SOC_CS47L15=y -@@ -1125,6 +1136,10 @@ config SND_SOC_RT5616 +@@ -1130,6 +1141,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" depends on I2C @@ -196580,7 +196603,7 @@ index 34c6dd04b85a..e9be75318723 100644 config SND_SOC_RT5631 tristate "Realtek ALC5631/RT5631 CODEC" depends on I2C -@@ -1346,6 +1361,9 @@ config SND_SOC_TFA9879 +@@ -1351,6 +1366,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -196590,7 +196613,7 @@ index 34c6dd04b85a..e9be75318723 100644 config SND_SOC_TLV320AIC23 tristate -@@ -1784,4 +1802,8 @@ config SND_SOC_TPA6130A2 +@@ -1789,4 +1807,8 @@ config SND_SOC_TPA6130A2 tristate "Texas Instruments TPA6130A2 headphone amplifier" depends on I2C @@ -199523,7 +199546,7 @@ index 000000000000..8f019e048987 + +#endif /* _TAS5713_H */ diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index 133296596864..cdea2d46bef8 100644 +index a6d6d10cd471..54dfa830633b 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1016,7 +1016,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec index f6241bf..499331b 100644 --- a/raspberrypi-kernel.spec +++ b/raspberrypi-kernel.spec @@ -2,13 +2,13 @@ %global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 99.0.0 +%global hulkrelease 105.0.0 %global debug_package %{nil} Name: raspberrypi-kernel Version: 5.10.0 -Release: %{hulkrelease}.10 +Release: %{hulkrelease}.11 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 +* Fri Jul 22 2022 Yafen Fang - 5.10.0-105.0.0.11 +- update kernel version to openEuler 5.10.0-105.0.0 + * Thu Jun 23 2022 Yafen Fang - 5.10.0-99.0.0.10 - update kernel version to openEuler 5.10.0-99.0.0