From 6229f58d19ef9e8c060cc9d9974ef6fcf1bcb528 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Tue, 28 Nov 2023 09:25:22 +0100 Subject: kernel 6.6.2 --- SOURCES/0001-HDR.patch | 2310 --------- ...-pci-drop-redundant-pci_enable_pcie_error.patch | 108 + ...mdgpu.ppfeaturemask-0xffffffff-as-default.patch | 25 + SOURCES/0001-amd-hdr.patch | 2042 ++++++++ SOURCES/Patchlist.changelog | 170 +- SOURCES/amdgpu-si-cik-default.patch | 35 +- SOURCES/asus-linux.patch | 2010 +------- SOURCES/check-kabi | 39 +- SOURCES/chimera-ALSA.patch | 1170 ----- SOURCES/filter-aarch64.sh.fedora | 2 +- SOURCES/filter-modules.sh.fedora | 2 +- SOURCES/filter-ppc64le.sh.fedora | 2 +- SOURCES/kernel-aarch64-16k-debug-fedora.config | 91 +- SOURCES/kernel-aarch64-16k-fedora.config | 91 +- SOURCES/kernel-aarch64-64k-debug-rhel.config | 146 +- SOURCES/kernel-aarch64-64k-rhel.config | 146 +- SOURCES/kernel-aarch64-debug-fedora.config | 91 +- SOURCES/kernel-aarch64-debug-rhel.config | 146 +- SOURCES/kernel-aarch64-fedora.config | 91 +- SOURCES/kernel-aarch64-rhel.config | 146 +- SOURCES/kernel-aarch64-rt-debug-rhel.config | 146 +- SOURCES/kernel-aarch64-rt-rhel.config | 146 +- SOURCES/kernel-ppc64le-debug-fedora.config | 84 +- SOURCES/kernel-ppc64le-debug-rhel.config | 71 +- SOURCES/kernel-ppc64le-fedora.config | 84 +- SOURCES/kernel-ppc64le-rhel.config | 71 +- SOURCES/kernel-s390x-debug-fedora.config | 85 +- SOURCES/kernel-s390x-debug-rhel.config | 75 +- SOURCES/kernel-s390x-fedora.config | 85 +- SOURCES/kernel-s390x-rhel.config | 75 +- SOURCES/kernel-s390x-zfcpdump-rhel.config | 75 +- SOURCES/kernel-x86_64-debug-fedora.config | 93 +- SOURCES/kernel-x86_64-debug-rhel.config | 82 +- SOURCES/kernel-x86_64-fedora.config | 93 +- SOURCES/kernel-x86_64-rhel.config | 82 +- SOURCES/kernel-x86_64-rt-debug-rhel.config | 82 +- SOURCES/kernel-x86_64-rt-rhel.config | 82 +- SOURCES/linux-surface.patch | 1100 +---- SOURCES/mod-internal.list | 1 + ...21:-Disable-powersave-features-by-default.patch | 37 +- SOURCES/partial-clang-debug-snip.config | 3 + SOURCES/partial-clang-snip.config | 3 + .../partial-clang_lto-aarch64-debug-snip.config | 3 + SOURCES/partial-clang_lto-aarch64-snip.config | 5 + SOURCES/partial-clang_lto-x86_64-debug-snip.config | 3 + SOURCES/partial-clang_lto-x86_64-snip.config | 5 + SOURCES/partial-kgcov-debug-snip.config | 4 + SOURCES/patch-6.5-redhat.patch | 1519 ------ SOURCES/patch-6.6-redhat.patch | 1611 +++++++ SOURCES/rog-ally-alsa.patch | 321 -- SOURCES/rpminspect.yaml | 2 +- SOURCES/steam-deck.patch | 204 +- SOURCES/tkg.patch | 99 +- SOURCES/winesync.patch | 5071 ++++++++++++++++++++ SPECS/kernel.spec | 730 +-- TOOLS/patch_configs.py | 5 +- 56 files changed, 12083 insertions(+), 9017 deletions(-) delete mode 100644 SOURCES/0001-HDR.patch create mode 100644 SOURCES/0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch create mode 100644 SOURCES/0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch create mode 100644 SOURCES/0001-amd-hdr.patch delete mode 100644 SOURCES/chimera-ALSA.patch create mode 100644 SOURCES/partial-clang-debug-snip.config create mode 100644 SOURCES/partial-clang-snip.config create mode 100644 SOURCES/partial-clang_lto-aarch64-debug-snip.config create mode 100644 SOURCES/partial-clang_lto-aarch64-snip.config create mode 100644 SOURCES/partial-clang_lto-x86_64-debug-snip.config create mode 100644 SOURCES/partial-clang_lto-x86_64-snip.config create mode 100644 SOURCES/partial-kgcov-debug-snip.config delete mode 100644 SOURCES/patch-6.5-redhat.patch create mode 100644 SOURCES/patch-6.6-redhat.patch create mode 100644 SOURCES/winesync.patch diff --git a/SOURCES/0001-HDR.patch b/SOURCES/0001-HDR.patch deleted file mode 100644 index 6df422b..0000000 --- a/SOURCES/0001-HDR.patch +++ /dev/null @@ -1,2310 +0,0 @@ -From 03248cc1991679d1025ea5bdf30ee324cdebf622 Mon Sep 17 00:00:00 2001 -From: Peter Jung -Date: Wed, 23 Aug 2023 18:54:42 +0200 -Subject: [PATCH] AMD-HDR - -Hi all, - -Here is the next version of our work to enable AMD driver-specific color -management properties [1][2]. This series is a collection of -contributions from Joshua, Harry, and me to enhance the AMD KMS color -pipeline for Steam Deck/SteamOS by exposing additional pre-blending and -post-blending color capabilities from those available in the current DRM -KMS API[3]. - -The userspace case here is Gamescope which is the compositor for -SteamOS. Gamescope is already using these features to implement its -color management pipeline [4]. - -In this version, I try to address all concerns shared in the previous -one, i.e.: -- Replace DRM_ by AMDGPU_ prefix for transfer function enumeration; -- Explicitly define EOTFs and inverse EOTFs and set props accordingly; -- Document pre-defined transfer functions; -- Remove misleading comments; -- Remove post-blending/MPC shaper and 3D LUT support; -- Move driver-specific property operations from amdgpu_display.c to - amdgpu_dm_color.c; -- Reset planes if any color props change; -- Nits/small fixes; - -Bearing in mind the complexity of color concepts, I believe there is a -high chance of some misunderstanding from my side when defining EOTFs -and documenting pre-defined TFs. So, reviews are very important and -welcome (thanks in advance). FWIW, I added Harry as a co-developer of -this TF documentation since I based on his description of EOTF/inv_EOTF -and previous documentation work [5]. Let me know if there is a better -way for credits. - -Two DC patches were already applied and, therefore, removed from the -series. I added r-b according to previous feedback. We also add plane -CTM to driver-specific properties. As a result, this is the updated list -of all driver-specific color properties exposed by this series: - -- plane degamma LUT and pre-defined TF; -- plane HDR multiplier; -- plane CTM 3x4; -- plane shaper LUT and pre-defined TF; -- plane 3D LUT; -- plane blend LUT and pre-defined TF; -- CRTC gamma pre-defined TF; - -Remember you can find the AMD HW color capabilities documented here: -https://dri.freedesktop.org/docs/drm/gpu/amdgpu/display/display-manager.html#color-management-properties - -Worth mentioning that the pre-blending degamma block can use ROM curves -for some pre-defined TFs, but the other blocks use the AMD color module -to calculate this curve considering pre-defined coefficients. - -We need changes on DC gamut remap matrix to support the plane and CRTC -CTM on drivers that support both. I've sent a previous patch to apply -these changes to all DCN3+ families [6]. Here I use the same changes but -limited to DCN301. Just let me know if you prefer the previous/expanded -version. - -Finally, this is the Linux/AMD color management API before and after -blending with the driver-specific properties: - -+----------------------+ -| PLANE | -| | -| +----------------+ | -| | AMD Degamma | | -| | | | -| | EOTF | 1D LUT | | -| +--------+-------+ | -| | | -| +--------v-------+ | -| | AMD HDR | | -| | Multiply | | -| +--------+-------+ | -| | | -| +--------v-------+ | -| | AMD CTM (3x4) | | -| +--------+-------+ | -| | | -| +--------v-------+ | -| | AMD Shaper | | -| | | | -| | inv_EOTF | | | -| | Custom 1D LUT | | -| +--------+-------+ | -| | | -| +--------v-------+ | -| | AMD 3D LUT | | -| | 17^3/12-bit | | -| +--------+-------+ | -| | | -| +--------v-------+ | -| | AMD Blend | | -| | | | -| | EOTF | 1D LUT | | -| +--------+-------+ | -| | | -++----------v---------++ -|| Blending || -++----------+---------++ -| CRTC | | -| | | -| +-------v-------+ | -| | DRM Degamma | | -| | | | -| | Custom 1D LUT | | -| +-------+-------+ | -| | | -| +-------v-------+ | -| | DRM CTM (3x3) | | -| +-------+-------+ | -| | | -| +-------v-------+ | -| | DRM Gamma | | -| | | | -| | Custom 1D LUT | | -| +---------------+ | -| | *AMD Gamma | | -| | inv_EOTF | | -| +---------------+ | -| | -+----------------------+ - -Let me know your thoughts. - -Best Regards, - -Melissa Wen - -[1] https://lore.kernel.org/dri-devel/20230423141051.702990-1-mwen@igalia.com -[2] https://lore.kernel.org/dri-devel/20230523221520.3115570-1-mwen@igalia.com -[3] https://github.com/ValveSoftware/gamescope/blob/master/src/docs/Steam%20Deck%20Display%20Pipeline.png -[4] https://github.com/ValveSoftware/gamescope -[5] https://lore.kernel.org/dri-devel/20210730204134.21769-1-harry.wentland@amd.com -[6] https://lore.kernel.org/dri-devel/20230721132431.692158-1-mwen@igalia.com - -Harry Wentland (1): - drm/amd/display: fix segment distribution for linear LUTs - -Joshua Ashton (14): - drm/amd/display: add plane degamma TF driver-specific property - drm/amd/display: add plane HDR multiplier driver-specific property - drm/amd/display: add plane blend LUT and TF driver-specific properties - drm/amd/display: add CRTC gamma TF support - drm/amd/display: set sdr_ref_white_level to 80 for out_transfer_func - drm/amd/display: mark plane as needing reset if color props change - drm/amd/display: add plane degamma TF and LUT support - drm/amd/display: add dc_fixpt_from_s3132 helper - drm/amd/display: add HDR multiplier support - drm/amd/display: handle empty LUTs in __set_input_tf - drm/amd/display: add plane blend LUT and TF support - drm/amd/display: allow newer DC hardware to use degamma ROM for PQ/HLG - drm/amd/display: copy 3D LUT settings from crtc state to stream_update - drm/amd/display: Use 3x4 CTM for plane CTM - -Melissa Wen (19): - drm/drm_mode_object: increase max objects to accommodate new color - props - drm/drm_property: make replace_property_blob_from_id a DRM helper - drm/drm_plane: track color mgmt changes per plane - drm/amd/display: add driver-specific property for plane degamma LUT - drm/amd/display: explicitly define EOTF and inverse EOTF - drm/amd/display: document AMDGPU pre-defined transfer functions - drm/amd/display: add plane 3D LUT driver-specific properties - drm/amd/display: add plane shaper LUT and TF driver-specific - properties - drm/amd/display: add CRTC gamma TF driver-specific property - drm/amd/display: add comments to describe DM crtc color mgmt behavior - drm/amd/display: encapsulate atomic regamma operation - drm/amd/display: decouple steps for mapping CRTC degamma to DC plane - drm/amd/display: reject atomic commit if setting both plane and CRTC - degamma - drm/amd/display: add plane shaper LUT support - drm/amd/display: add plane shaper TF support - drm/amd/display: add plane 3D LUT support - drm/amd/display: set stream gamut remap matrix to MPC for DCN301 - drm/amd/display: add plane CTM driver-specific property - drm/amd/display: add plane CTM support - -Signed-off-by: Peter Jung ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 71 ++ - .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 34 +- - .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 100 +++ - .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 805 ++++++++++++++++-- - .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 72 ++ - .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 224 ++++- - .../amd/display/dc/dcn10/dcn10_cm_common.c | 95 ++- - .../drm/amd/display/dc/dcn30/dcn30_hwseq.c | 37 + - .../drm/amd/display/dc/dcn30/dcn30_hwseq.h | 3 + - .../drm/amd/display/dc/dcn301/dcn301_init.c | 2 +- - .../gpu/drm/amd/display/include/fixed31_32.h | 12 + - drivers/gpu/drm/arm/malidp_crtc.c | 2 +- - drivers/gpu/drm/drm_atomic.c | 1 + - drivers/gpu/drm/drm_atomic_state_helper.c | 1 + - drivers/gpu/drm/drm_atomic_uapi.c | 43 +- - drivers/gpu/drm/drm_property.c | 49 ++ - include/drm/drm_mode_object.h | 2 +- - include/drm/drm_plane.h | 7 + - include/drm/drm_property.h | 6 + - include/uapi/drm/drm_mode.h | 8 + - 20 files changed, 1446 insertions(+), 128 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h -index 32fe05c810c6fc..84bf501b02f4c2 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h -@@ -343,6 +343,77 @@ struct amdgpu_mode_info { - int disp_priority; - const struct amdgpu_display_funcs *funcs; - const enum drm_plane_type *plane_type; -+ -+ /* Driver-private color mgmt props */ -+ -+ /* @plane_degamma_lut_property: Plane property to set a degamma LUT to -+ * convert input space before blending. -+ */ -+ struct drm_property *plane_degamma_lut_property; -+ /* @plane_degamma_lut_size_property: Plane property to define the max -+ * size of degamma LUT as supported by the driver (read-only). -+ */ -+ struct drm_property *plane_degamma_lut_size_property; -+ /** -+ * @plane_degamma_tf_property: Plane pre-defined transfer function to -+ * to go from scanout/encoded values to linear values. -+ */ -+ struct drm_property *plane_degamma_tf_property; -+ /** -+ * @plane_hdr_mult_property: -+ */ -+ struct drm_property *plane_hdr_mult_property; -+ -+ struct drm_property *plane_ctm_property; -+ /** -+ * @shaper_lut_property: Plane property to set pre-blending shaper LUT -+ * that converts color content before 3D LUT. -+ */ -+ struct drm_property *plane_shaper_lut_property; -+ /** -+ * @shaper_lut_size_property: Plane property for the size of -+ * pre-blending shaper LUT as supported by the driver (read-only). -+ */ -+ struct drm_property *plane_shaper_lut_size_property; -+ /** -+ * @plane_shaper_tf_property: Plane property to set a predefined -+ * transfer function for pre-blending shaper (before applying 3D LUT) -+ * with or without LUT. -+ */ -+ struct drm_property *plane_shaper_tf_property; -+ /** -+ * @plane_lut3d_property: Plane property for gamma correction using a -+ * 3D LUT (pre-blending). -+ */ -+ struct drm_property *plane_lut3d_property; -+ /** -+ * @plane_degamma_lut_size_property: Plane property to define the max -+ * size of 3D LUT as supported by the driver (read-only). -+ */ -+ struct drm_property *plane_lut3d_size_property; -+ /** -+ * @plane_blend_lut_property: Plane property for output gamma before -+ * blending. Userspace set a blend LUT to convert colors after 3D LUT -+ * conversion. It works as a post-3D LUT 1D LUT, with shaper LUT, they -+ * are sandwiching 3D LUT with two 1D LUT. -+ */ -+ struct drm_property *plane_blend_lut_property; -+ /** -+ * @plane_blend_lut_size_property: Plane property to define the max -+ * size of blend LUT as supported by the driver (read-only). -+ */ -+ struct drm_property *plane_blend_lut_size_property; -+ /** -+ * @plane_blend_tf_property: Plane property to set a predefined -+ * transfer function for pre-blending blend (before applying 3D LUT) -+ * with or without LUT. -+ */ -+ struct drm_property *plane_blend_tf_property; -+ /* @regamma_tf_property: Transfer function for CRTC regamma -+ * (post-blending). Possible values are defined by `enum -+ * amdgpu_transfer_function`. -+ */ -+ struct drm_property *regamma_tf_property; - }; - - #define AMDGPU_MAX_BL_LEVEL 0xFF -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 e5554a36e8c8b2..43ef0e5f97ae1a 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -3943,6 +3943,11 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) - return r; - } - -+#ifdef AMD_PRIVATE_COLOR -+ if (amdgpu_dm_create_color_properties(adev)) -+ return -ENOMEM; -+#endif -+ - r = amdgpu_dm_audio_init(adev); - if (r) { - dc_release_state(state->context); -@@ -4992,7 +4997,9 @@ static int fill_dc_plane_attributes(struct amdgpu_device *adev, - * Always set input transfer function, since plane state is refreshed - * every time. - */ -- ret = amdgpu_dm_update_plane_color_mgmt(dm_crtc_state, dc_plane_state); -+ ret = amdgpu_dm_update_plane_color_mgmt(dm_crtc_state, -+ plane_state, -+ dc_plane_state); - if (ret) - return ret; - -@@ -8007,6 +8014,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, - bundle->surface_updates[planes_count].gamma = dc_plane->gamma_correction; - bundle->surface_updates[planes_count].in_transfer_func = dc_plane->in_transfer_func; - bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix; -+ bundle->surface_updates[planes_count].hdr_mult = dc_plane->hdr_mult; -+ bundle->surface_updates[planes_count].func_shaper = dc_plane->in_shaper_func; -+ bundle->surface_updates[planes_count].lut3d_func = dc_plane->lut3d_func; -+ bundle->surface_updates[planes_count].blend_tf = dc_plane->blend_tf; - } - - amdgpu_dm_plane_fill_dc_scaling_info(dm->adev, new_plane_state, -@@ -8215,6 +8226,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, - &acrtc_state->stream->csc_color_matrix; - bundle->stream_update.out_transfer_func = - acrtc_state->stream->out_transfer_func; -+ bundle->stream_update.lut3d_func = -+ (struct dc_3dlut *) acrtc_state->stream->lut3d_func; -+ bundle->stream_update.func_shaper = -+ (struct dc_transfer_func *) acrtc_state->stream->func_shaper; - } - - acrtc_state->stream->abm_level = acrtc_state->abm_level; -@@ -9405,6 +9420,7 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm, - * when a modeset is needed, to ensure it gets reprogrammed. - */ - if (dm_new_crtc_state->base.color_mgmt_changed || -+ dm_old_crtc_state->regamma_tf != dm_new_crtc_state->regamma_tf || - drm_atomic_crtc_needs_modeset(new_crtc_state)) { - ret = amdgpu_dm_update_crtc_color_mgmt(dm_new_crtc_state); - if (ret) -@@ -9472,6 +9488,10 @@ static bool should_reset_plane(struct drm_atomic_state *state, - */ - for_each_oldnew_plane_in_state(state, other, old_other_state, new_other_state, i) { - struct amdgpu_framebuffer *old_afb, *new_afb; -+ struct dm_plane_state *dm_new_other_state, *dm_old_other_state; -+ -+ dm_new_other_state = to_dm_plane_state(new_other_state); -+ dm_old_other_state = to_dm_plane_state(old_other_state); - - if (other->type == DRM_PLANE_TYPE_CURSOR) - continue; -@@ -9508,6 +9528,18 @@ static bool should_reset_plane(struct drm_atomic_state *state, - old_other_state->color_encoding != new_other_state->color_encoding) - return true; - -+ /* HDR/Transfer Function changes. */ -+ if (dm_old_other_state->degamma_tf != dm_new_other_state->degamma_tf || -+ dm_old_other_state->degamma_lut != dm_new_other_state->degamma_lut || -+ dm_old_other_state->hdr_mult != dm_new_other_state->hdr_mult || -+ dm_old_other_state->ctm != dm_new_other_state->ctm || -+ dm_old_other_state->shaper_lut != dm_new_other_state->shaper_lut || -+ dm_old_other_state->shaper_tf != dm_new_other_state->shaper_tf || -+ dm_old_other_state->lut3d != dm_new_other_state->lut3d || -+ dm_old_other_state->blend_lut != dm_new_other_state->blend_lut || -+ dm_old_other_state->blend_tf != dm_new_other_state->blend_tf) -+ return true; -+ - /* Framebuffer checks fall at the end. */ - if (!old_other_state->fb || !new_other_state->fb) - continue; -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h -index 9fb5bb3a75a777..f92bbd7ed867b0 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h -@@ -51,6 +51,8 @@ - - #define AMDGPU_DMUB_NOTIFICATION_MAX 5 - -+#define AMDGPU_HDR_MULT_DEFAULT (0x100000000LL) -+ - /* - #include "include/amdgpu_dal_power_if.h" - #include "amdgpu_dm_irq.h" -@@ -702,9 +704,91 @@ static inline void amdgpu_dm_set_mst_status(uint8_t *status, - - extern const struct amdgpu_ip_block_version dm_ip_block; - -+enum amdgpu_transfer_function { -+ AMDGPU_TRANSFER_FUNCTION_DEFAULT, -+ AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_BT709_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_PQ_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_LINEAR, -+ AMDGPU_TRANSFER_FUNCTION_UNITY, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF, -+ AMDGPU_TRANSFER_FUNCTION_COUNT -+}; -+ - struct dm_plane_state { - struct drm_plane_state base; - struct dc_plane_state *dc_state; -+ -+ /* Plane color mgmt */ -+ /** -+ * @degamma_lut: -+ * -+ * 1D LUT for mapping framebuffer/plane pixel data before sampling or -+ * blending operations. It's usually applied to linearize input space. -+ * The blob (if not NULL) is an array of &struct drm_color_lut. -+ */ -+ struct drm_property_blob *degamma_lut; -+ /** -+ * @degamma_tf: -+ * -+ * Predefined transfer function to tell DC driver the input space to -+ * linearize. -+ */ -+ enum amdgpu_transfer_function degamma_tf; -+ /** -+ * @hdr_mult: -+ * -+ * Multiplier to 'gain' the plane. When PQ is decoded using the fixed -+ * func transfer function to the internal FP16 fb, 1.0 -> 80 nits (on -+ * AMD at least). When sRGB is decoded, 1.0 -> 1.0, obviously. -+ * Therefore, 1.0 multiplier = 80 nits for SDR content. So if you -+ * want, 203 nits for SDR content, pass in (203.0 / 80.0). Format is -+ * S31.32 sign-magnitude. -+ */ -+ __u64 hdr_mult; -+ /** -+ * @ctm: -+ * -+ * Color transformation matrix. See drm_crtc_enable_color_mgmt(). The -+ * blob (if not NULL) is a &struct drm_color_ctm. -+ */ -+ struct drm_property_blob *ctm; -+ /** -+ * @shaper_lut: shaper lookup table blob. The blob (if not NULL) is an -+ * array of &struct drm_color_lut. -+ */ -+ struct drm_property_blob *shaper_lut; -+ /** -+ * @shaper_tf: -+ * -+ * Predefined transfer function to delinearize color space. -+ */ -+ enum amdgpu_transfer_function shaper_tf; -+ /** -+ * @lut3d: 3D lookup table blob. The blob (if not NULL) is an array of -+ * &struct drm_color_lut. -+ */ -+ struct drm_property_blob *lut3d; -+ /** -+ * @blend_lut: blend lut lookup table blob. The blob (if not NULL) is an -+ * array of &struct drm_color_lut. -+ */ -+ struct drm_property_blob *blend_lut; -+ /** -+ * @blend_tf: -+ * -+ * Pre-defined transfer function for converting plane pixel data before -+ * applying blend LUT. -+ */ -+ enum amdgpu_transfer_function blend_tf; - }; - - struct dm_crtc_state { -@@ -729,6 +813,14 @@ struct dm_crtc_state { - struct dc_info_packet vrr_infopacket; - - int abm_level; -+ -+ /** -+ * @regamma_tf: -+ * -+ * Pre-defined transfer function for converting internal FB -> wire -+ * encoding. -+ */ -+ enum amdgpu_transfer_function regamma_tf; - }; - - #define to_dm_crtc_state(x) container_of(x, struct dm_crtc_state, base) -@@ -790,14 +882,22 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector, - - void amdgpu_dm_trigger_timing_sync(struct drm_device *dev); - -+/* 3D LUT max size is 17x17x17 */ -+#define MAX_COLOR_3DLUT_ENTRIES 4913 -+#define MAX_COLOR_3DLUT_BITDEPTH 12 -+int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev, -+ struct drm_plane_state *plane_state); -+/* 1D LUT size */ - #define MAX_COLOR_LUT_ENTRIES 4096 - /* Legacy gamm LUT users such as X doesn't like large LUT sizes */ - #define MAX_COLOR_LEGACY_LUT_ENTRIES 256 - - void amdgpu_dm_init_color_mod(void); -+int amdgpu_dm_create_color_properties(struct amdgpu_device *adev); - int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state); - int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc); - int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, -+ struct drm_plane_state *plane_state, - struct dc_plane_state *dc_plane_state); - - void amdgpu_dm_update_connector_after_detect( -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c -index a4cb23d059bd6a..0a51af44efd5f7 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c -@@ -72,6 +72,7 @@ - */ - - #define MAX_DRM_LUT_VALUE 0xFFFF -+#define SDR_WHITE_LEVEL_INIT_VALUE 80 - - /** - * amdgpu_dm_init_color_mod - Initialize the color module. -@@ -84,6 +85,213 @@ void amdgpu_dm_init_color_mod(void) - setup_x_points_distribution(); - } - -+#ifdef AMD_PRIVATE_COLOR -+/* Pre-defined Transfer Functions (TF) -+ * -+ * AMD driver supports pre-defined mathematical functions for transferring -+ * between encoded values and optical/linear space. Depending on HW color caps, -+ * ROMs and curves built by the AMD color module support these transforms. -+ * -+ * The driver-specific color implementation exposes properties for pre-blending -+ * degamma TF, shaper TF (before 3D LUT), and blend(dpp.ogam) TF and -+ * post-blending regamma (mpc.ogam) TF. However, only pre-blending degamma -+ * supports ROM curves. AMD color module uses pre-defined coefficients to build -+ * curves for the other blocks. What can be done by each color block is -+ * described by struct dpp_color_capsand struct mpc_color_caps. -+ * -+ * AMD driver-specific color API exposes the following pre-defined transfer -+ * functions: -+ * -+ * - Linear/Unity: linear/identity relationship between pixel value and -+ * luminance value; -+ * - Gamma 2.2, Gamma 2.4, Gamma 2.6: pure gamma functions; -+ * - sRGB: 2.4 gamma with small initial linear section as standardized by IEC -+ * 61966-2-1:1999; -+ * - BT.709 (BT.1886): 2.4 gamma with differences in the dark end of the scale. -+ * Used in HD-TV and standardized by ITU-R BT.1886; -+ * - PQ (Perceptual Quantizer): used for HDR display, allows luminance range -+ * capability of 0 to 10,000 nits; standardized by SMPTE ST 2084. -+ * -+ * In the driver-specific API, color block names attached to TF properties -+ * suggest the intention regarding non-linear encoding pixel's luminance -+ * values. As some newer encodings don't use gamma curve, we make encoding and -+ * decoding explicit by defining an enum list of transfer functions supported -+ * in terms of EOTF and inverse EOTF, where: -+ * -+ * - EOTF (electro-optical transfer function): is the transfer function to go -+ * from the encoded value to an optical (linear) value. De-gamma functions -+ * traditionally do this. -+ * - Inverse EOTF (simply the inverse of the EOTF): is usually intended to go -+ * from an optical/linear space (which might have been used for blending) -+ * back to the encoded values. Gamma functions traditionally do this. -+ */ -+static const char * const -+amdgpu_transfer_function_names[] = { -+ [AMDGPU_TRANSFER_FUNCTION_DEFAULT] = "Default", -+ [AMDGPU_TRANSFER_FUNCTION_LINEAR] = "Linear", -+ [AMDGPU_TRANSFER_FUNCTION_UNITY] = "Unity", -+ [AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF] = "sRGB EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_BT709_EOTF] = "BT.709 EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_PQ_EOTF] = "PQ EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF] = "Gamma 2.2 EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF] = "Gamma 2.4 EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF] = "Gamma 2.6 EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF] = "sRGB inv_EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF] = "BT.709 inv_EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF] = "PQ inv_EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF] = "Gamma 2.2 inv_EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF] = "Gamma 2.4 inv_EOTF", -+ [AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF] = "Gamma 2.6 inv_EOTF", -+}; -+ -+static const u32 amdgpu_eotf = -+ BIT(AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_BT709_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_PQ_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF); -+ -+static const u32 amdgpu_inv_eotf = -+ BIT(AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF); -+ -+static struct drm_property * -+amdgpu_create_tf_property(struct drm_device *dev, -+ const char *name, -+ u32 supported_tf) -+{ -+ u32 transfer_functions = supported_tf | -+ BIT(AMDGPU_TRANSFER_FUNCTION_DEFAULT) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_LINEAR) | -+ BIT(AMDGPU_TRANSFER_FUNCTION_UNITY); -+ struct drm_prop_enum_list enum_list[AMDGPU_TRANSFER_FUNCTION_COUNT]; -+ int i, len; -+ -+ len = 0; -+ for (i = 0; i < AMDGPU_TRANSFER_FUNCTION_COUNT; i++) { -+ if ((transfer_functions & BIT(i)) == 0) -+ continue; -+ -+ enum_list[len].type = i; -+ enum_list[len].name = amdgpu_transfer_function_names[i]; -+ len++; -+ } -+ -+ return drm_property_create_enum(dev, DRM_MODE_PROP_ENUM, -+ name, enum_list, len); -+} -+ -+int -+amdgpu_dm_create_color_properties(struct amdgpu_device *adev) -+{ -+ struct drm_property *prop; -+ -+ prop = drm_property_create(adev_to_drm(adev), -+ DRM_MODE_PROP_BLOB, -+ "AMD_PLANE_DEGAMMA_LUT", 0); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_degamma_lut_property = prop; -+ -+ prop = drm_property_create_range(adev_to_drm(adev), -+ DRM_MODE_PROP_IMMUTABLE, -+ "AMD_PLANE_DEGAMMA_LUT_SIZE", 0, UINT_MAX); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_degamma_lut_size_property = prop; -+ -+ prop = amdgpu_create_tf_property(adev_to_drm(adev), -+ "AMD_PLANE_DEGAMMA_TF", -+ amdgpu_eotf); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_degamma_tf_property = prop; -+ -+ prop = drm_property_create_range(adev_to_drm(adev), -+ 0, "AMD_PLANE_HDR_MULT", 0, U64_MAX); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_hdr_mult_property = prop; -+ -+ prop = drm_property_create(adev_to_drm(adev), -+ DRM_MODE_PROP_BLOB, -+ "AMD_PLANE_CTM", 0); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_ctm_property = prop; -+ -+ prop = drm_property_create(adev_to_drm(adev), -+ DRM_MODE_PROP_BLOB, -+ "AMD_PLANE_SHAPER_LUT", 0); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_shaper_lut_property = prop; -+ -+ prop = drm_property_create_range(adev_to_drm(adev), -+ DRM_MODE_PROP_IMMUTABLE, -+ "AMD_PLANE_SHAPER_LUT_SIZE", 0, UINT_MAX); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_shaper_lut_size_property = prop; -+ -+ prop = amdgpu_create_tf_property(adev_to_drm(adev), -+ "AMD_PLANE_SHAPER_TF", -+ amdgpu_inv_eotf); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_shaper_tf_property = prop; -+ -+ prop = drm_property_create(adev_to_drm(adev), -+ DRM_MODE_PROP_BLOB, -+ "AMD_PLANE_LUT3D", 0); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_lut3d_property = prop; -+ -+ prop = drm_property_create_range(adev_to_drm(adev), -+ DRM_MODE_PROP_IMMUTABLE, -+ "AMD_PLANE_LUT3D_SIZE", 0, UINT_MAX); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_lut3d_size_property = prop; -+ -+ prop = drm_property_create(adev_to_drm(adev), -+ DRM_MODE_PROP_BLOB, -+ "AMD_PLANE_BLEND_LUT", 0); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_blend_lut_property = prop; -+ -+ prop = drm_property_create_range(adev_to_drm(adev), -+ DRM_MODE_PROP_IMMUTABLE, -+ "AMD_PLANE_BLEND_LUT_SIZE", 0, UINT_MAX); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_blend_lut_size_property = prop; -+ -+ prop = amdgpu_create_tf_property(adev_to_drm(adev), -+ "AMD_PLANE_BLEND_TF", -+ amdgpu_eotf); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.plane_blend_tf_property = prop; -+ -+ prop = amdgpu_create_tf_property(adev_to_drm(adev), -+ "AMD_CRTC_REGAMMA_TF", -+ amdgpu_inv_eotf); -+ if (!prop) -+ return -ENOMEM; -+ adev->mode_info.regamma_tf_property = prop; -+ -+ return 0; -+} -+#endif -+ - /** - * __extract_blob_lut - Extracts the DRM lut and lut size from a blob. - * @blob: DRM color mgmt property blob -@@ -182,7 +390,6 @@ static void __drm_lut_to_dc_gamma(const struct drm_color_lut *lut, - static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm, - struct fixed31_32 *matrix) - { -- int64_t val; - int i; - - /* -@@ -201,12 +408,33 @@ static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm, - } - - /* gamut_remap_matrix[i] = ctm[i - floor(i/4)] */ -- val = ctm->matrix[i - (i / 4)]; -- /* If negative, convert to 2's complement. */ -- if (val & (1ULL << 63)) -- val = -(val & ~(1ULL << 63)); -+ matrix[i] = dc_fixpt_from_s3132(ctm->matrix[i - (i / 4)]); -+ } -+} - -- matrix[i].value = val; -+/** -+ * __drm_ctm2_to_dc_matrix - converts a DRM CTM2 to a DC CSC float matrix -+ * @ctm: DRM color transformation matrix -+ * @matrix: DC CSC float matrix -+ * -+ * The matrix needs to be a 3x4 (12 entry) matrix. -+ */ -+static void __drm_ctm2_to_dc_matrix(const struct drm_color_ctm2 *ctm, -+ struct fixed31_32 *matrix) -+{ -+ int i; -+ -+ /* -+ * DRM gives a 3x3 matrix, but DC wants 3x4. Assuming we're operating -+ * with homogeneous coordinates, augment the matrix with 0's. -+ * -+ * The format provided is S31.32, using signed-magnitude representation. -+ * Our fixed31_32 is also S31.32, but is using 2's complement. We have -+ * to convert from signed-magnitude to 2's complement. -+ */ -+ for (i = 0; i < 12; i++) { -+ /* gamut_remap_matrix[i] = ctm[i - floor(i/4)] */ -+ matrix[i] = dc_fixpt_from_s3132(ctm->matrix[i]); - } - } - -@@ -268,16 +496,18 @@ static int __set_output_tf(struct dc_transfer_func *func, - struct calculate_buffer cal_buffer = {0}; - bool res; - -- ASSERT(lut && lut_size == MAX_COLOR_LUT_ENTRIES); -- - cal_buffer.buffer_index = -1; - -- gamma = dc_create_gamma(); -- if (!gamma) -- return -ENOMEM; -+ if (lut_size) { -+ ASSERT(lut && lut_size == MAX_COLOR_LUT_ENTRIES); - -- gamma->num_entries = lut_size; -- __drm_lut_to_dc_gamma(lut, gamma, false); -+ gamma = dc_create_gamma(); -+ if (!gamma) -+ return -ENOMEM; -+ -+ gamma->num_entries = lut_size; -+ __drm_lut_to_dc_gamma(lut, gamma, false); -+ } - - if (func->tf == TRANSFER_FUNCTION_LINEAR) { - /* -@@ -285,27 +515,63 @@ static int __set_output_tf(struct dc_transfer_func *func, - * on top of a linear input. But degamma params can be used - * instead to simulate this. - */ -- gamma->type = GAMMA_CUSTOM; -+ if (gamma) -+ gamma->type = GAMMA_CUSTOM; - res = mod_color_calculate_degamma_params(NULL, func, -- gamma, true); -+ gamma, gamma != NULL); - } else { - /* - * Assume sRGB. The actual mapping will depend on whether the - * input was legacy or not. - */ -- gamma->type = GAMMA_CS_TFM_1D; -- res = mod_color_calculate_regamma_params(func, gamma, false, -+ if (gamma) -+ gamma->type = GAMMA_CS_TFM_1D; -+ res = mod_color_calculate_regamma_params(func, gamma, gamma != NULL, - has_rom, NULL, &cal_buffer); - } - -- dc_gamma_release(&gamma); -+ if (gamma) -+ dc_gamma_release(&gamma); - - return res ? 0 : -ENOMEM; - } - -+static int amdgpu_dm_set_atomic_regamma(struct dc_stream_state *stream, -+ const struct drm_color_lut *regamma_lut, -+ uint32_t regamma_size, bool has_rom, -+ enum dc_transfer_func_predefined tf) -+{ -+ struct dc_transfer_func *out_tf = stream->out_transfer_func; -+ int ret = 0; -+ -+ if (regamma_size || tf != TRANSFER_FUNCTION_LINEAR) { -+ /* CRTC RGM goes into RGM LUT. -+ * -+ * Note: there is no implicit sRGB regamma here. We are using -+ * degamma calculation from color module to calculate the curve -+ * from a linear base. -+ */ -+ out_tf->type = TF_TYPE_DISTRIBUTED_POINTS; -+ out_tf->tf = tf; -+ out_tf->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; -+ -+ ret = __set_output_tf(out_tf, regamma_lut, regamma_size, has_rom); -+ } else { -+ /* -+ * No CRTC RGM means we can just put the block into bypass -+ * since we don't have any plane level adjustments using it. -+ */ -+ out_tf->type = TF_TYPE_BYPASS; -+ out_tf->tf = TRANSFER_FUNCTION_LINEAR; -+ } -+ -+ return ret; -+} -+ - /** - * __set_input_tf - calculates the input transfer function based on expected - * input space. -+ * @caps: dc color capabilities - * @func: transfer function - * @lut: lookup table that defines the color space - * @lut_size: size of respective lut. -@@ -313,27 +579,249 @@ static int __set_output_tf(struct dc_transfer_func *func, - * Returns: - * 0 in case of success. -ENOMEM if fails. - */ --static int __set_input_tf(struct dc_transfer_func *func, -+static int __set_input_tf(struct dc_color_caps *caps, struct dc_transfer_func *func, - const struct drm_color_lut *lut, uint32_t lut_size) - { - struct dc_gamma *gamma = NULL; - bool res; - -- gamma = dc_create_gamma(); -- if (!gamma) -- return -ENOMEM; -+ if (lut_size) { -+ gamma = dc_create_gamma(); -+ if (!gamma) -+ return -ENOMEM; - -- gamma->type = GAMMA_CUSTOM; -- gamma->num_entries = lut_size; -+ gamma->type = GAMMA_CUSTOM; -+ gamma->num_entries = lut_size; - -- __drm_lut_to_dc_gamma(lut, gamma, false); -+ __drm_lut_to_dc_gamma(lut, gamma, false); -+ } - -- res = mod_color_calculate_degamma_params(NULL, func, gamma, true); -- dc_gamma_release(&gamma); -+ res = mod_color_calculate_degamma_params(caps, func, gamma, gamma != NULL); -+ -+ if (gamma) -+ dc_gamma_release(&gamma); - - return res ? 0 : -ENOMEM; - } - -+static enum dc_transfer_func_predefined -+amdgpu_tf_to_dc_tf(enum amdgpu_transfer_function tf) -+{ -+ switch (tf) -+ { -+ default: -+ case AMDGPU_TRANSFER_FUNCTION_DEFAULT: -+ case AMDGPU_TRANSFER_FUNCTION_LINEAR: -+ return TRANSFER_FUNCTION_LINEAR; -+ case AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF: -+ return TRANSFER_FUNCTION_SRGB; -+ case AMDGPU_TRANSFER_FUNCTION_BT709_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF: -+ return TRANSFER_FUNCTION_BT709; -+ case AMDGPU_TRANSFER_FUNCTION_PQ_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF: -+ return TRANSFER_FUNCTION_PQ; -+ case AMDGPU_TRANSFER_FUNCTION_UNITY: -+ return TRANSFER_FUNCTION_UNITY; -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF: -+ return TRANSFER_FUNCTION_GAMMA22; -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF: -+ return TRANSFER_FUNCTION_GAMMA24; -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF: -+ case AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF: -+ return TRANSFER_FUNCTION_GAMMA26; -+ } -+} -+ -+static void __to_dc_lut3d_color(struct dc_rgb *rgb, -+ const struct drm_color_lut lut, -+ int bit_precision) -+{ -+ rgb->red = drm_color_lut_extract(lut.red, bit_precision); -+ rgb->green = drm_color_lut_extract(lut.green, bit_precision); -+ rgb->blue = drm_color_lut_extract(lut.blue, bit_precision); -+} -+ -+static void __drm_3dlut_to_dc_3dlut(const struct drm_color_lut *lut, -+ uint32_t lut3d_size, -+ struct tetrahedral_params *params, -+ bool use_tetrahedral_9, -+ int bit_depth) -+{ -+ struct dc_rgb *lut0; -+ struct dc_rgb *lut1; -+ struct dc_rgb *lut2; -+ struct dc_rgb *lut3; -+ int lut_i, i; -+ -+ -+ if (use_tetrahedral_9) { -+ lut0 = params->tetrahedral_9.lut0; -+ lut1 = params->tetrahedral_9.lut1; -+ lut2 = params->tetrahedral_9.lut2; -+ lut3 = params->tetrahedral_9.lut3; -+ } else { -+ lut0 = params->tetrahedral_17.lut0; -+ lut1 = params->tetrahedral_17.lut1; -+ lut2 = params->tetrahedral_17.lut2; -+ lut3 = params->tetrahedral_17.lut3; -+ } -+ -+ for (lut_i = 0, i = 0; i < lut3d_size - 4; lut_i++, i += 4) { -+ /* We should consider the 3dlut RGB values are distributed -+ * along four arrays lut0-3 where the first sizes 1229 and the -+ * other 1228. The bit depth supported for 3dlut channel is -+ * 12-bit, but DC also supports 10-bit. -+ * -+ * TODO: improve color pipeline API to enable the userspace set -+ * bit depth and 3D LUT size/stride, as specified by VA-API. -+ */ -+ __to_dc_lut3d_color(&lut0[lut_i], lut[i], bit_depth); -+ __to_dc_lut3d_color(&lut1[lut_i], lut[i + 1], bit_depth); -+ __to_dc_lut3d_color(&lut2[lut_i], lut[i + 2], bit_depth); -+ __to_dc_lut3d_color(&lut3[lut_i], lut[i + 3], bit_depth); -+ } -+ /* lut0 has 1229 points (lut_size/4 + 1) */ -+ __to_dc_lut3d_color(&lut0[lut_i], lut[i], bit_depth); -+} -+ -+/* amdgpu_dm_atomic_lut3d - set DRM 3D LUT to DC stream -+ * @drm_lut3d: DRM CRTC (user) 3D LUT -+ * @drm_lut3d_size: size of 3D LUT -+ * @lut3d: DC 3D LUT -+ * -+ * Map DRM CRTC 3D LUT to DC 3D LUT and all necessary bits to program it -+ * on DCN MPC accordingly. -+ */ -+static void amdgpu_dm_atomic_lut3d(const struct drm_color_lut *drm_lut, -+ uint32_t drm_lut3d_size, -+ struct dc_3dlut *lut) -+{ -+ if (!drm_lut3d_size) { -+ lut->state.bits.initialized = 0; -+ } else { -+ /* Stride and bit depth are not programmable by API yet. -+ * Therefore, only supports 17x17x17 3D LUT (12-bit). -+ */ -+ lut->lut_3d.use_tetrahedral_9 = false; -+ lut->lut_3d.use_12bits = true; -+ lut->state.bits.initialized = 1; -+ __drm_3dlut_to_dc_3dlut(drm_lut, drm_lut3d_size, &lut->lut_3d, -+ lut->lut_3d.use_tetrahedral_9, -+ MAX_COLOR_3DLUT_BITDEPTH); -+ } -+} -+ -+static int amdgpu_dm_atomic_shaper_lut(const struct drm_color_lut *shaper_lut, -+ bool has_rom, -+ enum dc_transfer_func_predefined tf, -+ uint32_t shaper_size, -+ struct dc_transfer_func *func_shaper) -+{ -+ int ret = 0; -+ -+ if (shaper_size || tf != TRANSFER_FUNCTION_LINEAR) { -+ /* If DRM shaper LUT is set, we assume a linear color space -+ * (linearized by DRM degamma 1D LUT or not) -+ */ -+ func_shaper->type = TF_TYPE_DISTRIBUTED_POINTS; -+ func_shaper->tf = tf; -+ func_shaper->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; -+ -+ ret = __set_output_tf(func_shaper, shaper_lut, shaper_size, has_rom); -+ } else { -+ func_shaper->type = TF_TYPE_BYPASS; -+ func_shaper->tf = TRANSFER_FUNCTION_LINEAR; -+ } -+ -+ return ret; -+} -+ -+static int amdgpu_dm_atomic_blend_lut(const struct drm_color_lut *blend_lut, -+ bool has_rom, -+ enum dc_transfer_func_predefined tf, -+ uint32_t blend_size, -+ struct dc_transfer_func *func_blend) -+{ -+ int ret = 0; -+ -+ if (blend_size || tf != TRANSFER_FUNCTION_LINEAR) { -+ /* DRM plane gamma LUT or TF means we are linearizing color -+ * space before blending (similar to degamma programming). As -+ * we don't have hardcoded curve support, or we use AMD color -+ * module to fill the parameters that will be translated to HW -+ * points. -+ */ -+ func_blend->type = TF_TYPE_DISTRIBUTED_POINTS; -+ func_blend->tf = tf; -+ func_blend->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; -+ -+ ret = __set_input_tf(NULL, func_blend, blend_lut, blend_size); -+ } else { -+ func_blend->type = TF_TYPE_BYPASS; -+ func_blend->tf = TRANSFER_FUNCTION_LINEAR; -+ } -+ -+ return ret; -+} -+ -+/* amdgpu_dm_lut3d_size - get expected size according to hw color caps -+ * @adev: amdgpu device -+ * @lut_size: default size -+ * -+ * Return: -+ * lut_size if DC 3D LUT is supported, zero otherwise. -+ */ -+static uint32_t amdgpu_dm_get_lut3d_size(struct amdgpu_device *adev, -+ uint32_t lut_size) -+{ -+ return adev->dm.dc->caps.color.dpp.hw_3d_lut ? lut_size : 0; -+} -+ -+/** -+ * amdgpu_dm_verify_lut3d_size - verifies if 3D LUT is supported and if DRM 3D -+ * LUT matches the hw supported size -+ * @adev: amdgpu device -+ * @crtc_state: the DRM CRTC state -+ * -+ * Verifies if post-blending (MPC) 3D LUT is supported by the HW (DCN 3.0 or -+ * newer) and if the DRM 3D LUT matches the supported size. -+ * -+ * Returns: -+ * 0 on success. -EINVAL if lut size are invalid. -+ */ -+int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev, -+ struct drm_plane_state *plane_state) -+{ -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); -+ const struct drm_color_lut *shaper = NULL, *lut3d = NULL; -+ uint32_t exp_size, size; -+ -+ /* shaper LUT is only available if 3D LUT color caps*/ -+ exp_size = amdgpu_dm_get_lut3d_size(adev, MAX_COLOR_LUT_ENTRIES); -+ shaper = __extract_blob_lut(dm_plane_state->shaper_lut, &size); -+ -+ if (shaper && size != exp_size) { -+ drm_dbg(&adev->ddev, -+ "Invalid Shaper LUT size. Should be %u but got %u.\n", -+ exp_size, size); -+ } -+ -+ exp_size = amdgpu_dm_get_lut3d_size(adev, MAX_COLOR_3DLUT_ENTRIES); -+ lut3d = __extract_blob_lut(dm_plane_state->lut3d, &size); -+ -+ if (lut3d && size != exp_size) { -+ drm_dbg(&adev->ddev, "Invalid 3D LUT size. Should be %u but got %u.\n", -+ exp_size, size); -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ - /** - * amdgpu_dm_verify_lut_sizes - verifies if DRM luts match the hw supported sizes - * @crtc_state: the DRM CRTC state -@@ -401,9 +889,12 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) - const struct drm_color_lut *degamma_lut, *regamma_lut; - uint32_t degamma_size, regamma_size; - bool has_regamma, has_degamma; -+ enum dc_transfer_func_predefined tf = TRANSFER_FUNCTION_LINEAR; - bool is_legacy; - int r; - -+ tf = amdgpu_tf_to_dc_tf(crtc->regamma_tf); -+ - r = amdgpu_dm_verify_lut_sizes(&crtc->base); - if (r) - return r; -@@ -440,26 +931,22 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) - stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; - stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB; - -+ /* Note: although we pass has_rom as parameter here, we never -+ * actually use ROM because the color module only takes the ROM -+ * path if transfer_func->type == PREDEFINED. -+ * -+ * See more in mod_color_calculate_regamma_params() -+ */ - r = __set_legacy_tf(stream->out_transfer_func, regamma_lut, - regamma_size, has_rom); - if (r) - return r; -- } else if (has_regamma) { -- /* If atomic regamma, CRTC RGM goes into RGM LUT. */ -- stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; -- stream->out_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; -- -- r = __set_output_tf(stream->out_transfer_func, regamma_lut, -- regamma_size, has_rom); -+ } else { -+ regamma_size = has_regamma ? regamma_size : 0; -+ r = amdgpu_dm_set_atomic_regamma(stream, regamma_lut, -+ regamma_size, has_rom, tf); - if (r) - return r; -- } else { -- /* -- * No CRTC RGM means we can just put the block into bypass -- * since we don't have any plane level adjustments using it. -- */ -- stream->out_transfer_func->type = TF_TYPE_BYPASS; -- stream->out_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; - } - - /* -@@ -495,20 +982,10 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) - return 0; - } - --/** -- * amdgpu_dm_update_plane_color_mgmt: Maps DRM color management to DC plane. -- * @crtc: amdgpu_dm crtc state -- * @dc_plane_state: target DC surface -- * -- * Update the underlying dc_stream_state's input transfer function (ITF) in -- * preparation for hardware commit. The transfer function used depends on -- * the preparation done on the stream for color management. -- * -- * Returns: -- * 0 on success. -ENOMEM if mem allocation fails. -- */ --int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, -- struct dc_plane_state *dc_plane_state) -+static int -+map_crtc_degamma_to_dc_plane(struct dm_crtc_state *crtc, -+ struct dc_plane_state *dc_plane_state, -+ struct dc_color_caps *caps) - { - const struct drm_color_lut *degamma_lut; - enum dc_transfer_func_predefined tf = TRANSFER_FUNCTION_SRGB; -@@ -531,8 +1008,7 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, - °amma_size); - ASSERT(degamma_size == MAX_COLOR_LUT_ENTRIES); - -- dc_plane_state->in_transfer_func->type = -- TF_TYPE_DISTRIBUTED_POINTS; -+ dc_plane_state->in_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; - - /* - * This case isn't fully correct, but also fairly -@@ -564,11 +1040,11 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, - dc_plane_state->in_transfer_func->tf = - TRANSFER_FUNCTION_LINEAR; - -- r = __set_input_tf(dc_plane_state->in_transfer_func, -+ r = __set_input_tf(caps, dc_plane_state->in_transfer_func, - degamma_lut, degamma_size); - if (r) - return r; -- } else if (crtc->cm_is_degamma_srgb) { -+ } else { - /* - * For legacy gamma support we need the regamma input - * in linear space. Assume that the input is sRGB. -@@ -577,14 +1053,213 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, - dc_plane_state->in_transfer_func->tf = tf; - - if (tf != TRANSFER_FUNCTION_SRGB && -- !mod_color_calculate_degamma_params(NULL, -- dc_plane_state->in_transfer_func, NULL, false)) -+ !mod_color_calculate_degamma_params(caps, -+ dc_plane_state->in_transfer_func, -+ NULL, false)) -+ return -ENOMEM; -+ } -+ -+ return 0; -+} -+ -+static int -+__set_dm_plane_degamma(struct drm_plane_state *plane_state, -+ struct dc_plane_state *dc_plane_state, -+ struct dc_color_caps *color_caps) -+{ -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); -+ const struct drm_color_lut *degamma_lut; -+ enum amdgpu_transfer_function tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; -+ uint32_t degamma_size; -+ bool has_degamma_lut; -+ int ret; -+ -+ degamma_lut = __extract_blob_lut(dm_plane_state->degamma_lut, -+ °amma_size); -+ -+ has_degamma_lut = degamma_lut && -+ !__is_lut_linear(degamma_lut, degamma_size); -+ -+ tf = dm_plane_state->degamma_tf; -+ -+ /* If we don't have plane degamma LUT nor TF to set on DC, we have -+ * nothing to do here, return. -+ */ -+ if (!has_degamma_lut && tf == AMDGPU_TRANSFER_FUNCTION_DEFAULT) -+ return -EINVAL; -+ -+ dc_plane_state->in_transfer_func->tf = amdgpu_tf_to_dc_tf(tf); -+ -+ if (has_degamma_lut) { -+ ASSERT(degamma_size == MAX_COLOR_LUT_ENTRIES); -+ -+ dc_plane_state->in_transfer_func->type = -+ TF_TYPE_DISTRIBUTED_POINTS; -+ -+ ret = __set_input_tf(color_caps, dc_plane_state->in_transfer_func, -+ degamma_lut, degamma_size); -+ if (ret) -+ return ret; -+ } else { -+ dc_plane_state->in_transfer_func->type = -+ TF_TYPE_PREDEFINED; -+ -+ if (!mod_color_calculate_degamma_params(color_caps, -+ dc_plane_state->in_transfer_func, NULL, false)) - return -ENOMEM; -- } else { -- /* ...Otherwise we can just bypass the DGM block. */ -- dc_plane_state->in_transfer_func->type = TF_TYPE_BYPASS; -- dc_plane_state->in_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; -+ } -+ return 0; -+} -+ -+static int -+amdgpu_dm_plane_set_color_properties(struct drm_plane_state *plane_state, -+ struct dc_plane_state *dc_plane_state, -+ struct dc_color_caps *color_caps) -+{ -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); -+ enum amdgpu_transfer_function shaper_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; -+ enum amdgpu_transfer_function blend_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; -+ const struct drm_color_lut *shaper_lut, *lut3d, *blend_lut; -+ uint32_t shaper_size, lut3d_size, blend_size; -+ int ret; -+ -+ /* We have nothing to do here, return */ -+ if (!plane_state->color_mgmt_changed) -+ return 0; -+ -+ dc_plane_state->hdr_mult = dc_fixpt_from_s3132(dm_plane_state->hdr_mult); -+ -+ shaper_lut = __extract_blob_lut(dm_plane_state->shaper_lut, &shaper_size); -+ shaper_size = shaper_lut != NULL ? shaper_size : 0; -+ shaper_tf = dm_plane_state->shaper_tf; -+ lut3d = __extract_blob_lut(dm_plane_state->lut3d, &lut3d_size); -+ lut3d_size = lut3d != NULL ? lut3d_size : 0; -+ -+ amdgpu_dm_atomic_lut3d(lut3d, lut3d_size, dc_plane_state->lut3d_func); -+ ret = amdgpu_dm_atomic_shaper_lut(shaper_lut, false, -+ amdgpu_tf_to_dc_tf(shaper_tf), -+ shaper_size, -+ dc_plane_state->in_shaper_func); -+ if (ret) { -+ drm_dbg_kms(plane_state->plane->dev, -+ "setting plane %d shaper LUT failed.\n", -+ plane_state->plane->index); -+ -+ return ret; -+ } -+ -+ blend_tf = dm_plane_state->blend_tf; -+ blend_lut = __extract_blob_lut(dm_plane_state->blend_lut, &blend_size); -+ blend_size = blend_lut != NULL ? blend_size : 0; -+ -+ ret = amdgpu_dm_atomic_blend_lut(blend_lut, false, -+ amdgpu_tf_to_dc_tf(blend_tf), -+ blend_size, dc_plane_state->blend_tf); -+ if (ret) { -+ drm_dbg_kms(plane_state->plane->dev, -+ "setting plane %d gamma lut failed.\n", -+ plane_state->plane->index); -+ -+ return ret; - } - - return 0; - } -+ -+/** -+ * amdgpu_dm_update_plane_color_mgmt: Maps DRM color management to DC plane. -+ * @crtc: amdgpu_dm crtc state -+ * @plane_state: DRM plane state -+ * @dc_plane_state: target DC surface -+ * -+ * Update the underlying dc_stream_state's input transfer function (ITF) in -+ * preparation for hardware commit. The transfer function used depends on -+ * the preparation done on the stream for color management. -+ * -+ * Returns: -+ * 0 on success. -ENOMEM if mem allocation fails. -+ */ -+int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, -+ struct drm_plane_state *plane_state, -+ struct dc_plane_state *dc_plane_state) -+{ -+ struct amdgpu_device *adev = drm_to_adev(crtc->base.state->dev); -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); -+ struct drm_color_ctm2 *ctm = NULL; -+ struct dc_color_caps *color_caps = NULL; -+ bool has_crtc_cm_degamma; -+ int ret; -+ -+ ret = amdgpu_dm_verify_lut3d_size(adev, plane_state); -+ if (ret) { -+ drm_dbg_driver(&adev->ddev, "amdgpu_dm_verify_lut3d_size() failed\n"); -+ return ret; -+ } -+ -+ if (dc_plane_state->ctx && dc_plane_state->ctx->dc) -+ color_caps = &dc_plane_state->ctx->dc->caps.color; -+ -+ /* Initially, we can just bypass the DGM block. */ -+ dc_plane_state->in_transfer_func->type = TF_TYPE_BYPASS; -+ dc_plane_state->in_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; -+ -+ /* After, we start to update values according to color props */ -+ has_crtc_cm_degamma = (crtc->cm_has_degamma || crtc->cm_is_degamma_srgb); -+ -+ ret = __set_dm_plane_degamma(plane_state, dc_plane_state, color_caps); -+ if (ret == -ENOMEM) -+ return ret; -+ -+ /* We only have one degamma block available (pre-blending) for the -+ * whole color correction pipeline, so that we can't actually perform -+ * plane and CRTC degamma at the same time. Explicitly reject atomic -+ * updates when userspace sets both plane and CRTC degamma properties. -+ */ -+ if (has_crtc_cm_degamma && ret != -EINVAL){ -+ drm_dbg_kms(crtc->base.crtc->dev, -+ "doesn't support plane and CRTC degamma at the same time\n"); -+ return -EINVAL; -+ } -+ -+ /* If we are here, it means we don't have plane degamma settings, check -+ * if we have CRTC degamma waiting for mapping to pre-blending degamma -+ * block -+ */ -+ if (has_crtc_cm_degamma) { -+ /* AMD HW doesn't have post-blending degamma caps. When DRM -+ * CRTC atomic degamma is set, we maps it to DPP degamma block -+ * (pre-blending) or, on legacy gamma, we use DPP degamma to -+ * linearize (implicit degamma) from sRGB/BT709 according to -+ * the input space. -+ */ -+ ret = map_crtc_degamma_to_dc_plane(crtc, dc_plane_state, color_caps); -+ if (ret) -+ return ret; -+ } -+ -+ /* Setup CRTC CTM. */ -+ if (dm_plane_state->ctm) { -+ ctm = (struct drm_color_ctm2 *)dm_plane_state->ctm->data; -+ -+ /* -+ * So far, if we have both plane and CRTC CTM, plane CTM takes -+ * the priority and we discard data for CRTC CTM, as -+ * implemented in dcn10_program_gamut_remap(). However, we -+ * have MPC gamut_remap_matrix from DCN3 family, therefore we -+ * can remap MPC programing of the matrix to MPC block and -+ * provide support for both DPP and MPC matrix at the same -+ * time. -+ */ -+ __drm_ctm2_to_dc_matrix(ctm, dc_plane_state->gamut_remap_matrix.matrix); -+ -+ dc_plane_state->gamut_remap_matrix.enable_remap = true; -+ dc_plane_state->input_csc_color_matrix.enable_adjustment = false; -+ } else { -+ /* Bypass CTM. */ -+ dc_plane_state->gamut_remap_matrix.enable_remap = false; -+ dc_plane_state->input_csc_color_matrix.enable_adjustment = false; -+ } -+ -+ return amdgpu_dm_plane_set_color_properties(plane_state, -+ dc_plane_state, color_caps); -+} -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c -index 30d4c6fd95f531..e7b38cce010cc8 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c -@@ -253,6 +253,7 @@ static struct drm_crtc_state *dm_crtc_duplicate_state(struct drm_crtc *crtc) - state->freesync_config = cur->freesync_config; - state->cm_has_degamma = cur->cm_has_degamma; - state->cm_is_degamma_srgb = cur->cm_is_degamma_srgb; -+ state->regamma_tf = cur->regamma_tf; - state->crc_skip_count = cur->crc_skip_count; - state->mpo_requested = cur->mpo_requested; - /* TODO Duplicate dc_stream after objects are stream object is flattened */ -@@ -289,6 +290,70 @@ static int amdgpu_dm_crtc_late_register(struct drm_crtc *crtc) - } - #endif - -+#ifdef AMD_PRIVATE_COLOR -+/** -+ * drm_crtc_additional_color_mgmt - enable additional color properties -+ * @crtc: DRM CRTC -+ * -+ * This function lets the driver enable post-blending CRTC regamma transfer -+ * function property in addition to DRM CRTC gamma LUT. Default value means -+ * linear transfer function, which is the default CRTC gamma LUT behaviour -+ * without this property. -+ */ -+static void -+dm_crtc_additional_color_mgmt(struct drm_crtc *crtc) -+{ -+ struct amdgpu_device *adev = drm_to_adev(crtc->dev); -+ -+ if(adev->dm.dc->caps.color.mpc.ogam_ram) -+ drm_object_attach_property(&crtc->base, -+ adev->mode_info.regamma_tf_property, -+ AMDGPU_TRANSFER_FUNCTION_DEFAULT); -+} -+ -+static int -+amdgpu_dm_atomic_crtc_set_property(struct drm_crtc *crtc, -+ struct drm_crtc_state *state, -+ struct drm_property *property, -+ uint64_t val) -+{ -+ struct amdgpu_device *adev = drm_to_adev(crtc->dev); -+ struct dm_crtc_state *acrtc_state = to_dm_crtc_state(state); -+ -+ if (property == adev->mode_info.regamma_tf_property) { -+ if (acrtc_state->regamma_tf != val) { -+ acrtc_state->regamma_tf = val; -+ acrtc_state->base.color_mgmt_changed |= 1; -+ } -+ } else { -+ drm_dbg_atomic(crtc->dev, -+ "[CRTC:%d:%s] unknown property [PROP:%d:%s]]\n", -+ crtc->base.id, crtc->name, -+ property->base.id, property->name); -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ -+static int -+amdgpu_dm_atomic_crtc_get_property(struct drm_crtc *crtc, -+ const struct drm_crtc_state *state, -+ struct drm_property *property, -+ uint64_t *val) -+{ -+ struct amdgpu_device *adev = drm_to_adev(crtc->dev); -+ struct dm_crtc_state *acrtc_state = to_dm_crtc_state(state); -+ -+ if (property == adev->mode_info.regamma_tf_property) -+ *val = acrtc_state->regamma_tf; -+ else -+ return -EINVAL; -+ -+ return 0; -+} -+#endif -+ - /* Implemented only the options currently available for the driver */ - static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = { - .reset = dm_crtc_reset_state, -@@ -307,6 +372,10 @@ static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = { - #if defined(CONFIG_DEBUG_FS) - .late_register = amdgpu_dm_crtc_late_register, - #endif -+#ifdef AMD_PRIVATE_COLOR -+ .atomic_set_property = amdgpu_dm_atomic_crtc_set_property, -+ .atomic_get_property = amdgpu_dm_atomic_crtc_get_property, -+#endif - }; - - static void dm_crtc_helper_disable(struct drm_crtc *crtc) -@@ -482,6 +551,9 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, - - drm_mode_crtc_set_gamma_size(&acrtc->base, MAX_COLOR_LEGACY_LUT_ENTRIES); - -+#ifdef AMD_PRIVATE_COLOR -+ dm_crtc_additional_color_mgmt(&acrtc->base); -+#endif - return 0; - - fail: -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c -index 32266897374792..60e5ffb1863d74 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c -@@ -1317,8 +1317,14 @@ static void dm_drm_plane_reset(struct drm_plane *plane) - amdgpu_state = kzalloc(sizeof(*amdgpu_state), GFP_KERNEL); - WARN_ON(amdgpu_state == NULL); - -- if (amdgpu_state) -- __drm_atomic_helper_plane_reset(plane, &amdgpu_state->base); -+ if (!amdgpu_state) -+ return; -+ -+ __drm_atomic_helper_plane_reset(plane, &amdgpu_state->base); -+ amdgpu_state->degamma_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; -+ amdgpu_state->hdr_mult = AMDGPU_HDR_MULT_DEFAULT; -+ amdgpu_state->shaper_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; -+ amdgpu_state->blend_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; - } - - static struct drm_plane_state * -@@ -1338,6 +1344,22 @@ dm_drm_plane_duplicate_state(struct drm_plane *plane) - dc_plane_state_retain(dm_plane_state->dc_state); - } - -+ if (dm_plane_state->degamma_lut) -+ drm_property_blob_get(dm_plane_state->degamma_lut); -+ if (dm_plane_state->ctm) -+ drm_property_blob_get(dm_plane_state->ctm); -+ if (dm_plane_state->shaper_lut) -+ drm_property_blob_get(dm_plane_state->shaper_lut); -+ if (dm_plane_state->lut3d) -+ drm_property_blob_get(dm_plane_state->lut3d); -+ if (dm_plane_state->blend_lut) -+ drm_property_blob_get(dm_plane_state->blend_lut); -+ -+ dm_plane_state->degamma_tf = old_dm_plane_state->degamma_tf; -+ dm_plane_state->hdr_mult = old_dm_plane_state->hdr_mult; -+ dm_plane_state->shaper_tf = old_dm_plane_state->shaper_tf; -+ dm_plane_state->blend_tf = old_dm_plane_state->blend_tf; -+ - return &dm_plane_state->base; - } - -@@ -1405,12 +1427,203 @@ static void dm_drm_plane_destroy_state(struct drm_plane *plane, - { - struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); - -+ if (dm_plane_state->degamma_lut) -+ drm_property_blob_put(dm_plane_state->degamma_lut); -+ if (dm_plane_state->ctm) -+ drm_property_blob_put(dm_plane_state->ctm); -+ if (dm_plane_state->lut3d) -+ drm_property_blob_put(dm_plane_state->lut3d); -+ if (dm_plane_state->shaper_lut) -+ drm_property_blob_put(dm_plane_state->shaper_lut); -+ if (dm_plane_state->blend_lut) -+ drm_property_blob_put(dm_plane_state->blend_lut); -+ - if (dm_plane_state->dc_state) - dc_plane_state_release(dm_plane_state->dc_state); - - drm_atomic_helper_plane_destroy_state(plane, state); - } - -+#ifdef AMD_PRIVATE_COLOR -+static void -+dm_atomic_plane_attach_color_mgmt_properties(struct amdgpu_display_manager *dm, -+ struct drm_plane *plane) -+{ -+ struct amdgpu_mode_info mode_info = dm->adev->mode_info; -+ struct dpp_color_caps dpp_color_caps = dm->dc->caps.color.dpp; -+ -+ /* Check HW color pipeline capabilities for DPP (pre-blending) before expose*/ -+ if (dpp_color_caps.dgam_ram || dpp_color_caps.gamma_corr) { -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_degamma_lut_property, 0); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_degamma_lut_size_property, -+ MAX_COLOR_LUT_ENTRIES); -+ drm_object_attach_property(&plane->base, -+ dm->adev->mode_info.plane_degamma_tf_property, -+ AMDGPU_TRANSFER_FUNCTION_DEFAULT); -+ } -+ /* HDR MULT is always available */ -+ drm_object_attach_property(&plane->base, -+ dm->adev->mode_info.plane_hdr_mult_property, -+ AMDGPU_HDR_MULT_DEFAULT); -+ -+ /* Only enable plane CTM if both DPP and MPC gamut remap is available. */ -+ if (dm->dc->caps.color.mpc.gamut_remap) -+ drm_object_attach_property(&plane->base, -+ dm->adev->mode_info.plane_ctm_property, 0); -+ -+ if (dpp_color_caps.hw_3d_lut) { -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_shaper_lut_property, 0); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_shaper_lut_size_property, -+ MAX_COLOR_LUT_ENTRIES); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_shaper_tf_property, -+ AMDGPU_TRANSFER_FUNCTION_DEFAULT); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_lut3d_property, 0); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_lut3d_size_property, -+ MAX_COLOR_3DLUT_ENTRIES); -+ } -+ -+ if (dpp_color_caps.ogam_ram) { -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_blend_lut_property, 0); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_blend_lut_size_property, -+ MAX_COLOR_LUT_ENTRIES); -+ drm_object_attach_property(&plane->base, -+ mode_info.plane_blend_tf_property, -+ AMDGPU_TRANSFER_FUNCTION_DEFAULT); -+ } -+} -+ -+static int -+dm_atomic_plane_set_property(struct drm_plane *plane, -+ struct drm_plane_state *state, -+ struct drm_property *property, -+ uint64_t val) -+{ -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); -+ struct amdgpu_device *adev = drm_to_adev(plane->dev); -+ bool replaced = false; -+ int ret; -+ -+ if (property == adev->mode_info.plane_degamma_lut_property) { -+ ret = drm_property_replace_blob_from_id(plane->dev, -+ &dm_plane_state->degamma_lut, -+ val, -+ -1, sizeof(struct drm_color_lut), -+ &replaced); -+ dm_plane_state->base.color_mgmt_changed |= replaced; -+ return ret; -+ } else if (property == adev->mode_info.plane_degamma_tf_property) { -+ if (dm_plane_state->degamma_tf != val) { -+ dm_plane_state->degamma_tf = val; -+ dm_plane_state->base.color_mgmt_changed = 1; -+ } -+ } else if (property == adev->mode_info.plane_hdr_mult_property) { -+ if (dm_plane_state->hdr_mult != val) { -+ dm_plane_state->hdr_mult = val; -+ dm_plane_state->base.color_mgmt_changed = 1; -+ } -+ } else if (property == adev->mode_info.plane_ctm_property) { -+ ret = drm_property_replace_blob_from_id(plane->dev, -+ &dm_plane_state->ctm, -+ val, -+ sizeof(struct drm_color_ctm2), -1, -+ &replaced); -+ dm_plane_state->base.color_mgmt_changed |= replaced; -+ return ret; -+ } else if (property == adev->mode_info.plane_shaper_lut_property) { -+ ret = drm_property_replace_blob_from_id(plane->dev, -+ &dm_plane_state->shaper_lut, -+ val, -1, -+ sizeof(struct drm_color_lut), -+ &replaced); -+ dm_plane_state->base.color_mgmt_changed |= replaced; -+ return ret; -+ } else if (property == adev->mode_info.plane_shaper_tf_property) { -+ if (dm_plane_state->shaper_tf != val) { -+ dm_plane_state->shaper_tf = val; -+ dm_plane_state->base.color_mgmt_changed = 1; -+ } -+ } else if (property == adev->mode_info.plane_lut3d_property) { -+ ret = drm_property_replace_blob_from_id(plane->dev, -+ &dm_plane_state->lut3d, -+ val, -1, -+ sizeof(struct drm_color_lut), -+ &replaced); -+ dm_plane_state->base.color_mgmt_changed |= replaced; -+ return ret; -+ } else if (property == adev->mode_info.plane_blend_lut_property) { -+ ret = drm_property_replace_blob_from_id(plane->dev, -+ &dm_plane_state->blend_lut, -+ val, -1, -+ sizeof(struct drm_color_lut), -+ &replaced); -+ dm_plane_state->base.color_mgmt_changed |= replaced; -+ return ret; -+ } else if (property == adev->mode_info.plane_blend_tf_property) { -+ if (dm_plane_state->blend_tf != val) { -+ dm_plane_state->blend_tf = val; -+ dm_plane_state->base.color_mgmt_changed = 1; -+ } -+ } else { -+ drm_dbg_atomic(plane->dev, -+ "[PLANE:%d:%s] unknown property [PROP:%d:%s]]\n", -+ plane->base.id, plane->name, -+ property->base.id, property->name); -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ -+static int -+dm_atomic_plane_get_property(struct drm_plane *plane, -+ const struct drm_plane_state *state, -+ struct drm_property *property, -+ uint64_t *val) -+{ -+ struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); -+ struct amdgpu_device *adev = drm_to_adev(plane->dev); -+ -+ if (property == adev->mode_info.plane_degamma_lut_property) { -+ *val = (dm_plane_state->degamma_lut) ? -+ dm_plane_state->degamma_lut->base.id : 0; -+ } else if (property == adev->mode_info.plane_degamma_tf_property) { -+ *val = dm_plane_state->degamma_tf; -+ } else if (property == adev->mode_info.plane_hdr_mult_property) { -+ *val = dm_plane_state->hdr_mult; -+ } else if (property == adev->mode_info.plane_ctm_property) { -+ *val = (dm_plane_state->ctm) ? -+ dm_plane_state->ctm->base.id : 0; -+ } else if (property == adev->mode_info.plane_shaper_lut_property) { -+ *val = (dm_plane_state->shaper_lut) ? -+ dm_plane_state->shaper_lut->base.id : 0; -+ } else if (property == adev->mode_info.plane_shaper_tf_property) { -+ *val = dm_plane_state->shaper_tf; -+ } else if (property == adev->mode_info.plane_lut3d_property) { -+ *val = (dm_plane_state->lut3d) ? -+ dm_plane_state->lut3d->base.id : 0; -+ } else if (property == adev->mode_info.plane_blend_lut_property) { -+ *val = (dm_plane_state->blend_lut) ? -+ dm_plane_state->blend_lut->base.id : 0; -+ } else if (property == adev->mode_info.plane_blend_tf_property) { -+ *val = dm_plane_state->blend_tf; -+ -+ } else { -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+#endif -+ - static const struct drm_plane_funcs dm_plane_funcs = { - .update_plane = drm_atomic_helper_update_plane, - .disable_plane = drm_atomic_helper_disable_plane, -@@ -1419,6 +1632,10 @@ static const struct drm_plane_funcs dm_plane_funcs = { - .atomic_duplicate_state = dm_drm_plane_duplicate_state, - .atomic_destroy_state = dm_drm_plane_destroy_state, - .format_mod_supported = dm_plane_format_mod_supported, -+#ifdef AMD_PRIVATE_COLOR -+ .atomic_set_property = dm_atomic_plane_set_property, -+ .atomic_get_property = dm_atomic_plane_get_property, -+#endif - }; - - int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, -@@ -1489,6 +1706,9 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, - - drm_plane_helper_add(plane, &dm_plane_helper_funcs); - -+#ifdef AMD_PRIVATE_COLOR -+ dm_atomic_plane_attach_color_mgmt_properties(dm, plane); -+#endif - /* Create (reset) the plane state */ - if (plane->funcs->reset) - plane->funcs->reset(plane); -diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c -index 3538973bd0c6cb..04b2e04b68f33b 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c -@@ -349,20 +349,37 @@ bool cm_helper_translate_curve_to_hw_format(struct dc_context *ctx, - * segment is from 2^-10 to 2^1 - * There are less than 256 points, for optimization - */ -- seg_distr[0] = 3; -- seg_distr[1] = 4; -- seg_distr[2] = 4; -- seg_distr[3] = 4; -- seg_distr[4] = 4; -- seg_distr[5] = 4; -- seg_distr[6] = 4; -- seg_distr[7] = 4; -- seg_distr[8] = 4; -- seg_distr[9] = 4; -- seg_distr[10] = 1; -- -- region_start = -10; -- region_end = 1; -+ if (output_tf->tf == TRANSFER_FUNCTION_LINEAR) { -+ seg_distr[0] = 0; /* 2 */ -+ seg_distr[1] = 1; /* 4 */ -+ seg_distr[2] = 2; /* 4 */ -+ seg_distr[3] = 3; /* 8 */ -+ seg_distr[4] = 4; /* 16 */ -+ seg_distr[5] = 5; /* 32 */ -+ seg_distr[6] = 6; /* 64 */ -+ seg_distr[7] = 7; /* 128 */ -+ -+ region_start = -8; -+ region_end = 1; -+ } else { -+ seg_distr[0] = 3; /* 8 */ -+ seg_distr[1] = 4; /* 16 */ -+ seg_distr[2] = 4; -+ seg_distr[3] = 4; -+ seg_distr[4] = 4; -+ seg_distr[5] = 4; -+ seg_distr[6] = 4; -+ seg_distr[7] = 4; -+ seg_distr[8] = 4; -+ seg_distr[9] = 4; -+ seg_distr[10] = 1; /* 2 */ -+ /* total = 8*16 + 8 + 64 + 2 = */ -+ -+ region_start = -10; -+ region_end = 1; -+ } -+ -+ - } - - for (i = region_end - region_start; i < MAX_REGIONS_NUMBER ; i++) -@@ -375,16 +392,56 @@ bool cm_helper_translate_curve_to_hw_format(struct dc_context *ctx, - - j = 0; - for (k = 0; k < (region_end - region_start); k++) { -- increment = NUMBER_SW_SEGMENTS / (1 << seg_distr[k]); -+ /* -+ * We're using an ugly-ish hack here. Our HW allows for -+ * 256 segments per region but SW_SEGMENTS is 16. -+ * SW_SEGMENTS has some undocumented relationship to -+ * the number of points in the tf_pts struct, which -+ * is 512, unlike what's suggested TRANSFER_FUNC_POINTS. -+ * -+ * In order to work past this dilemma we'll scale our -+ * increment by (1 << 4) and then do the inverse (1 >> 4) -+ * when accessing the elements in tf_pts. -+ * -+ * TODO: find a better way using SW_SEGMENTS and -+ * TRANSFER_FUNC_POINTS definitions -+ */ -+ increment = (NUMBER_SW_SEGMENTS << 4) / (1 << seg_distr[k]); - start_index = (region_start + k + MAX_LOW_POINT) * - NUMBER_SW_SEGMENTS; -- for (i = start_index; i < start_index + NUMBER_SW_SEGMENTS; -+ for (i = (start_index << 4); i < (start_index << 4) + (NUMBER_SW_SEGMENTS << 4); - i += increment) { -+ struct fixed31_32 in_plus_one, in; -+ struct fixed31_32 value, red_value, green_value, blue_value; -+ uint32_t t = i & 0xf; -+ - if (j == hw_points - 1) - break; -- rgb_resulted[j].red = output_tf->tf_pts.red[i]; -- rgb_resulted[j].green = output_tf->tf_pts.green[i]; -- rgb_resulted[j].blue = output_tf->tf_pts.blue[i]; -+ -+ in_plus_one = output_tf->tf_pts.red[(i >> 4) + 1]; -+ in = output_tf->tf_pts.red[i >> 4]; -+ value = dc_fixpt_sub(in_plus_one, in); -+ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); -+ value = dc_fixpt_add(in, value); -+ red_value = value; -+ -+ in_plus_one = output_tf->tf_pts.green[(i >> 4) + 1]; -+ in = output_tf->tf_pts.green[i >> 4]; -+ value = dc_fixpt_sub(in_plus_one, in); -+ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); -+ value = dc_fixpt_add(in, value); -+ green_value = value; -+ -+ in_plus_one = output_tf->tf_pts.blue[(i >> 4) + 1]; -+ in = output_tf->tf_pts.blue[i >> 4]; -+ value = dc_fixpt_sub(in_plus_one, in); -+ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); -+ value = dc_fixpt_add(in, value); -+ blue_value = value; -+ -+ rgb_resulted[j].red = red_value; -+ rgb_resulted[j].green = green_value; -+ rgb_resulted[j].blue = blue_value; - j++; - } - } -diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c -index bf8864bc8a99ee..72558eb877dc65 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c -@@ -186,6 +186,43 @@ bool dcn30_set_input_transfer_func(struct dc *dc, - return result; - } - -+void dcn30_program_gamut_remap(struct pipe_ctx *pipe_ctx) -+{ -+ int i = 0; -+ struct dpp_grph_csc_adjustment dpp_adjust; -+ struct mpc_grph_gamut_adjustment mpc_adjust; -+ int mpcc_id = pipe_ctx->plane_res.hubp->inst; -+ struct mpc *mpc = pipe_ctx->stream_res.opp->ctx->dc->res_pool->mpc; -+ -+ memset(&dpp_adjust, 0, sizeof(dpp_adjust)); -+ dpp_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS; -+ -+ if (pipe_ctx->plane_state && -+ pipe_ctx->plane_state->gamut_remap_matrix.enable_remap == true) { -+ dpp_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_SW; -+ for (i = 0; i < CSC_TEMPERATURE_MATRIX_SIZE; i++) -+ dpp_adjust.temperature_matrix[i] = -+ pipe_ctx->plane_state->gamut_remap_matrix.matrix[i]; -+ } -+ -+ pipe_ctx->plane_res.dpp->funcs->dpp_set_gamut_remap(pipe_ctx->plane_res.dpp, -+ &dpp_adjust); -+ -+ memset(&mpc_adjust, 0, sizeof(mpc_adjust)); -+ mpc_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS; -+ -+ if (pipe_ctx->top_pipe == NULL) { -+ if (pipe_ctx->stream->gamut_remap_matrix.enable_remap == true) { -+ mpc_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_SW; -+ for (i = 0; i < CSC_TEMPERATURE_MATRIX_SIZE; i++) -+ mpc_adjust.temperature_matrix[i] = -+ pipe_ctx->stream->gamut_remap_matrix.matrix[i]; -+ } -+ } -+ -+ mpc->funcs->set_gamut_remap(mpc, mpcc_id, &mpc_adjust); -+} -+ - bool dcn30_set_output_transfer_func(struct dc *dc, - struct pipe_ctx *pipe_ctx, - const struct dc_stream_state *stream) -diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h -index a24a8e33a3d289..cb34ca932a5ff8 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h -+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h -@@ -58,6 +58,9 @@ bool dcn30_set_blend_lut(struct pipe_ctx *pipe_ctx, - bool dcn30_set_input_transfer_func(struct dc *dc, - struct pipe_ctx *pipe_ctx, - const struct dc_plane_state *plane_state); -+ -+void dcn30_program_gamut_remap(struct pipe_ctx *pipe_ctx); -+ - bool dcn30_set_output_transfer_func(struct dc *dc, - struct pipe_ctx *pipe_ctx, - const struct dc_stream_state *stream); -diff --git a/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c b/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c -index 257df8660b4caf..81fd50ee97c307 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c -@@ -33,7 +33,7 @@ - #include "dcn301_init.h" - - static const struct hw_sequencer_funcs dcn301_funcs = { -- .program_gamut_remap = dcn10_program_gamut_remap, -+ .program_gamut_remap = dcn30_program_gamut_remap, - .init_hw = dcn10_init_hw, - .power_down_on_boot = dcn10_power_down_on_boot, - .apply_ctx_to_hw = dce110_apply_ctx_to_hw, -diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h -index d4cf7ead1d877e..84da1dd34efd18 100644 ---- a/drivers/gpu/drm/amd/display/include/fixed31_32.h -+++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h -@@ -69,6 +69,18 @@ static const struct fixed31_32 dc_fixpt_epsilon = { 1LL }; - static const struct fixed31_32 dc_fixpt_half = { 0x80000000LL }; - static const struct fixed31_32 dc_fixpt_one = { 0x100000000LL }; - -+static inline struct fixed31_32 dc_fixpt_from_s3132(__u64 x) -+{ -+ struct fixed31_32 val; -+ -+ /* If negative, convert to 2's complement. */ -+ if (x & (1ULL << 63)) -+ x = -(x & ~(1ULL << 63)); -+ -+ val.value = x; -+ return val; -+} -+ - /* - * @brief - * Initialization routines -diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c -index dc01c43f61930b..d72c22dcf6855a 100644 ---- a/drivers/gpu/drm/arm/malidp_crtc.c -+++ b/drivers/gpu/drm/arm/malidp_crtc.c -@@ -221,7 +221,7 @@ static int malidp_crtc_atomic_check_ctm(struct drm_crtc *crtc, - - /* - * The size of the ctm is checked in -- * drm_atomic_replace_property_blob_from_id. -+ * drm_property_replace_blob_from_id. - */ - ctm = (struct drm_color_ctm *)state->ctm->data; - for (i = 0; i < ARRAY_SIZE(ctm->matrix); ++i) { -diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c -index c277b198fa3fa2..c3df45f901456b 100644 ---- a/drivers/gpu/drm/drm_atomic.c -+++ b/drivers/gpu/drm/drm_atomic.c -@@ -733,6 +733,7 @@ static void drm_atomic_plane_print_state(struct drm_printer *p, - drm_get_color_encoding_name(state->color_encoding)); - drm_printf(p, "\tcolor-range=%s\n", - drm_get_color_range_name(state->color_range)); -+ drm_printf(p, "\tcolor_mgmt_changed=%d\n", state->color_mgmt_changed); - - if (plane->funcs->atomic_print_state) - plane->funcs->atomic_print_state(p, state); -diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c -index 784e63d70a421e..25bb0859fda74d 100644 ---- a/drivers/gpu/drm/drm_atomic_state_helper.c -+++ b/drivers/gpu/drm/drm_atomic_state_helper.c -@@ -338,6 +338,7 @@ void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane, - state->fence = NULL; - state->commit = NULL; - state->fb_damage_clips = NULL; -+ state->color_mgmt_changed = false; - } - EXPORT_SYMBOL(__drm_atomic_helper_plane_duplicate_state); - -diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c -index d867e7f9f2cd58..a6a9ee5086ddb1 100644 ---- a/drivers/gpu/drm/drm_atomic_uapi.c -+++ b/drivers/gpu/drm/drm_atomic_uapi.c -@@ -362,39 +362,6 @@ static s32 __user *get_out_fence_for_connector(struct drm_atomic_state *state, - return fence_ptr; - } - --static int --drm_atomic_replace_property_blob_from_id(struct drm_device *dev, -- struct drm_property_blob **blob, -- uint64_t blob_id, -- ssize_t expected_size, -- ssize_t expected_elem_size, -- bool *replaced) --{ -- struct drm_property_blob *new_blob = NULL; -- -- if (blob_id != 0) { -- new_blob = drm_property_lookup_blob(dev, blob_id); -- if (new_blob == NULL) -- return -EINVAL; -- -- if (expected_size > 0 && -- new_blob->length != expected_size) { -- drm_property_blob_put(new_blob); -- return -EINVAL; -- } -- if (expected_elem_size > 0 && -- new_blob->length % expected_elem_size != 0) { -- drm_property_blob_put(new_blob); -- return -EINVAL; -- } -- } -- -- *replaced |= drm_property_replace_blob(blob, new_blob); -- drm_property_blob_put(new_blob); -- -- return 0; --} -- - static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, - struct drm_crtc_state *state, struct drm_property *property, - uint64_t val) -@@ -415,7 +382,7 @@ static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, - } else if (property == config->prop_vrr_enabled) { - state->vrr_enabled = val; - } else if (property == config->degamma_lut_property) { -- ret = drm_atomic_replace_property_blob_from_id(dev, -+ ret = drm_property_replace_blob_from_id(dev, - &state->degamma_lut, - val, - -1, sizeof(struct drm_color_lut), -@@ -423,7 +390,7 @@ static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, - state->color_mgmt_changed |= replaced; - return ret; - } else if (property == config->ctm_property) { -- ret = drm_atomic_replace_property_blob_from_id(dev, -+ ret = drm_property_replace_blob_from_id(dev, - &state->ctm, - val, - sizeof(struct drm_color_ctm), -1, -@@ -431,7 +398,7 @@ static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, - state->color_mgmt_changed |= replaced; - return ret; - } else if (property == config->gamma_lut_property) { -- ret = drm_atomic_replace_property_blob_from_id(dev, -+ ret = drm_property_replace_blob_from_id(dev, - &state->gamma_lut, - val, - -1, sizeof(struct drm_color_lut), -@@ -563,7 +530,7 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane, - } else if (property == plane->color_range_property) { - state->color_range = val; - } else if (property == config->prop_fb_damage_clips) { -- ret = drm_atomic_replace_property_blob_from_id(dev, -+ ret = drm_property_replace_blob_from_id(dev, - &state->fb_damage_clips, - val, - -1, -@@ -729,7 +696,7 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector, - if (state->link_status != DRM_LINK_STATUS_GOOD) - state->link_status = val; - } else if (property == config->hdr_output_metadata_property) { -- ret = drm_atomic_replace_property_blob_from_id(dev, -+ ret = drm_property_replace_blob_from_id(dev, - &state->hdr_output_metadata, - val, - sizeof(struct hdr_output_metadata), -1, -diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c -index dfec479830e496..f72ef6493340a7 100644 ---- a/drivers/gpu/drm/drm_property.c -+++ b/drivers/gpu/drm/drm_property.c -@@ -751,6 +751,55 @@ bool drm_property_replace_blob(struct drm_property_blob **blob, - } - EXPORT_SYMBOL(drm_property_replace_blob); - -+/** -+ * drm_property_replace_blob_from_id - replace a blob property taking a reference -+ * @dev: DRM device -+ * @blob: a pointer to the member blob to be replaced -+ * @blob_id: the id of the new blob to replace with -+ * @expected_size: expected size of the blob property -+ * @expected_elem_size: expected size of an element in the blob property -+ * @replaced: if the blob was in fact replaced -+ * -+ * Look up the new blob from id, take its reference, check expected sizes of -+ * the blob and its element and replace the old blob by the new one. Advertise -+ * if the replacement operation was successful. -+ * -+ * Return: true if the blob was in fact replaced. -EINVAL if the new blob was -+ * not found or sizes don't match. -+ */ -+int drm_property_replace_blob_from_id(struct drm_device *dev, -+ struct drm_property_blob **blob, -+ uint64_t blob_id, -+ ssize_t expected_size, -+ ssize_t expected_elem_size, -+ bool *replaced) -+{ -+ struct drm_property_blob *new_blob = NULL; -+ -+ if (blob_id != 0) { -+ new_blob = drm_property_lookup_blob(dev, blob_id); -+ if (new_blob == NULL) -+ return -EINVAL; -+ -+ if (expected_size > 0 && -+ new_blob->length != expected_size) { -+ drm_property_blob_put(new_blob); -+ return -EINVAL; -+ } -+ if (expected_elem_size > 0 && -+ new_blob->length % expected_elem_size != 0) { -+ drm_property_blob_put(new_blob); -+ return -EINVAL; -+ } -+ } -+ -+ *replaced |= drm_property_replace_blob(blob, new_blob); -+ drm_property_blob_put(new_blob); -+ -+ return 0; -+} -+EXPORT_SYMBOL(drm_property_replace_blob_from_id); -+ - int drm_mode_getblob_ioctl(struct drm_device *dev, - void *data, struct drm_file *file_priv) - { -diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h -index 912f1e4156853f..08d7a7f0188fea 100644 ---- a/include/drm/drm_mode_object.h -+++ b/include/drm/drm_mode_object.h -@@ -60,7 +60,7 @@ struct drm_mode_object { - void (*free_cb)(struct kref *kref); - }; - --#define DRM_OBJECT_MAX_PROPERTY 24 -+#define DRM_OBJECT_MAX_PROPERTY 64 - /** - * struct drm_object_properties - property tracking for &drm_mode_object - */ -diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h -index 51291983ea445d..52c3287da0daad 100644 ---- a/include/drm/drm_plane.h -+++ b/include/drm/drm_plane.h -@@ -237,6 +237,13 @@ struct drm_plane_state { - - /** @state: backpointer to global drm_atomic_state */ - struct drm_atomic_state *state; -+ -+ /** -+ * @color_mgmt_changed: Color management properties have changed. Used -+ * by the atomic helpers and drivers to steer the atomic commit control -+ * flow. -+ */ -+ bool color_mgmt_changed : 1; - }; - - static inline struct drm_rect -diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h -index 65bc9710a47029..082f29156b3e3f 100644 ---- a/include/drm/drm_property.h -+++ b/include/drm/drm_property.h -@@ -279,6 +279,12 @@ struct drm_property_blob *drm_property_create_blob(struct drm_device *dev, - const void *data); - struct drm_property_blob *drm_property_lookup_blob(struct drm_device *dev, - uint32_t id); -+int drm_property_replace_blob_from_id(struct drm_device *dev, -+ struct drm_property_blob **blob, -+ uint64_t blob_id, -+ ssize_t expected_size, -+ ssize_t expected_elem_size, -+ bool *replaced); - int drm_property_replace_global_blob(struct drm_device *dev, - struct drm_property_blob **replace, - size_t length, -diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h -index 43691058d28fb8..23fc194009980f 100644 ---- a/include/uapi/drm/drm_mode.h -+++ b/include/uapi/drm/drm_mode.h -@@ -843,6 +843,14 @@ struct drm_color_ctm { - __u64 matrix[9]; - }; - -+struct drm_color_ctm2 { -+ /* -+ * Conversion matrix in S31.32 sign-magnitude -+ * (not two's complement!) format. -+ */ -+ __u64 matrix[12]; -+}; -+ - struct drm_color_lut { - /* - * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and - diff --git a/SOURCES/0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch b/SOURCES/0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch new file mode 100644 index 0000000..6eac856 --- /dev/null +++ b/SOURCES/0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch @@ -0,0 +1,108 @@ +From 7d86ca8db51f6b75b5c1470d6294c6f24221f560 Mon Sep 17 00:00:00 2001 +From: GloriousEggroll +Date: Mon, 30 Oct 2023 22:36:19 -0600 +Subject: [PATCH] Revert "nvme-pci: drop redundant + pci_enable_pcie_error_reporting()" + +This reverts commits: +1ad11eafc63ac16e667853bee4273879226d2d1b +7ec4b34be4234599cf1241ef807cdb7c3636f6fe +69b264df8a412820e98867dbab871c6526c5e5aa + +--- + drivers/nvme/host/pci.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c +index 3f0c9ee09a12..bc11bfe6f87a 100644 +--- a/drivers/nvme/host/pci.c ++++ b/drivers/nvme/host/pci.c +@@ -5,6 +5,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -2537,6 +2538,7 @@ static int nvme_pci_enable(struct nvme_dev *dev) + + nvme_map_cmb(dev); + ++ pci_enable_pcie_error_reporting(pdev); + pci_save_state(pdev); + + result = nvme_pci_configure_admin_queue(dev); +@@ -2601,8 +2603,10 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown) + nvme_suspend_io_queues(dev); + nvme_suspend_queue(dev, 0); + pci_free_irq_vectors(pdev); +- if (pci_is_enabled(pdev)) ++ if (pci_is_enabled(pdev)) { ++ pci_disable_pcie_error_reporting(pdev); + pci_disable_device(pdev); ++ } + nvme_reap_pending_cqes(dev); + + nvme_cancel_tagset(&dev->ctrl); +-- +2.41.0 +diff --git a/include/linux/aer.h b/include/linux/aer.h +index 29cc10220..94ce49a5f 100644 +--- a/include/linux/aer.h ++++ b/include/linux/aer.h +@@ -41,9 +41,20 @@ struct aer_capability_regs { + }; + + #if defined(CONFIG_PCIEAER) ++/* PCIe port driver needs this function to enable AER */ ++int pci_enable_pcie_error_reporting(struct pci_dev *dev); ++int pci_disable_pcie_error_reporting(struct pci_dev *dev); + int pci_aer_clear_nonfatal_status(struct pci_dev *dev); + int pcie_aer_is_native(struct pci_dev *dev); + #else ++static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev) ++{ ++ return -EINVAL; ++} ++static inline int pci_disable_pcie_error_reporting(struct pci_dev *dev) ++{ ++ return -EINVAL; ++} + static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev) + { + return -EINVAL; + +diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c +index 9c8fd69ae..0dc7be481 100644 +--- a/drivers/pci/pcie/aer.c ++++ b/drivers/pci/pcie/aer.c +@@ -231,7 +231,7 @@ int pcie_aer_is_native(struct pci_dev *dev) + } + EXPORT_SYMBOL_NS_GPL(pcie_aer_is_native, CXL); + +-static int pci_enable_pcie_error_reporting(struct pci_dev *dev) ++int pci_enable_pcie_error_reporting(struct pci_dev *dev) + { + int rc; + +@@ -241,6 +241,19 @@ static int pci_enable_pcie_error_reporting(struct pci_dev *dev) + rc = pcie_capability_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_AER_FLAGS); + return pcibios_err_to_errno(rc); + } ++EXPORT_SYMBOL_GPL(pci_enable_pcie_error_reporting); ++ ++int pci_disable_pcie_error_reporting(struct pci_dev *dev) ++{ ++ int rc; ++ ++ if (!pcie_aer_is_native(dev)) ++ return -EIO; ++ ++ rc = pcie_capability_clear_word(dev, PCI_EXP_DEVCTL, PCI_EXP_AER_FLAGS); ++ return pcibios_err_to_errno(rc); ++} ++EXPORT_SYMBOL_GPL(pci_disable_pcie_error_reporting); + + int pci_aer_clear_nonfatal_status(struct pci_dev *dev) + { diff --git a/SOURCES/0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch b/SOURCES/0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch new file mode 100644 index 0000000..26e3ab7 --- /dev/null +++ b/SOURCES/0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch @@ -0,0 +1,25 @@ +From 9179080ffaaf1d438db6e0a5a37bdf8dafe233a6 Mon Sep 17 00:00:00 2001 +From: Thomas Crider +Date: Mon, 27 Nov 2023 16:13:13 -0500 +Subject: [PATCH] Set amdgpu.ppfeaturemask=0xffffffff as default + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +index e06009966..4e791eb8f 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -158,7 +158,7 @@ bool enforce_isolation; + * OverDrive(bit 14) disabled by default + * GFX DCS(bit 19) disabled by default + */ +-uint amdgpu_pp_feature_mask = 0xfff7bfff; ++uint amdgpu_pp_feature_mask = 0xffffffff; + uint amdgpu_force_long_training; + int amdgpu_lbpw = -1; + int amdgpu_compute_multipipe = -1; +-- +2.43.0 + diff --git a/SOURCES/0001-amd-hdr.patch b/SOURCES/0001-amd-hdr.patch new file mode 100644 index 0000000..50e988e --- /dev/null +++ b/SOURCES/0001-amd-hdr.patch @@ -0,0 +1,2042 @@ +From af60f9afa522f5f337d9b4e24eef1fdcd0ab6c05 Mon Sep 17 00:00:00 2001 +From: Peter Jung +Date: Mon, 11 Sep 2023 14:31:43 +0200 +Subject: [PATCH 1/7] amd-hdr + +Signed-off-by: Peter Jung +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 71 ++ + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 34 +- + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 100 +++ + .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 805 ++++++++++++++++-- + .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 72 ++ + .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 224 ++++- + .../amd/display/dc/dcn10/dcn10_cm_common.c | 95 ++- + .../drm/amd/display/dc/dcn30/dcn30_hwseq.c | 37 + + .../drm/amd/display/dc/dcn30/dcn30_hwseq.h | 3 + + .../drm/amd/display/dc/dcn301/dcn301_init.c | 2 +- + .../gpu/drm/amd/display/include/fixed31_32.h | 12 + + drivers/gpu/drm/arm/malidp_crtc.c | 2 +- + drivers/gpu/drm/drm_atomic.c | 1 + + drivers/gpu/drm/drm_atomic_state_helper.c | 1 + + drivers/gpu/drm/drm_property.c | 49 ++ + include/drm/drm_mode_object.h | 2 +- + include/drm/drm_plane.h | 7 + + include/drm/drm_property.h | 6 + + include/uapi/drm/drm_mode.h | 8 + + 19 files changed, 1441 insertions(+), 90 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +index 32fe05c810c6..84bf501b02f4 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +@@ -343,6 +343,77 @@ struct amdgpu_mode_info { + int disp_priority; + const struct amdgpu_display_funcs *funcs; + const enum drm_plane_type *plane_type; ++ ++ /* Driver-private color mgmt props */ ++ ++ /* @plane_degamma_lut_property: Plane property to set a degamma LUT to ++ * convert input space before blending. ++ */ ++ struct drm_property *plane_degamma_lut_property; ++ /* @plane_degamma_lut_size_property: Plane property to define the max ++ * size of degamma LUT as supported by the driver (read-only). ++ */ ++ struct drm_property *plane_degamma_lut_size_property; ++ /** ++ * @plane_degamma_tf_property: Plane pre-defined transfer function to ++ * to go from scanout/encoded values to linear values. ++ */ ++ struct drm_property *plane_degamma_tf_property; ++ /** ++ * @plane_hdr_mult_property: ++ */ ++ struct drm_property *plane_hdr_mult_property; ++ ++ struct drm_property *plane_ctm_property; ++ /** ++ * @shaper_lut_property: Plane property to set pre-blending shaper LUT ++ * that converts color content before 3D LUT. ++ */ ++ struct drm_property *plane_shaper_lut_property; ++ /** ++ * @shaper_lut_size_property: Plane property for the size of ++ * pre-blending shaper LUT as supported by the driver (read-only). ++ */ ++ struct drm_property *plane_shaper_lut_size_property; ++ /** ++ * @plane_shaper_tf_property: Plane property to set a predefined ++ * transfer function for pre-blending shaper (before applying 3D LUT) ++ * with or without LUT. ++ */ ++ struct drm_property *plane_shaper_tf_property; ++ /** ++ * @plane_lut3d_property: Plane property for gamma correction using a ++ * 3D LUT (pre-blending). ++ */ ++ struct drm_property *plane_lut3d_property; ++ /** ++ * @plane_degamma_lut_size_property: Plane property to define the max ++ * size of 3D LUT as supported by the driver (read-only). ++ */ ++ struct drm_property *plane_lut3d_size_property; ++ /** ++ * @plane_blend_lut_property: Plane property for output gamma before ++ * blending. Userspace set a blend LUT to convert colors after 3D LUT ++ * conversion. It works as a post-3D LUT 1D LUT, with shaper LUT, they ++ * are sandwiching 3D LUT with two 1D LUT. ++ */ ++ struct drm_property *plane_blend_lut_property; ++ /** ++ * @plane_blend_lut_size_property: Plane property to define the max ++ * size of blend LUT as supported by the driver (read-only). ++ */ ++ struct drm_property *plane_blend_lut_size_property; ++ /** ++ * @plane_blend_tf_property: Plane property to set a predefined ++ * transfer function for pre-blending blend (before applying 3D LUT) ++ * with or without LUT. ++ */ ++ struct drm_property *plane_blend_tf_property; ++ /* @regamma_tf_property: Transfer function for CRTC regamma ++ * (post-blending). Possible values are defined by `enum ++ * amdgpu_transfer_function`. ++ */ ++ struct drm_property *regamma_tf_property; + }; + + #define AMDGPU_MAX_BL_LEVEL 0xFF +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 34f011cedd06..fb3400eff0b6 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -4021,6 +4021,11 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) + return r; + } + ++#ifdef AMD_PRIVATE_COLOR ++ if (amdgpu_dm_create_color_properties(adev)) ++ return -ENOMEM; ++#endif ++ + r = amdgpu_dm_audio_init(adev); + if (r) { + dc_release_state(state->context); +@@ -5093,7 +5098,9 @@ static int fill_dc_plane_attributes(struct amdgpu_device *adev, + * Always set input transfer function, since plane state is refreshed + * every time. + */ +- ret = amdgpu_dm_update_plane_color_mgmt(dm_crtc_state, dc_plane_state); ++ ret = amdgpu_dm_update_plane_color_mgmt(dm_crtc_state, ++ plane_state, ++ dc_plane_state); + if (ret) + return ret; + +@@ -8113,6 +8120,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, + bundle->surface_updates[planes_count].gamma = dc_plane->gamma_correction; + bundle->surface_updates[planes_count].in_transfer_func = dc_plane->in_transfer_func; + bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix; ++ bundle->surface_updates[planes_count].hdr_mult = dc_plane->hdr_mult; ++ bundle->surface_updates[planes_count].func_shaper = dc_plane->in_shaper_func; ++ bundle->surface_updates[planes_count].lut3d_func = dc_plane->lut3d_func; ++ bundle->surface_updates[planes_count].blend_tf = dc_plane->blend_tf; + } + + amdgpu_dm_plane_fill_dc_scaling_info(dm->adev, new_plane_state, +@@ -8324,6 +8335,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, + &acrtc_state->stream->csc_color_matrix; + bundle->stream_update.out_transfer_func = + acrtc_state->stream->out_transfer_func; ++ bundle->stream_update.lut3d_func = ++ (struct dc_3dlut *) acrtc_state->stream->lut3d_func; ++ bundle->stream_update.func_shaper = ++ (struct dc_transfer_func *) acrtc_state->stream->func_shaper; + } + + acrtc_state->stream->abm_level = acrtc_state->abm_level; +@@ -9512,6 +9527,7 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm, + * when a modeset is needed, to ensure it gets reprogrammed. + */ + if (dm_new_crtc_state->base.color_mgmt_changed || ++ dm_old_crtc_state->regamma_tf != dm_new_crtc_state->regamma_tf || + drm_atomic_crtc_needs_modeset(new_crtc_state)) { + ret = amdgpu_dm_update_crtc_color_mgmt(dm_new_crtc_state); + if (ret) +@@ -9579,6 +9595,10 @@ static bool should_reset_plane(struct drm_atomic_state *state, + */ + for_each_oldnew_plane_in_state(state, other, old_other_state, new_other_state, i) { + struct amdgpu_framebuffer *old_afb, *new_afb; ++ struct dm_plane_state *dm_new_other_state, *dm_old_other_state; ++ ++ dm_new_other_state = to_dm_plane_state(new_other_state); ++ dm_old_other_state = to_dm_plane_state(old_other_state); + + if (other->type == DRM_PLANE_TYPE_CURSOR) + continue; +@@ -9615,6 +9635,18 @@ static bool should_reset_plane(struct drm_atomic_state *state, + old_other_state->color_encoding != new_other_state->color_encoding) + return true; + ++ /* HDR/Transfer Function changes. */ ++ if (dm_old_other_state->degamma_tf != dm_new_other_state->degamma_tf || ++ dm_old_other_state->degamma_lut != dm_new_other_state->degamma_lut || ++ dm_old_other_state->hdr_mult != dm_new_other_state->hdr_mult || ++ dm_old_other_state->ctm != dm_new_other_state->ctm || ++ dm_old_other_state->shaper_lut != dm_new_other_state->shaper_lut || ++ dm_old_other_state->shaper_tf != dm_new_other_state->shaper_tf || ++ dm_old_other_state->lut3d != dm_new_other_state->lut3d || ++ dm_old_other_state->blend_lut != dm_new_other_state->blend_lut || ++ dm_old_other_state->blend_tf != dm_new_other_state->blend_tf) ++ return true; ++ + /* Framebuffer checks fall at the end. */ + if (!old_other_state->fb || !new_other_state->fb) + continue; +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +index 9e4cc5eeda76..24c87f425afb 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +@@ -33,6 +33,8 @@ + #include + #include "link_service_types.h" + ++#define AMDGPU_HDR_MULT_DEFAULT (0x100000000LL) ++ + /* + * This file contains the definition for amdgpu_display_manager + * and its API for amdgpu driver's use. +@@ -716,9 +718,91 @@ static inline void amdgpu_dm_set_mst_status(uint8_t *status, + + extern const struct amdgpu_ip_block_version dm_ip_block; + ++enum amdgpu_transfer_function { ++ AMDGPU_TRANSFER_FUNCTION_DEFAULT, ++ AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_BT709_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_PQ_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_LINEAR, ++ AMDGPU_TRANSFER_FUNCTION_UNITY, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF, ++ AMDGPU_TRANSFER_FUNCTION_COUNT ++}; ++ + struct dm_plane_state { + struct drm_plane_state base; + struct dc_plane_state *dc_state; ++ ++ /* Plane color mgmt */ ++ /** ++ * @degamma_lut: ++ * ++ * 1D LUT for mapping framebuffer/plane pixel data before sampling or ++ * blending operations. It's usually applied to linearize input space. ++ * The blob (if not NULL) is an array of &struct drm_color_lut. ++ */ ++ struct drm_property_blob *degamma_lut; ++ /** ++ * @degamma_tf: ++ * ++ * Predefined transfer function to tell DC driver the input space to ++ * linearize. ++ */ ++ enum amdgpu_transfer_function degamma_tf; ++ /** ++ * @hdr_mult: ++ * ++ * Multiplier to 'gain' the plane. When PQ is decoded using the fixed ++ * func transfer function to the internal FP16 fb, 1.0 -> 80 nits (on ++ * AMD at least). When sRGB is decoded, 1.0 -> 1.0, obviously. ++ * Therefore, 1.0 multiplier = 80 nits for SDR content. So if you ++ * want, 203 nits for SDR content, pass in (203.0 / 80.0). Format is ++ * S31.32 sign-magnitude. ++ */ ++ __u64 hdr_mult; ++ /** ++ * @ctm: ++ * ++ * Color transformation matrix. See drm_crtc_enable_color_mgmt(). The ++ * blob (if not NULL) is a &struct drm_color_ctm. ++ */ ++ struct drm_property_blob *ctm; ++ /** ++ * @shaper_lut: shaper lookup table blob. The blob (if not NULL) is an ++ * array of &struct drm_color_lut. ++ */ ++ struct drm_property_blob *shaper_lut; ++ /** ++ * @shaper_tf: ++ * ++ * Predefined transfer function to delinearize color space. ++ */ ++ enum amdgpu_transfer_function shaper_tf; ++ /** ++ * @lut3d: 3D lookup table blob. The blob (if not NULL) is an array of ++ * &struct drm_color_lut. ++ */ ++ struct drm_property_blob *lut3d; ++ /** ++ * @blend_lut: blend lut lookup table blob. The blob (if not NULL) is an ++ * array of &struct drm_color_lut. ++ */ ++ struct drm_property_blob *blend_lut; ++ /** ++ * @blend_tf: ++ * ++ * Pre-defined transfer function for converting plane pixel data before ++ * applying blend LUT. ++ */ ++ enum amdgpu_transfer_function blend_tf; + }; + + struct dm_crtc_state { +@@ -743,6 +827,14 @@ struct dm_crtc_state { + struct dc_info_packet vrr_infopacket; + + int abm_level; ++ ++ /** ++ * @regamma_tf: ++ * ++ * Pre-defined transfer function for converting internal FB -> wire ++ * encoding. ++ */ ++ enum amdgpu_transfer_function regamma_tf; + }; + + #define to_dm_crtc_state(x) container_of(x, struct dm_crtc_state, base) +@@ -804,14 +896,22 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector, + + void amdgpu_dm_trigger_timing_sync(struct drm_device *dev); + ++/* 3D LUT max size is 17x17x17 */ ++#define MAX_COLOR_3DLUT_ENTRIES 4913 ++#define MAX_COLOR_3DLUT_BITDEPTH 12 ++int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev, ++ struct drm_plane_state *plane_state); ++/* 1D LUT size */ + #define MAX_COLOR_LUT_ENTRIES 4096 + /* Legacy gamm LUT users such as X doesn't like large LUT sizes */ + #define MAX_COLOR_LEGACY_LUT_ENTRIES 256 + + void amdgpu_dm_init_color_mod(void); ++int amdgpu_dm_create_color_properties(struct amdgpu_device *adev); + int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state); + int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc); + int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, ++ struct drm_plane_state *plane_state, + struct dc_plane_state *dc_plane_state); + + void amdgpu_dm_update_connector_after_detect( +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +index a4cb23d059bd..0442eeaa9763 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +@@ -72,6 +72,7 @@ + */ + + #define MAX_DRM_LUT_VALUE 0xFFFF ++#define SDR_WHITE_LEVEL_INIT_VALUE 80 + + /** + * amdgpu_dm_init_color_mod - Initialize the color module. +@@ -84,6 +85,213 @@ void amdgpu_dm_init_color_mod(void) + setup_x_points_distribution(); + } + ++#ifdef AMD_PRIVATE_COLOR ++/* Pre-defined Transfer Functions (TF) ++ * ++ * AMD driver supports pre-defined mathematical functions for transferring ++ * between encoded values and optical/linear space. Depending on HW color caps, ++ * ROMs and curves built by the AMD color module support these transforms. ++ * ++ * The driver-specific color implementation exposes properties for pre-blending ++ * degamma TF, shaper TF (before 3D LUT), and blend(dpp.ogam) TF and ++ * post-blending regamma (mpc.ogam) TF. However, only pre-blending degamma ++ * supports ROM curves. AMD color module uses pre-defined coefficients to build ++ * curves for the other blocks. What can be done by each color block is ++ * described by struct dpp_color_capsand struct mpc_color_caps. ++ * ++ * AMD driver-specific color API exposes the following pre-defined transfer ++ * functions: ++ * ++ * - Linear/Unity: linear/identity relationship between pixel value and ++ * luminance value; ++ * - Gamma 2.2, Gamma 2.4, Gamma 2.6: pure gamma functions; ++ * - sRGB: 2.4 gamma with small initial linear section as standardized by IEC ++ * 61966-2-1:1999; ++ * - BT.709 (BT.1886): 2.4 gamma with differences in the dark end of the scale. ++ * Used in HD-TV and standardized by ITU-R BT.1886; ++ * - PQ (Perceptual Quantizer): used for HDR display, allows luminance range ++ * capability of 0 to 10,000 nits; standardized by SMPTE ST 2084. ++ * ++ * In the driver-specific API, color block names attached to TF properties ++ * suggest the intention regarding non-linear encoding pixel's luminance ++ * values. As some newer encodings don't use gamma curve, we make encoding and ++ * decoding explicit by defining an enum list of transfer functions supported ++ * in terms of EOTF and inverse EOTF, where: ++ * ++ * - EOTF (electro-optical transfer function): is the transfer function to go ++ * from the encoded value to an optical (linear) value. De-gamma functions ++ * traditionally do this. ++ * - Inverse EOTF (simply the inverse of the EOTF): is usually intended to go ++ * from an optical/linear space (which might have been used for blending) ++ * back to the encoded values. Gamma functions traditionally do this. ++ */ ++static const char * const ++amdgpu_transfer_function_names[] = { ++ [AMDGPU_TRANSFER_FUNCTION_DEFAULT] = "Default", ++ [AMDGPU_TRANSFER_FUNCTION_LINEAR] = "Linear", ++ [AMDGPU_TRANSFER_FUNCTION_UNITY] = "Unity", ++ [AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF] = "sRGB EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_BT709_EOTF] = "BT.709 EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_PQ_EOTF] = "PQ EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF] = "Gamma 2.2 EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF] = "Gamma 2.4 EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF] = "Gamma 2.6 EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF] = "sRGB inv_EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF] = "BT.709 inv_EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF] = "PQ inv_EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF] = "Gamma 2.2 inv_EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF] = "Gamma 2.4 inv_EOTF", ++ [AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF] = "Gamma 2.6 inv_EOTF", ++}; ++ ++static const u32 amdgpu_eotf = ++ BIT(AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_BT709_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_PQ_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF); ++ ++static const u32 amdgpu_inv_eotf = ++ BIT(AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF); ++ ++static struct drm_property * ++amdgpu_create_tf_property(struct drm_device *dev, ++ const char *name, ++ u32 supported_tf) ++{ ++ u32 transfer_functions = supported_tf | ++ BIT(AMDGPU_TRANSFER_FUNCTION_DEFAULT) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_LINEAR) | ++ BIT(AMDGPU_TRANSFER_FUNCTION_UNITY); ++ struct drm_prop_enum_list enum_list[AMDGPU_TRANSFER_FUNCTION_COUNT]; ++ int i, len; ++ ++ len = 0; ++ for (i = 0; i < AMDGPU_TRANSFER_FUNCTION_COUNT; i++) { ++ if ((transfer_functions & BIT(i)) == 0) ++ continue; ++ ++ enum_list[len].type = i; ++ enum_list[len].name = amdgpu_transfer_function_names[i]; ++ len++; ++ } ++ ++ return drm_property_create_enum(dev, DRM_MODE_PROP_ENUM, ++ name, enum_list, len); ++} ++ ++int ++amdgpu_dm_create_color_properties(struct amdgpu_device *adev) ++{ ++ struct drm_property *prop; ++ ++ prop = drm_property_create(adev_to_drm(adev), ++ DRM_MODE_PROP_BLOB, ++ "AMD_PLANE_DEGAMMA_LUT", 0); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_degamma_lut_property = prop; ++ ++ prop = drm_property_create_range(adev_to_drm(adev), ++ DRM_MODE_PROP_IMMUTABLE, ++ "AMD_PLANE_DEGAMMA_LUT_SIZE", 0, UINT_MAX); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_degamma_lut_size_property = prop; ++ ++ prop = amdgpu_create_tf_property(adev_to_drm(adev), ++ "AMD_PLANE_DEGAMMA_TF", ++ amdgpu_eotf); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_degamma_tf_property = prop; ++ ++ prop = drm_property_create_range(adev_to_drm(adev), ++ 0, "AMD_PLANE_HDR_MULT", 0, U64_MAX); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_hdr_mult_property = prop; ++ ++ prop = drm_property_create(adev_to_drm(adev), ++ DRM_MODE_PROP_BLOB, ++ "AMD_PLANE_CTM", 0); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_ctm_property = prop; ++ ++ prop = drm_property_create(adev_to_drm(adev), ++ DRM_MODE_PROP_BLOB, ++ "AMD_PLANE_SHAPER_LUT", 0); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_shaper_lut_property = prop; ++ ++ prop = drm_property_create_range(adev_to_drm(adev), ++ DRM_MODE_PROP_IMMUTABLE, ++ "AMD_PLANE_SHAPER_LUT_SIZE", 0, UINT_MAX); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_shaper_lut_size_property = prop; ++ ++ prop = amdgpu_create_tf_property(adev_to_drm(adev), ++ "AMD_PLANE_SHAPER_TF", ++ amdgpu_inv_eotf); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_shaper_tf_property = prop; ++ ++ prop = drm_property_create(adev_to_drm(adev), ++ DRM_MODE_PROP_BLOB, ++ "AMD_PLANE_LUT3D", 0); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_lut3d_property = prop; ++ ++ prop = drm_property_create_range(adev_to_drm(adev), ++ DRM_MODE_PROP_IMMUTABLE, ++ "AMD_PLANE_LUT3D_SIZE", 0, UINT_MAX); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_lut3d_size_property = prop; ++ ++ prop = drm_property_create(adev_to_drm(adev), ++ DRM_MODE_PROP_BLOB, ++ "AMD_PLANE_BLEND_LUT", 0); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_blend_lut_property = prop; ++ ++ prop = drm_property_create_range(adev_to_drm(adev), ++ DRM_MODE_PROP_IMMUTABLE, ++ "AMD_PLANE_BLEND_LUT_SIZE", 0, UINT_MAX); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_blend_lut_size_property = prop; ++ ++ prop = amdgpu_create_tf_property(adev_to_drm(adev), ++ "AMD_PLANE_BLEND_TF", ++ amdgpu_eotf); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.plane_blend_tf_property = prop; ++ ++ prop = amdgpu_create_tf_property(adev_to_drm(adev), ++ "AMD_CRTC_REGAMMA_TF", ++ amdgpu_inv_eotf); ++ if (!prop) ++ return -ENOMEM; ++ adev->mode_info.regamma_tf_property = prop; ++ ++ return 0; ++} ++#endif ++ + /** + * __extract_blob_lut - Extracts the DRM lut and lut size from a blob. + * @blob: DRM color mgmt property blob +@@ -182,7 +390,6 @@ static void __drm_lut_to_dc_gamma(const struct drm_color_lut *lut, + static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm, + struct fixed31_32 *matrix) + { +- int64_t val; + int i; + + /* +@@ -201,12 +408,33 @@ static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm, + } + + /* gamut_remap_matrix[i] = ctm[i - floor(i/4)] */ +- val = ctm->matrix[i - (i / 4)]; +- /* If negative, convert to 2's complement. */ +- if (val & (1ULL << 63)) +- val = -(val & ~(1ULL << 63)); ++ matrix[i] = dc_fixpt_from_s3132(ctm->matrix[i - (i / 4)]); ++ } ++} + +- matrix[i].value = val; ++/** ++ * __drm_ctm2_to_dc_matrix - converts a DRM CTM2 to a DC CSC float matrix ++ * @ctm: DRM color transformation matrix ++ * @matrix: DC CSC float matrix ++ * ++ * The matrix needs to be a 3x4 (12 entry) matrix. ++ */ ++static void __drm_ctm2_to_dc_matrix(const struct drm_color_ctm2 *ctm, ++ struct fixed31_32 *matrix) ++{ ++ int i; ++ ++ /* ++ * DRM gives a 3x3 matrix, but DC wants 3x4. Assuming we're operating ++ * with homogeneous coordinates, augment the matrix with 0's. ++ * ++ * The format provided is S31.32, using signed-magnitude representation. ++ * Our fixed31_32 is also S31.32, but is using 2's complement. We have ++ * to convert from signed-magnitude to 2's complement. ++ */ ++ for (i = 0; i < 12; i++) { ++ /* gamut_remap_matrix[i] = ctm[i - floor(i/4)] */ ++ matrix[i] = dc_fixpt_from_s3132(ctm->matrix[i]); + } + } + +@@ -268,16 +496,18 @@ static int __set_output_tf(struct dc_transfer_func *func, + struct calculate_buffer cal_buffer = {0}; + bool res; + +- ASSERT(lut && lut_size == MAX_COLOR_LUT_ENTRIES); +- + cal_buffer.buffer_index = -1; + +- gamma = dc_create_gamma(); +- if (!gamma) +- return -ENOMEM; ++ if (lut_size) { ++ ASSERT(lut && lut_size == MAX_COLOR_LUT_ENTRIES); + +- gamma->num_entries = lut_size; +- __drm_lut_to_dc_gamma(lut, gamma, false); ++ gamma = dc_create_gamma(); ++ if (!gamma) ++ return -ENOMEM; ++ ++ gamma->num_entries = lut_size; ++ __drm_lut_to_dc_gamma(lut, gamma, false); ++ } + + if (func->tf == TRANSFER_FUNCTION_LINEAR) { + /* +@@ -285,27 +515,63 @@ static int __set_output_tf(struct dc_transfer_func *func, + * on top of a linear input. But degamma params can be used + * instead to simulate this. + */ +- gamma->type = GAMMA_CUSTOM; ++ if (gamma) ++ gamma->type = GAMMA_CUSTOM; + res = mod_color_calculate_degamma_params(NULL, func, +- gamma, true); ++ gamma, gamma != NULL); + } else { + /* + * Assume sRGB. The actual mapping will depend on whether the + * input was legacy or not. + */ +- gamma->type = GAMMA_CS_TFM_1D; +- res = mod_color_calculate_regamma_params(func, gamma, false, ++ if (gamma) ++ gamma->type = GAMMA_CS_TFM_1D; ++ res = mod_color_calculate_regamma_params(func, gamma, gamma != NULL, + has_rom, NULL, &cal_buffer); + } + +- dc_gamma_release(&gamma); ++ if (gamma) ++ dc_gamma_release(&gamma); + + return res ? 0 : -ENOMEM; + } + ++static int amdgpu_dm_set_atomic_regamma(struct dc_stream_state *stream, ++ const struct drm_color_lut *regamma_lut, ++ uint32_t regamma_size, bool has_rom, ++ enum dc_transfer_func_predefined tf) ++{ ++ struct dc_transfer_func *out_tf = stream->out_transfer_func; ++ int ret = 0; ++ ++ if (regamma_size || tf != TRANSFER_FUNCTION_LINEAR) { ++ /* CRTC RGM goes into RGM LUT. ++ * ++ * Note: there is no implicit sRGB regamma here. We are using ++ * degamma calculation from color module to calculate the curve ++ * from a linear base. ++ */ ++ out_tf->type = TF_TYPE_DISTRIBUTED_POINTS; ++ out_tf->tf = tf; ++ out_tf->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; ++ ++ ret = __set_output_tf(out_tf, regamma_lut, regamma_size, has_rom); ++ } else { ++ /* ++ * No CRTC RGM means we can just put the block into bypass ++ * since we don't have any plane level adjustments using it. ++ */ ++ out_tf->type = TF_TYPE_BYPASS; ++ out_tf->tf = TRANSFER_FUNCTION_LINEAR; ++ } ++ ++ return ret; ++} ++ + /** + * __set_input_tf - calculates the input transfer function based on expected + * input space. ++ * @caps: dc color capabilities + * @func: transfer function + * @lut: lookup table that defines the color space + * @lut_size: size of respective lut. +@@ -313,27 +579,249 @@ static int __set_output_tf(struct dc_transfer_func *func, + * Returns: + * 0 in case of success. -ENOMEM if fails. + */ +-static int __set_input_tf(struct dc_transfer_func *func, ++static int __set_input_tf(struct dc_color_caps *caps, struct dc_transfer_func *func, + const struct drm_color_lut *lut, uint32_t lut_size) + { + struct dc_gamma *gamma = NULL; + bool res; + +- gamma = dc_create_gamma(); +- if (!gamma) +- return -ENOMEM; ++ if (lut_size) { ++ gamma = dc_create_gamma(); ++ if (!gamma) ++ return -ENOMEM; + +- gamma->type = GAMMA_CUSTOM; +- gamma->num_entries = lut_size; ++ gamma->type = GAMMA_CUSTOM; ++ gamma->num_entries = lut_size; + +- __drm_lut_to_dc_gamma(lut, gamma, false); ++ __drm_lut_to_dc_gamma(lut, gamma, false); ++ } + +- res = mod_color_calculate_degamma_params(NULL, func, gamma, true); +- dc_gamma_release(&gamma); ++ res = mod_color_calculate_degamma_params(caps, func, gamma, gamma != NULL); ++ ++ if (gamma) ++ dc_gamma_release(&gamma); + + return res ? 0 : -ENOMEM; + } + ++static enum dc_transfer_func_predefined ++amdgpu_tf_to_dc_tf(enum amdgpu_transfer_function tf) ++{ ++ switch (tf) ++ { ++ default: ++ case AMDGPU_TRANSFER_FUNCTION_DEFAULT: ++ case AMDGPU_TRANSFER_FUNCTION_LINEAR: ++ return TRANSFER_FUNCTION_LINEAR; ++ case AMDGPU_TRANSFER_FUNCTION_SRGB_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_SRGB_INV_EOTF: ++ return TRANSFER_FUNCTION_SRGB; ++ case AMDGPU_TRANSFER_FUNCTION_BT709_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_BT709_INV_EOTF: ++ return TRANSFER_FUNCTION_BT709; ++ case AMDGPU_TRANSFER_FUNCTION_PQ_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_PQ_INV_EOTF: ++ return TRANSFER_FUNCTION_PQ; ++ case AMDGPU_TRANSFER_FUNCTION_UNITY: ++ return TRANSFER_FUNCTION_UNITY; ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA22_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA22_INV_EOTF: ++ return TRANSFER_FUNCTION_GAMMA22; ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA24_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA24_INV_EOTF: ++ return TRANSFER_FUNCTION_GAMMA24; ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA26_EOTF: ++ case AMDGPU_TRANSFER_FUNCTION_GAMMA26_INV_EOTF: ++ return TRANSFER_FUNCTION_GAMMA26; ++ } ++} ++ ++static void __to_dc_lut3d_color(struct dc_rgb *rgb, ++ const struct drm_color_lut lut, ++ int bit_precision) ++{ ++ rgb->red = drm_color_lut_extract(lut.red, bit_precision); ++ rgb->green = drm_color_lut_extract(lut.green, bit_precision); ++ rgb->blue = drm_color_lut_extract(lut.blue, bit_precision); ++} ++ ++static void __drm_3dlut_to_dc_3dlut(const struct drm_color_lut *lut, ++ uint32_t lut3d_size, ++ struct tetrahedral_params *params, ++ bool use_tetrahedral_9, ++ int bit_depth) ++{ ++ struct dc_rgb *lut0; ++ struct dc_rgb *lut1; ++ struct dc_rgb *lut2; ++ struct dc_rgb *lut3; ++ int lut_i, i; ++ ++ ++ if (use_tetrahedral_9) { ++ lut0 = params->tetrahedral_9.lut0; ++ lut1 = params->tetrahedral_9.lut1; ++ lut2 = params->tetrahedral_9.lut2; ++ lut3 = params->tetrahedral_9.lut3; ++ } else { ++ lut0 = params->tetrahedral_17.lut0; ++ lut1 = params->tetrahedral_17.lut1; ++ lut2 = params->tetrahedral_17.lut2; ++ lut3 = params->tetrahedral_17.lut3; ++ } ++ ++ for (lut_i = 0, i = 0; i < lut3d_size - 4; lut_i++, i += 4) { ++ /* We should consider the 3dlut RGB values are distributed ++ * along four arrays lut0-3 where the first sizes 1229 and the ++ * other 1228. The bit depth supported for 3dlut channel is ++ * 12-bit, but DC also supports 10-bit. ++ * ++ * TODO: improve color pipeline API to enable the userspace set ++ * bit depth and 3D LUT size/stride, as specified by VA-API. ++ */ ++ __to_dc_lut3d_color(&lut0[lut_i], lut[i], bit_depth); ++ __to_dc_lut3d_color(&lut1[lut_i], lut[i + 1], bit_depth); ++ __to_dc_lut3d_color(&lut2[lut_i], lut[i + 2], bit_depth); ++ __to_dc_lut3d_color(&lut3[lut_i], lut[i + 3], bit_depth); ++ } ++ /* lut0 has 1229 points (lut_size/4 + 1) */ ++ __to_dc_lut3d_color(&lut0[lut_i], lut[i], bit_depth); ++} ++ ++/* amdgpu_dm_atomic_lut3d - set DRM 3D LUT to DC stream ++ * @drm_lut3d: DRM CRTC (user) 3D LUT ++ * @drm_lut3d_size: size of 3D LUT ++ * @lut3d: DC 3D LUT ++ * ++ * Map DRM CRTC 3D LUT to DC 3D LUT and all necessary bits to program it ++ * on DCN MPC accordingly. ++ */ ++static void amdgpu_dm_atomic_lut3d(const struct drm_color_lut *drm_lut, ++ uint32_t drm_lut3d_size, ++ struct dc_3dlut *lut) ++{ ++ if (!drm_lut3d_size) { ++ lut->state.bits.initialized = 0; ++ } else { ++ /* Stride and bit depth are not programmable by API yet. ++ * Therefore, only supports 17x17x17 3D LUT (12-bit). ++ */ ++ lut->lut_3d.use_tetrahedral_9 = false; ++ lut->lut_3d.use_12bits = true; ++ lut->state.bits.initialized = 1; ++ __drm_3dlut_to_dc_3dlut(drm_lut, drm_lut3d_size, &lut->lut_3d, ++ lut->lut_3d.use_tetrahedral_9, ++ MAX_COLOR_3DLUT_BITDEPTH); ++ } ++} ++ ++static int amdgpu_dm_atomic_shaper_lut(const struct drm_color_lut *shaper_lut, ++ bool has_rom, ++ enum dc_transfer_func_predefined tf, ++ uint32_t shaper_size, ++ struct dc_transfer_func *func_shaper) ++{ ++ int ret = 0; ++ ++ if (shaper_size || tf != TRANSFER_FUNCTION_LINEAR) { ++ /* If DRM shaper LUT is set, we assume a linear color space ++ * (linearized by DRM degamma 1D LUT or not) ++ */ ++ func_shaper->type = TF_TYPE_DISTRIBUTED_POINTS; ++ func_shaper->tf = tf; ++ func_shaper->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; ++ ++ ret = __set_output_tf(func_shaper, shaper_lut, shaper_size, has_rom); ++ } else { ++ func_shaper->type = TF_TYPE_BYPASS; ++ func_shaper->tf = TRANSFER_FUNCTION_LINEAR; ++ } ++ ++ return ret; ++} ++ ++static int amdgpu_dm_atomic_blend_lut(const struct drm_color_lut *blend_lut, ++ bool has_rom, ++ enum dc_transfer_func_predefined tf, ++ uint32_t blend_size, ++ struct dc_transfer_func *func_blend) ++{ ++ int ret = 0; ++ ++ if (blend_size || tf != TRANSFER_FUNCTION_LINEAR) { ++ /* DRM plane gamma LUT or TF means we are linearizing color ++ * space before blending (similar to degamma programming). As ++ * we don't have hardcoded curve support, or we use AMD color ++ * module to fill the parameters that will be translated to HW ++ * points. ++ */ ++ func_blend->type = TF_TYPE_DISTRIBUTED_POINTS; ++ func_blend->tf = tf; ++ func_blend->sdr_ref_white_level = SDR_WHITE_LEVEL_INIT_VALUE; ++ ++ ret = __set_input_tf(NULL, func_blend, blend_lut, blend_size); ++ } else { ++ func_blend->type = TF_TYPE_BYPASS; ++ func_blend->tf = TRANSFER_FUNCTION_LINEAR; ++ } ++ ++ return ret; ++} ++ ++/* amdgpu_dm_lut3d_size - get expected size according to hw color caps ++ * @adev: amdgpu device ++ * @lut_size: default size ++ * ++ * Return: ++ * lut_size if DC 3D LUT is supported, zero otherwise. ++ */ ++static uint32_t amdgpu_dm_get_lut3d_size(struct amdgpu_device *adev, ++ uint32_t lut_size) ++{ ++ return adev->dm.dc->caps.color.dpp.hw_3d_lut ? lut_size : 0; ++} ++ ++/** ++ * amdgpu_dm_verify_lut3d_size - verifies if 3D LUT is supported and if DRM 3D ++ * LUT matches the hw supported size ++ * @adev: amdgpu device ++ * @crtc_state: the DRM CRTC state ++ * ++ * Verifies if post-blending (MPC) 3D LUT is supported by the HW (DCN 3.0 or ++ * newer) and if the DRM 3D LUT matches the supported size. ++ * ++ * Returns: ++ * 0 on success. -EINVAL if lut size are invalid. ++ */ ++int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev, ++ struct drm_plane_state *plane_state) ++{ ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); ++ const struct drm_color_lut *shaper = NULL, *lut3d = NULL; ++ uint32_t exp_size, size; ++ ++ /* shaper LUT is only available if 3D LUT color caps*/ ++ exp_size = amdgpu_dm_get_lut3d_size(adev, MAX_COLOR_LUT_ENTRIES); ++ shaper = __extract_blob_lut(dm_plane_state->shaper_lut, &size); ++ ++ if (shaper && size != exp_size) { ++ drm_dbg(&adev->ddev, ++ "Invalid Shaper LUT size. Should be %u but got %u.\n", ++ exp_size, size); ++ } ++ ++ exp_size = amdgpu_dm_get_lut3d_size(adev, MAX_COLOR_3DLUT_ENTRIES); ++ lut3d = __extract_blob_lut(dm_plane_state->lut3d, &size); ++ ++ if (lut3d && size != exp_size) { ++ drm_dbg(&adev->ddev, "Invalid 3D LUT size. Should be %u but got %u.\n", ++ exp_size, size); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ + /** + * amdgpu_dm_verify_lut_sizes - verifies if DRM luts match the hw supported sizes + * @crtc_state: the DRM CRTC state +@@ -401,9 +889,12 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) + const struct drm_color_lut *degamma_lut, *regamma_lut; + uint32_t degamma_size, regamma_size; + bool has_regamma, has_degamma; ++ enum dc_transfer_func_predefined tf = TRANSFER_FUNCTION_LINEAR; + bool is_legacy; + int r; + ++ tf = amdgpu_tf_to_dc_tf(crtc->regamma_tf); ++ + r = amdgpu_dm_verify_lut_sizes(&crtc->base); + if (r) + return r; +@@ -440,26 +931,22 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) + stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; + stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB; + ++ /* Note: although we pass has_rom as parameter here, we never ++ * actually use ROM because the color module only takes the ROM ++ * path if transfer_func->type == PREDEFINED. ++ * ++ * See more in mod_color_calculate_regamma_params() ++ */ + r = __set_legacy_tf(stream->out_transfer_func, regamma_lut, + regamma_size, has_rom); + if (r) + return r; +- } else if (has_regamma) { +- /* If atomic regamma, CRTC RGM goes into RGM LUT. */ +- stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; +- stream->out_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; +- +- r = __set_output_tf(stream->out_transfer_func, regamma_lut, +- regamma_size, has_rom); ++ } else { ++ regamma_size = has_regamma ? regamma_size : 0; ++ r = amdgpu_dm_set_atomic_regamma(stream, regamma_lut, ++ regamma_size, has_rom, tf); + if (r) + return r; +- } else { +- /* +- * No CRTC RGM means we can just put the block into bypass +- * since we don't have any plane level adjustments using it. +- */ +- stream->out_transfer_func->type = TF_TYPE_BYPASS; +- stream->out_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; + } + + /* +@@ -495,20 +982,10 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) + return 0; + } + +-/** +- * amdgpu_dm_update_plane_color_mgmt: Maps DRM color management to DC plane. +- * @crtc: amdgpu_dm crtc state +- * @dc_plane_state: target DC surface +- * +- * Update the underlying dc_stream_state's input transfer function (ITF) in +- * preparation for hardware commit. The transfer function used depends on +- * the preparation done on the stream for color management. +- * +- * Returns: +- * 0 on success. -ENOMEM if mem allocation fails. +- */ +-int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, +- struct dc_plane_state *dc_plane_state) ++static int ++map_crtc_degamma_to_dc_plane(struct dm_crtc_state *crtc, ++ struct dc_plane_state *dc_plane_state, ++ struct dc_color_caps *caps) + { + const struct drm_color_lut *degamma_lut; + enum dc_transfer_func_predefined tf = TRANSFER_FUNCTION_SRGB; +@@ -531,8 +1008,7 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, + °amma_size); + ASSERT(degamma_size == MAX_COLOR_LUT_ENTRIES); + +- dc_plane_state->in_transfer_func->type = +- TF_TYPE_DISTRIBUTED_POINTS; ++ dc_plane_state->in_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS; + + /* + * This case isn't fully correct, but also fairly +@@ -564,11 +1040,11 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, + dc_plane_state->in_transfer_func->tf = + TRANSFER_FUNCTION_LINEAR; + +- r = __set_input_tf(dc_plane_state->in_transfer_func, ++ r = __set_input_tf(caps, dc_plane_state->in_transfer_func, + degamma_lut, degamma_size); + if (r) + return r; +- } else if (crtc->cm_is_degamma_srgb) { ++ } else { + /* + * For legacy gamma support we need the regamma input + * in linear space. Assume that the input is sRGB. +@@ -577,14 +1053,213 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, + dc_plane_state->in_transfer_func->tf = tf; + + if (tf != TRANSFER_FUNCTION_SRGB && +- !mod_color_calculate_degamma_params(NULL, +- dc_plane_state->in_transfer_func, NULL, false)) ++ !mod_color_calculate_degamma_params(caps, ++ dc_plane_state->in_transfer_func, ++ NULL, false)) ++ return -ENOMEM; ++ } ++ ++ return 0; ++} ++ ++static int ++__set_dm_plane_degamma(struct drm_plane_state *plane_state, ++ struct dc_plane_state *dc_plane_state, ++ struct dc_color_caps *color_caps) ++{ ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); ++ const struct drm_color_lut *degamma_lut; ++ enum amdgpu_transfer_function tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; ++ uint32_t degamma_size; ++ bool has_degamma_lut; ++ int ret; ++ ++ degamma_lut = __extract_blob_lut(dm_plane_state->degamma_lut, ++ °amma_size); ++ ++ has_degamma_lut = degamma_lut && ++ !__is_lut_linear(degamma_lut, degamma_size); ++ ++ tf = dm_plane_state->degamma_tf; ++ ++ /* If we don't have plane degamma LUT nor TF to set on DC, we have ++ * nothing to do here, return. ++ */ ++ if (!has_degamma_lut && tf == AMDGPU_TRANSFER_FUNCTION_DEFAULT) ++ return -EINVAL; ++ ++ dc_plane_state->in_transfer_func->tf = amdgpu_tf_to_dc_tf(tf); ++ ++ if (has_degamma_lut) { ++ ASSERT(degamma_size == MAX_COLOR_LUT_ENTRIES); ++ ++ dc_plane_state->in_transfer_func->type = ++ TF_TYPE_DISTRIBUTED_POINTS; ++ ++ ret = __set_input_tf(color_caps, dc_plane_state->in_transfer_func, ++ degamma_lut, degamma_size); ++ if (ret) ++ return ret; ++ } else { ++ dc_plane_state->in_transfer_func->type = ++ TF_TYPE_PREDEFINED; ++ ++ if (!mod_color_calculate_degamma_params(color_caps, ++ dc_plane_state->in_transfer_func, NULL, false)) + return -ENOMEM; +- } else { +- /* ...Otherwise we can just bypass the DGM block. */ +- dc_plane_state->in_transfer_func->type = TF_TYPE_BYPASS; +- dc_plane_state->in_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; ++ } ++ return 0; ++} ++ ++static int ++amdgpu_dm_plane_set_color_properties(struct drm_plane_state *plane_state, ++ struct dc_plane_state *dc_plane_state, ++ struct dc_color_caps *color_caps) ++{ ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); ++ enum amdgpu_transfer_function shaper_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; ++ enum amdgpu_transfer_function blend_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; ++ const struct drm_color_lut *shaper_lut, *lut3d, *blend_lut; ++ uint32_t shaper_size, lut3d_size, blend_size; ++ int ret; ++ ++ /* We have nothing to do here, return */ ++ if (!plane_state->color_mgmt_changed) ++ return 0; ++ ++ dc_plane_state->hdr_mult = dc_fixpt_from_s3132(dm_plane_state->hdr_mult); ++ ++ shaper_lut = __extract_blob_lut(dm_plane_state->shaper_lut, &shaper_size); ++ shaper_size = shaper_lut != NULL ? shaper_size : 0; ++ shaper_tf = dm_plane_state->shaper_tf; ++ lut3d = __extract_blob_lut(dm_plane_state->lut3d, &lut3d_size); ++ lut3d_size = lut3d != NULL ? lut3d_size : 0; ++ ++ amdgpu_dm_atomic_lut3d(lut3d, lut3d_size, dc_plane_state->lut3d_func); ++ ret = amdgpu_dm_atomic_shaper_lut(shaper_lut, false, ++ amdgpu_tf_to_dc_tf(shaper_tf), ++ shaper_size, ++ dc_plane_state->in_shaper_func); ++ if (ret) { ++ drm_dbg_kms(plane_state->plane->dev, ++ "setting plane %d shaper LUT failed.\n", ++ plane_state->plane->index); ++ ++ return ret; ++ } ++ ++ blend_tf = dm_plane_state->blend_tf; ++ blend_lut = __extract_blob_lut(dm_plane_state->blend_lut, &blend_size); ++ blend_size = blend_lut != NULL ? blend_size : 0; ++ ++ ret = amdgpu_dm_atomic_blend_lut(blend_lut, false, ++ amdgpu_tf_to_dc_tf(blend_tf), ++ blend_size, dc_plane_state->blend_tf); ++ if (ret) { ++ drm_dbg_kms(plane_state->plane->dev, ++ "setting plane %d gamma lut failed.\n", ++ plane_state->plane->index); ++ ++ return ret; + } + + return 0; + } ++ ++/** ++ * amdgpu_dm_update_plane_color_mgmt: Maps DRM color management to DC plane. ++ * @crtc: amdgpu_dm crtc state ++ * @plane_state: DRM plane state ++ * @dc_plane_state: target DC surface ++ * ++ * Update the underlying dc_stream_state's input transfer function (ITF) in ++ * preparation for hardware commit. The transfer function used depends on ++ * the preparation done on the stream for color management. ++ * ++ * Returns: ++ * 0 on success. -ENOMEM if mem allocation fails. ++ */ ++int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, ++ struct drm_plane_state *plane_state, ++ struct dc_plane_state *dc_plane_state) ++{ ++ struct amdgpu_device *adev = drm_to_adev(crtc->base.state->dev); ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state); ++ struct drm_color_ctm2 *ctm = NULL; ++ struct dc_color_caps *color_caps = NULL; ++ bool has_crtc_cm_degamma; ++ int ret; ++ ++ ret = amdgpu_dm_verify_lut3d_size(adev, plane_state); ++ if (ret) { ++ drm_dbg_driver(&adev->ddev, "amdgpu_dm_verify_lut3d_size() failed\n"); ++ return ret; ++ } ++ ++ if (dc_plane_state->ctx && dc_plane_state->ctx->dc) ++ color_caps = &dc_plane_state->ctx->dc->caps.color; ++ ++ /* Initially, we can just bypass the DGM block. */ ++ dc_plane_state->in_transfer_func->type = TF_TYPE_BYPASS; ++ dc_plane_state->in_transfer_func->tf = TRANSFER_FUNCTION_LINEAR; ++ ++ /* After, we start to update values according to color props */ ++ has_crtc_cm_degamma = (crtc->cm_has_degamma || crtc->cm_is_degamma_srgb); ++ ++ ret = __set_dm_plane_degamma(plane_state, dc_plane_state, color_caps); ++ if (ret == -ENOMEM) ++ return ret; ++ ++ /* We only have one degamma block available (pre-blending) for the ++ * whole color correction pipeline, so that we can't actually perform ++ * plane and CRTC degamma at the same time. Explicitly reject atomic ++ * updates when userspace sets both plane and CRTC degamma properties. ++ */ ++ if (has_crtc_cm_degamma && ret != -EINVAL){ ++ drm_dbg_kms(crtc->base.crtc->dev, ++ "doesn't support plane and CRTC degamma at the same time\n"); ++ return -EINVAL; ++ } ++ ++ /* If we are here, it means we don't have plane degamma settings, check ++ * if we have CRTC degamma waiting for mapping to pre-blending degamma ++ * block ++ */ ++ if (has_crtc_cm_degamma) { ++ /* AMD HW doesn't have post-blending degamma caps. When DRM ++ * CRTC atomic degamma is set, we maps it to DPP degamma block ++ * (pre-blending) or, on legacy gamma, we use DPP degamma to ++ * linearize (implicit degamma) from sRGB/BT709 according to ++ * the input space. ++ */ ++ ret = map_crtc_degamma_to_dc_plane(crtc, dc_plane_state, color_caps); ++ if (ret) ++ return ret; ++ } ++ ++ /* Setup CRTC CTM. */ ++ if (dm_plane_state->ctm) { ++ ctm = (struct drm_color_ctm2 *)dm_plane_state->ctm->data; ++ ++ /* ++ * So far, if we have both plane and CRTC CTM, plane CTM takes ++ * the priority and we discard data for CRTC CTM, as ++ * implemented in dcn10_program_gamut_remap(). However, we ++ * have MPC gamut_remap_matrix from DCN3 family, therefore we ++ * can remap MPC programing of the matrix to MPC block and ++ * provide support for both DPP and MPC matrix at the same ++ * time. ++ */ ++ __drm_ctm2_to_dc_matrix(ctm, dc_plane_state->gamut_remap_matrix.matrix); ++ ++ dc_plane_state->gamut_remap_matrix.enable_remap = true; ++ dc_plane_state->input_csc_color_matrix.enable_adjustment = false; ++ } else { ++ /* Bypass CTM. */ ++ dc_plane_state->gamut_remap_matrix.enable_remap = false; ++ dc_plane_state->input_csc_color_matrix.enable_adjustment = false; ++ } ++ ++ return amdgpu_dm_plane_set_color_properties(plane_state, ++ dc_plane_state, color_caps); ++} +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +index 97b7a0b8a1c2..a05c210754d4 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +@@ -260,6 +260,7 @@ static struct drm_crtc_state *dm_crtc_duplicate_state(struct drm_crtc *crtc) + state->freesync_config = cur->freesync_config; + state->cm_has_degamma = cur->cm_has_degamma; + state->cm_is_degamma_srgb = cur->cm_is_degamma_srgb; ++ state->regamma_tf = cur->regamma_tf; + state->crc_skip_count = cur->crc_skip_count; + state->mpo_requested = cur->mpo_requested; + /* TODO Duplicate dc_stream after objects are stream object is flattened */ +@@ -296,6 +297,70 @@ static int amdgpu_dm_crtc_late_register(struct drm_crtc *crtc) + } + #endif + ++#ifdef AMD_PRIVATE_COLOR ++/** ++ * drm_crtc_additional_color_mgmt - enable additional color properties ++ * @crtc: DRM CRTC ++ * ++ * This function lets the driver enable post-blending CRTC regamma transfer ++ * function property in addition to DRM CRTC gamma LUT. Default value means ++ * linear transfer function, which is the default CRTC gamma LUT behaviour ++ * without this property. ++ */ ++static void ++dm_crtc_additional_color_mgmt(struct drm_crtc *crtc) ++{ ++ struct amdgpu_device *adev = drm_to_adev(crtc->dev); ++ ++ if(adev->dm.dc->caps.color.mpc.ogam_ram) ++ drm_object_attach_property(&crtc->base, ++ adev->mode_info.regamma_tf_property, ++ AMDGPU_TRANSFER_FUNCTION_DEFAULT); ++} ++ ++static int ++amdgpu_dm_atomic_crtc_set_property(struct drm_crtc *crtc, ++ struct drm_crtc_state *state, ++ struct drm_property *property, ++ uint64_t val) ++{ ++ struct amdgpu_device *adev = drm_to_adev(crtc->dev); ++ struct dm_crtc_state *acrtc_state = to_dm_crtc_state(state); ++ ++ if (property == adev->mode_info.regamma_tf_property) { ++ if (acrtc_state->regamma_tf != val) { ++ acrtc_state->regamma_tf = val; ++ acrtc_state->base.color_mgmt_changed |= 1; ++ } ++ } else { ++ drm_dbg_atomic(crtc->dev, ++ "[CRTC:%d:%s] unknown property [PROP:%d:%s]]\n", ++ crtc->base.id, crtc->name, ++ property->base.id, property->name); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int ++amdgpu_dm_atomic_crtc_get_property(struct drm_crtc *crtc, ++ const struct drm_crtc_state *state, ++ struct drm_property *property, ++ uint64_t *val) ++{ ++ struct amdgpu_device *adev = drm_to_adev(crtc->dev); ++ struct dm_crtc_state *acrtc_state = to_dm_crtc_state(state); ++ ++ if (property == adev->mode_info.regamma_tf_property) ++ *val = acrtc_state->regamma_tf; ++ else ++ return -EINVAL; ++ ++ return 0; ++} ++#endif ++ + /* Implemented only the options currently available for the driver */ + static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = { + .reset = dm_crtc_reset_state, +@@ -314,6 +379,10 @@ static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = { + #if defined(CONFIG_DEBUG_FS) + .late_register = amdgpu_dm_crtc_late_register, + #endif ++#ifdef AMD_PRIVATE_COLOR ++ .atomic_set_property = amdgpu_dm_atomic_crtc_set_property, ++ .atomic_get_property = amdgpu_dm_atomic_crtc_get_property, ++#endif + }; + + static void dm_crtc_helper_disable(struct drm_crtc *crtc) +@@ -489,6 +558,9 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, + + drm_mode_crtc_set_gamma_size(&acrtc->base, MAX_COLOR_LEGACY_LUT_ENTRIES); + ++#ifdef AMD_PRIVATE_COLOR ++ dm_crtc_additional_color_mgmt(&acrtc->base); ++#endif + return 0; + + fail: +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +index cc74dd69acf2..17719e15cbe5 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +@@ -1333,8 +1333,14 @@ static void dm_drm_plane_reset(struct drm_plane *plane) + amdgpu_state = kzalloc(sizeof(*amdgpu_state), GFP_KERNEL); + WARN_ON(amdgpu_state == NULL); + +- if (amdgpu_state) +- __drm_atomic_helper_plane_reset(plane, &amdgpu_state->base); ++ if (!amdgpu_state) ++ return; ++ ++ __drm_atomic_helper_plane_reset(plane, &amdgpu_state->base); ++ amdgpu_state->degamma_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; ++ amdgpu_state->hdr_mult = AMDGPU_HDR_MULT_DEFAULT; ++ amdgpu_state->shaper_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; ++ amdgpu_state->blend_tf = AMDGPU_TRANSFER_FUNCTION_DEFAULT; + } + + static struct drm_plane_state * +@@ -1354,6 +1360,22 @@ dm_drm_plane_duplicate_state(struct drm_plane *plane) + dc_plane_state_retain(dm_plane_state->dc_state); + } + ++ if (dm_plane_state->degamma_lut) ++ drm_property_blob_get(dm_plane_state->degamma_lut); ++ if (dm_plane_state->ctm) ++ drm_property_blob_get(dm_plane_state->ctm); ++ if (dm_plane_state->shaper_lut) ++ drm_property_blob_get(dm_plane_state->shaper_lut); ++ if (dm_plane_state->lut3d) ++ drm_property_blob_get(dm_plane_state->lut3d); ++ if (dm_plane_state->blend_lut) ++ drm_property_blob_get(dm_plane_state->blend_lut); ++ ++ dm_plane_state->degamma_tf = old_dm_plane_state->degamma_tf; ++ dm_plane_state->hdr_mult = old_dm_plane_state->hdr_mult; ++ dm_plane_state->shaper_tf = old_dm_plane_state->shaper_tf; ++ dm_plane_state->blend_tf = old_dm_plane_state->blend_tf; ++ + return &dm_plane_state->base; + } + +@@ -1421,12 +1443,203 @@ static void dm_drm_plane_destroy_state(struct drm_plane *plane, + { + struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); + ++ if (dm_plane_state->degamma_lut) ++ drm_property_blob_put(dm_plane_state->degamma_lut); ++ if (dm_plane_state->ctm) ++ drm_property_blob_put(dm_plane_state->ctm); ++ if (dm_plane_state->lut3d) ++ drm_property_blob_put(dm_plane_state->lut3d); ++ if (dm_plane_state->shaper_lut) ++ drm_property_blob_put(dm_plane_state->shaper_lut); ++ if (dm_plane_state->blend_lut) ++ drm_property_blob_put(dm_plane_state->blend_lut); ++ + if (dm_plane_state->dc_state) + dc_plane_state_release(dm_plane_state->dc_state); + + drm_atomic_helper_plane_destroy_state(plane, state); + } + ++#ifdef AMD_PRIVATE_COLOR ++static void ++dm_atomic_plane_attach_color_mgmt_properties(struct amdgpu_display_manager *dm, ++ struct drm_plane *plane) ++{ ++ struct amdgpu_mode_info mode_info = dm->adev->mode_info; ++ struct dpp_color_caps dpp_color_caps = dm->dc->caps.color.dpp; ++ ++ /* Check HW color pipeline capabilities for DPP (pre-blending) before expose*/ ++ if (dpp_color_caps.dgam_ram || dpp_color_caps.gamma_corr) { ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_degamma_lut_property, 0); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_degamma_lut_size_property, ++ MAX_COLOR_LUT_ENTRIES); ++ drm_object_attach_property(&plane->base, ++ dm->adev->mode_info.plane_degamma_tf_property, ++ AMDGPU_TRANSFER_FUNCTION_DEFAULT); ++ } ++ /* HDR MULT is always available */ ++ drm_object_attach_property(&plane->base, ++ dm->adev->mode_info.plane_hdr_mult_property, ++ AMDGPU_HDR_MULT_DEFAULT); ++ ++ /* Only enable plane CTM if both DPP and MPC gamut remap is available. */ ++ if (dm->dc->caps.color.mpc.gamut_remap) ++ drm_object_attach_property(&plane->base, ++ dm->adev->mode_info.plane_ctm_property, 0); ++ ++ if (dpp_color_caps.hw_3d_lut) { ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_shaper_lut_property, 0); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_shaper_lut_size_property, ++ MAX_COLOR_LUT_ENTRIES); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_shaper_tf_property, ++ AMDGPU_TRANSFER_FUNCTION_DEFAULT); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_lut3d_property, 0); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_lut3d_size_property, ++ MAX_COLOR_3DLUT_ENTRIES); ++ } ++ ++ if (dpp_color_caps.ogam_ram) { ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_blend_lut_property, 0); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_blend_lut_size_property, ++ MAX_COLOR_LUT_ENTRIES); ++ drm_object_attach_property(&plane->base, ++ mode_info.plane_blend_tf_property, ++ AMDGPU_TRANSFER_FUNCTION_DEFAULT); ++ } ++} ++ ++static int ++dm_atomic_plane_set_property(struct drm_plane *plane, ++ struct drm_plane_state *state, ++ struct drm_property *property, ++ uint64_t val) ++{ ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); ++ struct amdgpu_device *adev = drm_to_adev(plane->dev); ++ bool replaced = false; ++ int ret; ++ ++ if (property == adev->mode_info.plane_degamma_lut_property) { ++ ret = drm_property_replace_blob_from_id(plane->dev, ++ &dm_plane_state->degamma_lut, ++ val, ++ -1, sizeof(struct drm_color_lut), ++ &replaced); ++ dm_plane_state->base.color_mgmt_changed |= replaced; ++ return ret; ++ } else if (property == adev->mode_info.plane_degamma_tf_property) { ++ if (dm_plane_state->degamma_tf != val) { ++ dm_plane_state->degamma_tf = val; ++ dm_plane_state->base.color_mgmt_changed = 1; ++ } ++ } else if (property == adev->mode_info.plane_hdr_mult_property) { ++ if (dm_plane_state->hdr_mult != val) { ++ dm_plane_state->hdr_mult = val; ++ dm_plane_state->base.color_mgmt_changed = 1; ++ } ++ } else if (property == adev->mode_info.plane_ctm_property) { ++ ret = drm_property_replace_blob_from_id(plane->dev, ++ &dm_plane_state->ctm, ++ val, ++ sizeof(struct drm_color_ctm2), -1, ++ &replaced); ++ dm_plane_state->base.color_mgmt_changed |= replaced; ++ return ret; ++ } else if (property == adev->mode_info.plane_shaper_lut_property) { ++ ret = drm_property_replace_blob_from_id(plane->dev, ++ &dm_plane_state->shaper_lut, ++ val, -1, ++ sizeof(struct drm_color_lut), ++ &replaced); ++ dm_plane_state->base.color_mgmt_changed |= replaced; ++ return ret; ++ } else if (property == adev->mode_info.plane_shaper_tf_property) { ++ if (dm_plane_state->shaper_tf != val) { ++ dm_plane_state->shaper_tf = val; ++ dm_plane_state->base.color_mgmt_changed = 1; ++ } ++ } else if (property == adev->mode_info.plane_lut3d_property) { ++ ret = drm_property_replace_blob_from_id(plane->dev, ++ &dm_plane_state->lut3d, ++ val, -1, ++ sizeof(struct drm_color_lut), ++ &replaced); ++ dm_plane_state->base.color_mgmt_changed |= replaced; ++ return ret; ++ } else if (property == adev->mode_info.plane_blend_lut_property) { ++ ret = drm_property_replace_blob_from_id(plane->dev, ++ &dm_plane_state->blend_lut, ++ val, -1, ++ sizeof(struct drm_color_lut), ++ &replaced); ++ dm_plane_state->base.color_mgmt_changed |= replaced; ++ return ret; ++ } else if (property == adev->mode_info.plane_blend_tf_property) { ++ if (dm_plane_state->blend_tf != val) { ++ dm_plane_state->blend_tf = val; ++ dm_plane_state->base.color_mgmt_changed = 1; ++ } ++ } else { ++ drm_dbg_atomic(plane->dev, ++ "[PLANE:%d:%s] unknown property [PROP:%d:%s]]\n", ++ plane->base.id, plane->name, ++ property->base.id, property->name); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int ++dm_atomic_plane_get_property(struct drm_plane *plane, ++ const struct drm_plane_state *state, ++ struct drm_property *property, ++ uint64_t *val) ++{ ++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(state); ++ struct amdgpu_device *adev = drm_to_adev(plane->dev); ++ ++ if (property == adev->mode_info.plane_degamma_lut_property) { ++ *val = (dm_plane_state->degamma_lut) ? ++ dm_plane_state->degamma_lut->base.id : 0; ++ } else if (property == adev->mode_info.plane_degamma_tf_property) { ++ *val = dm_plane_state->degamma_tf; ++ } else if (property == adev->mode_info.plane_hdr_mult_property) { ++ *val = dm_plane_state->hdr_mult; ++ } else if (property == adev->mode_info.plane_ctm_property) { ++ *val = (dm_plane_state->ctm) ? ++ dm_plane_state->ctm->base.id : 0; ++ } else if (property == adev->mode_info.plane_shaper_lut_property) { ++ *val = (dm_plane_state->shaper_lut) ? ++ dm_plane_state->shaper_lut->base.id : 0; ++ } else if (property == adev->mode_info.plane_shaper_tf_property) { ++ *val = dm_plane_state->shaper_tf; ++ } else if (property == adev->mode_info.plane_lut3d_property) { ++ *val = (dm_plane_state->lut3d) ? ++ dm_plane_state->lut3d->base.id : 0; ++ } else if (property == adev->mode_info.plane_blend_lut_property) { ++ *val = (dm_plane_state->blend_lut) ? ++ dm_plane_state->blend_lut->base.id : 0; ++ } else if (property == adev->mode_info.plane_blend_tf_property) { ++ *val = dm_plane_state->blend_tf; ++ ++ } else { ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++#endif ++ + static const struct drm_plane_funcs dm_plane_funcs = { + .update_plane = drm_atomic_helper_update_plane, + .disable_plane = drm_atomic_helper_disable_plane, +@@ -1435,6 +1648,10 @@ static const struct drm_plane_funcs dm_plane_funcs = { + .atomic_duplicate_state = dm_drm_plane_duplicate_state, + .atomic_destroy_state = dm_drm_plane_destroy_state, + .format_mod_supported = dm_plane_format_mod_supported, ++#ifdef AMD_PRIVATE_COLOR ++ .atomic_set_property = dm_atomic_plane_set_property, ++ .atomic_get_property = dm_atomic_plane_get_property, ++#endif + }; + + int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, +@@ -1514,6 +1731,9 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, + + drm_plane_helper_add(plane, &dm_plane_helper_funcs); + ++#ifdef AMD_PRIVATE_COLOR ++ dm_atomic_plane_attach_color_mgmt_properties(dm, plane); ++#endif + /* Create (reset) the plane state */ + if (plane->funcs->reset) + plane->funcs->reset(plane); +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c +index 3538973bd0c6..04b2e04b68f3 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c +@@ -349,20 +349,37 @@ bool cm_helper_translate_curve_to_hw_format(struct dc_context *ctx, + * segment is from 2^-10 to 2^1 + * There are less than 256 points, for optimization + */ +- seg_distr[0] = 3; +- seg_distr[1] = 4; +- seg_distr[2] = 4; +- seg_distr[3] = 4; +- seg_distr[4] = 4; +- seg_distr[5] = 4; +- seg_distr[6] = 4; +- seg_distr[7] = 4; +- seg_distr[8] = 4; +- seg_distr[9] = 4; +- seg_distr[10] = 1; +- +- region_start = -10; +- region_end = 1; ++ if (output_tf->tf == TRANSFER_FUNCTION_LINEAR) { ++ seg_distr[0] = 0; /* 2 */ ++ seg_distr[1] = 1; /* 4 */ ++ seg_distr[2] = 2; /* 4 */ ++ seg_distr[3] = 3; /* 8 */ ++ seg_distr[4] = 4; /* 16 */ ++ seg_distr[5] = 5; /* 32 */ ++ seg_distr[6] = 6; /* 64 */ ++ seg_distr[7] = 7; /* 128 */ ++ ++ region_start = -8; ++ region_end = 1; ++ } else { ++ seg_distr[0] = 3; /* 8 */ ++ seg_distr[1] = 4; /* 16 */ ++ seg_distr[2] = 4; ++ seg_distr[3] = 4; ++ seg_distr[4] = 4; ++ seg_distr[5] = 4; ++ seg_distr[6] = 4; ++ seg_distr[7] = 4; ++ seg_distr[8] = 4; ++ seg_distr[9] = 4; ++ seg_distr[10] = 1; /* 2 */ ++ /* total = 8*16 + 8 + 64 + 2 = */ ++ ++ region_start = -10; ++ region_end = 1; ++ } ++ ++ + } + + for (i = region_end - region_start; i < MAX_REGIONS_NUMBER ; i++) +@@ -375,16 +392,56 @@ bool cm_helper_translate_curve_to_hw_format(struct dc_context *ctx, + + j = 0; + for (k = 0; k < (region_end - region_start); k++) { +- increment = NUMBER_SW_SEGMENTS / (1 << seg_distr[k]); ++ /* ++ * We're using an ugly-ish hack here. Our HW allows for ++ * 256 segments per region but SW_SEGMENTS is 16. ++ * SW_SEGMENTS has some undocumented relationship to ++ * the number of points in the tf_pts struct, which ++ * is 512, unlike what's suggested TRANSFER_FUNC_POINTS. ++ * ++ * In order to work past this dilemma we'll scale our ++ * increment by (1 << 4) and then do the inverse (1 >> 4) ++ * when accessing the elements in tf_pts. ++ * ++ * TODO: find a better way using SW_SEGMENTS and ++ * TRANSFER_FUNC_POINTS definitions ++ */ ++ increment = (NUMBER_SW_SEGMENTS << 4) / (1 << seg_distr[k]); + start_index = (region_start + k + MAX_LOW_POINT) * + NUMBER_SW_SEGMENTS; +- for (i = start_index; i < start_index + NUMBER_SW_SEGMENTS; ++ for (i = (start_index << 4); i < (start_index << 4) + (NUMBER_SW_SEGMENTS << 4); + i += increment) { ++ struct fixed31_32 in_plus_one, in; ++ struct fixed31_32 value, red_value, green_value, blue_value; ++ uint32_t t = i & 0xf; ++ + if (j == hw_points - 1) + break; +- rgb_resulted[j].red = output_tf->tf_pts.red[i]; +- rgb_resulted[j].green = output_tf->tf_pts.green[i]; +- rgb_resulted[j].blue = output_tf->tf_pts.blue[i]; ++ ++ in_plus_one = output_tf->tf_pts.red[(i >> 4) + 1]; ++ in = output_tf->tf_pts.red[i >> 4]; ++ value = dc_fixpt_sub(in_plus_one, in); ++ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); ++ value = dc_fixpt_add(in, value); ++ red_value = value; ++ ++ in_plus_one = output_tf->tf_pts.green[(i >> 4) + 1]; ++ in = output_tf->tf_pts.green[i >> 4]; ++ value = dc_fixpt_sub(in_plus_one, in); ++ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); ++ value = dc_fixpt_add(in, value); ++ green_value = value; ++ ++ in_plus_one = output_tf->tf_pts.blue[(i >> 4) + 1]; ++ in = output_tf->tf_pts.blue[i >> 4]; ++ value = dc_fixpt_sub(in_plus_one, in); ++ value = dc_fixpt_shr(dc_fixpt_mul_int(value, t), 4); ++ value = dc_fixpt_add(in, value); ++ blue_value = value; ++ ++ rgb_resulted[j].red = red_value; ++ rgb_resulted[j].green = green_value; ++ rgb_resulted[j].blue = blue_value; + j++; + } + } +diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +index 255713ec29bb..fce9b33c0f88 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +@@ -186,6 +186,43 @@ bool dcn30_set_input_transfer_func(struct dc *dc, + return result; + } + ++void dcn30_program_gamut_remap(struct pipe_ctx *pipe_ctx) ++{ ++ int i = 0; ++ struct dpp_grph_csc_adjustment dpp_adjust; ++ struct mpc_grph_gamut_adjustment mpc_adjust; ++ int mpcc_id = pipe_ctx->plane_res.hubp->inst; ++ struct mpc *mpc = pipe_ctx->stream_res.opp->ctx->dc->res_pool->mpc; ++ ++ memset(&dpp_adjust, 0, sizeof(dpp_adjust)); ++ dpp_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS; ++ ++ if (pipe_ctx->plane_state && ++ pipe_ctx->plane_state->gamut_remap_matrix.enable_remap == true) { ++ dpp_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_SW; ++ for (i = 0; i < CSC_TEMPERATURE_MATRIX_SIZE; i++) ++ dpp_adjust.temperature_matrix[i] = ++ pipe_ctx->plane_state->gamut_remap_matrix.matrix[i]; ++ } ++ ++ pipe_ctx->plane_res.dpp->funcs->dpp_set_gamut_remap(pipe_ctx->plane_res.dpp, ++ &dpp_adjust); ++ ++ memset(&mpc_adjust, 0, sizeof(mpc_adjust)); ++ mpc_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS; ++ ++ if (pipe_ctx->top_pipe == NULL) { ++ if (pipe_ctx->stream->gamut_remap_matrix.enable_remap == true) { ++ mpc_adjust.gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_SW; ++ for (i = 0; i < CSC_TEMPERATURE_MATRIX_SIZE; i++) ++ mpc_adjust.temperature_matrix[i] = ++ pipe_ctx->stream->gamut_remap_matrix.matrix[i]; ++ } ++ } ++ ++ mpc->funcs->set_gamut_remap(mpc, mpcc_id, &mpc_adjust); ++} ++ + bool dcn30_set_output_transfer_func(struct dc *dc, + struct pipe_ctx *pipe_ctx, + const struct dc_stream_state *stream) +diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h +index ce19c54097f8..e557e2b98618 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h ++++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h +@@ -58,6 +58,9 @@ bool dcn30_set_blend_lut(struct pipe_ctx *pipe_ctx, + bool dcn30_set_input_transfer_func(struct dc *dc, + struct pipe_ctx *pipe_ctx, + const struct dc_plane_state *plane_state); ++ ++void dcn30_program_gamut_remap(struct pipe_ctx *pipe_ctx); ++ + bool dcn30_set_output_transfer_func(struct dc *dc, + struct pipe_ctx *pipe_ctx, + const struct dc_stream_state *stream); +diff --git a/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c b/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c +index 61205cdbe2d5..fdbe3d42cd7b 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn301/dcn301_init.c +@@ -33,7 +33,7 @@ + #include "dcn301_init.h" + + static const struct hw_sequencer_funcs dcn301_funcs = { +- .program_gamut_remap = dcn10_program_gamut_remap, ++ .program_gamut_remap = dcn30_program_gamut_remap, + .init_hw = dcn10_init_hw, + .power_down_on_boot = dcn10_power_down_on_boot, + .apply_ctx_to_hw = dce110_apply_ctx_to_hw, +diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h +index d4cf7ead1d87..84da1dd34efd 100644 +--- a/drivers/gpu/drm/amd/display/include/fixed31_32.h ++++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h +@@ -69,6 +69,18 @@ static const struct fixed31_32 dc_fixpt_epsilon = { 1LL }; + static const struct fixed31_32 dc_fixpt_half = { 0x80000000LL }; + static const struct fixed31_32 dc_fixpt_one = { 0x100000000LL }; + ++static inline struct fixed31_32 dc_fixpt_from_s3132(__u64 x) ++{ ++ struct fixed31_32 val; ++ ++ /* If negative, convert to 2's complement. */ ++ if (x & (1ULL << 63)) ++ x = -(x & ~(1ULL << 63)); ++ ++ val.value = x; ++ return val; ++} ++ + /* + * @brief + * Initialization routines +diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c +index dc01c43f6193..d72c22dcf685 100644 +--- a/drivers/gpu/drm/arm/malidp_crtc.c ++++ b/drivers/gpu/drm/arm/malidp_crtc.c +@@ -221,7 +221,7 @@ static int malidp_crtc_atomic_check_ctm(struct drm_crtc *crtc, + + /* + * The size of the ctm is checked in +- * drm_atomic_replace_property_blob_from_id. ++ * drm_property_replace_blob_from_id. + */ + ctm = (struct drm_color_ctm *)state->ctm->data; + for (i = 0; i < ARRAY_SIZE(ctm->matrix); ++i) { +diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c +index c277b198fa3f..c3df45f90145 100644 +--- a/drivers/gpu/drm/drm_atomic.c ++++ b/drivers/gpu/drm/drm_atomic.c +@@ -733,6 +733,7 @@ static void drm_atomic_plane_print_state(struct drm_printer *p, + drm_get_color_encoding_name(state->color_encoding)); + drm_printf(p, "\tcolor-range=%s\n", + drm_get_color_range_name(state->color_range)); ++ drm_printf(p, "\tcolor_mgmt_changed=%d\n", state->color_mgmt_changed); + + if (plane->funcs->atomic_print_state) + plane->funcs->atomic_print_state(p, state); +diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c +index 784e63d70a42..25bb0859fda7 100644 +--- a/drivers/gpu/drm/drm_atomic_state_helper.c ++++ b/drivers/gpu/drm/drm_atomic_state_helper.c +@@ -338,6 +338,7 @@ void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane, + state->fence = NULL; + state->commit = NULL; + state->fb_damage_clips = NULL; ++ state->color_mgmt_changed = false; + } + EXPORT_SYMBOL(__drm_atomic_helper_plane_duplicate_state); + +diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c +index dfec479830e4..f72ef6493340 100644 +--- a/drivers/gpu/drm/drm_property.c ++++ b/drivers/gpu/drm/drm_property.c +@@ -751,6 +751,55 @@ bool drm_property_replace_blob(struct drm_property_blob **blob, + } + EXPORT_SYMBOL(drm_property_replace_blob); + ++/** ++ * drm_property_replace_blob_from_id - replace a blob property taking a reference ++ * @dev: DRM device ++ * @blob: a pointer to the member blob to be replaced ++ * @blob_id: the id of the new blob to replace with ++ * @expected_size: expected size of the blob property ++ * @expected_elem_size: expected size of an element in the blob property ++ * @replaced: if the blob was in fact replaced ++ * ++ * Look up the new blob from id, take its reference, check expected sizes of ++ * the blob and its element and replace the old blob by the new one. Advertise ++ * if the replacement operation was successful. ++ * ++ * Return: true if the blob was in fact replaced. -EINVAL if the new blob was ++ * not found or sizes don't match. ++ */ ++int drm_property_replace_blob_from_id(struct drm_device *dev, ++ struct drm_property_blob **blob, ++ uint64_t blob_id, ++ ssize_t expected_size, ++ ssize_t expected_elem_size, ++ bool *replaced) ++{ ++ struct drm_property_blob *new_blob = NULL; ++ ++ if (blob_id != 0) { ++ new_blob = drm_property_lookup_blob(dev, blob_id); ++ if (new_blob == NULL) ++ return -EINVAL; ++ ++ if (expected_size > 0 && ++ new_blob->length != expected_size) { ++ drm_property_blob_put(new_blob); ++ return -EINVAL; ++ } ++ if (expected_elem_size > 0 && ++ new_blob->length % expected_elem_size != 0) { ++ drm_property_blob_put(new_blob); ++ return -EINVAL; ++ } ++ } ++ ++ *replaced |= drm_property_replace_blob(blob, new_blob); ++ drm_property_blob_put(new_blob); ++ ++ return 0; ++} ++EXPORT_SYMBOL(drm_property_replace_blob_from_id); ++ + int drm_mode_getblob_ioctl(struct drm_device *dev, + void *data, struct drm_file *file_priv) + { +diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h +index 912f1e415685..08d7a7f0188f 100644 +--- a/include/drm/drm_mode_object.h ++++ b/include/drm/drm_mode_object.h +@@ -60,7 +60,7 @@ struct drm_mode_object { + void (*free_cb)(struct kref *kref); + }; + +-#define DRM_OBJECT_MAX_PROPERTY 24 ++#define DRM_OBJECT_MAX_PROPERTY 64 + /** + * struct drm_object_properties - property tracking for &drm_mode_object + */ +diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h +index 79d62856defb..4f87803b3ea1 100644 +--- a/include/drm/drm_plane.h ++++ b/include/drm/drm_plane.h +@@ -237,6 +237,13 @@ struct drm_plane_state { + + /** @state: backpointer to global drm_atomic_state */ + struct drm_atomic_state *state; ++ ++ /** ++ * @color_mgmt_changed: Color management properties have changed. Used ++ * by the atomic helpers and drivers to steer the atomic commit control ++ * flow. ++ */ ++ bool color_mgmt_changed : 1; + }; + + static inline struct drm_rect +diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h +index 65bc9710a470..082f29156b3e 100644 +--- a/include/drm/drm_property.h ++++ b/include/drm/drm_property.h +@@ -279,6 +279,12 @@ struct drm_property_blob *drm_property_create_blob(struct drm_device *dev, + const void *data); + struct drm_property_blob *drm_property_lookup_blob(struct drm_device *dev, + uint32_t id); ++int drm_property_replace_blob_from_id(struct drm_device *dev, ++ struct drm_property_blob **blob, ++ uint64_t blob_id, ++ ssize_t expected_size, ++ ssize_t expected_elem_size, ++ bool *replaced); + int drm_property_replace_global_blob(struct drm_device *dev, + struct drm_property_blob **replace, + size_t length, +diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h +index ea1b639bcb28..cea5653e4020 100644 +--- a/include/uapi/drm/drm_mode.h ++++ b/include/uapi/drm/drm_mode.h +@@ -846,6 +846,14 @@ struct drm_color_ctm { + __u64 matrix[9]; + }; + ++struct drm_color_ctm2 { ++ /* ++ * Conversion matrix in S31.32 sign-magnitude ++ * (not two's complement!) format. ++ */ ++ __u64 matrix[12]; ++}; ++ + struct drm_color_lut { + /* + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and +-- +2.43.0.rc2 + diff --git a/SOURCES/Patchlist.changelog b/SOURCES/Patchlist.changelog index eb625d3..f8e12a3 100644 --- a/SOURCES/Patchlist.changelog +++ b/SOURCES/Patchlist.changelog @@ -1,135 +1,105 @@ -"https://gitlab.com/cki-project/kernel-ark/-/commit"/acc130077a200c2467cd265c2ef75e82f653a1ad - acc130077a200c2467cd265c2ef75e82f653a1ad rtc: cmos: Use ACPI alarm for non-Intel x86 systems too +"https://gitlab.com/cki-project/kernel-ark/-/commit"/ed5f19c3892cc5dcfe95dd4d296c5e617a26c821 + ed5f19c3892cc5dcfe95dd4d296c5e617a26c821 Revert "netfilter: nf_tables: remove catchall element in GC sync path" -"https://gitlab.com/cki-project/kernel-ark/-/commit"/9ed1817997b0d2f283275cce33cd7043b220d990 - 9ed1817997b0d2f283275cce33cd7043b220d990 power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint +"https://gitlab.com/cki-project/kernel-ark/-/commit"/81689414a7974a3f3fa3b28c18226c9d583761d4 + 81689414a7974a3f3fa3b28c18226c9d583761d4 netfilter: nf_tables: remove catchall element in GC sync path -"https://gitlab.com/cki-project/kernel-ark/-/commit"/a3359bb88c8debcf1ed9aeeab15090cff336c8fd - a3359bb88c8debcf1ed9aeeab15090cff336c8fd Revert "Add linux-next specific files for 20231004" +"https://gitlab.com/cki-project/kernel-ark/-/commit"/91d392fbbe771b2b4c45fd39b9150e27be3251ba + 91d392fbbe771b2b4c45fd39b9150e27be3251ba ACPI: video: Use acpi_device_fix_up_power_children() -"https://gitlab.com/cki-project/kernel-ark/-/commit"/4ef04c8ed25522fe1e4f917fe557716145c7361d - 4ef04c8ed25522fe1e4f917fe557716145c7361d Add linux-next specific files for 20231004 +"https://gitlab.com/cki-project/kernel-ark/-/commit"/3bd5c005766e37c5c60b1210e844091ddebd28d6 + 3bd5c005766e37c5c60b1210e844091ddebd28d6 ACPI: PM: Add acpi_device_fix_up_power_children() function -"https://gitlab.com/cki-project/kernel-ark/-/commit"/afdab9b20ab7455f752527125b57c92d24601c6e - afdab9b20ab7455f752527125b57c92d24601c6e drm/amdgpu: set completion status as preempted for the resubmission +"https://gitlab.com/cki-project/kernel-ark/-/commit"/46f41fa0448229c32bbc60d3c8ef50d22c33b117 + 46f41fa0448229c32bbc60d3c8ef50d22c33b117 rtc: cmos: Use ACPI alarm for non-Intel x86 systems too -"https://gitlab.com/cki-project/kernel-ark/-/commit"/fe8fa52d7059d2dd7b171a0ad1a53bd55c7d449a - fe8fa52d7059d2dd7b171a0ad1a53bd55c7d449a iommu/apple-dart: Handle DMA_FQ domains in attach_dev() +"https://gitlab.com/cki-project/kernel-ark/-/commit"/84c68fe1f91beef8b25ca2202d3581260447b334 + 84c68fe1f91beef8b25ca2202d3581260447b334 drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set -"https://gitlab.com/cki-project/kernel-ark/-/commit"/d08eefa0932515ada7d972c51b99153a7ea3d6ac - d08eefa0932515ada7d972c51b99153a7ea3d6ac locking/atomic: scripts: fix fallback ifdeffery +"https://gitlab.com/cki-project/kernel-ark/-/commit"/51d40b1c54cf09e93d42dc0d090765016362d692 + 51d40b1c54cf09e93d42dc0d090765016362d692 scsi: sd: Add "probe_type" module parameter to allow synchronous probing -"https://gitlab.com/cki-project/kernel-ark/-/commit"/d39b077dee33176ab97b22593fc8ae8a130ee768 - d39b077dee33176ab97b22593fc8ae8a130ee768 btrfs: adjust overcommit logic when very close to full +"https://gitlab.com/cki-project/kernel-ark/-/commit"/6e9d8352504d3de95ebdff5289e2da6e93b90767 + 6e9d8352504d3de95ebdff5289e2da6e93b90767 Enable IO_URING for RHEL -"https://gitlab.com/cki-project/kernel-ark/-/commit"/a1c2565138b048b69ec731e22118ec1837fa5ceb - a1c2565138b048b69ec731e22118ec1837fa5ceb btrfs: properly report 0 avail for very full file systems +"https://gitlab.com/cki-project/kernel-ark/-/commit"/e65e1c9cfce51744f3ccce9ede248e74a6e7bb5c + e65e1c9cfce51744f3ccce9ede248e74a6e7bb5c redhat: version two of Makefile.rhelver tweaks -"https://gitlab.com/cki-project/kernel-ark/-/commit"/60528063540aabceb7c4d79c7938d229ed5efc4f - 60528063540aabceb7c4d79c7938d229ed5efc4f selinux: fix handling of empty opts in selinux_fs_context_submount() +"https://gitlab.com/cki-project/kernel-ark/-/commit"/97edcc85a591ed63b65fa583a1593e379ec779a0 + 97edcc85a591ed63b65fa583a1593e379ec779a0 redhat: adapt to upstream Makefile change -"https://gitlab.com/cki-project/kernel-ark/-/commit"/80c615ec2edb4aadded21fe924e2caa172d59577 - 80c615ec2edb4aadded21fe924e2caa172d59577 Revert "misc: rtsx: judge ASPM Mode to set PETXCFG Reg" +"https://gitlab.com/cki-project/kernel-ark/-/commit"/f0274138f93a5de8d5757dc1310a51fd9adae739 + f0274138f93a5de8d5757dc1310a51fd9adae739 Change acpi_bus_get_acpi_device to acpi_get_acpi_dev -"https://gitlab.com/cki-project/kernel-ark/-/commit"/c53302b2ed77cf6f3a125135a1f85af8cbc0ba4b - c53302b2ed77cf6f3a125135a1f85af8cbc0ba4b tpm: Enable hwrng only for Pluton on AMD CPUs +"https://gitlab.com/cki-project/kernel-ark/-/commit"/b18359baab10beb33452ec4bac68a25db0ac2531 + b18359baab10beb33452ec4bac68a25db0ac2531 RHEL: disable io_uring support -"https://gitlab.com/cki-project/kernel-ark/-/commit"/065cd69d44a8c576d6ff671ceae019f991cee492 - 065cd69d44a8c576d6ff671ceae019f991cee492 erofs: ensure that the post-EOF tails are all zeroed +"https://gitlab.com/cki-project/kernel-ark/-/commit"/e86246f6bff2cae6ed0728cb9855dc321aa22442 + e86246f6bff2cae6ed0728cb9855dc321aa22442 REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 -"https://gitlab.com/cki-project/kernel-ark/-/commit"/b0da866f75833f1bb8570d7978a8d5179c8d9ab6 - b0da866f75833f1bb8570d7978a8d5179c8d9ab6 drm/msm/a690: Switch to a660_gmu.bin +"https://gitlab.com/cki-project/kernel-ark/-/commit"/780e15df6bfda4a86de773b5a76348845cd287e2 + 780e15df6bfda4a86de773b5a76348845cd287e2 KEYS: Make use of platform keyring for module signature verify -"https://gitlab.com/cki-project/kernel-ark/-/commit"/f3cdb1143146a65982f46846cd590affb2b87538 - f3cdb1143146a65982f46846cd590affb2b87538 drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set +"https://gitlab.com/cki-project/kernel-ark/-/commit"/e16c46de5e538011a405f267e0591a03fe4434f1 + e16c46de5e538011a405f267e0591a03fe4434f1 Input: rmi4 - remove the need for artificial IRQ in case of HID -"https://gitlab.com/cki-project/kernel-ark/-/commit"/ea332dbc69a256a04bd53fee92db956439acee06 - ea332dbc69a256a04bd53fee92db956439acee06 scsi: sd: Add "probe_type" module parameter to allow synchronous probing +"https://gitlab.com/cki-project/kernel-ark/-/commit"/cefdb4374d26857e1d90cdd35936f219693dff11 + cefdb4374d26857e1d90cdd35936f219693dff11 ARM: tegra: usb no reset -"https://gitlab.com/cki-project/kernel-ark/-/commit"/66721aea3aaa311bb78cf0947f06070f4101ee0e - 66721aea3aaa311bb78cf0947f06070f4101ee0e Revert "Remove EXPERT from ARCH_FORCE_MAX_ORDER for aarch64" +"https://gitlab.com/cki-project/kernel-ark/-/commit"/161fba6e6557f41e7d2e1be2d4300aac25894c22 + 161fba6e6557f41e7d2e1be2d4300aac25894c22 s390: Lock down the kernel when the IPL secure flag is set -"https://gitlab.com/cki-project/kernel-ark/-/commit"/29cd90a2b4cade829ac1401ef13314620b6c38a1 - 29cd90a2b4cade829ac1401ef13314620b6c38a1 Remove EXPERT from ARCH_FORCE_MAX_ORDER for aarch64 +"https://gitlab.com/cki-project/kernel-ark/-/commit"/f23df5d91bbc852ed9a289c88b478b5890ff3aff + f23df5d91bbc852ed9a289c88b478b5890ff3aff efi: Lock down the kernel if booted in secure boot mode -"https://gitlab.com/cki-project/kernel-ark/-/commit"/ff96030d973a1b9233402a64d48d53e0d9461781 - ff96030d973a1b9233402a64d48d53e0d9461781 redhat: version two of Makefile.rhelver tweaks +"https://gitlab.com/cki-project/kernel-ark/-/commit"/388c5040283f7748c06961a807ab82960cfac7b2 + 388c5040283f7748c06961a807ab82960cfac7b2 efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode -"https://gitlab.com/cki-project/kernel-ark/-/commit"/66064bbf7222c53ef297bfa4a14ffe4193b0fe94 - 66064bbf7222c53ef297bfa4a14ffe4193b0fe94 redhat: adapt to upstream Makefile change +"https://gitlab.com/cki-project/kernel-ark/-/commit"/e81d15d326fecd1c90d82b2acb9bdb259b4033ac + e81d15d326fecd1c90d82b2acb9bdb259b4033ac security: lockdown: expose a hook to lock the kernel down -"https://gitlab.com/cki-project/kernel-ark/-/commit"/c42de182b354644930e07bc92257d586a6c4ed18 - c42de182b354644930e07bc92257d586a6c4ed18 Change acpi_bus_get_acpi_device to acpi_get_acpi_dev +"https://gitlab.com/cki-project/kernel-ark/-/commit"/1297962689c5c00929be45b6261ab21f0e5de41c + 1297962689c5c00929be45b6261ab21f0e5de41c Make get_cert_list() use efi_status_to_str() to print error messages. -"https://gitlab.com/cki-project/kernel-ark/-/commit"/2e2a2e49f61d066d4bb8bfe0efde2d0f90b1491c - 2e2a2e49f61d066d4bb8bfe0efde2d0f90b1491c nvme: nvme_mpath_init remove multipath check +"https://gitlab.com/cki-project/kernel-ark/-/commit"/2b290761ed33270b9f8fea815c9f29476ead5d5d + 2b290761ed33270b9f8fea815c9f29476ead5d5d Add efi_status_to_str() and rework efi_status_to_err(). -"https://gitlab.com/cki-project/kernel-ark/-/commit"/5481da71dd1b1b88c550492b28e8b250e299f24c - 5481da71dd1b1b88c550492b28e8b250e299f24c nvme: decouple basic ANA log page re-read support from native multipathing +"https://gitlab.com/cki-project/kernel-ark/-/commit"/4f23de5adca7e96a6bb3abc9f7e0546b997c8ea0 + 4f23de5adca7e96a6bb3abc9f7e0546b997c8ea0 iommu/arm-smmu: workaround DMA mode issues -"https://gitlab.com/cki-project/kernel-ark/-/commit"/184662e0b0701841ad0229caf0e6d0ddb2a96231 - 184662e0b0701841ad0229caf0e6d0ddb2a96231 nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT +"https://gitlab.com/cki-project/kernel-ark/-/commit"/3c9be29ba9986f465b7c8fc6e391978833ffac22 + 3c9be29ba9986f465b7c8fc6e391978833ffac22 ipmi: do not configure ipmi for HPE m400 -"https://gitlab.com/cki-project/kernel-ark/-/commit"/00eb6277b582c42373c536e70d13860f87522e38 - 00eb6277b582c42373c536e70d13860f87522e38 nvme: Return BLK_STS_TARGET if the DNR bit is set +"https://gitlab.com/cki-project/kernel-ark/-/commit"/f9bd4dd2a3e0ce4fc91eea39c747a2b06ac8852c + f9bd4dd2a3e0ce4fc91eea39c747a2b06ac8852c kABI: Add generic kABI macros to use for kABI workarounds -"https://gitlab.com/cki-project/kernel-ark/-/commit"/80063932c894c04a6266f2543dc8a8c66cf0f4b5 - 80063932c894c04a6266f2543dc8a8c66cf0f4b5 REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 +"https://gitlab.com/cki-project/kernel-ark/-/commit"/0a826069d941f0249fa44005fbc6511875553497 + 0a826069d941f0249fa44005fbc6511875553497 ahci: thunderx2: Fix for errata that affects stop engine -"https://gitlab.com/cki-project/kernel-ark/-/commit"/90f006ba80d847b4c8c689616b07370c2292a804 - 90f006ba80d847b4c8c689616b07370c2292a804 KEYS: Make use of platform keyring for module signature verify +"https://gitlab.com/cki-project/kernel-ark/-/commit"/b156077e6f7cdf9bc390551e7b65b80d1d5e285d + b156077e6f7cdf9bc390551e7b65b80d1d5e285d Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon -"https://gitlab.com/cki-project/kernel-ark/-/commit"/856b4c54f954509436a51da2bfc0f0d44425d173 - 856b4c54f954509436a51da2bfc0f0d44425d173 Input: rmi4 - remove the need for artificial IRQ in case of HID +"https://gitlab.com/cki-project/kernel-ark/-/commit"/129dc65edece93e256a9c79b3e1f962fc7074406 + 129dc65edece93e256a9c79b3e1f962fc7074406 tags.sh: Ignore redhat/rpm -"https://gitlab.com/cki-project/kernel-ark/-/commit"/9c10ed2c097b09b20c928d555bf030c56502cf88 - 9c10ed2c097b09b20c928d555bf030c56502cf88 ARM: tegra: usb no reset +"https://gitlab.com/cki-project/kernel-ark/-/commit"/7558a6cc3029f6cce7cb79ad0ab6348fa1083bb1 + 7558a6cc3029f6cce7cb79ad0ab6348fa1083bb1 put RHEL info into generated headers -"https://gitlab.com/cki-project/kernel-ark/-/commit"/b136b0c2e0bf2f6f8f75f37fa00376563a78f6b2 - b136b0c2e0bf2f6f8f75f37fa00376563a78f6b2 s390: Lock down the kernel when the IPL secure flag is set +"https://gitlab.com/cki-project/kernel-ark/-/commit"/fabdc6fc464674d789063463c8a9abe954ed9f0e + fabdc6fc464674d789063463c8a9abe954ed9f0e aarch64: acpi scan: Fix regression related to X-Gene UARTs -"https://gitlab.com/cki-project/kernel-ark/-/commit"/8ffab3ce8c323b13cf4dbbd0291fb4748cae60a0 - 8ffab3ce8c323b13cf4dbbd0291fb4748cae60a0 efi: Lock down the kernel if booted in secure boot mode +"https://gitlab.com/cki-project/kernel-ark/-/commit"/3332716406fc60dbfbe218275c546081215fd4b3 + 3332716406fc60dbfbe218275c546081215fd4b3 ACPI / irq: Workaround firmware issue on X-Gene based m400 -"https://gitlab.com/cki-project/kernel-ark/-/commit"/9cae435c2ee4380b4086fa3a7ef859090e9f70d2 - 9cae435c2ee4380b4086fa3a7ef859090e9f70d2 efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode +"https://gitlab.com/cki-project/kernel-ark/-/commit"/ad67ea7af8f6e47745455046d807a8cf0b4e3864 + ad67ea7af8f6e47745455046d807a8cf0b4e3864 modules: add rhelversion MODULE_INFO tag -"https://gitlab.com/cki-project/kernel-ark/-/commit"/de90fd8131ce4ed22c547c2bd1af1c20ea173a46 - de90fd8131ce4ed22c547c2bd1af1c20ea173a46 security: lockdown: expose a hook to lock the kernel down +"https://gitlab.com/cki-project/kernel-ark/-/commit"/4a9e157a9522218c86b14c2f91423dc8c6cc32ed + 4a9e157a9522218c86b14c2f91423dc8c6cc32ed ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support -"https://gitlab.com/cki-project/kernel-ark/-/commit"/6fa94ce53295ae4440005260005078d7c737b828 - 6fa94ce53295ae4440005260005078d7c737b828 Make get_cert_list() use efi_status_to_str() to print error messages. +"https://gitlab.com/cki-project/kernel-ark/-/commit"/dd03abf0c6a7dde42a4f540f782c67d81319118d + dd03abf0c6a7dde42a4f540f782c67d81319118d Pull the RHEL version defines out of the Makefile -"https://gitlab.com/cki-project/kernel-ark/-/commit"/6c671f6b733c4ee8b88e6c314208b90486b98446 - 6c671f6b733c4ee8b88e6c314208b90486b98446 Add efi_status_to_str() and rework efi_status_to_err(). - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/676e5b1fd3ede3a4d20157b2604dfd1d0e1405c3 - 676e5b1fd3ede3a4d20157b2604dfd1d0e1405c3 iommu/arm-smmu: workaround DMA mode issues - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/adbf82278579ad712bbdf5d3eaabc4c7fbf3305c - adbf82278579ad712bbdf5d3eaabc4c7fbf3305c ipmi: do not configure ipmi for HPE m400 - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/150baa5a728754cbf8f8c385a10af6b52a408cee - 150baa5a728754cbf8f8c385a10af6b52a408cee ahci: thunderx2: Fix for errata that affects stop engine - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/0a757157eddee28f46bec619cbaf9d2015fda707 - 0a757157eddee28f46bec619cbaf9d2015fda707 Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/6ae5c032ab0cd35e82241c29e1f2bb1272b39fea - 6ae5c032ab0cd35e82241c29e1f2bb1272b39fea tags.sh: Ignore redhat/rpm - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/36c76ea8d8223e20d158ee0928e9e9798b5b878d - 36c76ea8d8223e20d158ee0928e9e9798b5b878d aarch64: acpi scan: Fix regression related to X-Gene UARTs - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/3ed45652209eeccc3918663abebc70001760111b - 3ed45652209eeccc3918663abebc70001760111b ACPI / irq: Workaround firmware issue on X-Gene based m400 - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/92d7a8c46934f658c9017966a90a8745e4b085bd - 92d7a8c46934f658c9017966a90a8745e4b085bd ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/9e9a1ea80fc3ef4bf60f7ee2e41e1dbdd41f17cc - 9e9a1ea80fc3ef4bf60f7ee2e41e1dbdd41f17cc Pull the RHEL version defines out of the Makefile - -"https://gitlab.com/cki-project/kernel-ark/-/commit"/792dcdfdb07c00a91ad8f8c4624b057b84f5f2ae - 792dcdfdb07c00a91ad8f8c4624b057b84f5f2ae [initial commit] Add Red Hat variables in the top level makefile +"https://gitlab.com/cki-project/kernel-ark/-/commit"/866075bfad9aeeb466f2516e071428e9ac5aafaa + 866075bfad9aeeb466f2516e071428e9ac5aafaa [initial commit] Add Red Hat variables in the top level makefile diff --git a/SOURCES/amdgpu-si-cik-default.patch b/SOURCES/amdgpu-si-cik-default.patch index 5479769..b2df0dc 100644 --- a/SOURCES/amdgpu-si-cik-default.patch +++ b/SOURCES/amdgpu-si-cik-default.patch @@ -1,57 +1,51 @@ -From e55f6f53ab572901f826fb66d385eaa7d1210bb5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jan200101 -Date: Tue, 22 Mar 2022 17:52:14 +0100 +Date: Mon, 27 Nov 2023 09:53:59 +0100 Subject: [PATCH] drm/amdgpu: enable SI and CIK support by default Signed-off-by: Jan200101 --- - drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 14 ++------------ + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 ---------- drivers/gpu/drm/radeon/radeon_drv.c | 10 ++++++++++ - 2 files changed, 12 insertions(+), 12 deletions(-) + 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -index 0ead08ba58c2..95a59d203922 100644 +index 81edf66dbea8..5021d03089ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -@@ -575,15 +575,10 @@ module_param_named(timeout_period, amdgpu_watchdog_timer.period, uint, 0644); +@@ -582,13 +582,8 @@ module_param_named(timeout_period, amdgpu_watchdog_timer.period, uint, 0644); */ #ifdef CONFIG_DRM_AMDGPU_SI --#if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEON_MODULE) +-#if IS_ENABLED(CONFIG_DRM_RADEON) || IS_ENABLED(CONFIG_DRM_RADEON_MODULE) -int amdgpu_si_support = 0; -MODULE_PARM_DESC(si_support, "SI support (1 = enabled, 0 = disabled (default))"); -#else int amdgpu_si_support = 1; MODULE_PARM_DESC(si_support, "SI support (1 = enabled (default), 0 = disabled)"); -#endif -- + module_param_named(si_support, amdgpu_si_support, int, 0444); -+ #endif - - /** -@@ -594,15 +589,10 @@ module_param_named(si_support, amdgpu_si_support, int, 0444); +@@ -601,13 +596,8 @@ module_param_named(si_support, amdgpu_si_support, int, 0444); */ #ifdef CONFIG_DRM_AMDGPU_CIK --#if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEON_MODULE) +-#if IS_ENABLED(CONFIG_DRM_RADEON) || IS_ENABLED(CONFIG_DRM_RADEON_MODULE) -int amdgpu_cik_support = 0; -MODULE_PARM_DESC(cik_support, "CIK support (1 = enabled, 0 = disabled (default))"); -#else int amdgpu_cik_support = 1; MODULE_PARM_DESC(cik_support, "CIK support (1 = enabled (default), 0 = disabled)"); -#endif -- + module_param_named(cik_support, amdgpu_cik_support, int, 0444); -+ #endif - - /** diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c -index 956c72b5aa33..5102711ece53 100644 +index 7bf08164140e..865f186f48c4 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c -@@ -272,12 +272,22 @@ module_param_named(uvd, radeon_uvd, int, 0444); +@@ -239,12 +239,22 @@ module_param_named(uvd, radeon_uvd, int, 0444); MODULE_PARM_DESC(vce, "vce enable/disable vce support (1 = enable, 0 = disable)"); module_param_named(vce, radeon_vce, int, 0444); @@ -74,6 +68,3 @@ index 956c72b5aa33..5102711ece53 100644 module_param_named(cik_support, radeon_cik_support, int, 0444); static struct pci_device_id pciidlist[] = { --- -2.35.1 - diff --git a/SOURCES/asus-linux.patch b/SOURCES/asus-linux.patch index 491e5be..5e084db 100644 --- a/SOURCES/asus-linux.patch +++ b/SOURCES/asus-linux.patch @@ -1,1790 +1,8 @@ -From 5a57dbe832b2dc8cc79516977f4fbbfed64c4743 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 4 Jun 2023 18:48:11 +1200 -Subject: [PATCH 01/13] platform/x86: asus-wmi: add support for showing charger - mode - -Expose a WMI method in sysfs platform for showing which connected -charger the laptop is currently using. - -Signed-off-by: Luke D. Jones ---- - .../ABI/testing/sysfs-platform-asus-wmi | 10 +++++++++ - drivers/platform/x86/asus-wmi.c | 21 +++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 3 +++ - 3 files changed, 34 insertions(+) - -diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi -index a77a004a1baa..eb29e3023c7b 100644 ---- a/Documentation/ABI/testing/sysfs-platform-asus-wmi -+++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi -@@ -98,3 +98,13 @@ Description: - Enable an LCD response-time boost to reduce or remove ghosting: - * 0 - Disable, - * 1 - Enable -+ -+What: /sys/devices/platform//charge_mode -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Get the current charging mode being used: -+ * 1 - Barrel connected charger, -+ * 2 - USB-C charging -+ * 3 - Both connected, barrel used for charging -\ No newline at end of file -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 8bef66a2f0ce..cf82ae6323f8 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -237,6 +237,7 @@ struct asus_wmi { - u8 fan_boost_mode_mask; - u8 fan_boost_mode; - -+ bool charge_mode_available; - bool egpu_enable_available; - bool dgpu_disable_available; - bool gpu_mux_mode_available; -@@ -586,6 +587,22 @@ static void asus_wmi_tablet_mode_get_state(struct asus_wmi *asus) - asus_wmi_tablet_sw_report(asus, result); - } - -+/* Charging mode, 1=Barrel, 2=USB ******************************************/ -+static ssize_t charge_mode_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ int result, value; -+ -+ result = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_CHARGE_MODE, &value); -+ if (result < 0) -+ return result; -+ -+ return sysfs_emit(buf, "%d\n", value & 0xff); -+} -+ -+static DEVICE_ATTR_RO(charge_mode); -+ - /* dGPU ********************************************************************/ - static ssize_t dgpu_disable_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -3472,6 +3489,7 @@ static struct attribute *platform_attributes[] = { - &dev_attr_camera.attr, - &dev_attr_cardr.attr, - &dev_attr_touchpad.attr, -+ &dev_attr_charge_mode.attr, - &dev_attr_egpu_enable.attr, - &dev_attr_dgpu_disable.attr, - &dev_attr_gpu_mux_mode.attr, -@@ -3501,6 +3519,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, - devid = ASUS_WMI_DEVID_LID_RESUME; - else if (attr == &dev_attr_als_enable.attr) - devid = ASUS_WMI_DEVID_ALS_ENABLE; -+ else if (attr == &dev_attr_charge_mode.attr) -+ ok = asus->charge_mode_available; - else if (attr == &dev_attr_egpu_enable.attr) - ok = asus->egpu_enable_available; - else if (attr == &dev_attr_dgpu_disable.attr) -@@ -3767,6 +3787,7 @@ static int asus_wmi_add(struct platform_device *pdev) - if (err) - goto fail_platform; - -+ asus->charge_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CHARGE_MODE); - asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU); - asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU); - asus->gpu_mux_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX); -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index 28234dc9fa6a..f90cafe26af1 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -95,6 +95,9 @@ - /* Keyboard dock */ - #define ASUS_WMI_DEVID_KBD_DOCK 0x00120063 - -+/* Charging mode - 1=Barrel, 2=USB */ -+#define ASUS_WMI_DEVID_CHARGE_MODE 0x0012006C -+ - /* dgpu on/off */ - #define ASUS_WMI_DEVID_EGPU 0x00090019 - --- -2.41.0 - -From 6c0e89067d0608fedd3b75844bdea5566a0c249f Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 4 Jun 2023 19:07:31 +1200 -Subject: [PATCH 02/13] platform/x86: asus-wmi: add support for showing middle - fan RPM - -Some newer ASUS ROG laptops now have a middle/center fan in addition -to the CPU and GPU fans. This new fan typically blows across the -heatpipes and VRMs betweent eh CPU and GPU. - -This commit exposes that fan to PWM control plus showing RPM. - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 91 ++++++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 1 + - 2 files changed, 92 insertions(+) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index cf82ae6323f8..069251d8040f 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -72,6 +72,7 @@ module_param(fnlock_default, bool, 0444); - - #define ASUS_WMI_FNLOCK_BIOS_DISABLED BIT(0) - -+#define ASUS_MID_FAN_DESC "mid_fan" - #define ASUS_GPU_FAN_DESC "gpu_fan" - #define ASUS_FAN_DESC "cpu_fan" - #define ASUS_FAN_MFUN 0x13 -@@ -229,8 +230,10 @@ struct asus_wmi { - - enum fan_type fan_type; - enum fan_type gpu_fan_type; -+ enum fan_type mid_fan_type; - int fan_pwm_mode; - int gpu_fan_pwm_mode; -+ int mid_fan_pwm_mode; - int agfn_pwm; - - bool fan_boost_mode_available; -@@ -2139,6 +2142,31 @@ static ssize_t fan2_label_show(struct device *dev, - return sysfs_emit(buf, "%s\n", ASUS_GPU_FAN_DESC); - } - -+/* Middle/Center fan on modern ROG laptops */ -+static ssize_t fan3_input_show(struct device *dev, -+ struct device_attribute *attr, -+ char *buf) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ int value; -+ int ret; -+ -+ ret = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_MID_FAN_CTRL, &value); -+ if (ret < 0) -+ return ret; -+ -+ value &= 0xffff; -+ -+ return sysfs_emit(buf, "%d\n", value * 100); -+} -+ -+static ssize_t fan3_label_show(struct device *dev, -+ struct device_attribute *attr, -+ char *buf) -+{ -+ return sysfs_emit(buf, "%s\n", ASUS_MID_FAN_DESC); -+} -+ - static ssize_t pwm2_enable_show(struct device *dev, - struct device_attribute *attr, - char *buf) -@@ -2185,6 +2213,52 @@ static ssize_t pwm2_enable_store(struct device *dev, - return count; - } - -+static ssize_t pwm3_enable_show(struct device *dev, -+ struct device_attribute *attr, -+ char *buf) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ return sysfs_emit(buf, "%d\n", asus->mid_fan_pwm_mode); -+} -+ -+static ssize_t pwm3_enable_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ int state; -+ int value; -+ int ret; -+ u32 retval; -+ -+ ret = kstrtouint(buf, 10, &state); -+ if (ret) -+ return ret; -+ -+ switch (state) { /* standard documented hwmon values */ -+ case ASUS_FAN_CTRL_FULLSPEED: -+ value = 1; -+ break; -+ case ASUS_FAN_CTRL_AUTO: -+ value = 0; -+ break; -+ default: -+ return -EINVAL; -+ } -+ -+ ret = asus_wmi_set_devstate(ASUS_WMI_DEVID_MID_FAN_CTRL, -+ value, &retval); -+ if (ret) -+ return ret; -+ -+ if (retval != 1) -+ return -EIO; -+ -+ asus->mid_fan_pwm_mode = state; -+ return count; -+} -+ - /* Fan1 */ - static DEVICE_ATTR_RW(pwm1); - static DEVICE_ATTR_RW(pwm1_enable); -@@ -2194,6 +2268,10 @@ static DEVICE_ATTR_RO(fan1_label); - static DEVICE_ATTR_RW(pwm2_enable); - static DEVICE_ATTR_RO(fan2_input); - static DEVICE_ATTR_RO(fan2_label); -+/* Fan3 - Middle/center fan */ -+static DEVICE_ATTR_RW(pwm3_enable); -+static DEVICE_ATTR_RO(fan3_input); -+static DEVICE_ATTR_RO(fan3_label); - - /* Temperature */ - static DEVICE_ATTR(temp1_input, S_IRUGO, asus_hwmon_temp1, NULL); -@@ -2202,10 +2280,13 @@ static struct attribute *hwmon_attributes[] = { - &dev_attr_pwm1.attr, - &dev_attr_pwm1_enable.attr, - &dev_attr_pwm2_enable.attr, -+ &dev_attr_pwm3_enable.attr, - &dev_attr_fan1_input.attr, - &dev_attr_fan1_label.attr, - &dev_attr_fan2_input.attr, - &dev_attr_fan2_label.attr, -+ &dev_attr_fan3_input.attr, -+ &dev_attr_fan3_label.attr, - - &dev_attr_temp1_input.attr, - NULL -@@ -2231,6 +2312,11 @@ static umode_t asus_hwmon_sysfs_is_visible(struct kobject *kobj, - || attr == &dev_attr_pwm2_enable.attr) { - if (asus->gpu_fan_type == FAN_TYPE_NONE) - return 0; -+ } else if (attr == &dev_attr_fan3_input.attr -+ || attr == &dev_attr_fan3_label.attr -+ || attr == &dev_attr_pwm3_enable.attr) { -+ if (asus->mid_fan_type == FAN_TYPE_NONE) -+ return 0; - } else if (attr == &dev_attr_temp1_input.attr) { - int err = asus_wmi_get_devstate(asus, - ASUS_WMI_DEVID_THERMAL_CTRL, -@@ -2274,6 +2360,7 @@ static int asus_wmi_hwmon_init(struct asus_wmi *asus) - static int asus_wmi_fan_init(struct asus_wmi *asus) - { - asus->gpu_fan_type = FAN_TYPE_NONE; -+ asus->mid_fan_type = FAN_TYPE_NONE; - asus->fan_type = FAN_TYPE_NONE; - asus->agfn_pwm = -1; - -@@ -2288,6 +2375,10 @@ static int asus_wmi_fan_init(struct asus_wmi *asus) - if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_FAN_CTRL)) - asus->gpu_fan_type = FAN_TYPE_SPEC83; - -+ /* Some models also have a center/middle fan */ -+ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MID_FAN_CTRL)) -+ asus->mid_fan_type = FAN_TYPE_SPEC83; -+ - if (asus->fan_type == FAN_TYPE_NONE) - return -ENODEV; - -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index f90cafe26af1..2c03bda7703f 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -80,6 +80,7 @@ - #define ASUS_WMI_DEVID_FAN_CTRL 0x00110012 /* deprecated */ - #define ASUS_WMI_DEVID_CPU_FAN_CTRL 0x00110013 - #define ASUS_WMI_DEVID_GPU_FAN_CTRL 0x00110014 -+#define ASUS_WMI_DEVID_MID_FAN_CTRL 0x00110031 - #define ASUS_WMI_DEVID_CPU_FAN_CURVE 0x00110024 - #define ASUS_WMI_DEVID_GPU_FAN_CURVE 0x00110025 - --- -2.41.0 - -From 60f66172c03e8cf8417818173c253824527a6d69 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 4 Jun 2023 19:37:34 +1200 -Subject: [PATCH 03/13] platform/x86: asus-wmi: support middle fan custom - curves - -Adds support for fan curves defined for the middle fan which -is available on some ASUS ROG laptops. - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 77 +++++++++++++++++++++- - include/linux/platform_data/x86/asus-wmi.h | 1 + - 2 files changed, 76 insertions(+), 2 deletions(-) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 069251d8040f..89867b18e8f7 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -113,6 +113,7 @@ module_param(fnlock_default, bool, 0444); - #define FAN_CURVE_BUF_LEN 32 - #define FAN_CURVE_DEV_CPU 0x00 - #define FAN_CURVE_DEV_GPU 0x01 -+#define FAN_CURVE_DEV_MID 0x02 - /* Mask to determine if setting temperature or percentage */ - #define FAN_CURVE_PWM_MASK 0x04 - -@@ -253,7 +254,8 @@ struct asus_wmi { - - bool cpu_fan_curve_available; - bool gpu_fan_curve_available; -- struct fan_curve_data custom_fan_curves[2]; -+ bool mid_fan_curve_available; -+ struct fan_curve_data custom_fan_curves[3]; - - struct platform_profile_handler platform_profile_handler; - bool platform_profile_support; -@@ -2090,6 +2092,8 @@ static ssize_t pwm1_enable_store(struct device *dev, - asus->custom_fan_curves[FAN_CURVE_DEV_CPU].enabled = false; - if (asus->gpu_fan_curve_available) - asus->custom_fan_curves[FAN_CURVE_DEV_GPU].enabled = false; -+ if (asus->mid_fan_curve_available) -+ asus->custom_fan_curves[FAN_CURVE_DEV_MID].enabled = false; - - return count; - } -@@ -2541,6 +2545,9 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev) - if (fan_dev == ASUS_WMI_DEVID_GPU_FAN_CURVE) - fan_idx = FAN_CURVE_DEV_GPU; - -+ if (fan_dev == ASUS_WMI_DEVID_MID_FAN_CURVE) -+ fan_idx = FAN_CURVE_DEV_MID; -+ - curves = &asus->custom_fan_curves[fan_idx]; - err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf, - FAN_CURVE_BUF_LEN); -@@ -2829,6 +2836,42 @@ static SENSOR_DEVICE_ATTR_2_RW(pwm2_auto_point7_pwm, fan_curve, - static SENSOR_DEVICE_ATTR_2_RW(pwm2_auto_point8_pwm, fan_curve, - FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 7); - -+/* MID */ -+static SENSOR_DEVICE_ATTR_RW(pwm3_enable, fan_curve_enable, FAN_CURVE_DEV_GPU); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point1_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 0); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point2_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 1); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point3_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 2); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point4_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 3); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point5_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 4); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point6_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 5); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point7_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 6); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point8_temp, fan_curve, -+ FAN_CURVE_DEV_GPU, 7); -+ -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point1_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 0); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point2_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 1); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point3_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 2); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point4_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 3); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point5_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 4); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point6_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 5); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point7_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 6); -+static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point8_pwm, fan_curve, -+ FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 7); -+ - static struct attribute *asus_fan_curve_attr[] = { - /* CPU */ - &sensor_dev_attr_pwm1_enable.dev_attr.attr, -@@ -2866,6 +2909,24 @@ static struct attribute *asus_fan_curve_attr[] = { - &sensor_dev_attr_pwm2_auto_point6_pwm.dev_attr.attr, - &sensor_dev_attr_pwm2_auto_point7_pwm.dev_attr.attr, - &sensor_dev_attr_pwm2_auto_point8_pwm.dev_attr.attr, -+ /* MID */ -+ &sensor_dev_attr_pwm3_enable.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point1_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point2_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point3_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point4_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point5_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point6_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point7_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point8_temp.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point1_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point2_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point3_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point4_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point5_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point6_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point7_pwm.dev_attr.attr, -+ &sensor_dev_attr_pwm3_auto_point8_pwm.dev_attr.attr, - NULL - }; - -@@ -2885,6 +2946,9 @@ static umode_t asus_fan_curve_is_visible(struct kobject *kobj, - if (asus->gpu_fan_curve_available && attr->name[3] == '2') - return 0644; - -+ if (asus->mid_fan_curve_available && attr->name[3] == '3') -+ return 0644; -+ - return 0; - } - -@@ -2914,7 +2978,14 @@ static int asus_wmi_custom_fan_curve_init(struct asus_wmi *asus) - if (err) - return err; - -- if (!asus->cpu_fan_curve_available && !asus->gpu_fan_curve_available) -+ err = fan_curve_check_present(asus, &asus->mid_fan_curve_available, -+ ASUS_WMI_DEVID_MID_FAN_CURVE); -+ if (err) -+ return err; -+ -+ if (!asus->cpu_fan_curve_available -+ && !asus->gpu_fan_curve_available -+ && !asus->mid_fan_curve_available) - return 0; - - hwmon = devm_hwmon_device_register_with_groups( -@@ -2983,6 +3054,8 @@ static int throttle_thermal_policy_write(struct asus_wmi *asus) - asus->custom_fan_curves[FAN_CURVE_DEV_CPU].enabled = false; - if (asus->gpu_fan_curve_available) - asus->custom_fan_curves[FAN_CURVE_DEV_GPU].enabled = false; -+ if (asus->mid_fan_curve_available) -+ asus->custom_fan_curves[FAN_CURVE_DEV_MID].enabled = false; - - return 0; - } -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index 2c03bda7703f..329efc086993 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -83,6 +83,7 @@ - #define ASUS_WMI_DEVID_MID_FAN_CTRL 0x00110031 - #define ASUS_WMI_DEVID_CPU_FAN_CURVE 0x00110024 - #define ASUS_WMI_DEVID_GPU_FAN_CURVE 0x00110025 -+#define ASUS_WMI_DEVID_MID_FAN_CURVE 0x00110032 - - /* Power */ - #define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012 --- -2.41.0 - -From 0b90e1673515c0cf89f43c9a7f5cd06db9c7b3f2 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 4 Jun 2023 20:01:57 +1200 -Subject: [PATCH 04/13] platform/x86: asus-wmi: add WMI method to show if egpu - connected - -Exposes the WMI method which tells if the eGPU is properly connected -on the devices that support it. - -Signed-off-by: Luke D. Jones ---- - .../ABI/testing/sysfs-platform-asus-wmi | 11 +++++++++- - drivers/platform/x86/asus-wmi.c | 21 +++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 4 +++- - 3 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi -index eb29e3023c7b..878daf7c2036 100644 ---- a/Documentation/ABI/testing/sysfs-platform-asus-wmi -+++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi -@@ -107,4 +107,13 @@ Description: - Get the current charging mode being used: - * 1 - Barrel connected charger, - * 2 - USB-C charging -- * 3 - Both connected, barrel used for charging -\ No newline at end of file -+ * 3 - Both connected, barrel used for charging -+ -+What: /sys/devices/platform//egpu_connected -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Show if the egpu (XG Mobile) is correctly connected: -+ * 0 - False, -+ * 1 - True -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 89867b18e8f7..a65cf8599124 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -243,6 +243,7 @@ struct asus_wmi { - - bool charge_mode_available; - bool egpu_enable_available; -+ bool egpu_connect_available; - bool dgpu_disable_available; - bool gpu_mux_mode_available; - -@@ -709,6 +710,22 @@ static ssize_t egpu_enable_store(struct device *dev, - } - static DEVICE_ATTR_RW(egpu_enable); - -+/* Is eGPU connected? *********************************************************/ -+static ssize_t egpu_connected_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ int result; -+ -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); -+ if (result < 0) -+ return result; -+ -+ return sysfs_emit(buf, "%d\n", result); -+} -+ -+static DEVICE_ATTR_RO(egpu_connected); -+ - /* gpu mux switch *************************************************************/ - static ssize_t gpu_mux_mode_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -3655,6 +3672,7 @@ static struct attribute *platform_attributes[] = { - &dev_attr_touchpad.attr, - &dev_attr_charge_mode.attr, - &dev_attr_egpu_enable.attr, -+ &dev_attr_egpu_connected.attr, - &dev_attr_dgpu_disable.attr, - &dev_attr_gpu_mux_mode.attr, - &dev_attr_lid_resume.attr, -@@ -3687,6 +3705,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, - ok = asus->charge_mode_available; - else if (attr == &dev_attr_egpu_enable.attr) - ok = asus->egpu_enable_available; -+ else if (attr == &dev_attr_egpu_connected.attr) -+ ok = asus->egpu_connect_available; - else if (attr == &dev_attr_dgpu_disable.attr) - ok = asus->dgpu_disable_available; - else if (attr == &dev_attr_gpu_mux_mode.attr) -@@ -3953,6 +3973,7 @@ static int asus_wmi_add(struct platform_device *pdev) - - asus->charge_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CHARGE_MODE); - asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU); -+ asus->egpu_connect_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); - asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU); - asus->gpu_mux_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX); - asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE); -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index 329efc086993..2034648f8cdf 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -100,7 +100,9 @@ - /* Charging mode - 1=Barrel, 2=USB */ - #define ASUS_WMI_DEVID_CHARGE_MODE 0x0012006C - --/* dgpu on/off */ -+/* epu is connected? 1 == true */ -+#define ASUS_WMI_DEVID_EGPU_CONNECTED 0x00090018 -+/* egpu on/off */ - #define ASUS_WMI_DEVID_EGPU 0x00090019 - - /* dgpu on/off */ --- -2.41.0 - -From 1bddf53ccac067e043857d28c1598401cd9db7f4 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Tue, 20 Jun 2023 12:26:51 +1200 -Subject: [PATCH 05/13] platform/x86: asus-wmi: don't allow eGPU switching if - eGPU not connected - -Check the ASUS_WMI_DEVID_EGPU_CONNECTED method for eGPU connection -before allowing the ASUS_WMI_DEVID_EGPU method to run. - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index a65cf8599124..3cb7cee110e2 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -693,6 +693,15 @@ static ssize_t egpu_enable_store(struct device *dev, - if (enable > 1) - return -EINVAL; - -+ err = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); -+ if (err < 0) -+ return err; -+ if (err < 1) { -+ err = -ENODEV; -+ pr_warn("Failed to set egpu disable: %d\n", err); -+ return err; -+ } -+ - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_EGPU, enable, &result); - if (err) { - pr_warn("Failed to set egpu disable: %d\n", err); --- -2.41.0 - -From 64b96869a3ed4b7c9e41c1a3e8410c3ec2582ca9 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Tue, 20 Jun 2023 12:48:31 +1200 -Subject: [PATCH 06/13] platform/x86: asus-wmi: add safety checks to gpu - switching - -Add safety checking to dgpu_disable, egpu_enable, gpu_mux_mode. - -These checks prevent users from doing such things as: -- disabling the dGPU while is muxed to drive the internal screen -- enabling the eGPU which also disables the dGPU, while muxed to - the internal screen -- switching the MUX to dGPU while the dGPU is disabled - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 50 ++++++++++++++++++++++++++++++++- - 1 file changed, 49 insertions(+), 1 deletion(-) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 3cb7cee110e2..7e80ea2a802a 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -645,6 +645,18 @@ static ssize_t dgpu_disable_store(struct device *dev, - if (disable > 1) - return -EINVAL; - -+ if (asus->gpu_mux_mode_available) { -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX); -+ if (result < 0) -+ /* An error here may signal greater failure of GPU handling */ -+ return result; -+ if (!result && disable) { -+ err = -ENODEV; -+ pr_warn("Can not disable dGPU when the MUX is in dGPU mode: %d\n", err); -+ return err; -+ } -+ } -+ - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_DGPU, disable, &result); - if (err) { - pr_warn("Failed to set dgpu disable: %d\n", err); -@@ -693,7 +705,7 @@ static ssize_t egpu_enable_store(struct device *dev, - if (enable > 1) - return -EINVAL; - -- err = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); - if (err < 0) - return err; - if (err < 1) { -@@ -702,6 +714,18 @@ static ssize_t egpu_enable_store(struct device *dev, - return err; - } - -+ if (asus->gpu_mux_mode_available) { -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX); -+ if (result < 0) -+ /* An error here may signal greater failure of GPU handling */ -+ return result; -+ if (!result && enable) { -+ err = -ENODEV; -+ pr_warn("Can not enable eGPU when the MUX is in dGPU mode: %d\n", err); -+ return err; -+ } -+ } -+ - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_EGPU, enable, &result); - if (err) { - pr_warn("Failed to set egpu disable: %d\n", err); -@@ -764,6 +788,30 @@ static ssize_t gpu_mux_mode_store(struct device *dev, - if (optimus > 1) - return -EINVAL; - -+ if (asus->dgpu_disable_available) { -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_DGPU); -+ if (result < 0) -+ /* An error here may signal greater failure of GPU handling */ -+ return result; -+ if (result && !optimus) { -+ err = -ENODEV; -+ pr_warn("Can not switch MUX to dGPU mode when dGPU is disabled: %d\n", err); -+ return err; -+ } -+ } -+ -+ if (asus->egpu_enable_available) { -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU); -+ if (result < 0) -+ /* An error here may signal greater failure of GPU handling */ -+ return result; -+ if (result && !optimus) { -+ err = -ENODEV; -+ pr_warn("Can not switch MUX to dGPU mode when eGPU is enabled: %d\n", err); -+ return err; -+ } -+ } -+ - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_GPU_MUX, optimus, &result); - if (err) { - dev_err(dev, "Failed to set GPU MUX mode: %d\n", err); --- -2.41.0 - -From 76d73c965c18d6b5e1d8d9ab6ae446e2f1913b6b Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 4 Jun 2023 20:21:10 +1200 -Subject: [PATCH 07/13] platform/x86: asus-wmi: support setting mini-LED mode - -Support changing the mini-LED mode on some of the newer ASUS laptops. - -Signed-off-by: Luke D. Jones ---- - .../ABI/testing/sysfs-platform-asus-wmi | 9 ++++ - drivers/platform/x86/asus-wmi.c | 53 +++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 1 + - 3 files changed, 63 insertions(+) - -diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi -index 878daf7c2036..5624bdef49cb 100644 ---- a/Documentation/ABI/testing/sysfs-platform-asus-wmi -+++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi -@@ -117,3 +117,12 @@ Description: - Show if the egpu (XG Mobile) is correctly connected: - * 0 - False, - * 1 - True -+ -+What: /sys/devices/platform//mini_led_mode -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Change the mini-LED mode: -+ * 0 - Single-zone, -+ * 1 - Multi-zone -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 7e80ea2a802a..9b3dd262f6e4 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -265,6 +265,7 @@ struct asus_wmi { - bool battery_rsoc_available; - - bool panel_overdrive_available; -+ bool mini_led_mode_available; - - struct hotplug_slot hotplug_slot; - struct mutex hotplug_lock; -@@ -1830,6 +1831,54 @@ static ssize_t panel_od_store(struct device *dev, - } - static DEVICE_ATTR_RW(panel_od); - -+/* Mini-LED mode **************************************************************/ -+static ssize_t mini_led_mode_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ int result; -+ -+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_MINI_LED_MODE); -+ if (result < 0) -+ return result; -+ -+ return sysfs_emit(buf, "%d\n", result); -+} -+ -+static ssize_t mini_led_mode_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 mode; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &mode); -+ if (result) -+ return result; -+ -+ if (mode > 1) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_MINI_LED_MODE, mode, &result); -+ -+ if (err) { -+ pr_warn("Failed to set mini-LED: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set mini-LED mode (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "mini_led_mode"); -+ -+ return count; -+} -+static DEVICE_ATTR_RW(mini_led_mode); -+ - /* Quirks *********************************************************************/ - - static void asus_wmi_set_xusb2pr(struct asus_wmi *asus) -@@ -3737,6 +3786,7 @@ static struct attribute *platform_attributes[] = { - &dev_attr_fan_boost_mode.attr, - &dev_attr_throttle_thermal_policy.attr, - &dev_attr_panel_od.attr, -+ &dev_attr_mini_led_mode.attr, - NULL - }; - -@@ -3774,6 +3824,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, - ok = asus->throttle_thermal_policy_available; - else if (attr == &dev_attr_panel_od.attr) - ok = asus->panel_overdrive_available; -+ else if (attr == &dev_attr_mini_led_mode.attr) -+ ok = asus->mini_led_mode_available; - - if (devid != -1) - ok = !(asus_wmi_get_devstate_simple(asus, devid) < 0); -@@ -4036,6 +4088,7 @@ static int asus_wmi_add(struct platform_device *pdev) - asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE); - asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE); - asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD); -+ asus->mini_led_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE); - - err = fan_boost_mode_check_present(asus); - if (err) -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index 2034648f8cdf..ea80361ac6c7 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -66,6 +66,7 @@ - #define ASUS_WMI_DEVID_CAMERA 0x00060013 - #define ASUS_WMI_DEVID_LID_FLIP 0x00060062 - #define ASUS_WMI_DEVID_LID_FLIP_ROG 0x00060077 -+#define ASUS_WMI_DEVID_MINI_LED_MODE 0x0005001E - - /* Storage */ - #define ASUS_WMI_DEVID_CARDREADER 0x00080013 --- -2.41.0 - -From 3172f65f82ae6b36ab30a91ff73ba703a902da0a Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Tue, 6 Jun 2023 15:05:01 +1200 -Subject: [PATCH 08/13] platform/x86: asus-wmi: expose dGPU and CPU tunables - for ROG - -Expose various CPU and dGPU tunables that are available on many ASUS -ROG laptops. The tunables shown in sysfs will vary depending on the CPU -and dGPU vendor. - -All of these variables are write only and there is no easy way to find -what the defaults are. In general they seem to default to the max value -the vendor sets for the CPU and dGPU package - this is not the same as -the min/max writable value. Values written to these variables that are -beyond the capabilities of the CPU are ignored by the laptop. - -Signed-off-by: Luke D. Jones ---- - .../ABI/testing/sysfs-platform-asus-wmi | 58 ++++ - drivers/platform/x86/asus-wmi.c | 285 ++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 9 + - 3 files changed, 352 insertions(+) - -diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi -index 5624bdef49cb..caaccd28fabf 100644 ---- a/Documentation/ABI/testing/sysfs-platform-asus-wmi -+++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi -@@ -126,3 +126,61 @@ Description: - Change the mini-LED mode: - * 0 - Single-zone, - * 1 - Multi-zone -+ -+What: /sys/devices/platform//ppt_pl1_spl -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the Package Power Target total of CPU: PL1 on Intel, SPL on AMD. -+ Shown on Intel+Nvidia or AMD+Nvidia based systems. -+ * min=5, max=250 -+ -+What: /sys/devices/platform//ppt_pl2_sppt -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the Slow Package Power Tracking Limit of CPU: PL2 on Intel, SPPT, -+ on AMD. Shown on Intel+Nvidia or AMD+Nvidia based systems. -+ * min=5, max=250 -+ -+What: /sys/devices/platform//ppt_fppt -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the Fast Package Power Tracking Limit of CPU. AMD+Nvidia only. -+ * min=5, max=250 -+ -+What: /sys/devices/platform//ppt_apu_sppt -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the APU SPPT limit. Shown on full AMD systems only. -+ * min=5, max=130 -+ -+What: /sys/devices/platform//ppt_platform_sppt -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the platform SPPT limit. Shown on full AMD systems only. -+ * min=5, max=130 -+ -+What: /sys/devices/platform//nv_dynamic_boost -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the dynamic boost limit of the Nvidia dGPU: -+ * min=5, max=25 -+ -+What: /sys/devices/platform//nv_temp_target -+Date: Jun 2023 -+KernelVersion: 6.5 -+Contact: "Luke Jones" -+Description: -+ Set the target temperature limit of the Nvidia dGPU: -+ * min=75, max=87 -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 9b3dd262f6e4..c732610b3fef 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -117,6 +117,16 @@ module_param(fnlock_default, bool, 0444); - /* Mask to determine if setting temperature or percentage */ - #define FAN_CURVE_PWM_MASK 0x04 - -+/* Limits for tunables available on ASUS ROG laptops */ -+#define PPT_TOTAL_MIN 5 -+#define PPT_TOTAL_MAX 250 -+#define PPT_CPU_MIN 5 -+#define PPT_CPU_MAX 130 -+#define NVIDIA_BOOST_MIN 5 -+#define NVIDIA_BOOST_MAX 25 -+#define NVIDIA_TEMP_MIN 75 -+#define NVIDIA_TEMP_MAX 87 -+ - static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL }; - - static int throttle_thermal_policy_write(struct asus_wmi *); -@@ -247,6 +257,15 @@ struct asus_wmi { - bool dgpu_disable_available; - bool gpu_mux_mode_available; - -+ /* Tunables provided by ASUS for gaming laptops */ -+ bool ppt_pl2_sppt_available; -+ bool ppt_pl1_spl_available; -+ bool ppt_apu_sppt_available; -+ bool ppt_plat_sppt_available; -+ bool ppt_fppt_available; -+ bool nv_dyn_boost_available; -+ bool nv_temp_tgt_available; -+ - bool kbd_rgb_mode_available; - bool kbd_rgb_state_available; - -@@ -956,6 +975,244 @@ static const struct attribute_group *kbd_rgb_mode_groups[] = { - NULL, - }; - -+/* Tunable: PPT: Intel=PL1, AMD=SPPT *****************************************/ -+static ssize_t ppt_pl2_sppt_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < PPT_TOTAL_MIN || value > PPT_TOTAL_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_PPT_PL2_SPPT, value, &result); -+ if (err) { -+ pr_warn("Failed to set ppt_pl2_sppt: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set ppt_pl2_sppt (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_pl2_sppt"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(ppt_pl2_sppt); -+ -+/* Tunable: PPT, Intel=PL1, AMD=SPL ******************************************/ -+static ssize_t ppt_pl1_spl_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < PPT_TOTAL_MIN || value > PPT_TOTAL_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_PPT_PL1_SPL, value, &result); -+ if (err) { -+ pr_warn("Failed to set ppt_pl1_spl: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set ppt_pl1_spl (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_pl1_spl"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(ppt_pl1_spl); -+ -+/* Tunable: PPT APU FPPT ******************************************************/ -+static ssize_t ppt_fppt_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < PPT_TOTAL_MIN || value > PPT_TOTAL_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_PPT_FPPT, value, &result); -+ if (err) { -+ pr_warn("Failed to set ppt_fppt: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set ppt_fppt (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_fpu_sppt"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(ppt_fppt); -+ -+/* Tunable: PPT APU SPPT *****************************************************/ -+static ssize_t ppt_apu_sppt_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < PPT_CPU_MIN || value > PPT_CPU_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_PPT_APU_SPPT, value, &result); -+ if (err) { -+ pr_warn("Failed to set ppt_apu_sppt: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set ppt_apu_sppt (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_apu_sppt"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(ppt_apu_sppt); -+ -+/* Tunable: PPT platform SPPT ************************************************/ -+static ssize_t ppt_platform_sppt_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < PPT_CPU_MIN || value > PPT_CPU_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_PPT_PLAT_SPPT, value, &result); -+ if (err) { -+ pr_warn("Failed to set ppt_platform_sppt: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set ppt_platform_sppt (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_platform_sppt"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(ppt_platform_sppt); -+ -+/* Tunable: NVIDIA dynamic boost *********************************************/ -+static ssize_t nv_dynamic_boost_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < NVIDIA_BOOST_MIN || value > NVIDIA_BOOST_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_NV_DYN_BOOST, value, &result); -+ if (err) { -+ pr_warn("Failed to set nv_dynamic_boost: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set nv_dynamic_boost (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "nv_dynamic_boost"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(nv_dynamic_boost); -+ -+/* Tunable: NVIDIA temperature target ****************************************/ -+static ssize_t nv_temp_target_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ int result, err; -+ u32 value; -+ -+ struct asus_wmi *asus = dev_get_drvdata(dev); -+ -+ result = kstrtou32(buf, 10, &value); -+ if (result) -+ return result; -+ -+ if (value < NVIDIA_TEMP_MIN || value > NVIDIA_TEMP_MAX) -+ return -EINVAL; -+ -+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_NV_THERM_TARGET, value, &result); -+ if (err) { -+ pr_warn("Failed to set nv_temp_target: %d\n", err); -+ return err; -+ } -+ -+ if (result > 1) { -+ pr_warn("Failed to set nv_temp_target (result): 0x%x\n", result); -+ return -EIO; -+ } -+ -+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "nv_temp_target"); -+ -+ return count; -+} -+static DEVICE_ATTR_WO(nv_temp_target); -+ - /* Battery ********************************************************************/ - - /* The battery maximum charging percentage */ -@@ -3785,6 +4042,13 @@ static struct attribute *platform_attributes[] = { - &dev_attr_als_enable.attr, - &dev_attr_fan_boost_mode.attr, - &dev_attr_throttle_thermal_policy.attr, -+ &dev_attr_ppt_pl2_sppt.attr, -+ &dev_attr_ppt_pl1_spl.attr, -+ &dev_attr_ppt_fppt.attr, -+ &dev_attr_ppt_apu_sppt.attr, -+ &dev_attr_ppt_platform_sppt.attr, -+ &dev_attr_nv_dynamic_boost.attr, -+ &dev_attr_nv_temp_target.attr, - &dev_attr_panel_od.attr, - &dev_attr_mini_led_mode.attr, - NULL -@@ -3822,6 +4086,20 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, - ok = asus->fan_boost_mode_available; - else if (attr == &dev_attr_throttle_thermal_policy.attr) - ok = asus->throttle_thermal_policy_available; -+ else if (attr == &dev_attr_ppt_pl2_sppt.attr) -+ ok = asus->ppt_pl2_sppt_available; -+ else if (attr == &dev_attr_ppt_pl1_spl.attr) -+ ok = asus->ppt_pl1_spl_available; -+ else if (attr == &dev_attr_ppt_fppt.attr) -+ ok = asus->ppt_fppt_available; -+ else if (attr == &dev_attr_ppt_apu_sppt.attr) -+ ok = asus->ppt_apu_sppt_available; -+ else if (attr == &dev_attr_ppt_platform_sppt.attr) -+ ok = asus->ppt_plat_sppt_available; -+ else if (attr == &dev_attr_nv_dynamic_boost.attr) -+ ok = asus->nv_dyn_boost_available; -+ else if (attr == &dev_attr_nv_temp_target.attr) -+ ok = asus->nv_temp_tgt_available; - else if (attr == &dev_attr_panel_od.attr) - ok = asus->panel_overdrive_available; - else if (attr == &dev_attr_mini_led_mode.attr) -@@ -4087,6 +4365,13 @@ static int asus_wmi_add(struct platform_device *pdev) - asus->gpu_mux_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX); - asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE); - asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE); -+ asus->ppt_pl2_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL2_SPPT); -+ asus->ppt_pl1_spl_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL1_SPL); -+ asus->ppt_fppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_FPPT); -+ asus->ppt_apu_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_APU_SPPT); -+ asus->ppt_plat_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PLAT_SPPT); -+ asus->nv_dyn_boost_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_DYN_BOOST); -+ asus->nv_temp_tgt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_THERM_TARGET); - asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD); - asus->mini_led_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE); - -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index ea80361ac6c7..16e99a1c37fc 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -86,6 +86,15 @@ - #define ASUS_WMI_DEVID_GPU_FAN_CURVE 0x00110025 - #define ASUS_WMI_DEVID_MID_FAN_CURVE 0x00110032 - -+/* Tunables for AUS ROG laptops */ -+#define ASUS_WMI_DEVID_PPT_PL2_SPPT 0x001200A0 -+#define ASUS_WMI_DEVID_PPT_PL1_SPL 0x001200A3 -+#define ASUS_WMI_DEVID_PPT_APU_SPPT 0x001200B0 -+#define ASUS_WMI_DEVID_PPT_PLAT_SPPT 0x001200B1 -+#define ASUS_WMI_DEVID_PPT_FPPT 0x001200C1 -+#define ASUS_WMI_DEVID_NV_DYN_BOOST 0x001200C0 -+#define ASUS_WMI_DEVID_NV_THERM_TARGET 0x001200C2 -+ - /* Power */ - #define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012 - --- -2.41.0 - -From 73622204c837e2ab4729bc2af2c8bb6d58f4b3b0 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Sun, 23 Jul 2023 21:29:11 +1200 -Subject: [PATCH 09/13] Fixes: a23870110a38 ("asus-wmi: add support for showing - middle fan RPM") - -After the addition of the mid fan custom curve functionality various -incorrect behaviour was uncovered. This commit fixes these areas. - -- Ensure mid fan attributes actually use the correct fan ID -- Correction to a bit mask for selecting the correct fan data -- Refactor the curve show/store functions to be cleaner and and - match each others layout - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 78 ++++++++++++++++----------------- - 1 file changed, 38 insertions(+), 40 deletions(-) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index c732610b3fef..496d03e88595 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -2910,9 +2910,8 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev) - { - struct fan_curve_data *curves; - u8 buf[FAN_CURVE_BUF_LEN]; -- int fan_idx = 0; -+ int err, fan_idx; - u8 mode = 0; -- int err; - - if (asus->throttle_thermal_policy_available) - mode = asus->throttle_thermal_policy_mode; -@@ -2922,13 +2921,6 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev) - else if (mode == 1) - mode = 2; - -- if (fan_dev == ASUS_WMI_DEVID_GPU_FAN_CURVE) -- fan_idx = FAN_CURVE_DEV_GPU; -- -- if (fan_dev == ASUS_WMI_DEVID_MID_FAN_CURVE) -- fan_idx = FAN_CURVE_DEV_MID; -- -- curves = &asus->custom_fan_curves[fan_idx]; - err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf, - FAN_CURVE_BUF_LEN); - if (err) { -@@ -2936,9 +2928,17 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev) - return err; - } - -- fan_curve_copy_from_buf(curves, buf); -+ fan_idx = FAN_CURVE_DEV_CPU; -+ if (fan_dev == ASUS_WMI_DEVID_GPU_FAN_CURVE) -+ fan_idx = FAN_CURVE_DEV_GPU; -+ -+ if (fan_dev == ASUS_WMI_DEVID_MID_FAN_CURVE) -+ fan_idx = FAN_CURVE_DEV_MID; -+ -+ curves = &asus->custom_fan_curves[fan_idx]; - curves->device_id = fan_dev; - -+ fan_curve_copy_from_buf(curves, buf); - return 0; - } - -@@ -2968,7 +2968,7 @@ static struct fan_curve_data *fan_curve_attr_select(struct asus_wmi *asus, - { - int index = to_sensor_dev_attr(attr)->index; - -- return &asus->custom_fan_curves[index & FAN_CURVE_DEV_GPU]; -+ return &asus->custom_fan_curves[index]; - } - - /* Determine which fan the attribute is for if SENSOR_ATTR_2 */ -@@ -2977,7 +2977,7 @@ static struct fan_curve_data *fan_curve_attr_2_select(struct asus_wmi *asus, - { - int nr = to_sensor_dev_attr_2(attr)->nr; - -- return &asus->custom_fan_curves[nr & FAN_CURVE_DEV_GPU]; -+ return &asus->custom_fan_curves[nr & ~FAN_CURVE_PWM_MASK]; - } - - static ssize_t fan_curve_show(struct device *dev, -@@ -2986,13 +2986,13 @@ static ssize_t fan_curve_show(struct device *dev, - struct sensor_device_attribute_2 *dev_attr = to_sensor_dev_attr_2(attr); - struct asus_wmi *asus = dev_get_drvdata(dev); - struct fan_curve_data *data; -- int value, index, nr; -+ int value, pwm, index; - - data = fan_curve_attr_2_select(asus, attr); -+ pwm = dev_attr->nr & FAN_CURVE_PWM_MASK; - index = dev_attr->index; -- nr = dev_attr->nr; - -- if (nr & FAN_CURVE_PWM_MASK) -+ if (pwm) - value = data->percents[index]; - else - value = data->temps[index]; -@@ -3035,23 +3035,21 @@ static ssize_t fan_curve_store(struct device *dev, - struct sensor_device_attribute_2 *dev_attr = to_sensor_dev_attr_2(attr); - struct asus_wmi *asus = dev_get_drvdata(dev); - struct fan_curve_data *data; -+ int err, pwm, index; - u8 value; -- int err; -- -- int pwm = dev_attr->nr & FAN_CURVE_PWM_MASK; -- int index = dev_attr->index; - - data = fan_curve_attr_2_select(asus, attr); -+ pwm = dev_attr->nr & FAN_CURVE_PWM_MASK; -+ index = dev_attr->index; - - err = kstrtou8(buf, 10, &value); - if (err < 0) - return err; - -- if (pwm) { -+ if (pwm) - data->percents[index] = value; -- } else { -+ else - data->temps[index] = value; -- } - - /* - * Mark as disabled so the user has to explicitly enable to apply a -@@ -3164,7 +3162,7 @@ static SENSOR_DEVICE_ATTR_2_RW(pwm1_auto_point8_temp, fan_curve, - FAN_CURVE_DEV_CPU, 7); - - static SENSOR_DEVICE_ATTR_2_RW(pwm1_auto_point1_pwm, fan_curve, -- FAN_CURVE_DEV_CPU | FAN_CURVE_PWM_MASK, 0); -+ FAN_CURVE_DEV_CPU | FAN_CURVE_PWM_MASK, 0); - static SENSOR_DEVICE_ATTR_2_RW(pwm1_auto_point2_pwm, fan_curve, - FAN_CURVE_DEV_CPU | FAN_CURVE_PWM_MASK, 1); - static SENSOR_DEVICE_ATTR_2_RW(pwm1_auto_point3_pwm, fan_curve, -@@ -3217,40 +3215,40 @@ static SENSOR_DEVICE_ATTR_2_RW(pwm2_auto_point8_pwm, fan_curve, - FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 7); - - /* MID */ --static SENSOR_DEVICE_ATTR_RW(pwm3_enable, fan_curve_enable, FAN_CURVE_DEV_GPU); -+static SENSOR_DEVICE_ATTR_RW(pwm3_enable, fan_curve_enable, FAN_CURVE_DEV_MID); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point1_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 0); -+ FAN_CURVE_DEV_MID, 0); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point2_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 1); -+ FAN_CURVE_DEV_MID, 1); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point3_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 2); -+ FAN_CURVE_DEV_MID, 2); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point4_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 3); -+ FAN_CURVE_DEV_MID, 3); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point5_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 4); -+ FAN_CURVE_DEV_MID, 4); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point6_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 5); -+ FAN_CURVE_DEV_MID, 5); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point7_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 6); -+ FAN_CURVE_DEV_MID, 6); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point8_temp, fan_curve, -- FAN_CURVE_DEV_GPU, 7); -+ FAN_CURVE_DEV_MID, 7); - - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point1_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 0); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 0); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point2_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 1); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 1); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point3_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 2); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 2); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point4_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 3); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 3); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point5_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 4); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 4); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point6_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 5); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 5); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point7_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 6); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 6); - static SENSOR_DEVICE_ATTR_2_RW(pwm3_auto_point8_pwm, fan_curve, -- FAN_CURVE_DEV_GPU | FAN_CURVE_PWM_MASK, 7); -+ FAN_CURVE_DEV_MID | FAN_CURVE_PWM_MASK, 7); - - static struct attribute *asus_fan_curve_attr[] = { - /* CPU */ --- -2.41.0 - -From ebd35946f15047d89fd1bb68b0f75dc5c367af6e Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Tue, 15 Aug 2023 17:10:33 +0100 -Subject: [PATCH 10/13] ALSA: hda: cs35l41: Support systems with missing _DSD - properties - -Some systems using CS35L41 with HDA were released without some -required _DSD properties in ACPI. To support these special cases, -add an api to configure the correct properties for systems with -this issue. - -This initial commit moves the no _DSD support for Lenovo -Legion Laptops (CLSA0100, CLSA0101) into a new framework which -can be extended to support additional laptops in the future. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/Makefile | 2 +- - sound/pci/hda/cs35l41_hda.c | 65 ++++++------------------- - sound/pci/hda/cs35l41_hda.h | 1 + - sound/pci/hda/cs35l41_hda_property.c | 73 ++++++++++++++++++++++++++++ - sound/pci/hda/cs35l41_hda_property.h | 18 +++++++ - 5 files changed, 108 insertions(+), 51 deletions(-) - create mode 100644 sound/pci/hda/cs35l41_hda_property.c - create mode 100644 sound/pci/hda/cs35l41_hda_property.h - -diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile -index 00d306104484..3b259239c48a 100644 ---- a/sound/pci/hda/Makefile -+++ b/sound/pci/hda/Makefile -@@ -28,7 +28,7 @@ snd-hda-codec-via-objs := patch_via.o - snd-hda-codec-hdmi-objs := patch_hdmi.o hda_eld.o - - # side codecs --snd-hda-scodec-cs35l41-objs := cs35l41_hda.o -+snd-hda-scodec-cs35l41-objs := cs35l41_hda.o cs35l41_hda_property.o - snd-hda-scodec-cs35l41-i2c-objs := cs35l41_hda_i2c.o - snd-hda-scodec-cs35l41-spi-objs := cs35l41_hda_spi.o - snd-hda-cs-dsp-ctls-objs := hda_cs_dsp_ctl.o -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index ce5faa620517..692b69f24138 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -19,6 +19,7 @@ - #include "hda_component.h" - #include "cs35l41_hda.h" - #include "hda_cs_dsp_ctl.h" -+#include "cs35l41_hda_property.h" - - #define CS35L41_FIRMWARE_ROOT "cirrus/" - #define CS35L41_PART "cs35l41" -@@ -1156,8 +1157,7 @@ static int cs35l41_hda_apply_properties(struct cs35l41_hda *cs35l41) - return cs35l41_hda_channel_map(cs35l41->dev, 0, NULL, 1, &hw_cfg->spk_pos); - } - --static int cs35l41_get_speaker_id(struct device *dev, int amp_index, -- int num_amps, int fixed_gpio_id) -+int cs35l41_get_speaker_id(struct device *dev, int amp_index, int num_amps, int fixed_gpio_id) - { - struct gpio_desc *speaker_id_desc; - int speaker_id = -ENODEV; -@@ -1211,49 +1211,6 @@ static int cs35l41_get_speaker_id(struct device *dev, int amp_index, - return speaker_id; - } - --/* -- * Device CLSA010(0/1) doesn't have _DSD so a gpiod_get by the label reset won't work. -- * And devices created by serial-multi-instantiate don't have their device struct -- * pointing to the correct fwnode, so acpi_dev must be used here. -- * And devm functions expect that the device requesting the resource has the correct -- * fwnode. -- */ --static int cs35l41_no_acpi_dsd(struct cs35l41_hda *cs35l41, struct device *physdev, int id, -- const char *hid) --{ -- struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg; -- -- /* check I2C address to assign the index */ -- cs35l41->index = id == 0x40 ? 0 : 1; -- cs35l41->channel_index = 0; -- cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH); -- cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, 0, 0, 2); -- hw_cfg->spk_pos = cs35l41->index; -- hw_cfg->gpio2.func = CS35L41_INTERRUPT; -- hw_cfg->gpio2.valid = true; -- hw_cfg->valid = true; -- -- if (strncmp(hid, "CLSA0100", 8) == 0) { -- hw_cfg->bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH; -- } else if (strncmp(hid, "CLSA0101", 8) == 0) { -- hw_cfg->bst_type = CS35L41_EXT_BOOST; -- hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; -- hw_cfg->gpio1.valid = true; -- } else { -- /* -- * Note: CLSA010(0/1) are special cases which use a slightly different design. -- * All other HIDs e.g. CSC3551 require valid ACPI _DSD properties to be supported. -- */ -- dev_err(cs35l41->dev, "Error: ACPI _DSD Properties are missing for HID %s.\n", hid); -- hw_cfg->valid = false; -- hw_cfg->gpio1.valid = false; -- hw_cfg->gpio2.valid = false; -- return -EINVAL; -- } -- -- return 0; --} -- - static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, int id) - { - struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg; -@@ -1279,12 +1236,17 @@ static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, i - sub = NULL; - cs35l41->acpi_subsystem_id = sub; - -+ ret = cs35l41_add_dsd_properties(cs35l41, physdev, id, hid); -+ if (!ret) { -+ dev_info(cs35l41->dev, "Using extra _DSD properties, bypassing _DSD in ACPI\n"); -+ goto put_physdev; -+ } -+ - property = "cirrus,dev-index"; - ret = device_property_count_u32(physdev, property); -- if (ret <= 0) { -- ret = cs35l41_no_acpi_dsd(cs35l41, physdev, id, hid); -- goto err_put_physdev; -- } -+ if (ret <= 0) -+ goto err; -+ - if (ret > ARRAY_SIZE(values)) { - ret = -EINVAL; - goto err; -@@ -1374,7 +1336,10 @@ static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, i - - err: - dev_err(cs35l41->dev, "Failed property %s: %d\n", property, ret); --err_put_physdev: -+ hw_cfg->valid = false; -+ hw_cfg->gpio1.valid = false; -+ hw_cfg->gpio2.valid = false; -+put_physdev: - put_device(physdev); - - return ret; -diff --git a/sound/pci/hda/cs35l41_hda.h b/sound/pci/hda/cs35l41_hda.h -index bdb35f3be68a..b93bf762976e 100644 ---- a/sound/pci/hda/cs35l41_hda.h -+++ b/sound/pci/hda/cs35l41_hda.h -@@ -83,5 +83,6 @@ extern const struct dev_pm_ops cs35l41_hda_pm_ops; - int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int irq, - struct regmap *regmap); - void cs35l41_hda_remove(struct device *dev); -+int cs35l41_get_speaker_id(struct device *dev, int amp_index, int num_amps, int fixed_gpio_id); - - #endif /*__CS35L41_HDA_H__*/ -diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c -new file mode 100644 -index 000000000000..673f23257a09 ---- /dev/null -+++ b/sound/pci/hda/cs35l41_hda_property.c -@@ -0,0 +1,73 @@ -+// SPDX-License-Identifier: GPL-2.0 -+// -+// CS35L41 ALSA HDA Property driver -+// -+// Copyright 2023 Cirrus Logic, Inc. -+// -+// Author: Stefan Binding -+ -+#include -+#include -+#include "cs35l41_hda_property.h" -+ -+/* -+ * Device CLSA010(0/1) doesn't have _DSD so a gpiod_get by the label reset won't work. -+ * And devices created by serial-multi-instantiate don't have their device struct -+ * pointing to the correct fwnode, so acpi_dev must be used here. -+ * And devm functions expect that the device requesting the resource has the correct -+ * fwnode. -+ */ -+static int lenovo_legion_no_acpi(struct cs35l41_hda *cs35l41, struct device *physdev, int id, -+ const char *hid) -+{ -+ struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg; -+ -+ /* check I2C address to assign the index */ -+ cs35l41->index = id == 0x40 ? 0 : 1; -+ cs35l41->channel_index = 0; -+ cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH); -+ cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, 0, 0, 2); -+ hw_cfg->spk_pos = cs35l41->index; -+ hw_cfg->gpio2.func = CS35L41_INTERRUPT; -+ hw_cfg->gpio2.valid = true; -+ hw_cfg->valid = true; -+ -+ if (strcmp(hid, "CLSA0100") == 0) { -+ hw_cfg->bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH; -+ } else if (strcmp(hid, "CLSA0101") == 0) { -+ hw_cfg->bst_type = CS35L41_EXT_BOOST; -+ hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; -+ hw_cfg->gpio1.valid = true; -+ } -+ -+ return 0; -+} -+ -+struct cs35l41_prop_model { -+ const char *hid; -+ const char *ssid; -+ int (*add_prop)(struct cs35l41_hda *cs35l41, struct device *physdev, int id, -+ const char *hid); -+}; -+ -+const struct cs35l41_prop_model cs35l41_prop_model_table[] = { -+ { "CLSA0100", NULL, lenovo_legion_no_acpi }, -+ { "CLSA0101", NULL, lenovo_legion_no_acpi }, -+ {} -+}; -+ -+int cs35l41_add_dsd_properties(struct cs35l41_hda *cs35l41, struct device *physdev, int id, -+ const char *hid) -+{ -+ const struct cs35l41_prop_model *model; -+ -+ for (model = cs35l41_prop_model_table; model->hid > 0; model++) { -+ if (!strcmp(model->hid, hid) && -+ (!model->ssid || -+ (cs35l41->acpi_subsystem_id && -+ !strcmp(model->ssid, cs35l41->acpi_subsystem_id)))) -+ return model->add_prop(cs35l41, physdev, id, hid); -+ } -+ -+ return -ENOENT; -+} -diff --git a/sound/pci/hda/cs35l41_hda_property.h b/sound/pci/hda/cs35l41_hda_property.h -new file mode 100644 -index 000000000000..fd834042e2fd ---- /dev/null -+++ b/sound/pci/hda/cs35l41_hda_property.h -@@ -0,0 +1,18 @@ -+/* SPDX-License-Identifier: GPL-2.0 -+ * -+ * CS35L41 ALSA HDA Property driver -+ * -+ * Copyright 2023 Cirrus Logic, Inc. -+ * -+ * Author: Stefan Binding -+ */ -+ -+#ifndef CS35L41_HDA_PROP_H -+#define CS35L41_HDA_PROP_H -+ -+#include -+#include "cs35l41_hda.h" -+ -+int cs35l41_add_dsd_properties(struct cs35l41_hda *cs35l41, struct device *physdev, int id, -+ const char *hid); -+#endif /* CS35L41_HDA_PROP_H */ --- -2.41.0 - -From d6f191b6827fae534a0635afb8d4380b59cb409c Mon Sep 17 00:00:00 2001 +From 76556b655f7b50afe5c58006f44221900e5711a9 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 23 Aug 2023 11:05:59 +1200 -Subject: [PATCH 11/13] ALSA: hda: cs35l41: Support ASUS 2023 laptops with - missing DSD +Subject: [PATCH v2] ALSA: hda: cs35l41: Support ASUS 2023 laptops with missing + DSD Support adding the missing DSD properties required for ASUS ROG 2023 laptops and other ASUS laptops to properly utilise the cs35l41. @@ -1811,32 +29,39 @@ Signed-off-by: Jonathan LoBue Co-developed-by: Luke D. Jones Signed-off-by: Luke D. Jones --- - sound/pci/hda/cs35l41_hda_property.c | 47 ++++++++++++++++++++++++++++ - 1 file changed, 47 insertions(+) + sound/pci/hda/cs35l41_hda_property.c | 57 ++++++++++++++++++++++++++++ + 1 file changed, 57 insertions(+) diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c -index 673f23257a09..b39f9443e1d6 100644 +index c83328971728..de0802859849 100644 --- a/sound/pci/hda/cs35l41_hda_property.c +++ b/sound/pci/hda/cs35l41_hda_property.c -@@ -43,6 +43,41 @@ static int lenovo_legion_no_acpi(struct cs35l41_hda *cs35l41, struct device *phy - return 0; - } - +@@ -76,6 +76,49 @@ static int hp_vision_acpi_fix(struct cs35l41_hda *cs35l41, struct device *physde + hw_cfg->bst_ind = 1000; + hw_cfg->bst_ipk = 4500; + hw_cfg->bst_cap = 24; ++ ++ hw_cfg->valid = true; ++ ++ return 0; ++} ++ +/* -+ * The CSC3551 is used in almost the entire ASUS ROG laptop range in 2023, this is likely to ++ * The CSC3551 is used in almost the entire ROG laptop range in 2023, this is likely to + * also include many non ROG labelled laptops. It is also used with either I2C connection or + * SPI connection. The SPI connected versions may be missing a chip select GPIO and require + * an DSD table patch. + */ -+static int asus_rog_2023_spkr_id2(struct cs35l41_hda *cs35l41, struct device *physdev, int id, ++static int asus_rog_2023_no_acpi(struct cs35l41_hda *cs35l41, struct device *physdev, int id, + const char *hid) +{ + struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg; ++ int reset_gpio = 0; ++ int spkr_gpio = 2; + + /* check SPI or I2C address to assign the index */ + cs35l41->index = (id == 0 || id == 0x40) ? 0 : 1; + cs35l41->channel_index = 0; -+ cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, 0, 0, 2); + hw_cfg->spk_pos = cs35l41->index; + hw_cfg->bst_type = CS35L41_EXT_BOOST; + hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; @@ -1844,125 +69,81 @@ index 673f23257a09..b39f9443e1d6 100644 + hw_cfg->gpio2.func = CS35L41_INTERRUPT; + hw_cfg->gpio2.valid = true; + ++ if (strcmp(cs35l41->acpi_subsystem_id, "10431483") == 0) ++ spkr_gpio = 1; ++ cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, 0, 0, spkr_gpio); ++ + if (strcmp(cs35l41->acpi_subsystem_id, "10431473") == 0 + || strcmp(cs35l41->acpi_subsystem_id, "10431483") == 0 -+ || strcmp(cs35l41->acpi_subsystem_id, "10431493") == 0) { -+ cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 1, GPIOD_OUT_HIGH); -+ } else { -+ cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH); ++ || strcmp(cs35l41->acpi_subsystem_id, "10431493") == 0 ++ || strcmp(cs35l41->acpi_subsystem_id, "10431CAF") == 0 ++ || strcmp(cs35l41->acpi_subsystem_id, "10431CCF") == 0 ++ || strcmp(cs35l41->acpi_subsystem_id, "10431E02") == 0) { ++ reset_gpio = 1; + } ++ cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, reset_gpio, GPIOD_OUT_HIGH); + -+ hw_cfg->valid = true; -+ -+ return 0; -+} -+ - struct cs35l41_prop_model { - const char *hid; - const char *ssid; -@@ -53,6 +88,18 @@ struct cs35l41_prop_model { - const struct cs35l41_prop_model cs35l41_prop_model_table[] = { + hw_cfg->valid = true; + + return 0; +@@ -92,6 +135,20 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = { { "CLSA0100", NULL, lenovo_legion_no_acpi }, { "CLSA0101", NULL, lenovo_legion_no_acpi }, -+ { "CSC3551", "10431433", asus_rog_2023_spkr_id2 }, // ASUS GS650P - i2c -+ { "CSC3551", "10431463", asus_rog_2023_spkr_id2 }, // ASUS GA402X/N - i2c -+ { "CSC3551", "10431473", asus_rog_2023_spkr_id2 }, // ASUS GU604V - spi, reset gpio 1 -+ { "CSC3551", "10431483", asus_rog_2023_spkr_id2 }, // ASUS GU603V - spi, reset gpio 1 -+ { "CSC3551", "10431493", asus_rog_2023_spkr_id2 }, // ASUS GV601V - spi, reset gpio 1 -+ { "CSC3551", "10431573", asus_rog_2023_spkr_id2 }, // ASUS GZ301V - spi, reset gpio 0 -+ { "CSC3551", "104317F3", asus_rog_2023_spkr_id2 }, // ASUS ROG ALLY - i2c -+ { "CSC3551", "10431B93", asus_rog_2023_spkr_id2 }, // ASUS G614J - spi, reset gpio 0 -+ { "CSC3551", "10431CAF", asus_rog_2023_spkr_id2 }, // ASUS G634J - spi, reset gpio 0 -+ { "CSC3551", "10431C9F", asus_rog_2023_spkr_id2 }, // ASUS G614JI -spi, reset gpio 0 -+ { "CSC3551", "10431D1F", asus_rog_2023_spkr_id2 }, // ASUS G713P - i2c -+ { "CSC3551", "10431F1F", asus_rog_2023_spkr_id2 }, // ASUS H7604JV - spi, reset gpio 0 + { "CSC3551", "103C89C6", hp_vision_acpi_fix }, ++ { "CSC3551", "10431433", asus_rog_2023_no_acpi }, // GS650P i2c ++ { "CSC3551", "10431463", asus_rog_2023_no_acpi }, // GA402X/N i2c, rst=0 ++ { "CSC3551", "10431473", asus_rog_2023_no_acpi }, // GU604V spi, rst=1 ++ { "CSC3551", "10431483", asus_rog_2023_no_acpi }, // GU603V spi, rst=1, spkr=1 ++ { "CSC3551", "10431493", asus_rog_2023_no_acpi }, // GV601V spi, rst=1 ++ { "CSC3551", "10431573", asus_rog_2023_no_acpi }, // GZ301V spi, rst=0 ++ { "CSC3551", "104317F3", asus_rog_2023_no_acpi }, // ROG ALLY i2c, rst=0 ++ { "CSC3551", "10431B93", asus_rog_2023_no_acpi }, // G614J spi, rst=0 ++ { "CSC3551", "10431C9F", asus_rog_2023_no_acpi }, // G614JI spi, rst=0 ++ { "CSC3551", "10431CAF", asus_rog_2023_no_acpi }, // G634J spi, rst=1 ++ { "CSC3551", "10431CCF", asus_rog_2023_no_acpi }, // G814J spi, rst=1 ++ { "CSC3551", "10431D1F", asus_rog_2023_no_acpi }, // G713P i2c, rst=0 ++ { "CSC3551", "10431E02", asus_rog_2023_no_acpi }, // UX3042Z spi, rst=1 ++ { "CSC3551", "10431F1F", asus_rog_2023_no_acpi }, // H7604JV spi, rst=0 {} }; -- 2.41.0 -From f2e032c25d0fac01e8272176c71d5080e0123081 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Mon, 28 Aug 2023 11:05:16 +1200 -Subject: [PATCH 12/13] platform/x86: asus-wmi: corrections to egpu safety - check - -An incorrect if statement was preventing the enablement of the egpu. - -Fixes: 1bddf53ccac0 ("platform/x86: asus-wmi: don't allow eGPU switching if eGPU not connected") -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/asus-wmi.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 496d03e88595..13547e55ae82 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -726,19 +726,18 @@ static ssize_t egpu_enable_store(struct device *dev, - return -EINVAL; - - result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_EGPU_CONNECTED); -- if (err < 0) -- return err; -- if (err < 1) { -- err = -ENODEV; -- pr_warn("Failed to set egpu disable: %d\n", err); -+ if (err < 0) { -+ pr_warn("Failed to get egpu connection status: %d\n", err); - return err; - } - - if (asus->gpu_mux_mode_available) { - result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX); -- if (result < 0) -+ if (result < 0) { - /* An error here may signal greater failure of GPU handling */ -+ pr_warn("Failed to get gpu mux status: %d\n", err); - return result; -+ } - if (!result && enable) { - err = -ENODEV; - pr_warn("Can not enable eGPU when the MUX is in dGPU mode: %d\n", err); -@@ -748,12 +747,12 @@ static ssize_t egpu_enable_store(struct device *dev, - - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_EGPU, enable, &result); - if (err) { -- pr_warn("Failed to set egpu disable: %d\n", err); -+ pr_warn("Failed to set egpu state: %d\n", err); - return err; - } - - if (result > 1) { -- pr_warn("Failed to set egpu disable (retval): 0x%x\n", result); -+ pr_warn("Failed to set egpu state (retval): 0x%x\n", result); - return -EIO; - } - --- -2.41.0 - -From cc5628b9a4c5fea304346202f753b48bc8f6c622 Mon Sep 17 00:00:00 2001 +From b35a4c957b3f0e5b4c7c73dec4fe3a5b9dbc4873 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 30 Apr 2023 10:56:34 +1200 -Subject: [PATCH 13/13] platform/x86: asus-wmi: add support for ASUS screenpad +Subject: [PATCH v6 1/1] platform/x86: asus-wmi: add support for ASUS screenpad Add support for the WMI methods used to turn off and adjust the brightness of the secondary "screenpad" device found on some high-end ASUS laptops like the GX650P series and others. -These methods are utilised in a new backlight device named asus_screenpad. +There are some small quirks with this device when considering only the +raw WMI methods: +1. The Off method can only switch the device off +2. Changing the brightness turns the device back on +3. To turn the device back on the brightness must be > 1 +4. When the device is off the brightness can't be changed (so it is + stored by the driver if device is off). +5. Booting with a value of 0 brightness (retained by bios) means the bios + will set a value of >0 <15 +6. When the device is off it is "unplugged" + +asus_wmi sets the minimum brightness as 20 in general use, and 60 for +booting with values <= min. + +The ACPI methods are used in a new backlight device named asus_screenpad. Signed-off-by: Luke D. Jones --- - drivers/platform/x86/asus-wmi.c | 131 +++++++++++++++++++++ + drivers/platform/x86/asus-wmi.c | 133 +++++++++++++++++++++ drivers/platform/x86/asus-wmi.h | 1 + include/linux/platform_data/x86/asus-wmi.h | 4 + - 3 files changed, 136 insertions(+) + 3 files changed, 138 insertions(+) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 13547e55ae82..2801c691133a 100644 +index f54178d6f780..0b13be703856 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -25,6 +25,7 @@ @@ -1973,17 +154,18 @@ index 13547e55ae82..2801c691133a 100644 #include #include #include -@@ -127,6 +128,9 @@ module_param(fnlock_default, bool, 0444); +@@ -127,6 +128,10 @@ module_param(fnlock_default, bool, 0444); #define NVIDIA_TEMP_MIN 75 #define NVIDIA_TEMP_MAX 87 +#define ASUS_SCREENPAD_BRIGHT_MIN 20 +#define ASUS_SCREENPAD_BRIGHT_MAX 255 ++#define ASUS_SCREENPAD_BRIGHT_DEFAULT 60 + static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL }; static int throttle_thermal_policy_write(struct asus_wmi *); -@@ -212,6 +216,7 @@ struct asus_wmi { +@@ -212,6 +217,7 @@ struct asus_wmi { struct input_dev *inputdev; struct backlight_device *backlight_device; @@ -1991,7 +173,7 @@ index 13547e55ae82..2801c691133a 100644 struct platform_device *platform_device; struct led_classdev wlan_led; -@@ -3776,6 +3781,123 @@ static int is_display_toggle(int code) +@@ -3776,6 +3782,124 @@ static int is_display_toggle(int code) return 0; } @@ -2019,7 +201,7 @@ index 13547e55ae82..2801c691133a 100644 + return err; + /* The device brightness can only be read if powered, so return stored */ + if (err == FB_BLANK_POWERDOWN) -+ return asus->driver->screenpad_brightness; ++ return asus->driver->screenpad_brightness - ASUS_SCREENPAD_BRIGHT_MIN; + + err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_SCREENPAD_LIGHT, &retval); + if (err < 0) @@ -2041,7 +223,7 @@ index 13547e55ae82..2801c691133a 100644 + if (bd->props.power != power) { + if (power != FB_BLANK_UNBLANK) { + /* Only brightness > 0 can power it back on */ -+ ctrl_param = max(ASUS_SCREENPAD_BRIGHT_MIN, asus->driver->screenpad_brightness); ++ ctrl_param = asus->driver->screenpad_brightness - ASUS_SCREENPAD_BRIGHT_MIN; + err = asus_wmi_set_devstate(ASUS_WMI_DEVID_SCREENPAD_LIGHT, + ctrl_param, NULL); + } else { @@ -2054,7 +236,8 @@ index 13547e55ae82..2801c691133a 100644 + } + + /* Ensure brightness is stored to turn back on with */ -+ asus->driver->screenpad_brightness = bd->props.brightness + ASUS_SCREENPAD_BRIGHT_MIN; ++ if (err == 0) ++ asus->driver->screenpad_brightness = bd->props.brightness + ASUS_SCREENPAD_BRIGHT_MIN; + + return err; +} @@ -2083,7 +266,7 @@ index 13547e55ae82..2801c691133a 100644 + } + /* default to an acceptable min brightness on boot if too low */ + if (brightness < ASUS_SCREENPAD_BRIGHT_MIN) -+ brightness = ASUS_SCREENPAD_BRIGHT_MIN; ++ brightness = ASUS_SCREENPAD_BRIGHT_DEFAULT; + + memset(&props, 0, sizeof(struct backlight_properties)); + props.type = BACKLIGHT_RAW; /* ensure this bd is last to be picked */ @@ -2115,7 +298,7 @@ index 13547e55ae82..2801c691133a 100644 /* Fn-lock ********************************************************************/ static bool asus_wmi_has_fnlock_key(struct asus_wmi *asus) -@@ -4431,6 +4553,12 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4431,6 +4555,12 @@ static int asus_wmi_add(struct platform_device *pdev) } else if (asus->driver->quirks->wmi_backlight_set_devstate) err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL); @@ -2128,7 +311,7 @@ index 13547e55ae82..2801c691133a 100644 if (asus_wmi_has_fnlock_key(asus)) { asus->fnlock_locked = fnlock_default; asus_wmi_fnlock_update(asus); -@@ -4454,6 +4582,8 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4454,6 +4584,8 @@ static int asus_wmi_add(struct platform_device *pdev) asus_wmi_backlight_exit(asus); fail_backlight: asus_wmi_rfkill_exit(asus); @@ -2137,7 +320,7 @@ index 13547e55ae82..2801c691133a 100644 fail_rfkill: asus_wmi_led_exit(asus); fail_leds: -@@ -4480,6 +4610,7 @@ static int asus_wmi_remove(struct platform_device *device) +@@ -4480,6 +4612,7 @@ static int asus_wmi_remove(struct platform_device *device) asus = platform_get_drvdata(device); wmi_remove_notify_handler(asus->driver->event_guid); asus_wmi_backlight_exit(asus); @@ -2175,3 +358,34 @@ index 16e99a1c37fc..63e630276499 100644 -- 2.41.0 +From 7760e10674dbb9127450629308c6ee1c35d5fc19 Mon Sep 17 00:00:00 2001 +From: "Luke D. Jones" +Date: Thu, 9 Nov 2023 09:41:13 +1300 +Subject: [PATCH] ALSA: hda/realtek: Add quirk for ASUS ROG G814Jx + +Adds the required quirk to enable the Cirrus amp and correct pins +on the ASUS ROG G814J series which uses an SPI connected Cirrus amp. + +While this works if the related _DSD properties are made available, these +aren't included in the ACPI of these laptops (yet). + +Signed-off-by: Luke D. Jones +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 58006c8bcfb9..a690baa202c5 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -9924,6 +9924,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1043, 0x1c9f, "ASUS G614JI", ALC285_FIXUP_ASUS_HEADSET_MIC), + SND_PCI_QUIRK(0x1043, 0x1caf, "ASUS G634JYR/JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS), + SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC), ++ SND_PCI_QUIRK(0x1043, 0x1ccf, "ASUS G814JI", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS), + SND_PCI_QUIRK(0x1043, 0x1d1f, "ASUS ROG Strix G17 2023 (G713PV)", ALC287_FIXUP_CS35L41_I2C_2), + SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401), + SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE), +-- +2.41.0 + diff --git a/SOURCES/check-kabi b/SOURCES/check-kabi index f9d4dcb..3809209 100755 --- a/SOURCES/check-kabi +++ b/SOURCES/check-kabi @@ -41,7 +41,8 @@ def load_symvers(symvers, filename): break if in_line == "\n": continue - checksum, symbol, directory, type = in_line.split() + checksum, symbol, directory, type, *ns = in_line.split() + ns = ns[0] if ns else None symvers[symbol] = in_line[0:-1] @@ -57,7 +58,8 @@ def load_kabi(kabi, filename): break if in_line == "\n": continue - checksum, symbol, directory, type = in_line.split() + checksum, symbol, directory, type, *ns = in_line.split() + ns = ns[0] if ns else None kabi[symbol] = in_line[0:-1] @@ -69,11 +71,14 @@ def check_kabi(symvers, kabi): warn = 0 changed_symbols = [] moved_symbols = [] + ns_symbols = [] for symbol in kabi: - abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split() + abi_hash, abi_sym, abi_dir, abi_type, *abi_ns = kabi[symbol].split() + abi_ns = abi_ns[0] if abi_ns else None if symbol in symvers: - sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split() + sym_hash, sym_sym, sym_dir, sym_type, *sym_ns = symvers[symbol].split() + sym_ns = sym_ns[0] if sym_ns else None if abi_hash != sym_hash: fail = 1 changed_symbols.append(symbol) @@ -81,6 +86,10 @@ def check_kabi(symvers, kabi): if abi_dir != sym_dir: warn = 1 moved_symbols.append(symbol) + + if abi_ns != sym_ns: + warn = 1 + ns_symbols.append(symbol) else: fail = 1 changed_symbols.append(symbol) @@ -96,13 +105,21 @@ def check_kabi(symvers, kabi): if warn: print("*** WARNING - ABI SYMBOLS MOVED ***") - print("") - print("The following symbols moved (typically caused by moving a symbol from being") - print("provided by the kernel vmlinux out to a loadable module):") - print("") - for symbol in moved_symbols: - print(symbol) - print("") + if moved_symbols: + print("") + print("The following symbols moved (typically caused by moving a symbol from being") + print("provided by the kernel vmlinux out to a loadable module):") + print("") + for symbol in moved_symbols: + print(symbol) + print("") + if ns_symbols: + print("") + print("The following symbols changed symbol namespaces:") + print("") + for symbol in ns_symbols: + print(symbol) + print("") """Halt the build, if we got errors and/or warnings. In either case, double-checkig is required to avoid introducing / concealing diff --git a/SOURCES/chimera-ALSA.patch b/SOURCES/chimera-ALSA.patch deleted file mode 100644 index c7bd726..0000000 --- a/SOURCES/chimera-ALSA.patch +++ /dev/null @@ -1,1170 +0,0 @@ -From c21139c6470a5b08c7463e451f2ff404e55f652f Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:06 +0100 -Subject: [PATCH 01/11] ALSA: cs35l41: Use mbox command to enable speaker - output for external boost - -To enable the speaker output in external boost mode, 2 registers must -be set, one after another. The longer the time between the writes of -the two registers, the more likely, and more loudly a pop may occur. -To minimize this, an mbox command can be used to allow the firmware -to perform this action, minimizing any delay between write, thus -minimizing any pop or click as a result. The old method will remain -when running without firmware. - -Acked-by: Mark Brown -Signed-off-by: Stefan Binding ---- - include/sound/cs35l41.h | 5 ++- - sound/pci/hda/cs35l41_hda.c | 9 ++-- - sound/soc/codecs/cs35l41-lib.c | 76 +++++++++++++++++++++++++++------- - sound/soc/codecs/cs35l41.c | 8 ++-- - 4 files changed, 74 insertions(+), 24 deletions(-) - -diff --git a/include/sound/cs35l41.h b/include/sound/cs35l41.h -index 7239d943942c..1bf757901d02 100644 ---- a/include/sound/cs35l41.h -+++ b/include/sound/cs35l41.h -@@ -829,6 +829,7 @@ enum cs35l41_cspl_mbox_cmd { - CSPL_MBOX_CMD_STOP_PRE_REINIT = 4, - CSPL_MBOX_CMD_HIBERNATE = 5, - CSPL_MBOX_CMD_OUT_OF_HIBERNATE = 6, -+ CSPL_MBOX_CMD_SPK_OUT_ENABLE = 7, - CSPL_MBOX_CMD_UNKNOWN_CMD = -1, - CSPL_MBOX_CMD_INVALID_SEQUENCE = -2, - }; -@@ -901,7 +902,7 @@ int cs35l41_exit_hibernate(struct device *dev, struct regmap *regmap); - int cs35l41_init_boost(struct device *dev, struct regmap *regmap, - struct cs35l41_hw_cfg *hw_cfg); - bool cs35l41_safe_reset(struct regmap *regmap, enum cs35l41_boost_type b_type); --int cs35l41_global_enable(struct regmap *regmap, enum cs35l41_boost_type b_type, int enable, -- struct completion *pll_lock); -+int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type, -+ int enable, struct completion *pll_lock, bool firmware_running); - - #endif /* __CS35L41_H */ -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index ce5faa620517..f9c97270db6f 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -514,13 +514,15 @@ static void cs35l41_hda_playback_hook(struct device *dev, int action) - break; - case HDA_GEN_PCM_ACT_PREPARE: - mutex_lock(&cs35l41->fw_mutex); -- ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 1, NULL); -+ ret = cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL, -+ cs35l41->firmware_running); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLEANUP: - mutex_lock(&cs35l41->fw_mutex); - regmap_multi_reg_write(reg, cs35l41_hda_mute, ARRAY_SIZE(cs35l41_hda_mute)); -- ret = cs35l41_global_enable(reg, cs35l41->hw_cfg.bst_type, 0, NULL); -+ ret = cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0, NULL, -+ cs35l41->firmware_running); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLOSE: -@@ -672,7 +674,8 @@ static int cs35l41_runtime_suspend(struct device *dev) - if (cs35l41->playback_started) { - regmap_multi_reg_write(cs35l41->regmap, cs35l41_hda_mute, - ARRAY_SIZE(cs35l41_hda_mute)); -- cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, NULL); -+ cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, -+ NULL, cs35l41->firmware_running); - regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, - CS35L41_AMP_EN_MASK, 0 << CS35L41_AMP_EN_SHIFT); - if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c -index 1e4205295a0d..a7556fa33cdd 100644 ---- a/sound/soc/codecs/cs35l41-lib.c -+++ b/sound/soc/codecs/cs35l41-lib.c -@@ -1080,28 +1080,32 @@ static const struct reg_sequence cs35l41_safe_to_reset[] = { - { 0x00000040, 0x00000033 }, - }; - --static const struct reg_sequence cs35l41_active_to_safe[] = { -+static const struct reg_sequence cs35l41_active_to_safe_start[] = { - { 0x00000040, 0x00000055 }, - { 0x00000040, 0x000000AA }, - { 0x00007438, 0x00585941 }, - { CS35L41_PWR_CTRL1, 0x00000000 }, -- { 0x0000742C, 0x00000009, 3000 }, -+ { 0x0000742C, 0x00000009 }, -+}; -+ -+static const struct reg_sequence cs35l41_active_to_safe_end[] = { - { 0x00007438, 0x00580941 }, - { 0x00000040, 0x000000CC }, - { 0x00000040, 0x00000033 }, - }; - --static const struct reg_sequence cs35l41_safe_to_active[] = { -+static const struct reg_sequence cs35l41_safe_to_active_start[] = { - { 0x00000040, 0x00000055 }, - { 0x00000040, 0x000000AA }, - { 0x0000742C, 0x0000000F }, - { 0x0000742C, 0x00000079 }, - { 0x00007438, 0x00585941 }, -- { CS35L41_PWR_CTRL1, 0x00000001, 3000 }, // GLOBAL_EN = 1 -+ { CS35L41_PWR_CTRL1, 0x00000001 }, // GLOBAL_EN = 1 -+}; -+ -+static const struct reg_sequence cs35l41_safe_to_active_en_spk[] = { - { 0x0000742C, 0x000000F9 }, - { 0x00007438, 0x00580941 }, -- { 0x00000040, 0x000000CC }, -- { 0x00000040, 0x00000033 }, - }; - - static const struct reg_sequence cs35l41_reset_to_safe[] = { -@@ -1188,11 +1192,11 @@ bool cs35l41_safe_reset(struct regmap *regmap, enum cs35l41_boost_type b_type) - } - EXPORT_SYMBOL_GPL(cs35l41_safe_reset); - --int cs35l41_global_enable(struct regmap *regmap, enum cs35l41_boost_type b_type, int enable, -- struct completion *pll_lock) -+int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type, -+ int enable, struct completion *pll_lock, bool firmware_running) - { - int ret; -- unsigned int gpio1_func, pad_control, pwr_ctrl1, pwr_ctrl3; -+ unsigned int gpio1_func, pad_control, pwr_ctrl1, pwr_ctrl3, int_status; - struct reg_sequence cs35l41_mdsync_down_seq[] = { - {CS35L41_PWR_CTRL3, 0}, - {CS35L41_GPIO_PAD_CONTROL, 0}, -@@ -1204,6 +1208,14 @@ int cs35l41_global_enable(struct regmap *regmap, enum cs35l41_boost_type b_type, - {CS35L41_PWR_CTRL1, 0x00000001, 3000}, - }; - -+ if ((pwr_ctl1_val & CS35L41_GLOBAL_EN_MASK) && enable) { -+ dev_dbg(dev, "Cannot set Global Enable - already set.\n"); -+ return 0; -+ } else if (!(pwr_ctl1_val & CS35L41_GLOBAL_EN_MASK) && !enable) { -+ dev_dbg(dev, "Cannot unset Global Enable - not set.\n"); -+ return 0; -+ } -+ - switch (b_type) { - case CS35L41_SHD_BOOST_ACTV: - case CS35L41_SHD_BOOST_PASS: -@@ -1244,16 +1256,48 @@ int cs35l41_global_enable(struct regmap *regmap, enum cs35l41_boost_type b_type, - case CS35L41_INT_BOOST: - ret = regmap_update_bits(regmap, CS35L41_PWR_CTRL1, CS35L41_GLOBAL_EN_MASK, - enable << CS35L41_GLOBAL_EN_SHIFT); -+ if (ret) { -+ dev_err(dev, "CS35L41_PWR_CTRL1 set failed: %d\n", ret); -+ return ret; -+ } - usleep_range(3000, 3100); - break; - case CS35L41_EXT_BOOST: - case CS35L41_EXT_BOOST_NO_VSPK_SWITCH: -- if (enable) -- ret = regmap_multi_reg_write(regmap, cs35l41_safe_to_active, -- ARRAY_SIZE(cs35l41_safe_to_active)); -- else -- ret = regmap_multi_reg_write(regmap, cs35l41_active_to_safe, -- ARRAY_SIZE(cs35l41_active_to_safe)); -+ if (enable) { -+ /* Test Key is unlocked here */ -+ ret = regmap_multi_reg_write(regmap, cs35l41_safe_to_active_start, -+ ARRAY_SIZE(cs35l41_safe_to_active_start)); -+ if (ret) -+ return ret; -+ -+ usleep_range(3000, 3100); -+ -+ if (firmware_running) -+ ret = cs35l41_set_cspl_mbox_cmd(dev, regmap, -+ CSPL_MBOX_CMD_SPK_OUT_ENABLE); -+ else -+ ret = regmap_multi_reg_write(regmap, cs35l41_safe_to_active_en_spk, -+ ARRAY_SIZE(cs35l41_safe_to_active_en_spk)); -+ -+ /* Lock the test key, it was unlocked during the multi_reg_write */ -+ cs35l41_test_key_lock(dev, regmap); -+ } else { -+ /* Test Key is unlocked here */ -+ ret = regmap_multi_reg_write(regmap, cs35l41_active_to_safe_start, -+ ARRAY_SIZE(cs35l41_active_to_safe_start)); -+ if (ret) { -+ /* Lock the test key, it was unlocked during the multi_reg_write */ -+ cs35l41_test_key_lock(dev, regmap); -+ return ret; -+ } -+ -+ usleep_range(3000, 3100); -+ -+ /* Test Key is locked here */ -+ ret = regmap_multi_reg_write(regmap, cs35l41_active_to_safe_end, -+ ARRAY_SIZE(cs35l41_active_to_safe_end)); -+ } - break; - default: - ret = -EINVAL; -@@ -1344,6 +1388,8 @@ static bool cs35l41_check_cspl_mbox_sts(enum cs35l41_cspl_mbox_cmd cmd, - return (sts == CSPL_MBOX_STS_RUNNING); - case CSPL_MBOX_CMD_STOP_PRE_REINIT: - return (sts == CSPL_MBOX_STS_RDY_FOR_REINIT); -+ case CSPL_MBOX_CMD_SPK_OUT_ENABLE: -+ return (sts == CSPL_MBOX_STS_RUNNING); - default: - return false; - } -diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c -index 6ac501f008ec..d4e9c9d9b50a 100644 ---- a/sound/soc/codecs/cs35l41.c -+++ b/sound/soc/codecs/cs35l41.c -@@ -500,12 +500,12 @@ static int cs35l41_main_amp_event(struct snd_soc_dapm_widget *w, - cs35l41_pup_patch, - ARRAY_SIZE(cs35l41_pup_patch)); - -- cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 1, -- &cs35l41->pll_lock); -+ ret = cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, -+ 1, &cs35l41->pll_lock, cs35l41->dsp.cs_dsp.running); - break; - case SND_SOC_DAPM_POST_PMD: -- cs35l41_global_enable(cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, -- &cs35l41->pll_lock); -+ ret = cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, -+ 0, &cs35l41->pll_lock, cs35l41->dsp.cs_dsp.running); - - ret = regmap_read_poll_timeout(cs35l41->regmap, CS35L41_IRQ1_STATUS1, - val, val & CS35L41_PDN_DONE_MASK, --- -2.41.0 - -From 437f5415c5ac8e49b0675f74132b6e1308b6e5c7 Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:07 +0100 -Subject: [PATCH 02/11] ALSA: cs35l41: Poll for Power Up/Down rather than - waiting a fixed delay - -To ensure the chip has correctly powered up or down before continuing, -the driver will now poll a register, rather than wait a fixed delay. - -Acked-by: Mark Brown -Signed-off-by: Stefan Binding ---- - sound/soc/codecs/cs35l41-lib.c | 48 +++++++++++++++++++++++++++++++--- - sound/soc/codecs/cs35l41.c | 10 ------- - 2 files changed, 44 insertions(+), 14 deletions(-) - -diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c -index a7556fa33cdd..a9c559a676e7 100644 ---- a/sound/soc/codecs/cs35l41-lib.c -+++ b/sound/soc/codecs/cs35l41-lib.c -@@ -1196,7 +1196,8 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - int enable, struct completion *pll_lock, bool firmware_running) - { - int ret; -- unsigned int gpio1_func, pad_control, pwr_ctrl1, pwr_ctrl3, int_status; -+ unsigned int gpio1_func, pad_control, pwr_ctrl1, pwr_ctrl3, int_status, pup_pdn_mask; -+ unsigned int pwr_ctl1_val; - struct reg_sequence cs35l41_mdsync_down_seq[] = { - {CS35L41_PWR_CTRL3, 0}, - {CS35L41_GPIO_PAD_CONTROL, 0}, -@@ -1208,6 +1209,12 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - {CS35L41_PWR_CTRL1, 0x00000001, 3000}, - }; - -+ pup_pdn_mask = enable ? CS35L41_PUP_DONE_MASK : CS35L41_PDN_DONE_MASK; -+ -+ ret = regmap_read(regmap, CS35L41_PWR_CTRL1, &pwr_ctl1_val); -+ if (ret) -+ return ret; -+ - if ((pwr_ctl1_val & CS35L41_GLOBAL_EN_MASK) && enable) { - dev_dbg(dev, "Cannot set Global Enable - already set.\n"); - return 0; -@@ -1252,6 +1259,15 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_up_seq, - ARRAY_SIZE(cs35l41_mdsync_up_seq)); - } -+ -+ ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, -+ int_status, int_status & pup_pdn_mask, -+ 1000, 100000); -+ if (ret) -+ dev_err(dev, "Enable(%d) failed: %d\n", enable, ret); -+ -+ // Clear PUP/PDN status -+ regmap_write(regmap, CS35L41_IRQ1_STATUS1, pup_pdn_mask); - break; - case CS35L41_INT_BOOST: - ret = regmap_update_bits(regmap, CS35L41_PWR_CTRL1, CS35L41_GLOBAL_EN_MASK, -@@ -1260,7 +1276,15 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - dev_err(dev, "CS35L41_PWR_CTRL1 set failed: %d\n", ret); - return ret; - } -- usleep_range(3000, 3100); -+ -+ ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, -+ int_status, int_status & pup_pdn_mask, -+ 1000, 100000); -+ if (ret) -+ dev_err(dev, "Enable(%d) failed: %d\n", enable, ret); -+ -+ /* Clear PUP/PDN status */ -+ regmap_write(regmap, CS35L41_IRQ1_STATUS1, pup_pdn_mask); - break; - case CS35L41_EXT_BOOST: - case CS35L41_EXT_BOOST_NO_VSPK_SWITCH: -@@ -1271,7 +1295,15 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - if (ret) - return ret; - -- usleep_range(3000, 3100); -+ ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, int_status, -+ int_status & CS35L41_PUP_DONE_MASK, 1000, 100000); -+ if (ret) { -+ dev_err(dev, "Failed waiting for CS35L41_PUP_DONE_MASK: %d\n", ret); -+ /* Lock the test key, it was unlocked during the multi_reg_write */ -+ cs35l41_test_key_lock(dev, regmap); -+ return ret; -+ } -+ regmap_write(regmap, CS35L41_IRQ1_STATUS1, CS35L41_PUP_DONE_MASK); - - if (firmware_running) - ret = cs35l41_set_cspl_mbox_cmd(dev, regmap, -@@ -1292,7 +1324,15 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - return ret; - } - -- usleep_range(3000, 3100); -+ ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, int_status, -+ int_status & CS35L41_PDN_DONE_MASK, 1000, 100000); -+ if (ret) { -+ dev_err(dev, "Failed waiting for CS35L41_PDN_DONE_MASK: %d\n", ret); -+ /* Lock the test key, it was unlocked during the multi_reg_write */ -+ cs35l41_test_key_lock(dev, regmap); -+ return ret; -+ } -+ regmap_write(regmap, CS35L41_IRQ1_STATUS1, CS35L41_PDN_DONE_MASK); - - /* Test Key is locked here */ - ret = regmap_multi_reg_write(regmap, cs35l41_active_to_safe_end, -diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c -index d4e9c9d9b50a..2b3c36f02edb 100644 ---- a/sound/soc/codecs/cs35l41.c -+++ b/sound/soc/codecs/cs35l41.c -@@ -491,7 +491,6 @@ static int cs35l41_main_amp_event(struct snd_soc_dapm_widget *w, - { - struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); - struct cs35l41_private *cs35l41 = snd_soc_component_get_drvdata(component); -- unsigned int val; - int ret = 0; - - switch (event) { -@@ -507,15 +506,6 @@ static int cs35l41_main_amp_event(struct snd_soc_dapm_widget *w, - ret = cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, - 0, &cs35l41->pll_lock, cs35l41->dsp.cs_dsp.running); - -- ret = regmap_read_poll_timeout(cs35l41->regmap, CS35L41_IRQ1_STATUS1, -- val, val & CS35L41_PDN_DONE_MASK, -- 1000, 100000); -- if (ret) -- dev_warn(cs35l41->dev, "PDN failed: %d\n", ret); -- -- regmap_write(cs35l41->regmap, CS35L41_IRQ1_STATUS1, -- CS35L41_PDN_DONE_MASK); -- - regmap_multi_reg_write_bypassed(cs35l41->regmap, - cs35l41_pdn_patch, - ARRAY_SIZE(cs35l41_pdn_patch)); --- -2.41.0 - -From 796af5ec6c6bb2eadf78a96f629e2c7fba11123b Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:08 +0100 -Subject: [PATCH 03/11] ALSA: hda: cs35l41: Check mailbox status of pause - command after firmware load - -Currently, we do not check the return status of the pause command, -immediately after we load firmware. If the pause has failed, -the firmware is not running. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index f9c97270db6f..29f1dce45f1d 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -781,7 +781,12 @@ static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41) - goto clean_dsp; - } - -- cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, CSPL_MBOX_CMD_PAUSE); -+ ret = cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, CSPL_MBOX_CMD_PAUSE); -+ if (ret) { -+ dev_err(cs35l41->dev, "Error waiting for DSP to pause: %u\n", ret); -+ goto clean_dsp; -+ } -+ - cs35l41->firmware_running = true; - - return 0; --- -2.41.0 - -From 9684d3a1fbe55573eccd6c7e5f72dd519a4e406b Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:09 +0100 -Subject: [PATCH 04/11] ALSA: hda: cs35l41: Ensure we correctly re-sync regmap - before system suspending. - -In order to properly system suspend, it is necessary to unload the firmware -and ensure the chip is ready for shutdown (if necessary). If the system -is currently in runtime suspend, it is necessary to wake up the device, -and then make it ready. Currently, the wake does not correctly resync -the device, which may mean it cannot suspend correctly. Fix this by -performaing a resync. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 32 +++++++++++++++++++++++++++----- - 1 file changed, 27 insertions(+), 5 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index 29f1dce45f1d..f42457147ce4 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -574,21 +574,43 @@ static int cs35l41_hda_channel_map(struct device *dev, unsigned int tx_num, unsi - rx_slot); - } - --static void cs35l41_ready_for_reset(struct cs35l41_hda *cs35l41) -+static int cs35l41_ready_for_reset(struct cs35l41_hda *cs35l41) - { -+ int ret = 0; -+ - mutex_lock(&cs35l41->fw_mutex); - if (cs35l41->firmware_running) { - - regcache_cache_only(cs35l41->regmap, false); - -- cs35l41_exit_hibernate(cs35l41->dev, cs35l41->regmap); -+ ret = cs35l41_exit_hibernate(cs35l41->dev, cs35l41->regmap); -+ if (ret) { -+ dev_warn(cs35l41->dev, "Unable to exit Hibernate."); -+ goto err; -+ } -+ -+ /* Test key needs to be unlocked to allow the OTP settings to re-apply */ -+ cs35l41_test_key_unlock(cs35l41->dev, cs35l41->regmap); -+ ret = regcache_sync(cs35l41->regmap); -+ cs35l41_test_key_lock(cs35l41->dev, cs35l41->regmap); -+ if (ret) { -+ dev_err(cs35l41->dev, "Failed to restore register cache: %d\n", ret); -+ goto err; -+ } -+ -+ if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -+ cs35l41_init_boost(cs35l41->dev, cs35l41->regmap, &cs35l41->hw_cfg); -+ - cs35l41_shutdown_dsp(cs35l41); - cs35l41_safe_reset(cs35l41->regmap, cs35l41->hw_cfg.bst_type); -- -- regcache_cache_only(cs35l41->regmap, true); -- regcache_mark_dirty(cs35l41->regmap); - } -+err: -+ regcache_cache_only(cs35l41->regmap, true); -+ regcache_mark_dirty(cs35l41->regmap); -+ - mutex_unlock(&cs35l41->fw_mutex); -+ -+ return ret; - } - - static int cs35l41_system_suspend(struct device *dev) --- -2.41.0 - -From 05bfc01172a34466e660465922d1cab5b460880f Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:10 +0100 -Subject: [PATCH 05/11] ALSA: hda: cs35l41: Ensure we pass up any errors during - system suspend. - -There are several steps required to put the system into system suspend. -Some of these steps may fail, so the driver should pass up the errors -if they occur. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index f42457147ce4..d4a11f7b5dbd 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -626,17 +626,22 @@ static int cs35l41_system_suspend(struct device *dev) - } - - ret = pm_runtime_force_suspend(dev); -- if (ret) -+ if (ret) { -+ dev_err(dev, "System Suspend Failed, unable to runtime suspend: %d\n", ret); - return ret; -+ } - - /* Shutdown DSP before system suspend */ -- cs35l41_ready_for_reset(cs35l41); -+ ret = cs35l41_ready_for_reset(cs35l41); -+ -+ if (ret) -+ dev_err(dev, "System Suspend Failed, not ready for Reset: %d\n", ret); - - /* - * Reset GPIO may be shared, so cannot reset here. - * However beyond this point, amps may be powered down. - */ -- return 0; -+ return ret; - } - - static int cs35l41_system_resume(struct device *dev) -@@ -659,9 +664,13 @@ static int cs35l41_system_resume(struct device *dev) - usleep_range(2000, 2100); - - ret = pm_runtime_force_resume(dev); -+ if (ret) { -+ dev_err(dev, "System Resume Failed: Unable to runtime resume: %d\n", ret); -+ return ret; -+ } - - mutex_lock(&cs35l41->fw_mutex); -- if (!ret && cs35l41->request_fw_load && !cs35l41->fw_request_ongoing) { -+ if (cs35l41->request_fw_load && !cs35l41->fw_request_ongoing) { - cs35l41->fw_request_ongoing = true; - schedule_work(&cs35l41->fw_load_work); - } --- -2.41.0 - -From f352ce9e5389e4746f25bfec33f4e0ee4dcbf690 Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:11 +0100 -Subject: [PATCH 06/11] ALSA: hda: cs35l41: Move Play and Pause into separate - functions - -This allows play and pause to be called from multiple places, -which is necessary for system suspend and resume. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 131 ++++++++++++++++++++++-------------- - 1 file changed, 79 insertions(+), 52 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index d4a11f7b5dbd..f77583b46b6b 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -483,63 +483,103 @@ static void cs35l41_irq_release(struct cs35l41_hda *cs35l41) - cs35l41->irq_errors = 0; - } - --static void cs35l41_hda_playback_hook(struct device *dev, int action) -+static void cs35l41_hda_play_start(struct device *dev) - { - struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); - struct regmap *reg = cs35l41->regmap; -- int ret = 0; -+ -+ dev_dbg(dev, "Play (Start)\n"); -+ -+ if (cs35l41->playback_started) { -+ dev_dbg(dev, "Playback already started."); -+ return; -+ } -+ -+ cs35l41->playback_started = true; -+ -+ if (cs35l41->firmware_running) { -+ regmap_multi_reg_write(reg, cs35l41_hda_config_dsp, -+ ARRAY_SIZE(cs35l41_hda_config_dsp)); -+ regmap_update_bits(reg, CS35L41_PWR_CTRL2, -+ CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, -+ 1 << CS35L41_VMON_EN_SHIFT | 1 << CS35L41_IMON_EN_SHIFT); -+ cs35l41_set_cspl_mbox_cmd(cs35l41->dev, reg, CSPL_MBOX_CMD_RESUME); -+ } else { -+ regmap_multi_reg_write(reg, cs35l41_hda_config, ARRAY_SIZE(cs35l41_hda_config)); -+ } -+ regmap_update_bits(reg, CS35L41_PWR_CTRL2, CS35L41_AMP_EN_MASK, 1 << CS35L41_AMP_EN_SHIFT); -+ if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -+ regmap_write(reg, CS35L41_GPIO1_CTRL1, 0x00008001); -+ -+} -+ -+static void cs35l41_hda_play_done(struct device *dev) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ struct regmap *reg = cs35l41->regmap; -+ -+ dev_dbg(dev, "Play (Complete)\n"); -+ -+ cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL, -+ cs35l41->firmware_running); -+} -+ -+static void cs35l41_hda_pause_start(struct device *dev) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ struct regmap *reg = cs35l41->regmap; -+ -+ dev_dbg(dev, "Pause (Start)\n"); -+ -+ regmap_multi_reg_write(reg, cs35l41_hda_mute, ARRAY_SIZE(cs35l41_hda_mute)); -+ cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0, NULL, -+ cs35l41->firmware_running); -+} -+ -+static void cs35l41_hda_pause_done(struct device *dev) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ struct regmap *reg = cs35l41->regmap; -+ -+ dev_dbg(dev, "Pause (Complete)\n"); -+ -+ regmap_update_bits(reg, CS35L41_PWR_CTRL2, CS35L41_AMP_EN_MASK, 0 << CS35L41_AMP_EN_SHIFT); -+ if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -+ regmap_write(reg, CS35L41_GPIO1_CTRL1, 0x00000001); -+ if (cs35l41->firmware_running) { -+ cs35l41_set_cspl_mbox_cmd(dev, reg, CSPL_MBOX_CMD_PAUSE); -+ regmap_update_bits(reg, CS35L41_PWR_CTRL2, -+ CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, -+ 0 << CS35L41_VMON_EN_SHIFT | 0 << CS35L41_IMON_EN_SHIFT); -+ } -+ cs35l41_irq_release(cs35l41); -+ cs35l41->playback_started = false; -+} -+ -+static void cs35l41_hda_playback_hook(struct device *dev, int action) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); - - switch (action) { - case HDA_GEN_PCM_ACT_OPEN: - pm_runtime_get_sync(dev); - mutex_lock(&cs35l41->fw_mutex); -- cs35l41->playback_started = true; -- if (cs35l41->firmware_running) { -- regmap_multi_reg_write(reg, cs35l41_hda_config_dsp, -- ARRAY_SIZE(cs35l41_hda_config_dsp)); -- regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, -- CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, -- 1 << CS35L41_VMON_EN_SHIFT | 1 << CS35L41_IMON_EN_SHIFT); -- cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, -- CSPL_MBOX_CMD_RESUME); -- } else { -- regmap_multi_reg_write(reg, cs35l41_hda_config, -- ARRAY_SIZE(cs35l41_hda_config)); -- } -- ret = regmap_update_bits(reg, CS35L41_PWR_CTRL2, -- CS35L41_AMP_EN_MASK, 1 << CS35L41_AMP_EN_SHIFT); -- if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -- regmap_write(reg, CS35L41_GPIO1_CTRL1, 0x00008001); -+ cs35l41_hda_play_start(dev); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_PREPARE: - mutex_lock(&cs35l41->fw_mutex); -- ret = cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL, -- cs35l41->firmware_running); -+ cs35l41_hda_play_done(dev); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLEANUP: - mutex_lock(&cs35l41->fw_mutex); -- regmap_multi_reg_write(reg, cs35l41_hda_mute, ARRAY_SIZE(cs35l41_hda_mute)); -- ret = cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0, NULL, -- cs35l41->firmware_running); -+ cs35l41_hda_pause_start(dev); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLOSE: - mutex_lock(&cs35l41->fw_mutex); -- ret = regmap_update_bits(reg, CS35L41_PWR_CTRL2, -- CS35L41_AMP_EN_MASK, 0 << CS35L41_AMP_EN_SHIFT); -- if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -- regmap_write(reg, CS35L41_GPIO1_CTRL1, 0x00000001); -- if (cs35l41->firmware_running) { -- cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, -- CSPL_MBOX_CMD_PAUSE); -- regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, -- CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, -- 0 << CS35L41_VMON_EN_SHIFT | 0 << CS35L41_IMON_EN_SHIFT); -- } -- cs35l41_irq_release(cs35l41); -- cs35l41->playback_started = false; -+ cs35l41_hda_pause_done(dev); - mutex_unlock(&cs35l41->fw_mutex); - - pm_runtime_mark_last_busy(dev); -@@ -549,9 +589,6 @@ static void cs35l41_hda_playback_hook(struct device *dev, int action) - dev_warn(cs35l41->dev, "Playback action not supported: %d\n", action); - break; - } -- -- if (ret) -- dev_err(cs35l41->dev, "Regmap access fail: %d\n", ret); - } - - static int cs35l41_hda_channel_map(struct device *dev, unsigned int tx_num, unsigned int *tx_slot, -@@ -703,18 +740,8 @@ static int cs35l41_runtime_suspend(struct device *dev) - mutex_lock(&cs35l41->fw_mutex); - - if (cs35l41->playback_started) { -- regmap_multi_reg_write(cs35l41->regmap, cs35l41_hda_mute, -- ARRAY_SIZE(cs35l41_hda_mute)); -- cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, 0, -- NULL, cs35l41->firmware_running); -- regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, -- CS35L41_AMP_EN_MASK, 0 << CS35L41_AMP_EN_SHIFT); -- if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) -- regmap_write(cs35l41->regmap, CS35L41_GPIO1_CTRL1, 0x00000001); -- regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, -- CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, -- 0 << CS35L41_VMON_EN_SHIFT | 0 << CS35L41_IMON_EN_SHIFT); -- cs35l41->playback_started = false; -+ cs35l41_hda_pause_start(dev); -+ cs35l41_hda_pause_done(dev); - } - - if (cs35l41->firmware_running) { --- -2.41.0 - -From c1bf8ed3a5f3d011276d975c7b1f62039bed160e Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:12 +0100 -Subject: [PATCH 07/11] ALSA: hda: hda_component: Add pre and post playback - hooks to hda_component - -These hooks can be used to add callbacks that would be run before and after -the main playback hooks. These hooks would be called for all amps, before -moving on to the next hook, i.e. pre_playback_hook would be called for -all amps, before the playback_hook is called for all amps, then finally -the post_playback_hook is called for all amps. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/hda_component.h | 2 ++ - sound/pci/hda/patch_realtek.c | 10 +++++++++- - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/sound/pci/hda/hda_component.h b/sound/pci/hda/hda_component.h -index 534e845b9cd1..f170aec967c1 100644 ---- a/sound/pci/hda/hda_component.h -+++ b/sound/pci/hda/hda_component.h -@@ -15,5 +15,7 @@ struct hda_component { - struct device *dev; - char name[HDA_MAX_NAME_SIZE]; - struct hda_codec *codec; -+ void (*pre_playback_hook)(struct device *dev, int action); - void (*playback_hook)(struct device *dev, int action); -+ void (*post_playback_hook)(struct device *dev, int action); - }; -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 44fccfb93cff..dff92679ae72 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -6716,9 +6716,17 @@ static void comp_generic_playback_hook(struct hda_pcm_stream *hinfo, struct hda_ - int i; - - for (i = 0; i < HDA_MAX_COMPONENTS; i++) { -- if (spec->comps[i].dev) -+ if (spec->comps[i].dev && spec->comps[i].pre_playback_hook) -+ spec->comps[i].pre_playback_hook(spec->comps[i].dev, action); -+ } -+ for (i = 0; i < HDA_MAX_COMPONENTS; i++) { -+ if (spec->comps[i].dev && spec->comps[i].playback_hook) - spec->comps[i].playback_hook(spec->comps[i].dev, action); - } -+ for (i = 0; i < HDA_MAX_COMPONENTS; i++) { -+ if (spec->comps[i].dev && spec->comps[i].post_playback_hook) -+ spec->comps[i].post_playback_hook(spec->comps[i].dev, action); -+ } - } - - struct cs35l41_dev_name { --- -2.41.0 - -From 4f3b42e2f126f96b1e512871d7073fb10d9a7283 Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:13 +0100 -Subject: [PATCH 08/11] ALSA: hda: cs35l41: Use pre and post playback hooks - -Use new hooks to ensure separation between play/pause actions, -as required by external boost. - -External Boost on CS35L41 requires the amp to go through a -particular sequence of steps. One of these steps involes -the setting of a GPIO. This GPIO is connected to one or -more of the amps, and it may control the boost for all of -the amps. To ensure that the GPIO is set when it is safe -to do so, and to ensure that boost is ready for the rest of -the sequence to be able to continue, we must ensure that -the each part of the sequence is executed for each amp -before moving on to the next part of the sequence. - -Some of the Play and Pause actions have moved from Open to -Prepare. This is because Open is not guaranteed to be called -again on system resume, whereas Prepare should. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 53 ++++++++++++++++++++++++++++++------- - 1 file changed, 43 insertions(+), 10 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index f77583b46b6b..a482d4752b3f 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -556,37 +556,68 @@ static void cs35l41_hda_pause_done(struct device *dev) - cs35l41->playback_started = false; - } - -+static void cs35l41_hda_pre_playback_hook(struct device *dev, int action) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ -+ switch (action) { -+ case HDA_GEN_PCM_ACT_CLEANUP: -+ mutex_lock(&cs35l41->fw_mutex); -+ cs35l41_hda_pause_start(dev); -+ mutex_unlock(&cs35l41->fw_mutex); -+ break; -+ default: -+ break; -+ } -+} - static void cs35l41_hda_playback_hook(struct device *dev, int action) - { - struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); - - switch (action) { - case HDA_GEN_PCM_ACT_OPEN: -+ /* -+ * All amps must be resumed before we can start playing back. -+ * This ensures, for external boost, that all amps are in AMP_SAFE mode. -+ * Do this in HDA_GEN_PCM_ACT_OPEN, since this is run prior to any of the -+ * other actions. -+ */ - pm_runtime_get_sync(dev); -- mutex_lock(&cs35l41->fw_mutex); -- cs35l41_hda_play_start(dev); -- mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_PREPARE: - mutex_lock(&cs35l41->fw_mutex); -- cs35l41_hda_play_done(dev); -+ cs35l41_hda_play_start(dev); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLEANUP: - mutex_lock(&cs35l41->fw_mutex); -- cs35l41_hda_pause_start(dev); -+ cs35l41_hda_pause_done(dev); - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLOSE: -- mutex_lock(&cs35l41->fw_mutex); -- cs35l41_hda_pause_done(dev); -- mutex_unlock(&cs35l41->fw_mutex); -- -+ /* -+ * Playback must be finished for all amps before we start runtime suspend. -+ * This ensures no amps are playing back when we start putting them to sleep. -+ */ - pm_runtime_mark_last_busy(dev); - pm_runtime_put_autosuspend(dev); - break; - default: -- dev_warn(cs35l41->dev, "Playback action not supported: %d\n", action); -+ break; -+ } -+} -+ -+static void cs35l41_hda_post_playback_hook(struct device *dev, int action) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ -+ switch (action) { -+ case HDA_GEN_PCM_ACT_PREPARE: -+ mutex_lock(&cs35l41->fw_mutex); -+ cs35l41_hda_play_done(dev); -+ mutex_unlock(&cs35l41->fw_mutex); -+ break; -+ default: - break; - } - } -@@ -1037,6 +1068,8 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas - ret = cs35l41_create_controls(cs35l41); - - comps->playback_hook = cs35l41_hda_playback_hook; -+ comps->pre_playback_hook = cs35l41_hda_pre_playback_hook; -+ comps->post_playback_hook = cs35l41_hda_post_playback_hook; - - mutex_unlock(&cs35l41->fw_mutex); - --- -2.41.0 - -From 5091ba7ad9ea6a88db464b84b4993cc9e5033a84 Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:14 +0100 -Subject: [PATCH 09/11] ALSA: hda: cs35l41: Rework System Suspend to ensure - correct call separation - -In order to correctly pause audio on suspend, amps using external boost -require parts of the pause sequence to be called for all amps before moving -on to the next steps. -For example, as part of pausing the audio, the VSPK GPIO must be disabled, -but since this GPIO is controlled by one amp, but controls the boost for -all amps, it is required to separate the calls. -During playback this is achieved by using the pre and post playback hooks, -however during system suspend, this is not possible, so to separate the -calls, we use both the .prepare and .suspend calls to pause the audio. - -Currently, for this reason, we do not restart audio on system resume. -However, we can support this by relying on the playback hook to resume -playback after system suspend. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 40 ++++++++++++++++++++++++++++++++----- - 1 file changed, 35 insertions(+), 5 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index a482d4752b3f..70aa819cfbd6 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -595,6 +595,15 @@ static void cs35l41_hda_playback_hook(struct device *dev, int action) - mutex_unlock(&cs35l41->fw_mutex); - break; - case HDA_GEN_PCM_ACT_CLOSE: -+ mutex_lock(&cs35l41->fw_mutex); -+ if (!cs35l41->firmware_running && cs35l41->request_fw_load && -+ !cs35l41->fw_request_ongoing) { -+ dev_info(dev, "Requesting Firmware Load after HDA_GEN_PCM_ACT_CLOSE\n"); -+ cs35l41->fw_request_ongoing = true; -+ schedule_work(&cs35l41->fw_load_work); -+ } -+ mutex_unlock(&cs35l41->fw_mutex); -+ - /* - * Playback must be finished for all amps before we start runtime suspend. - * This ensures no amps are playing back when we start putting them to sleep. -@@ -681,6 +690,25 @@ static int cs35l41_ready_for_reset(struct cs35l41_hda *cs35l41) - return ret; - } - -+static int cs35l41_system_suspend_prep(struct device *dev) -+{ -+ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -+ -+ dev_dbg(cs35l41->dev, "System Suspend Prepare\n"); -+ -+ if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST_NO_VSPK_SWITCH) { -+ dev_err_once(cs35l41->dev, "System Suspend not supported\n"); -+ return 0; /* don't block the whole system suspend */ -+ } -+ -+ mutex_lock(&cs35l41->fw_mutex); -+ if (cs35l41->playback_started) -+ cs35l41_hda_pause_start(dev); -+ mutex_unlock(&cs35l41->fw_mutex); -+ -+ return 0; -+} -+ - static int cs35l41_system_suspend(struct device *dev) - { - struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); -@@ -693,6 +721,11 @@ static int cs35l41_system_suspend(struct device *dev) - return 0; /* don't block the whole system suspend */ - } - -+ mutex_lock(&cs35l41->fw_mutex); -+ if (cs35l41->playback_started) -+ cs35l41_hda_pause_done(dev); -+ mutex_unlock(&cs35l41->fw_mutex); -+ - ret = pm_runtime_force_suspend(dev); - if (ret) { - dev_err(dev, "System Suspend Failed, unable to runtime suspend: %d\n", ret); -@@ -738,6 +771,7 @@ static int cs35l41_system_resume(struct device *dev) - } - - mutex_lock(&cs35l41->fw_mutex); -+ - if (cs35l41->request_fw_load && !cs35l41->fw_request_ongoing) { - cs35l41->fw_request_ongoing = true; - schedule_work(&cs35l41->fw_load_work); -@@ -770,11 +804,6 @@ static int cs35l41_runtime_suspend(struct device *dev) - - mutex_lock(&cs35l41->fw_mutex); - -- if (cs35l41->playback_started) { -- cs35l41_hda_pause_start(dev); -- cs35l41_hda_pause_done(dev); -- } -- - if (cs35l41->firmware_running) { - ret = cs35l41_enter_hibernate(cs35l41->dev, cs35l41->regmap, - cs35l41->hw_cfg.bst_type); -@@ -1641,6 +1670,7 @@ EXPORT_SYMBOL_NS_GPL(cs35l41_hda_remove, SND_HDA_SCODEC_CS35L41); - const struct dev_pm_ops cs35l41_hda_pm_ops = { - RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, - cs35l41_runtime_idle) -+ .prepare = cs35l41_system_suspend_prep, - SYSTEM_SLEEP_PM_OPS(cs35l41_system_suspend, cs35l41_system_resume) - }; - EXPORT_SYMBOL_NS_GPL(cs35l41_hda_pm_ops, SND_HDA_SCODEC_CS35L41); --- -2.41.0 - -From 74c165859e33b62888b93891d82680350b9a615f Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:15 +0100 -Subject: [PATCH 10/11] ALSA: hda: cs35l41: Add device_link between HDA and - cs35l41_hda - -To ensure consistency between the HDA core and the CS35L41 HDA -driver, add a device_link between them. This ensures that the -HDA core will suspend first, and resume second, meaning the -amp driver will not miss any events from the playback hook from -the HDA core during system suspend and resume. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index 70aa819cfbd6..175378cdf9df 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -1063,6 +1063,7 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas - { - struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); - struct hda_component *comps = master_data; -+ unsigned int sleep_flags; - int ret = 0; - - if (!comps || cs35l41->index < 0 || cs35l41->index >= HDA_MAX_COMPONENTS) -@@ -1102,6 +1103,11 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas - - mutex_unlock(&cs35l41->fw_mutex); - -+ sleep_flags = lock_system_sleep(); -+ if (!device_link_add(&comps->codec->core.dev, cs35l41->dev, DL_FLAG_STATELESS)) -+ dev_warn(dev, "Unable to create device link\n"); -+ unlock_system_sleep(sleep_flags); -+ - pm_runtime_mark_last_busy(dev); - pm_runtime_put_autosuspend(dev); - -@@ -1112,9 +1118,14 @@ static void cs35l41_hda_unbind(struct device *dev, struct device *master, void * - { - struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); - struct hda_component *comps = master_data; -+ unsigned int sleep_flags; - -- if (comps[cs35l41->index].dev == dev) -+ if (comps[cs35l41->index].dev == dev) { - memset(&comps[cs35l41->index], 0, sizeof(*comps)); -+ sleep_flags = lock_system_sleep(); -+ device_link_remove(&comps->codec->core.dev, cs35l41->dev); -+ unlock_system_sleep(sleep_flags); -+ } - } - - static const struct component_ops cs35l41_hda_comp_ops = { --- -2.41.0 - -From 6f1a7b41a626a567fcfe915e9dbe3aea34b6c3ec Mon Sep 17 00:00:00 2001 -From: Stefan Binding -Date: Fri, 21 Jul 2023 16:18:16 +0100 -Subject: [PATCH 11/11] ALSA: hda: cs35l41: Ensure amp is only unmuted during - playback - -Currently we only mute after playback has finished, and unmute -prior to setting global enable. To prevent any possible pops -and clicks, mute at probe, and then only unmute after global -enable is set. - -Signed-off-by: Stefan Binding ---- - sound/pci/hda/cs35l41_hda.c | 22 ++++++++++++++++++++-- - 1 file changed, 20 insertions(+), 2 deletions(-) - -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index 175378cdf9df..98feb5ccd586 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -58,8 +58,6 @@ static const struct reg_sequence cs35l41_hda_config[] = { - { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON - { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON - { CS35L41_DSP1_RX5_SRC, 0x00000020 }, // DSP1RX5 SRC = ERRVOL -- { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB -- { CS35L41_AMP_GAIN_CTRL, 0x00000084 }, // AMP_GAIN_PCM 4.5 dB - }; - - static const struct reg_sequence cs35l41_hda_config_dsp[] = { -@@ -82,6 +80,14 @@ static const struct reg_sequence cs35l41_hda_config_dsp[] = { - { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON - { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON - { CS35L41_DSP1_RX5_SRC, 0x00000029 }, // DSP1RX5 SRC = VBSTMON -+}; -+ -+static const struct reg_sequence cs35l41_hda_unmute[] = { -+ { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB -+ { CS35L41_AMP_GAIN_CTRL, 0x00000084 }, // AMP_GAIN_PCM 4.5 dB -+}; -+ -+static const struct reg_sequence cs35l41_hda_unmute_dsp[] = { - { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB - { CS35L41_AMP_GAIN_CTRL, 0x00000233 }, // AMP_GAIN_PCM = 17.5dB AMP_GAIN_PDM = 19.5dB - }; -@@ -522,6 +528,13 @@ static void cs35l41_hda_play_done(struct device *dev) - - cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL, - cs35l41->firmware_running); -+ if (cs35l41->firmware_running) { -+ regmap_multi_reg_write(reg, cs35l41_hda_unmute_dsp, -+ ARRAY_SIZE(cs35l41_hda_unmute_dsp)); -+ } else { -+ regmap_multi_reg_write(reg, cs35l41_hda_unmute, -+ ARRAY_SIZE(cs35l41_hda_unmute)); -+ } - } - - static void cs35l41_hda_pause_start(struct device *dev) -@@ -1616,6 +1629,11 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i - if (ret) - goto err; - -+ ret = regmap_multi_reg_write(cs35l41->regmap, cs35l41_hda_mute, -+ ARRAY_SIZE(cs35l41_hda_mute)); -+ if (ret) -+ goto err; -+ - INIT_WORK(&cs35l41->fw_load_work, cs35l41_fw_load_work); - mutex_init(&cs35l41->fw_mutex); - --- -2.41.0 - diff --git a/SOURCES/filter-aarch64.sh.fedora b/SOURCES/filter-aarch64.sh.fedora index accb31c..e970310 100644 --- a/SOURCES/filter-aarch64.sh.fedora +++ b/SOURCES/filter-aarch64.sh.fedora @@ -15,4 +15,4 @@ ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i tiny vc4" -singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa dfl-emif octeontx2-cpt octeontx2-cptvf spi-altera-dfl rvu_cptpf rvu_cptvf regmap-sdw regmap-sdw-mbq hid-playstation hid-nintendo nvmem_u-boot-env intel-m10-bmc-pmci intel-m10-bmc-hwmon ptp_dfl_tod pds_vdpa" +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa dfl-emif octeontx2-cpt octeontx2-cptvf spi-altera-dfl rvu_cptpf rvu_cptvf regmap-sdw regmap-sdw-mbq hid-playstation hid-nintendo nvmem_u-boot-env intel-m10-bmc-pmci intel-m10-bmc-hwmon ptp_dfl_tod pds_vdpa usb_f_midi2 cs42l43-sdw" diff --git a/SOURCES/filter-modules.sh.fedora b/SOURCES/filter-modules.sh.fedora index 8622237..c14a790 100755 --- a/SOURCES/filter-modules.sh.fedora +++ b/SOURCES/filter-modules.sh.fedora @@ -45,7 +45,7 @@ netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dsa ieee802154 l2t drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon" -singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr parport_serial regmap-sdw regmap-sdw-mbq arizona-micsupp hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa spi-altera-dfl nct6775 hid-playstation hid-nintendo asus_wmi_sensors asus_wmi_ec_sensors mlx5-vfio-pci video int3406_thermal apple_bl ptp_dfl_tod intel-m10-bmc-hwmon intel_rapl_tpmi pds_vdpa hp-wmi-sensors" +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr parport_serial regmap-sdw regmap-sdw-mbq arizona-micsupp hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa spi-altera-dfl nct6775 hid-playstation hid-nintendo asus_wmi_sensors asus_wmi_ec_sensors mlx5-vfio-pci video int3406_thermal apple_bl ptp_dfl_tod intel-m10-bmc-hwmon intel_rapl_tpmi pds_vdpa hp-wmi-sensors pds-vfio-pci" # Grab the arch-specific filter list overrides source ./filter-$2.sh diff --git a/SOURCES/filter-ppc64le.sh.fedora b/SOURCES/filter-ppc64le.sh.fedora index 6341361..5794edd 100644 --- a/SOURCES/filter-ppc64le.sh.fedora +++ b/SOURCES/filter-ppc64le.sh.fedora @@ -11,4 +11,4 @@ driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio w1" -singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa hid-playstation hid-nintendo mlx5-vfio-pci nvmem_u-boot-env intel-m10-bmc-pmci intel-m10-bmc-hwmon ptp_dfl_tod pds_vdpa" +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa hid-playstation hid-nintendo mlx5-vfio-pci nvmem_u-boot-env intel-m10-bmc-pmci intel-m10-bmc-hwmon ptp_dfl_tod pds_vdpa pds-vfio-pci" diff --git a/SOURCES/kernel-aarch64-16k-debug-fedora.config b/SOURCES/kernel-aarch64-16k-debug-fedora.config index 9098d0e..91c9e52 100644 --- a/SOURCES/kernel-aarch64-16k-debug-fedora.config +++ b/SOURCES/kernel-aarch64-16k-debug-fedora.config @@ -145,6 +145,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1275,6 +1276,7 @@ CONFIG_COMMON_CLK_SI5341=m # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m CONFIG_COMMON_CLK_XGENE=y @@ -1297,6 +1299,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1352,6 +1355,8 @@ CONFIG_CPU_THERMAL=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1781,6 +1786,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y CONFIG_DMA_OF=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set @@ -1809,6 +1815,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1943,6 +1950,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set CONFIG_DRM_LONTIUM_LT9611=m CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM_MALI_DISPLAY=m # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -2047,11 +2055,13 @@ CONFIG_DRM_PANEL_SITRONIX_ST7789V=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -2099,6 +2109,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_V3D=m @@ -2307,6 +2318,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2396,6 +2408,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2637,6 +2650,7 @@ CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DAVINCI=m CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2776,6 +2790,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2995,6 +3010,7 @@ CONFIG_I2C_ALGOPCF=m CONFIG_I2C_AMD_MP2=m CONFIG_I2C_APPLE=m CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_ATR=m CONFIG_I2C_BCM2835=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BRCMSTB=y @@ -3438,6 +3454,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y CONFIG_IP5XXX_POWER=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3507,6 +3524,7 @@ CONFIG_IP_PIMSM_V2=y # CONFIG_IPQ_APSS_6018 is not set # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_GCC_4019 is not set +CONFIG_IPQ_GCC_5018=m # CONFIG_IPQ_GCC_5332 is not set # CONFIG_IPQ_GCC_6018 is not set # CONFIG_IPQ_GCC_806X is not set @@ -3534,6 +3552,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3611,6 +3630,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3832,11 +3852,13 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KUSER_HELPERS=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3890,6 +3912,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3917,6 +3940,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_PWM=m CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -4069,9 +4093,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -4116,11 +4142,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -4244,6 +4272,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -4406,6 +4436,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4799,6 +4830,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -5314,6 +5346,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -5366,6 +5399,7 @@ CONFIG_NVMEM_LAYOUT_SL28_VPD=m CONFIG_NVMEM_MESON_EFUSE=m CONFIG_NVMEM_MESON_MX_EFUSE=m CONFIG_NVMEM_QCOM_QFPROM=m +CONFIG_NVMEM_QCOM_SEC_QFPROM=m CONFIG_NVMEM_REBOOT_MODE=m CONFIG_NVMEM_RMEM=m CONFIG_NVMEM_ROCKCHIP_EFUSE=m @@ -5445,6 +5479,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5535,6 +5570,7 @@ CONFIG_PCC=y CONFIG_PCI_AARDVARK=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -5617,6 +5653,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set @@ -5675,12 +5712,14 @@ CONFIG_PHY_QCOM_EUSB2_REPEATER=m # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set CONFIG_PHY_QCOM_PCIE2=m CONFIG_PHY_QCOM_QMP_COMBO=m CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QMP_PCIE_8996=m CONFIG_PHY_QCOM_QMP_PCIE=m CONFIG_PHY_QCOM_QMP_UFS=m +CONFIG_PHY_QCOM_QMP_USB_LEGACY=m CONFIG_PHY_QCOM_QMP_USB=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_SGMII_ETH=m @@ -5702,6 +5741,8 @@ CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m CONFIG_PHY_ROCKCHIP_TYPEC=m CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_SAMSUNG_USB2 is not set CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN50I_USB3=m @@ -5719,6 +5760,7 @@ CONFIG_PID_NS=y CONFIG_PINCONF=y CONFIG_PINCTRL_ALDERLAKE=m CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_AMLOGIC_C3=y CONFIG_PINCTRL_APPLE_GPIO=m CONFIG_PINCTRL_AS3722=y CONFIG_PINCTRL_AXP209=m @@ -5727,6 +5769,7 @@ CONFIG_PINCTRL_AXP209=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -5804,6 +5847,7 @@ CONFIG_PINCTRL_SDM845=m # CONFIG_PINCTRL_SDX75 is not set CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM6115 is not set +# CONFIG_PINCTRL_SM6115_LPASS_LPI is not set # CONFIG_PINCTRL_SM6125 is not set # CONFIG_PINCTRL_SM6350 is not set # CONFIG_PINCTRL_SM6375 is not set @@ -5812,6 +5856,7 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM8250 is not set CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m CONFIG_PINCTRL_SM8450_LPASS_LPI=m CONFIG_PINCTRL_SM8450=m # CONFIG_PINCTRL_SM8550 is not set @@ -5975,6 +6020,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5996,6 +6042,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_QORIQ=m @@ -6167,6 +6214,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -6228,6 +6276,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP_MMIO=y @@ -6239,6 +6288,7 @@ CONFIG_REGULATOR_ACT8865=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_ARM_SCMI=m CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_BD718XX=m CONFIG_REGULATOR_BD9571MWV=m @@ -6266,12 +6316,14 @@ CONFIG_REGULATOR_HI655X=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77650=m CONFIG_REGULATOR_MAX77686=m CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -6293,6 +6345,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_LABIBB=m +CONFIG_REGULATOR_QCOM_REFGEN=m CONFIG_REGULATOR_QCOM_RPMH=y # CONFIG_REGULATOR_QCOM_RPM is not set CONFIG_REGULATOR_QCOM_SMD_RPM=m @@ -6313,6 +6366,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -6372,8 +6426,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6856,6 +6909,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6933,6 +6987,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -7019,6 +7074,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -7390,6 +7446,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m CONFIG_SND_HDA_TEGRA=m CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -7512,7 +7571,9 @@ CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_APPLE_MCA=m CONFIG_SND_SOC_APQ8016_SBC=m CONFIG_SND_SOC_ARNDALE=m +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -7538,6 +7599,8 @@ CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -7729,6 +7792,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m CONFIG_SND_SOC_ROCKCHIP_PDM=m CONFIG_SND_SOC_ROCKCHIP_RT5645=m CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -7875,6 +7939,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X_I2C=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TLV320AIC3X_SPI=m +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m @@ -8016,6 +8081,7 @@ CONFIG_SPI_BITBANG=m CONFIG_SPI_CADENCE=m CONFIG_SPI_CADENCE_QUADSPI=m CONFIG_SPI_CADENCE_XSPI=m +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set CONFIG_SPI_DESIGNWARE=m CONFIG_SPI_DLN2=m @@ -8159,6 +8225,7 @@ CONFIG_ST_UVIS25=m CONFIG_ST_UVIS25_SPI=m # CONFIG_SUN20I_D1_CCU is not set # CONFIG_SUN20I_D1_R_CCU is not set +CONFIG_SUN20I_GPADC=m # CONFIG_SUN20I_PPU is not set # CONFIG_SUN4I_EMAC is not set CONFIG_SUN50I_A100_CCU=y @@ -8213,6 +8280,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWP_EMULATION=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -8348,6 +8416,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -8431,6 +8500,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_K3_AM65_CPSW_NUSS=m CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y CONFIG_TI_K3_AM65_CPTS=m @@ -8470,6 +8541,7 @@ CONFIG_TI_SCI_PM_DOMAINS=y CONFIG_TI_SCI_PROTOCOL=y # CONFIG_TI_ST is not set CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set CONFIG_TI_TSC2046=m @@ -8482,6 +8554,7 @@ CONFIG_TMP006=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TORTURE_TEST=m @@ -8527,6 +8600,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -8753,6 +8827,7 @@ CONFIG_USB_CONFIGFS_EEM=y # CONFIG_USB_CONFIGFS_F_FS is not set CONFIG_USB_CONFIGFS_F_HID=y # CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_MIDI is not set # CONFIG_USB_CONFIGFS_F_PRINTER is not set CONFIG_USB_CONFIGFS_F_TCM=y @@ -9147,7 +9222,9 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AMBA=m CONFIG_VFIO_CDX=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set CONFIG_VFIO_FSL_MC=m +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -9222,9 +9299,13 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW100=m CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -9598,6 +9679,7 @@ CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set # CONFIG_XEN is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -9615,6 +9697,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -9714,7 +9797,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-16k-fedora.config b/SOURCES/kernel-aarch64-16k-fedora.config index 8b6302e..7fd991c 100644 --- a/SOURCES/kernel-aarch64-16k-fedora.config +++ b/SOURCES/kernel-aarch64-16k-fedora.config @@ -145,6 +145,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1275,6 +1276,7 @@ CONFIG_COMMON_CLK_SI5341=m # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m CONFIG_COMMON_CLK_XGENE=y @@ -1297,6 +1299,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1352,6 +1355,8 @@ CONFIG_CPU_THERMAL=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1772,6 +1777,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y CONFIG_DMA_OF=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set @@ -1800,6 +1806,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1934,6 +1941,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set CONFIG_DRM_LONTIUM_LT9611=m CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM_MALI_DISPLAY=m # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -2038,11 +2046,13 @@ CONFIG_DRM_PANEL_SITRONIX_ST7789V=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -2090,6 +2100,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_V3D=m @@ -2298,6 +2309,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2379,6 +2391,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2620,6 +2633,7 @@ CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DAVINCI=m CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2759,6 +2773,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2978,6 +2993,7 @@ CONFIG_I2C_ALGOPCF=m CONFIG_I2C_AMD_MP2=m CONFIG_I2C_APPLE=m CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_ATR=m CONFIG_I2C_BCM2835=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BRCMSTB=y @@ -3421,6 +3437,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y CONFIG_IP5XXX_POWER=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3490,6 +3507,7 @@ CONFIG_IP_PIMSM_V2=y # CONFIG_IPQ_APSS_6018 is not set # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_GCC_4019 is not set +CONFIG_IPQ_GCC_5018=m # CONFIG_IPQ_GCC_5332 is not set # CONFIG_IPQ_GCC_6018 is not set # CONFIG_IPQ_GCC_806X is not set @@ -3517,6 +3535,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3594,6 +3613,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3808,11 +3828,13 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KUSER_HELPERS=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3866,6 +3888,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3893,6 +3916,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_PWM=m CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -4045,9 +4069,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -4091,11 +4117,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -4219,6 +4247,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -4381,6 +4411,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4773,6 +4804,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -5288,6 +5320,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -5340,6 +5373,7 @@ CONFIG_NVMEM_LAYOUT_SL28_VPD=m CONFIG_NVMEM_MESON_EFUSE=m CONFIG_NVMEM_MESON_MX_EFUSE=m CONFIG_NVMEM_QCOM_QFPROM=m +CONFIG_NVMEM_QCOM_SEC_QFPROM=m CONFIG_NVMEM_REBOOT_MODE=m CONFIG_NVMEM_RMEM=m CONFIG_NVMEM_ROCKCHIP_EFUSE=m @@ -5419,6 +5453,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5508,6 +5543,7 @@ CONFIG_PCC=y CONFIG_PCI_AARDVARK=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -5590,6 +5626,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set @@ -5648,12 +5685,14 @@ CONFIG_PHY_QCOM_EUSB2_REPEATER=m # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set CONFIG_PHY_QCOM_PCIE2=m CONFIG_PHY_QCOM_QMP_COMBO=m CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QMP_PCIE_8996=m CONFIG_PHY_QCOM_QMP_PCIE=m CONFIG_PHY_QCOM_QMP_UFS=m +CONFIG_PHY_QCOM_QMP_USB_LEGACY=m CONFIG_PHY_QCOM_QMP_USB=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_SGMII_ETH=m @@ -5675,6 +5714,8 @@ CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m CONFIG_PHY_ROCKCHIP_TYPEC=m CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_SAMSUNG_USB2 is not set CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN50I_USB3=m @@ -5692,6 +5733,7 @@ CONFIG_PID_NS=y CONFIG_PINCONF=y CONFIG_PINCTRL_ALDERLAKE=m CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_AMLOGIC_C3=y CONFIG_PINCTRL_APPLE_GPIO=m CONFIG_PINCTRL_AS3722=y CONFIG_PINCTRL_AXP209=m @@ -5700,6 +5742,7 @@ CONFIG_PINCTRL_AXP209=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -5777,6 +5820,7 @@ CONFIG_PINCTRL_SDM845=m # CONFIG_PINCTRL_SDX75 is not set CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM6115 is not set +# CONFIG_PINCTRL_SM6115_LPASS_LPI is not set # CONFIG_PINCTRL_SM6125 is not set # CONFIG_PINCTRL_SM6350 is not set # CONFIG_PINCTRL_SM6375 is not set @@ -5785,6 +5829,7 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM8250 is not set CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m CONFIG_PINCTRL_SM8450_LPASS_LPI=m CONFIG_PINCTRL_SM8450=m # CONFIG_PINCTRL_SM8550 is not set @@ -5948,6 +5993,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5969,6 +6015,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_QORIQ=m @@ -6140,6 +6187,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -6201,6 +6249,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP_MMIO=y @@ -6212,6 +6261,7 @@ CONFIG_REGULATOR_ACT8865=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_ARM_SCMI=m CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_BD718XX=m CONFIG_REGULATOR_BD9571MWV=m @@ -6239,12 +6289,14 @@ CONFIG_REGULATOR_HI655X=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77650=m CONFIG_REGULATOR_MAX77686=m CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -6266,6 +6318,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_LABIBB=m +CONFIG_REGULATOR_QCOM_REFGEN=m CONFIG_REGULATOR_QCOM_RPMH=y # CONFIG_REGULATOR_QCOM_RPM is not set CONFIG_REGULATOR_QCOM_SMD_RPM=m @@ -6286,6 +6339,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -6345,8 +6399,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6829,6 +6882,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6906,6 +6960,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -6992,6 +7047,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -7363,6 +7419,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m CONFIG_SND_HDA_TEGRA=m CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -7484,7 +7543,9 @@ CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_APPLE_MCA=m CONFIG_SND_SOC_APQ8016_SBC=m CONFIG_SND_SOC_ARNDALE=m +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -7510,6 +7571,8 @@ CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -7701,6 +7764,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m CONFIG_SND_SOC_ROCKCHIP_PDM=m CONFIG_SND_SOC_ROCKCHIP_RT5645=m CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -7846,6 +7910,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X_I2C=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TLV320AIC3X_SPI=m +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m @@ -7987,6 +8052,7 @@ CONFIG_SPI_BITBANG=m CONFIG_SPI_CADENCE=m CONFIG_SPI_CADENCE_QUADSPI=m CONFIG_SPI_CADENCE_XSPI=m +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set CONFIG_SPI_DESIGNWARE=m CONFIG_SPI_DLN2=m @@ -8130,6 +8196,7 @@ CONFIG_ST_UVIS25=m CONFIG_ST_UVIS25_SPI=m # CONFIG_SUN20I_D1_CCU is not set # CONFIG_SUN20I_D1_R_CCU is not set +CONFIG_SUN20I_GPADC=m # CONFIG_SUN20I_PPU is not set # CONFIG_SUN4I_EMAC is not set CONFIG_SUN50I_A100_CCU=y @@ -8184,6 +8251,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWP_EMULATION=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -8319,6 +8387,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -8402,6 +8471,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_K3_AM65_CPSW_NUSS=m CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y CONFIG_TI_K3_AM65_CPTS=m @@ -8441,6 +8512,7 @@ CONFIG_TI_SCI_PM_DOMAINS=y CONFIG_TI_SCI_PROTOCOL=y # CONFIG_TI_ST is not set CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set CONFIG_TI_TSC2046=m @@ -8453,6 +8525,7 @@ CONFIG_TMP006=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TORTURE_TEST=m @@ -8498,6 +8571,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -8724,6 +8798,7 @@ CONFIG_USB_CONFIGFS_EEM=y # CONFIG_USB_CONFIGFS_F_FS is not set CONFIG_USB_CONFIGFS_F_HID=y # CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_MIDI is not set # CONFIG_USB_CONFIGFS_F_PRINTER is not set CONFIG_USB_CONFIGFS_F_TCM=y @@ -9118,7 +9193,9 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AMBA=m CONFIG_VFIO_CDX=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set CONFIG_VFIO_FSL_MC=m +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -9193,9 +9270,13 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW100=m CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -9569,6 +9650,7 @@ CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set # CONFIG_XEN is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -9586,6 +9668,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -9685,7 +9768,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-64k-debug-rhel.config b/SOURCES/kernel-aarch64-64k-debug-rhel.config index c521c35..8d8728a 100644 --- a/SOURCES/kernel-aarch64-64k-debug-rhel.config +++ b/SOURCES/kernel-aarch64-64k-debug-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -405,6 +404,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -923,6 +923,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -960,6 +961,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -981,6 +983,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -1001,6 +1004,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1082,8 +1086,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1101,6 +1105,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1139,6 +1144,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1158,6 +1164,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1209,6 +1216,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1420,6 +1428,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1442,6 +1451,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1473,6 +1483,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1564,6 +1575,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1641,6 +1653,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1782,6 +1795,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1901,6 +1915,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1989,7 +2004,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -1998,10 +2021,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2097,6 +2125,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2125,6 +2155,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2226,6 +2257,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2382,15 +2414,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2420,6 +2454,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2466,6 +2501,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2669,7 +2705,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2763,6 +2799,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2797,7 +2834,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2883,6 +2920,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2959,6 +2997,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3014,6 +3053,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3107,13 +3148,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3186,6 +3229,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3327,9 +3371,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3371,9 +3417,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3430,6 +3478,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3464,6 +3513,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3615,6 +3666,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3857,6 +3909,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3916,6 +3971,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4344,6 +4400,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4391,9 +4448,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4429,6 +4488,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4443,6 +4507,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4523,6 +4588,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4570,6 +4636,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4602,6 +4670,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4623,9 +4692,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4639,6 +4709,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4649,6 +4720,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4829,6 +4902,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4848,6 +4922,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4865,8 +4940,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -4962,6 +5040,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5006,6 +5085,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -5013,6 +5093,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5036,6 +5117,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5054,6 +5136,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5066,6 +5149,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5100,6 +5184,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5109,7 +5194,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5203,6 +5287,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5257,6 +5342,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5480,6 +5566,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5489,6 +5576,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5566,6 +5654,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5747,6 +5836,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6065,7 +6156,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6082,7 +6175,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6147,6 +6239,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6157,6 +6250,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6276,6 +6370,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6335,6 +6430,7 @@ CONFIG_SND_SOC_SOF_HDA_PROBES=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6405,6 +6501,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6496,7 +6593,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6536,6 +6633,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set CONFIG_SPI_DEBUG=y # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6554,6 +6652,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6655,6 +6754,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6773,6 +6873,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6849,6 +6950,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6868,7 +6972,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6881,6 +6991,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6925,6 +7036,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7089,8 +7201,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7374,6 +7488,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7438,8 +7553,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7737,6 +7856,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7822,7 +7942,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-64k-rhel.config b/SOURCES/kernel-aarch64-64k-rhel.config index 266a0b6..04080a5 100644 --- a/SOURCES/kernel-aarch64-64k-rhel.config +++ b/SOURCES/kernel-aarch64-64k-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -405,6 +404,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -923,6 +923,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -960,6 +961,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -981,6 +983,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -1001,6 +1004,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1082,8 +1086,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1101,6 +1105,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1139,6 +1144,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1158,6 +1164,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1209,6 +1216,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1412,6 +1420,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1434,6 +1443,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1465,6 +1475,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1556,6 +1567,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1633,6 +1645,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1774,6 +1787,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1885,6 +1899,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1973,7 +1988,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -1982,10 +2005,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2081,6 +2109,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2109,6 +2139,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2210,6 +2241,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2366,15 +2398,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2404,6 +2438,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2450,6 +2485,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2653,7 +2689,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2747,6 +2783,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2781,7 +2818,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2867,6 +2904,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2943,6 +2981,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2998,6 +3037,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3086,13 +3127,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3165,6 +3208,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3306,9 +3350,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3350,9 +3396,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3409,6 +3457,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3443,6 +3492,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3594,6 +3645,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3836,6 +3888,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3895,6 +3950,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4323,6 +4379,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4370,9 +4427,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4408,6 +4467,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4422,6 +4486,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4500,6 +4565,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4547,6 +4613,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4579,6 +4647,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4600,9 +4669,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4616,6 +4686,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4626,6 +4697,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4806,6 +4879,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4825,6 +4899,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4842,8 +4917,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -4939,6 +5017,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4983,6 +5062,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -4990,6 +5070,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5013,6 +5094,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5031,6 +5113,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5043,6 +5126,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5077,6 +5161,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5086,7 +5171,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5180,6 +5264,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5234,6 +5319,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5457,6 +5543,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5466,6 +5553,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5543,6 +5631,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5724,6 +5813,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6041,7 +6132,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6058,7 +6151,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6123,6 +6215,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6133,6 +6226,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6252,6 +6346,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6310,6 +6405,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6380,6 +6476,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6471,7 +6568,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6511,6 +6608,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6529,6 +6627,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6630,6 +6729,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6748,6 +6848,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6824,6 +6925,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6843,7 +6947,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6856,6 +6966,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6900,6 +7011,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7064,8 +7176,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7349,6 +7463,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7413,8 +7528,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7712,6 +7831,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7797,7 +7917,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-debug-fedora.config b/SOURCES/kernel-aarch64-debug-fedora.config index 220750d..1df297b 100644 --- a/SOURCES/kernel-aarch64-debug-fedora.config +++ b/SOURCES/kernel-aarch64-debug-fedora.config @@ -145,6 +145,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1275,6 +1276,7 @@ CONFIG_COMMON_CLK_SI5341=m # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m CONFIG_COMMON_CLK_XGENE=y @@ -1297,6 +1299,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1352,6 +1355,8 @@ CONFIG_CPU_THERMAL=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1781,6 +1786,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y CONFIG_DMA_OF=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set @@ -1809,6 +1815,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1943,6 +1950,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set CONFIG_DRM_LONTIUM_LT9611=m CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM_MALI_DISPLAY=m # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -2047,11 +2055,13 @@ CONFIG_DRM_PANEL_SITRONIX_ST7789V=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -2099,6 +2109,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_V3D=m @@ -2307,6 +2318,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2396,6 +2408,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2637,6 +2650,7 @@ CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DAVINCI=m CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2776,6 +2790,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2995,6 +3010,7 @@ CONFIG_I2C_ALGOPCF=m CONFIG_I2C_AMD_MP2=m CONFIG_I2C_APPLE=m CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_ATR=m CONFIG_I2C_BCM2835=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BRCMSTB=y @@ -3438,6 +3454,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y CONFIG_IP5XXX_POWER=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3507,6 +3524,7 @@ CONFIG_IP_PIMSM_V2=y # CONFIG_IPQ_APSS_6018 is not set # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_GCC_4019 is not set +CONFIG_IPQ_GCC_5018=m # CONFIG_IPQ_GCC_5332 is not set # CONFIG_IPQ_GCC_6018 is not set # CONFIG_IPQ_GCC_806X is not set @@ -3534,6 +3552,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3611,6 +3630,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3832,11 +3852,13 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KUSER_HELPERS=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3890,6 +3912,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3917,6 +3940,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_PWM=m CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -4069,9 +4093,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -4116,11 +4142,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -4244,6 +4272,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -4406,6 +4436,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4799,6 +4830,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -5314,6 +5346,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -5366,6 +5399,7 @@ CONFIG_NVMEM_LAYOUT_SL28_VPD=m CONFIG_NVMEM_MESON_EFUSE=m CONFIG_NVMEM_MESON_MX_EFUSE=m CONFIG_NVMEM_QCOM_QFPROM=m +CONFIG_NVMEM_QCOM_SEC_QFPROM=m CONFIG_NVMEM_REBOOT_MODE=m CONFIG_NVMEM_RMEM=m CONFIG_NVMEM_ROCKCHIP_EFUSE=m @@ -5445,6 +5479,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5535,6 +5570,7 @@ CONFIG_PCC=y CONFIG_PCI_AARDVARK=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -5617,6 +5653,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set @@ -5675,12 +5712,14 @@ CONFIG_PHY_QCOM_EUSB2_REPEATER=m # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set CONFIG_PHY_QCOM_PCIE2=m CONFIG_PHY_QCOM_QMP_COMBO=m CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QMP_PCIE_8996=m CONFIG_PHY_QCOM_QMP_PCIE=m CONFIG_PHY_QCOM_QMP_UFS=m +CONFIG_PHY_QCOM_QMP_USB_LEGACY=m CONFIG_PHY_QCOM_QMP_USB=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_SGMII_ETH=m @@ -5702,6 +5741,8 @@ CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m CONFIG_PHY_ROCKCHIP_TYPEC=m CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_SAMSUNG_USB2 is not set CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN50I_USB3=m @@ -5719,6 +5760,7 @@ CONFIG_PID_NS=y CONFIG_PINCONF=y CONFIG_PINCTRL_ALDERLAKE=m CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_AMLOGIC_C3=y CONFIG_PINCTRL_APPLE_GPIO=m CONFIG_PINCTRL_AS3722=y CONFIG_PINCTRL_AXP209=m @@ -5727,6 +5769,7 @@ CONFIG_PINCTRL_AXP209=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -5804,6 +5847,7 @@ CONFIG_PINCTRL_SDM845=m # CONFIG_PINCTRL_SDX75 is not set CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM6115 is not set +# CONFIG_PINCTRL_SM6115_LPASS_LPI is not set # CONFIG_PINCTRL_SM6125 is not set # CONFIG_PINCTRL_SM6350 is not set # CONFIG_PINCTRL_SM6375 is not set @@ -5812,6 +5856,7 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM8250 is not set CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m CONFIG_PINCTRL_SM8450_LPASS_LPI=m CONFIG_PINCTRL_SM8450=m # CONFIG_PINCTRL_SM8550 is not set @@ -5975,6 +6020,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5996,6 +6042,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_QORIQ=m @@ -6167,6 +6214,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -6228,6 +6276,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP_MMIO=y @@ -6239,6 +6288,7 @@ CONFIG_REGULATOR_ACT8865=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_ARM_SCMI=m CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_BD718XX=m CONFIG_REGULATOR_BD9571MWV=m @@ -6266,12 +6316,14 @@ CONFIG_REGULATOR_HI655X=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77650=m CONFIG_REGULATOR_MAX77686=m CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -6293,6 +6345,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_LABIBB=m +CONFIG_REGULATOR_QCOM_REFGEN=m CONFIG_REGULATOR_QCOM_RPMH=y # CONFIG_REGULATOR_QCOM_RPM is not set CONFIG_REGULATOR_QCOM_SMD_RPM=m @@ -6313,6 +6366,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -6372,8 +6426,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6856,6 +6909,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6933,6 +6987,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -7019,6 +7074,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -7390,6 +7446,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m CONFIG_SND_HDA_TEGRA=m CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -7512,7 +7571,9 @@ CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_APPLE_MCA=m CONFIG_SND_SOC_APQ8016_SBC=m CONFIG_SND_SOC_ARNDALE=m +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -7538,6 +7599,8 @@ CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -7729,6 +7792,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m CONFIG_SND_SOC_ROCKCHIP_PDM=m CONFIG_SND_SOC_ROCKCHIP_RT5645=m CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -7875,6 +7939,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X_I2C=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TLV320AIC3X_SPI=m +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m @@ -8016,6 +8081,7 @@ CONFIG_SPI_BITBANG=m CONFIG_SPI_CADENCE=m CONFIG_SPI_CADENCE_QUADSPI=m CONFIG_SPI_CADENCE_XSPI=m +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set CONFIG_SPI_DESIGNWARE=m CONFIG_SPI_DLN2=m @@ -8159,6 +8225,7 @@ CONFIG_ST_UVIS25=m CONFIG_ST_UVIS25_SPI=m # CONFIG_SUN20I_D1_CCU is not set # CONFIG_SUN20I_D1_R_CCU is not set +CONFIG_SUN20I_GPADC=m # CONFIG_SUN20I_PPU is not set # CONFIG_SUN4I_EMAC is not set CONFIG_SUN50I_A100_CCU=y @@ -8213,6 +8280,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWP_EMULATION=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -8348,6 +8416,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -8431,6 +8500,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_K3_AM65_CPSW_NUSS=m CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y CONFIG_TI_K3_AM65_CPTS=m @@ -8470,6 +8541,7 @@ CONFIG_TI_SCI_PM_DOMAINS=y CONFIG_TI_SCI_PROTOCOL=y # CONFIG_TI_ST is not set CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set CONFIG_TI_TSC2046=m @@ -8482,6 +8554,7 @@ CONFIG_TMP006=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TORTURE_TEST=m @@ -8527,6 +8600,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -8753,6 +8827,7 @@ CONFIG_USB_CONFIGFS_EEM=y # CONFIG_USB_CONFIGFS_F_FS is not set CONFIG_USB_CONFIGFS_F_HID=y # CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_MIDI is not set # CONFIG_USB_CONFIGFS_F_PRINTER is not set CONFIG_USB_CONFIGFS_F_TCM=y @@ -9147,7 +9222,9 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AMBA=m CONFIG_VFIO_CDX=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set CONFIG_VFIO_FSL_MC=m +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -9222,9 +9299,13 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW100=m CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -9598,6 +9679,7 @@ CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set # CONFIG_XEN is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -9615,6 +9697,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -9714,7 +9797,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-debug-rhel.config b/SOURCES/kernel-aarch64-debug-rhel.config index 7b1bca1..cf09aa9 100644 --- a/SOURCES/kernel-aarch64-debug-rhel.config +++ b/SOURCES/kernel-aarch64-debug-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -402,6 +401,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -920,6 +920,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -957,6 +958,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -978,6 +980,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -998,6 +1001,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1079,8 +1083,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1098,6 +1102,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1136,6 +1141,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1155,6 +1161,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1206,6 +1213,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1417,6 +1425,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1439,6 +1448,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1470,6 +1480,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1561,6 +1572,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1638,6 +1650,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1779,6 +1792,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1898,6 +1912,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1985,7 +2000,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -1994,10 +2017,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2093,6 +2121,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2121,6 +2151,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2222,6 +2253,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2378,15 +2410,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2416,6 +2450,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2462,6 +2497,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2665,7 +2701,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2759,6 +2795,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2793,7 +2830,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2879,6 +2916,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2955,6 +2993,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3010,6 +3049,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3103,13 +3144,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3182,6 +3225,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3323,9 +3367,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3367,9 +3413,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3426,6 +3474,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3460,6 +3509,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3611,6 +3662,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3853,6 +3905,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3912,6 +3967,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4340,6 +4396,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4387,9 +4444,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4425,6 +4484,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4439,6 +4503,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4519,6 +4584,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4566,6 +4632,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4598,6 +4666,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4619,9 +4688,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4635,6 +4705,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4645,6 +4716,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4825,6 +4898,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4844,6 +4918,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4861,8 +4936,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -4958,6 +5036,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5002,6 +5081,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -5009,6 +5089,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5032,6 +5113,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5050,6 +5132,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5062,6 +5145,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5096,6 +5180,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5105,7 +5190,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5199,6 +5283,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5253,6 +5338,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5476,6 +5562,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5485,6 +5572,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5562,6 +5650,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5743,6 +5832,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6061,7 +6152,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6078,7 +6171,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6143,6 +6235,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6153,6 +6246,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6272,6 +6366,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6331,6 +6426,7 @@ CONFIG_SND_SOC_SOF_HDA_PROBES=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6401,6 +6497,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6492,7 +6589,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6532,6 +6629,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set CONFIG_SPI_DEBUG=y # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6550,6 +6648,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6651,6 +6750,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6769,6 +6869,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6845,6 +6946,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6864,7 +6968,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6877,6 +6987,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6921,6 +7032,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7085,8 +7197,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7370,6 +7484,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7434,8 +7549,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7733,6 +7852,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7818,7 +7938,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-fedora.config b/SOURCES/kernel-aarch64-fedora.config index 0723dd1..ca1c749 100644 --- a/SOURCES/kernel-aarch64-fedora.config +++ b/SOURCES/kernel-aarch64-fedora.config @@ -145,6 +145,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1275,6 +1276,7 @@ CONFIG_COMMON_CLK_SI5341=m # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m CONFIG_COMMON_CLK_XGENE=y @@ -1297,6 +1299,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1352,6 +1355,8 @@ CONFIG_CPU_THERMAL=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1772,6 +1777,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y CONFIG_DMA_OF=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set @@ -1800,6 +1806,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1934,6 +1941,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set CONFIG_DRM_LONTIUM_LT9611=m CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM_MALI_DISPLAY=m # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -2038,11 +2046,13 @@ CONFIG_DRM_PANEL_SITRONIX_ST7789V=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -2090,6 +2100,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_V3D=m @@ -2298,6 +2309,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2379,6 +2391,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2620,6 +2633,7 @@ CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DAVINCI=m CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2759,6 +2773,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2978,6 +2993,7 @@ CONFIG_I2C_ALGOPCF=m CONFIG_I2C_AMD_MP2=m CONFIG_I2C_APPLE=m CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_ATR=m CONFIG_I2C_BCM2835=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BRCMSTB=y @@ -3421,6 +3437,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y CONFIG_IP5XXX_POWER=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3490,6 +3507,7 @@ CONFIG_IP_PIMSM_V2=y # CONFIG_IPQ_APSS_6018 is not set # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_GCC_4019 is not set +CONFIG_IPQ_GCC_5018=m # CONFIG_IPQ_GCC_5332 is not set # CONFIG_IPQ_GCC_6018 is not set # CONFIG_IPQ_GCC_806X is not set @@ -3517,6 +3535,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3594,6 +3613,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3808,11 +3828,13 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KUSER_HELPERS=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3866,6 +3888,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3893,6 +3916,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_PWM=m CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -4045,9 +4069,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -4091,11 +4117,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -4219,6 +4247,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -4381,6 +4411,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4773,6 +4804,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -5288,6 +5320,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -5340,6 +5373,7 @@ CONFIG_NVMEM_LAYOUT_SL28_VPD=m CONFIG_NVMEM_MESON_EFUSE=m CONFIG_NVMEM_MESON_MX_EFUSE=m CONFIG_NVMEM_QCOM_QFPROM=m +CONFIG_NVMEM_QCOM_SEC_QFPROM=m CONFIG_NVMEM_REBOOT_MODE=m CONFIG_NVMEM_RMEM=m CONFIG_NVMEM_ROCKCHIP_EFUSE=m @@ -5419,6 +5453,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5508,6 +5543,7 @@ CONFIG_PCC=y CONFIG_PCI_AARDVARK=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -5590,6 +5626,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set @@ -5648,12 +5685,14 @@ CONFIG_PHY_QCOM_EUSB2_REPEATER=m # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set CONFIG_PHY_QCOM_PCIE2=m CONFIG_PHY_QCOM_QMP_COMBO=m CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QMP_PCIE_8996=m CONFIG_PHY_QCOM_QMP_PCIE=m CONFIG_PHY_QCOM_QMP_UFS=m +CONFIG_PHY_QCOM_QMP_USB_LEGACY=m CONFIG_PHY_QCOM_QMP_USB=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_SGMII_ETH=m @@ -5675,6 +5714,8 @@ CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m CONFIG_PHY_ROCKCHIP_TYPEC=m CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_SAMSUNG_USB2 is not set CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN50I_USB3=m @@ -5692,6 +5733,7 @@ CONFIG_PID_NS=y CONFIG_PINCONF=y CONFIG_PINCTRL_ALDERLAKE=m CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_AMLOGIC_C3=y CONFIG_PINCTRL_APPLE_GPIO=m CONFIG_PINCTRL_AS3722=y CONFIG_PINCTRL_AXP209=m @@ -5700,6 +5742,7 @@ CONFIG_PINCTRL_AXP209=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -5777,6 +5820,7 @@ CONFIG_PINCTRL_SDM845=m # CONFIG_PINCTRL_SDX75 is not set CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM6115 is not set +# CONFIG_PINCTRL_SM6115_LPASS_LPI is not set # CONFIG_PINCTRL_SM6125 is not set # CONFIG_PINCTRL_SM6350 is not set # CONFIG_PINCTRL_SM6375 is not set @@ -5785,6 +5829,7 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SM8250 is not set CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m CONFIG_PINCTRL_SM8450_LPASS_LPI=m CONFIG_PINCTRL_SM8450=m # CONFIG_PINCTRL_SM8550 is not set @@ -5948,6 +5993,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5969,6 +6015,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_QORIQ=m @@ -6140,6 +6187,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -6201,6 +6249,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP_MMIO=y @@ -6212,6 +6261,7 @@ CONFIG_REGULATOR_ACT8865=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_ARM_SCMI=m CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_BD718XX=m CONFIG_REGULATOR_BD9571MWV=m @@ -6239,12 +6289,14 @@ CONFIG_REGULATOR_HI655X=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77650=m CONFIG_REGULATOR_MAX77686=m CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -6266,6 +6318,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_LABIBB=m +CONFIG_REGULATOR_QCOM_REFGEN=m CONFIG_REGULATOR_QCOM_RPMH=y # CONFIG_REGULATOR_QCOM_RPM is not set CONFIG_REGULATOR_QCOM_SMD_RPM=m @@ -6286,6 +6339,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -6345,8 +6399,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6829,6 +6882,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6906,6 +6960,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -6992,6 +7047,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -7363,6 +7419,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m CONFIG_SND_HDA_TEGRA=m CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -7484,7 +7543,9 @@ CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_APPLE_MCA=m CONFIG_SND_SOC_APQ8016_SBC=m CONFIG_SND_SOC_ARNDALE=m +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -7510,6 +7571,8 @@ CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -7701,6 +7764,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m CONFIG_SND_SOC_ROCKCHIP_PDM=m CONFIG_SND_SOC_ROCKCHIP_RT5645=m CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -7846,6 +7910,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X_I2C=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TLV320AIC3X_SPI=m +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m @@ -7987,6 +8052,7 @@ CONFIG_SPI_BITBANG=m CONFIG_SPI_CADENCE=m CONFIG_SPI_CADENCE_QUADSPI=m CONFIG_SPI_CADENCE_XSPI=m +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set CONFIG_SPI_DESIGNWARE=m CONFIG_SPI_DLN2=m @@ -8130,6 +8196,7 @@ CONFIG_ST_UVIS25=m CONFIG_ST_UVIS25_SPI=m # CONFIG_SUN20I_D1_CCU is not set # CONFIG_SUN20I_D1_R_CCU is not set +CONFIG_SUN20I_GPADC=m # CONFIG_SUN20I_PPU is not set # CONFIG_SUN4I_EMAC is not set CONFIG_SUN50I_A100_CCU=y @@ -8184,6 +8251,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWP_EMULATION=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -8319,6 +8387,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -8402,6 +8471,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_K3_AM65_CPSW_NUSS=m CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y CONFIG_TI_K3_AM65_CPTS=m @@ -8441,6 +8512,7 @@ CONFIG_TI_SCI_PM_DOMAINS=y CONFIG_TI_SCI_PROTOCOL=y # CONFIG_TI_ST is not set CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set CONFIG_TI_TSC2046=m @@ -8453,6 +8525,7 @@ CONFIG_TMP006=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TORTURE_TEST=m @@ -8498,6 +8571,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -8724,6 +8798,7 @@ CONFIG_USB_CONFIGFS_EEM=y # CONFIG_USB_CONFIGFS_F_FS is not set CONFIG_USB_CONFIGFS_F_HID=y # CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_MIDI is not set # CONFIG_USB_CONFIGFS_F_PRINTER is not set CONFIG_USB_CONFIGFS_F_TCM=y @@ -9118,7 +9193,9 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AMBA=m CONFIG_VFIO_CDX=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set CONFIG_VFIO_FSL_MC=m +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -9193,9 +9270,13 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW100=m CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -9569,6 +9650,7 @@ CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set # CONFIG_XEN is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -9586,6 +9668,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -9685,7 +9768,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-rhel.config b/SOURCES/kernel-aarch64-rhel.config index 53f23bf..5a5c2b1 100644 --- a/SOURCES/kernel-aarch64-rhel.config +++ b/SOURCES/kernel-aarch64-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -402,6 +401,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -920,6 +920,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -957,6 +958,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -978,6 +980,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -998,6 +1001,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1079,8 +1083,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1098,6 +1102,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1136,6 +1141,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1155,6 +1161,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1206,6 +1213,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1409,6 +1417,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1431,6 +1440,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1462,6 +1472,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1553,6 +1564,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1630,6 +1642,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1771,6 +1784,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1882,6 +1896,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1969,7 +1984,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -1978,10 +2001,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2077,6 +2105,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2105,6 +2135,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2206,6 +2237,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2362,15 +2394,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2400,6 +2434,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2446,6 +2481,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2649,7 +2685,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2743,6 +2779,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2777,7 +2814,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2863,6 +2900,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2939,6 +2977,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2994,6 +3033,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3082,13 +3123,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3161,6 +3204,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3302,9 +3346,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3346,9 +3392,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3405,6 +3453,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3439,6 +3488,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3590,6 +3641,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3832,6 +3884,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3891,6 +3946,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4319,6 +4375,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4366,9 +4423,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4404,6 +4463,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4418,6 +4482,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4496,6 +4561,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4543,6 +4609,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4575,6 +4643,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4596,9 +4665,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4612,6 +4682,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4622,6 +4693,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4802,6 +4875,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4821,6 +4895,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4838,8 +4913,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -4935,6 +5013,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4979,6 +5058,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -4986,6 +5066,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5009,6 +5090,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5027,6 +5109,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5039,6 +5122,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5073,6 +5157,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5082,7 +5167,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5176,6 +5260,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5230,6 +5315,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5453,6 +5539,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5462,6 +5549,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5539,6 +5627,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5720,6 +5809,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6037,7 +6128,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6054,7 +6147,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6119,6 +6211,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6129,6 +6222,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6248,6 +6342,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6306,6 +6401,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6376,6 +6472,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6467,7 +6564,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6507,6 +6604,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6525,6 +6623,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6626,6 +6725,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6744,6 +6844,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6820,6 +6921,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6839,7 +6943,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6852,6 +6962,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6896,6 +7007,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7060,8 +7172,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7345,6 +7459,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7409,8 +7524,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7708,6 +7827,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7793,7 +7913,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-rt-debug-rhel.config b/SOURCES/kernel-aarch64-rt-debug-rhel.config index 99e3169..b214f20 100644 --- a/SOURCES/kernel-aarch64-rt-debug-rhel.config +++ b/SOURCES/kernel-aarch64-rt-debug-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -402,6 +401,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -920,6 +920,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -957,6 +958,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -978,6 +980,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -998,6 +1001,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1080,8 +1084,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1099,6 +1103,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1137,6 +1142,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1156,6 +1162,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1207,6 +1214,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1419,6 +1427,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1441,6 +1450,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1472,6 +1482,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1563,6 +1574,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1640,6 +1652,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1817,6 +1830,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1936,6 +1950,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2023,7 +2038,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -2032,10 +2055,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2132,6 +2160,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2160,6 +2190,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2262,6 +2293,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2418,15 +2450,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2456,6 +2490,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2502,6 +2537,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2705,7 +2741,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2799,6 +2835,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2833,7 +2870,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2919,6 +2956,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2995,6 +3033,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3050,6 +3089,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3143,13 +3184,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3222,6 +3265,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3363,9 +3407,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3407,9 +3453,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3471,6 +3519,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3505,6 +3554,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3656,6 +3707,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3898,6 +3950,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3957,6 +4012,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4385,6 +4441,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4432,9 +4489,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4470,6 +4529,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4484,6 +4548,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4564,6 +4629,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4611,6 +4677,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4643,6 +4711,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4664,9 +4733,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4680,6 +4750,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4690,6 +4761,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4874,6 +4947,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4893,6 +4967,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4910,8 +4985,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -5007,6 +5085,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5054,6 +5133,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -5061,6 +5141,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5084,6 +5165,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5102,6 +5184,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5114,6 +5197,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5148,6 +5232,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5157,7 +5242,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5251,6 +5335,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5305,6 +5390,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5528,6 +5614,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5537,6 +5624,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5614,6 +5702,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5795,6 +5884,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6115,7 +6206,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6132,7 +6225,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6197,6 +6289,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6207,6 +6300,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6326,6 +6420,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6385,6 +6480,7 @@ CONFIG_SND_SOC_SOF_HDA_PROBES=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6455,6 +6551,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6546,7 +6643,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6586,6 +6683,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set CONFIG_SPI_DEBUG=y # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6604,6 +6702,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6705,6 +6804,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6823,6 +6923,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6899,6 +7000,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6918,7 +7022,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6931,6 +7041,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6975,6 +7086,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7140,8 +7252,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7425,6 +7539,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7489,8 +7604,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7789,6 +7908,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7879,7 +7999,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-aarch64-rt-rhel.config b/SOURCES/kernel-aarch64-rt-rhel.config index 1417580..75ba30a 100644 --- a/SOURCES/kernel-aarch64-rt-rhel.config +++ b/SOURCES/kernel-aarch64-rt-rhel.config @@ -215,7 +215,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMD_XGBE_DCB is not set @@ -249,9 +248,9 @@ CONFIG_ARCH_BCM_IPROC=y # CONFIG_ARCH_EXYNOS is not set CONFIG_ARCH_HISI=y # CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_K3=y # CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_LAYERSCAPE is not set +CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set @@ -402,6 +401,7 @@ CONFIG_ARM_SPE_PMU=m # CONFIG_ARM_TEGRA186_CPUFREQ is not set CONFIG_ARM_TEGRA194_CPUFREQ=m CONFIG_ARM_TEGRA_DEVFREQ=m +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_AS3935 is not set # CONFIG_AS73211 is not set CONFIG_ASN1=y @@ -920,6 +920,7 @@ CONFIG_CLK_IMX8QXP=y CONFIG_CLK_IMX8ULP=y CONFIG_CLK_IMX93=y CONFIG_CLK_KUNIT_TEST=m +CONFIG_CLK_LS1028A_PLLDIG=y # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y @@ -957,6 +958,7 @@ CONFIG_COMMAND_LINE_SIZE=4096 # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_HI3516CV300=y CONFIG_COMMON_CLK_HI3519=y # CONFIG_COMMON_CLK_HI3559A is not set @@ -978,6 +980,7 @@ CONFIG_COMMON_CLK_SCPI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_XGENE=y @@ -998,6 +1001,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1080,8 +1084,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -# CONFIG_CRYPTO_AES_ARM64 is not set CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_GCM_P10=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES=y @@ -1099,6 +1103,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_NEON=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1137,6 +1142,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=3 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set CONFIG_CRYPTO_DEV_HISI_SEC=m @@ -1156,6 +1162,7 @@ CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QCE is not set # CONFIG_CRYPTO_DEV_QCOM_RNG is not set +CONFIG_CRYPTO_DEV_SA2UL=m # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_SAHARA is not set CONFIG_CRYPTO_DEV_SP_CCP=y @@ -1207,6 +1214,7 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_NEON=y +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1411,6 +1419,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1433,6 +1442,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1464,6 +1474,7 @@ CONFIG_DP83867_PHY=m # CONFIG_DP83869_PHY is not set CONFIG_DP83TC811_PHY=m # CONFIG_DP83TD510_PHY is not set +CONFIG_DPAA2_CONSOLE=m # CONFIG_DPM_WATCHDOG is not set # CONFIG_DPOT_DAC is not set # CONFIG_DPS310 is not set @@ -1555,6 +1566,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1632,6 +1644,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1809,6 +1822,7 @@ CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_I10NM=m CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_PND2=m CONFIG_EDAC_SYNOPSYS=m @@ -1920,6 +1934,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2007,7 +2022,15 @@ CONFIG_FSCACHE_STATS=y CONFIG_FS_DAX=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FSI is not set +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_ETH=m +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m CONFIG_FSL_DPAA2_SWITCH=m +# CONFIG_FSL_DPAA_CHECKING is not set +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_DPAA=y # CONFIG_FSL_EDMA is not set CONFIG_FSL_ENETC_IERB=m CONFIG_FSL_ENETC=m @@ -2016,10 +2039,15 @@ CONFIG_FSL_ENETC_PTP_CLOCK=m CONFIG_FSL_ENETC_QOS=y CONFIG_FSL_ENETC_VF=m CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y CONFIG_FSL_IMX8_DDR_PMU=m # CONFIG_FSL_IMX9_DDR_PMU is not set +CONFIG_FSL_MC_BUS=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y CONFIG_FSL_PQ_MDIO=m # CONFIG_FSL_QDMA is not set +# CONFIG_FSL_QMAN_TEST is not set # CONFIG_FSL_RCPM is not set CONFIG_FSL_XGMAC_MDIO=m CONFIG_FSNOTIFY=y @@ -2116,6 +2144,8 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +CONFIG_GPIO_DAVINCI=y +# CONFIG_GPIO_DS4520 is not set CONFIG_GPIO_DWAPB=m # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2144,6 +2174,7 @@ CONFIG_GPIO_MLXBF2=m # CONFIG_GPIO_MLXBF3 is not set # CONFIG_GPIO_MLXBF is not set # CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=m # CONFIG_GPIO_PCA953X_IRQ is not set # CONFIG_GPIO_PCA953X is not set @@ -2246,6 +2277,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2402,15 +2434,17 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_CN10K=m -CONFIG_HW_RANDOM_HISI=y +CONFIG_HW_RANDOM_HISI=m # CONFIG_HW_RANDOM_HISTB is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_XGENE=m # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM=y +CONFIG_HWSPINLOCK_OMAP=m # CONFIG_HWSPINLOCK_QCOM is not set CONFIG_HWSPINLOCK=y # CONFIG_HX711 is not set @@ -2440,6 +2474,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set CONFIG_I2C_ARB_GPIO_CHALLENGE=m +# CONFIG_I2C_ATR is not set # CONFIG_I2C_BCM_IPROC is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set @@ -2486,6 +2521,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_PIIX4 is not set @@ -2689,7 +2725,7 @@ CONFIG_INPUT_APANEL=m # CONFIG_INPUT_ATI_REMOTE2 is not set CONFIG_INPUT_ATLAS_BTNS=m # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BBNSM_PWRKEY is not set +CONFIG_INPUT_BBNSM_PWRKEY=m # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set @@ -2783,6 +2819,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2817,7 +2854,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2903,6 +2940,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2979,6 +3017,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3034,6 +3073,8 @@ CONFIG_JOLIET=y # CONFIG_JSA1212 is not set CONFIG_JUMP_LABEL=y # CONFIG_K3_DMA is not set +CONFIG_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_KALLSYMS_SELFTEST is not set @@ -3122,13 +3163,15 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3201,6 +3244,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3342,9 +3386,11 @@ CONFIG_MAILBOX=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set CONFIG_MARVELL_CN10K_DDR_PMU=m CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3386,9 +3432,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m # CONFIG_MDIO_BCM_IPROC is not set @@ -3450,6 +3498,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3484,6 +3533,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3635,6 +3686,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3877,6 +3929,9 @@ CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTK_T7XX=m CONFIG_MULTIUSER=y +CONFIG_MUX_ADG792A=m +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=m # CONFIG_MVMDIO is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set @@ -3936,6 +3991,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4364,6 +4420,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4411,9 +4468,11 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_OCOTP_ELE is not set CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SNVS_LPGPR is not set @@ -4449,6 +4508,11 @@ CONFIG_OF_MDIO=y CONFIG_OF_PMEM=m # CONFIG_OF_UNITTEST is not set CONFIG_OF=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_GPMC is not set +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_USB2=m # CONFIG_OMFS_FS is not set # CONFIG_OPAL_CORE is not set # CONFIG_OPEN_DICE is not set @@ -4463,6 +4527,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4541,6 +4606,7 @@ CONFIG_PCC=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_AL is not set @@ -4588,6 +4654,8 @@ CONFIG_PCI_IMX6_HOST=y CONFIG_PCI_IMX6=y CONFIG_PCI_IOV=y # CONFIG_PCI_J721E_HOST is not set +CONFIG_PCI_KEYSTONE_HOST=y +CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_MESON is not set CONFIG_PCI_MSI=y CONFIG_PCI_P2PDMA=y @@ -4620,6 +4688,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PER_VMA_LOCK_STATS=y # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set +CONFIG_PHY_AM654_SERDES=m # CONFIG_PHY_BCM_NS_USB2 is not set # CONFIG_PHY_BCM_NS_USB3 is not set # CONFIG_PHY_BCM_SR_PCIE is not set @@ -4641,9 +4710,10 @@ CONFIG_PHY_FSL_IMX8MQ_USB=m CONFIG_PHY_HI6220_USB=m # CONFIG_PHY_HISI_INNO_USB2 is not set # CONFIG_PHY_HISTB_COMBPHY is not set +CONFIG_PHY_J721E_WIZ=m # CONFIG_PHY_LAN966X_SERDES is not set CONFIG_PHYLIB=y -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_MIXEL_LVDS_PHY is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set @@ -4657,6 +4727,7 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_PCIE2 is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -4667,6 +4738,8 @@ CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHY_TEGRA194_P2U=y CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set @@ -4851,6 +4924,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4870,6 +4944,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_QORIQ=m CONFIG_PTP_1588_CLOCK=y @@ -4887,8 +4962,11 @@ CONFIG_PWM_BCM_IPROC=y # CONFIG_PWM_IMX1 is not set CONFIG_PWM_IMX27=m CONFIG_PWM_IMX_TPM=m +CONFIG_PWM_OMAP_DMTIMER=y # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_TEGRA=y +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m # CONFIG_PWM_XILINX is not set CONFIG_PWM=y # CONFIG_PWRSEQ_EMMC is not set @@ -4984,6 +5062,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5031,6 +5110,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set @@ -5038,6 +5118,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_BD718XX=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5061,6 +5142,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX77686=m # CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8893 is not set @@ -5079,6 +5161,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5091,6 +5174,7 @@ CONFIG_REGULATOR_PFUZE100=m # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set @@ -5125,6 +5209,7 @@ CONFIG_RESET_IMX7=y # CONFIG_RESET_QCOM_PDC is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SCI=m # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set CONFIG_RESOURCE_KUNIT_TEST=m @@ -5134,7 +5219,6 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5228,6 +5312,7 @@ CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set @@ -5282,6 +5367,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_TEGRA is not set # CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TI_K3=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_X1205=m # CONFIG_RTC_DRV_XGENE is not set @@ -5505,6 +5591,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5514,6 +5601,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5591,6 +5679,7 @@ CONFIG_SENSORS_G762=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_IBMAEM is not set # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5772,6 +5861,8 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MID=y CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_PCI1XXXX=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PERICOM=y @@ -6091,7 +6182,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -6108,7 +6201,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6173,6 +6265,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6183,6 +6276,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -6302,6 +6396,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6360,6 +6455,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6430,6 +6526,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6521,7 +6618,7 @@ CONFIG_SOC_IMX8M=y CONFIG_SOC_IMX9=m # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set CONFIG_SOC_TEGRA_CBB=m -# CONFIG_SOC_TI is not set +CONFIG_SOC_TI=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_SOFT_WATCHDOG=m # CONFIG_SOLARIS_X86_PARTITION is not set @@ -6561,6 +6658,7 @@ CONFIG_SPI_AMD=y # CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m # CONFIG_SPI_FSL_SPI is not set @@ -6579,6 +6677,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_MXIC is not set CONFIG_SPI_NXP_FLEXSPI=m # CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set @@ -6680,6 +6779,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUSPEND=y CONFIG_SVC_I3C_MASTER=m CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6798,6 +6898,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6874,6 +6975,9 @@ CONFIG_THUNDERX2_PMU=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_K3_UDMA=y # CONFIG_TI_LMP92064 is not set CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6893,7 +6997,13 @@ CONFIG_TIPC_DIAG=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TI_PRUSS=m +CONFIG_TI_SCI_CLK=m +# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set +CONFIG_TI_SCI_PM_DOMAINS=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m +CONFIG_TI_SYSC=y # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_TI_TSC2046 is not set @@ -6906,6 +7016,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6950,6 +7061,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7115,8 +7227,10 @@ CONFIG_USB_CXACRU=m CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DSBR is not set # CONFIG_USB_DWC2 is not set +CONFIG_USB_DWC3_AM62=m CONFIG_USB_DWC3_IMX8MP=m # CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3_KEYSTONE=m # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -7400,6 +7514,7 @@ CONFIG_VEXPRESS_CONFIG=y # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m # CONFIG_VFIO_AMBA is not set +CONFIG_VFIO_FSL_MC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m # CONFIG_VFIO_MDEV is not set @@ -7464,8 +7579,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7764,6 +7883,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7854,7 +7974,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-ppc64le-debug-fedora.config b/SOURCES/kernel-ppc64le-debug-fedora.config index 2db734c..f9fd408 100644 --- a/SOURCES/kernel-ppc64le-debug-fedora.config +++ b/SOURCES/kernel-ppc64le-debug-fedora.config @@ -136,6 +136,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -952,6 +953,7 @@ CONFIG_COMMON_CLK_SI521XX=y # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -968,6 +970,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1007,6 +1010,8 @@ CONFIG_CPUSETS=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1056,6 +1061,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_CRC32C_VPMSUM=m @@ -1144,6 +1150,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_SEQIV=y @@ -1353,6 +1360,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1377,6 +1385,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1488,6 +1497,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set CONFIG_DRM_MGAG200=m @@ -1574,11 +1584,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1615,6 +1627,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1797,6 +1810,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -1884,6 +1898,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1996,6 +2011,7 @@ CONFIG_FSI=m CONFIG_FSI_MASTER_ASPEED=m CONFIG_FSI_MASTER_GPIO=m CONFIG_FSI_MASTER_HUB=m +# CONFIG_FSI_MASTER_I2CR is not set # CONFIG_FSI_NEW_DEV_NODE is not set CONFIG_FSI_OCC=m CONFIG_FSI_SBEFIFO=m @@ -2105,6 +2121,7 @@ CONFIG_GPIO_CADENCE=m CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2219,6 +2236,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2413,6 +2431,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2767,6 +2786,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2855,6 +2875,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -2931,6 +2952,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3134,7 +3156,7 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m @@ -3146,6 +3168,7 @@ CONFIG_KVM_BOOK3S_HV_NESTED_PMU_WORKAROUND=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM_GUEST=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3199,6 +3222,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3226,6 +3250,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_POWERNV=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m @@ -3378,6 +3403,7 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3421,11 +3447,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3524,6 +3552,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -3675,6 +3705,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4002,6 +4033,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4513,6 +4545,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4605,6 +4638,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4690,6 +4724,7 @@ CONFIG_PATA_WINBOND=m # CONFIG_PCH_GBE is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4745,6 +4780,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set @@ -4782,6 +4818,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4789,6 +4827,7 @@ CONFIG_PID_NS=y CONFIG_PINCTRL_ALDERLAKE=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -4816,6 +4855,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -5002,6 +5042,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5023,6 +5064,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y @@ -5104,6 +5146,7 @@ CONFIG_RANDOM32_SELFTEST=y CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5163,12 +5206,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5189,9 +5234,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5224,6 +5271,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5269,8 +5317,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -5678,6 +5725,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5753,6 +5801,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBM_CFFPS=m @@ -5840,6 +5889,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6148,6 +6198,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6261,7 +6314,9 @@ CONFIG_SND_SOC_AK5558=m # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6278,7 +6333,6 @@ CONFIG_SND_SOC_CS35L36=m CONFIG_SND_SOC_CS35L45_I2C=m CONFIG_SND_SOC_CS35L45_SPI=m CONFIG_SND_SOC_CS35L56_I2C=m -CONFIG_SND_SOC_CS35L56_SDW=m CONFIG_SND_SOC_CS35L56_SPI=m CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4265 is not set @@ -6287,6 +6341,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6472,6 +6528,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6603,6 +6660,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6730,6 +6788,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -6861,6 +6920,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -6971,6 +7031,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -7046,6 +7107,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -7078,6 +7141,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -7124,6 +7188,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7322,6 +7387,7 @@ CONFIG_USB_CHIPIDEA_IMX=m # CONFIG_USB_CHIPIDEA is not set CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7658,6 +7724,8 @@ CONFIG_VETH=m # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y # CONFIG_VFIO_IOMMU_TYPE1 is not set CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -7726,8 +7794,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -8067,6 +8139,7 @@ CONFIG_XDP_SOCKETS_DIAG=m CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -8084,6 +8157,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8173,7 +8247,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-ppc64le-debug-rhel.config b/SOURCES/kernel-ppc64le-debug-rhel.config index addec32..2f56c33 100644 --- a/SOURCES/kernel-ppc64le-debug-rhel.config +++ b/SOURCES/kernel-ppc64le-debug-rhel.config @@ -206,7 +206,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMIGA_PARTITION is not set @@ -812,6 +811,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -829,6 +829,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -911,6 +912,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1000,6 +1002,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y @@ -1206,6 +1209,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1228,6 +1232,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1348,6 +1353,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1421,6 +1427,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1669,6 +1676,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1855,6 +1863,7 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -1975,6 +1984,7 @@ CONFIG_HID_GENERIC=y # CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m # CONFIG_HID_GT683R is not set CONFIG_HID_GYRATION=m @@ -2126,7 +2136,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m @@ -2163,6 +2172,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2478,6 +2488,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2507,7 +2518,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2594,6 +2605,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2671,6 +2683,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2816,10 +2829,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y CONFIG_KVM_BOOK3S_64_HV=m CONFIG_KVM_BOOK3S_64=m @@ -2830,6 +2844,7 @@ CONFIG_KVM_BOOK3S_HV_NESTED_PMU_WORKAROUND=y # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM_BOOK3S_PR_POSSIBLE=y CONFIG_KVM_GUEST=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -2903,6 +2918,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set CONFIG_LEDS_POWERNV=m # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set @@ -3045,7 +3061,9 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3085,9 +3103,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3141,6 +3161,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3175,6 +3196,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3321,6 +3344,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3604,6 +3628,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4024,6 +4049,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4070,6 +4096,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4114,6 +4141,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4190,6 +4218,7 @@ CONFIG_PATA_PLATFORM=m # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4281,6 +4310,7 @@ CONFIG_PHYLIB=y # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4290,6 +4320,8 @@ CONFIG_PHYLIB=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set @@ -4487,6 +4519,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4505,6 +4538,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set @@ -4599,6 +4633,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4643,12 +4678,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4665,6 +4702,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4677,9 +4715,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4713,7 +4753,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5081,6 +5120,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5090,6 +5130,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5165,6 +5206,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5655,7 +5697,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5672,7 +5716,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5737,6 +5780,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5747,6 +5791,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -5866,6 +5911,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -5925,6 +5971,7 @@ CONFIG_SND_SOC_SOF_HDA_PROBES=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5995,6 +6042,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6217,6 +6265,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6323,6 +6372,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6428,6 +6478,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6473,6 +6524,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -6976,8 +7028,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7275,6 +7331,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7360,7 +7417,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-ppc64le-fedora.config b/SOURCES/kernel-ppc64le-fedora.config index eaec938..5ed305c 100644 --- a/SOURCES/kernel-ppc64le-fedora.config +++ b/SOURCES/kernel-ppc64le-fedora.config @@ -136,6 +136,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -950,6 +951,7 @@ CONFIG_COMMON_CLK_SI521XX=y # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -966,6 +968,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1005,6 +1008,8 @@ CONFIG_CPUSETS=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1054,6 +1059,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_CRC32C_VPMSUM=m @@ -1142,6 +1148,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_SEQIV=y @@ -1342,6 +1349,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1366,6 +1374,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1477,6 +1486,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set CONFIG_DRM_MGAG200=m @@ -1563,11 +1573,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1604,6 +1616,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1786,6 +1799,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -1865,6 +1879,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1977,6 +1992,7 @@ CONFIG_FSI=m CONFIG_FSI_MASTER_ASPEED=m CONFIG_FSI_MASTER_GPIO=m CONFIG_FSI_MASTER_HUB=m +# CONFIG_FSI_MASTER_I2CR is not set # CONFIG_FSI_NEW_DEV_NODE is not set CONFIG_FSI_OCC=m CONFIG_FSI_SBEFIFO=m @@ -2086,6 +2102,7 @@ CONFIG_GPIO_CADENCE=m CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2200,6 +2217,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2394,6 +2412,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2747,6 +2766,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2835,6 +2855,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -2911,6 +2932,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3108,7 +3130,7 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m @@ -3120,6 +3142,7 @@ CONFIG_KVM_BOOK3S_HV_NESTED_PMU_WORKAROUND=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM_GUEST=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3173,6 +3196,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3200,6 +3224,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m CONFIG_LEDS_POWERNV=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m @@ -3352,6 +3377,7 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3394,11 +3420,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3497,6 +3525,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -3648,6 +3678,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3974,6 +4005,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4485,6 +4517,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4577,6 +4610,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4661,6 +4695,7 @@ CONFIG_PATA_WINBOND=m # CONFIG_PCH_GBE is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4716,6 +4751,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set @@ -4753,6 +4789,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4760,6 +4798,7 @@ CONFIG_PID_NS=y CONFIG_PINCTRL_ALDERLAKE=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -4787,6 +4826,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -4973,6 +5013,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4994,6 +5035,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y @@ -5075,6 +5117,7 @@ CONFIG_RAID_ATTRS=m CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5134,12 +5177,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5160,9 +5205,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5195,6 +5242,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5240,8 +5288,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -5649,6 +5696,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5724,6 +5772,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBM_CFFPS=m @@ -5811,6 +5860,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6119,6 +6169,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6231,7 +6284,9 @@ CONFIG_SND_SOC_AK5558=m # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6248,7 +6303,6 @@ CONFIG_SND_SOC_CS35L36=m CONFIG_SND_SOC_CS35L45_I2C=m CONFIG_SND_SOC_CS35L45_SPI=m CONFIG_SND_SOC_CS35L56_I2C=m -CONFIG_SND_SOC_CS35L56_SDW=m CONFIG_SND_SOC_CS35L56_SPI=m CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4265 is not set @@ -6257,6 +6311,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6442,6 +6498,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6572,6 +6629,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6699,6 +6757,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -6830,6 +6889,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -6940,6 +7000,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -7015,6 +7076,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -7047,6 +7110,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -7093,6 +7157,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7291,6 +7356,7 @@ CONFIG_USB_CHIPIDEA_IMX=m # CONFIG_USB_CHIPIDEA is not set CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7627,6 +7693,8 @@ CONFIG_VETH=m # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y # CONFIG_VFIO_IOMMU_TYPE1 is not set CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -7695,8 +7763,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -8036,6 +8108,7 @@ CONFIG_XDP_SOCKETS_DIAG=m CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -8053,6 +8126,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8142,7 +8216,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-ppc64le-rhel.config b/SOURCES/kernel-ppc64le-rhel.config index 33a9c43..8409878 100644 --- a/SOURCES/kernel-ppc64le-rhel.config +++ b/SOURCES/kernel-ppc64le-rhel.config @@ -206,7 +206,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMIGA_PARTITION is not set @@ -812,6 +811,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -829,6 +829,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -911,6 +912,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CMAC=y # CONFIG_CRYPTO_CRC32C_VPMSUM is not set @@ -1000,6 +1002,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y @@ -1198,6 +1201,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1220,6 +1224,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1340,6 +1345,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1413,6 +1419,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1653,6 +1660,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1839,6 +1847,7 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -1959,6 +1968,7 @@ CONFIG_HID_GENERIC=y # CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m # CONFIG_HID_GT683R is not set CONFIG_HID_GYRATION=m @@ -2110,7 +2120,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m @@ -2147,6 +2156,7 @@ CONFIG_I2C_ALGOPCF=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2462,6 +2472,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2491,7 +2502,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2578,6 +2589,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2655,6 +2667,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2796,10 +2809,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y CONFIG_KVM_BOOK3S_64_HV=m CONFIG_KVM_BOOK3S_64=m @@ -2810,6 +2824,7 @@ CONFIG_KVM_BOOK3S_HV_NESTED_PMU_WORKAROUND=y # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM_BOOK3S_PR_POSSIBLE=y CONFIG_KVM_GUEST=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -2883,6 +2898,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set CONFIG_LEDS_POWERNV=m # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set @@ -3025,7 +3041,9 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3065,9 +3083,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3121,6 +3141,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3155,6 +3176,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3301,6 +3324,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3584,6 +3608,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4004,6 +4029,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4050,6 +4076,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4094,6 +4121,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4169,6 +4197,7 @@ CONFIG_PATA_PLATFORM=m # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4260,6 +4289,7 @@ CONFIG_PHYLIB=y # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4269,6 +4299,8 @@ CONFIG_PHYLIB=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set @@ -4466,6 +4498,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4484,6 +4517,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set @@ -4578,6 +4612,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4622,12 +4657,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4644,6 +4681,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4656,9 +4694,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4692,7 +4732,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5060,6 +5099,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5069,6 +5109,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5144,6 +5185,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5633,7 +5675,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5650,7 +5694,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5715,6 +5758,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5725,6 +5769,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -5844,6 +5889,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -5902,6 +5948,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5972,6 +6019,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6194,6 +6242,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6300,6 +6349,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6405,6 +6455,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6450,6 +6501,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -6953,8 +7005,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7252,6 +7308,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7337,7 +7394,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-s390x-debug-fedora.config b/SOURCES/kernel-s390x-debug-fedora.config index 12185b2..c7b92d3 100644 --- a/SOURCES/kernel-s390x-debug-fedora.config +++ b/SOURCES/kernel-s390x-debug-fedora.config @@ -137,6 +137,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -806,6 +807,7 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y CONFIG_CEPH_LIB=m CONFIG_CEPH_LIB_PRETTYDEBUG=y # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +CONFIG_CERT_STORE=y CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_CFG80211_CERTIFICATION_ONUS is not set @@ -957,6 +959,7 @@ CONFIG_COMMON_CLK_SI521XX=y # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -973,6 +976,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1012,6 +1016,8 @@ CONFIG_CPUSETS=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1359,6 +1365,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1383,6 +1390,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1494,6 +1502,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set # CONFIG_DRM_MGAG200 is not set @@ -1579,11 +1588,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1620,6 +1631,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1798,6 +1810,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -1887,6 +1900,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2098,6 +2112,7 @@ CONFIG_GPIO_CADENCE=m CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2210,6 +2225,7 @@ CONFIG_HID_GENERIC=m CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2394,6 +2410,7 @@ CONFIG_I2C_ALGOBIT=m # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_CHARDEV is not set @@ -2740,6 +2757,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2827,6 +2845,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -2902,6 +2921,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3108,11 +3128,12 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m CONFIG_KVM=m +CONFIG_KVM_PROVE_MMU=y # CONFIG_KVM_S390_UCONTROL is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set @@ -3165,6 +3186,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3192,6 +3214,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -3351,6 +3374,7 @@ CONFIG_MARCH_Z13=y # CONFIG_MARCH_Z990 is not set # CONFIG_MARCH_ZEC12 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3395,11 +3419,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3498,6 +3524,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BD9571MWV is not set CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -3649,6 +3677,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3973,6 +4002,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4484,6 +4514,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4570,6 +4601,7 @@ CONFIG_ORINOCO_USB=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4654,6 +4686,7 @@ CONFIG_PATA_WINBOND=m # CONFIG_PCH_GBE is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4710,6 +4743,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set @@ -4748,6 +4782,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4755,6 +4791,7 @@ CONFIG_PID_NS=y CONFIG_PINCTRL_ALDERLAKE=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -4782,6 +4819,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -4920,6 +4958,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4941,6 +4980,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y @@ -5028,6 +5068,7 @@ CONFIG_RANDOMIZE_BASE=y CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5087,12 +5128,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=m CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5113,9 +5156,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5148,6 +5193,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5194,8 +5240,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL is not set -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -5418,10 +5463,9 @@ CONFIG_RV=y CONFIG_RXKAD=y # CONFIG_RXPERF is not set CONFIG_S2IO=m -CONFIG_S390_AP_IOMMU=y -CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y +CONFIG_S390_HYPFS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set # CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m @@ -5613,6 +5657,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5688,6 +5733,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5774,6 +5820,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6081,6 +6128,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6194,7 +6244,9 @@ CONFIG_SND_SOC_AK5558=m # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6211,7 +6263,6 @@ CONFIG_SND_SOC_CS35L36=m CONFIG_SND_SOC_CS35L45_I2C=m CONFIG_SND_SOC_CS35L45_SPI=m CONFIG_SND_SOC_CS35L56_I2C=m -CONFIG_SND_SOC_CS35L56_SDW=m CONFIG_SND_SOC_CS35L56_SPI=m CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4265 is not set @@ -6220,6 +6271,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6405,6 +6458,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6536,6 +6590,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6660,6 +6715,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -6790,6 +6846,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m # CONFIG_SUSPEND is not set # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set CONFIG_SX9310=m CONFIG_SX9324=m @@ -6900,6 +6957,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6974,6 +7032,8 @@ CONFIG_TIFM_7XX1=m # CONFIG_TIFM_CORE is not set CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -7006,6 +7066,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TN3215_CONSOLE=y @@ -7057,6 +7118,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7264,6 +7326,7 @@ CONFIG_USB_CHIPIDEA_IMX=m # CONFIG_USB_CHIPIDEA is not set CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7598,6 +7661,8 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AP=m CONFIG_VFIO_CCW=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -7666,8 +7731,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -8008,6 +8077,7 @@ CONFIG_XDP_SOCKETS_DIAG=m CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -8025,6 +8095,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8113,7 +8184,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-s390x-debug-rhel.config b/SOURCES/kernel-s390x-debug-rhel.config index 735cf51..56012a1 100644 --- a/SOURCES/kernel-s390x-debug-rhel.config +++ b/SOURCES/kernel-s390x-debug-rhel.config @@ -203,7 +203,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set # CONFIG_AMD_PHY is not set CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMIGA_PARTITION is not set @@ -677,6 +676,7 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y CONFIG_CEPH_LIB=m CONFIG_CEPH_LIB_PRETTYDEBUG=y CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_CERT_STORE=y # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_DEBUGFS=y @@ -812,6 +812,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -829,6 +830,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -910,6 +912,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA_S390=y CONFIG_CRYPTO_CMAC=y @@ -997,6 +1000,7 @@ CONFIG_CRYPTO_PAES_S390=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y @@ -1211,6 +1215,7 @@ CONFIG_DMADEVICES_VDEBUG=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1233,6 +1238,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1353,6 +1359,7 @@ CONFIG_DRM_KUNIT_TEST=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM=m # CONFIG_DRM_MALI_DISPLAY is not set @@ -1427,6 +1434,7 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1675,6 +1683,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1857,6 +1866,7 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -1976,6 +1986,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2119,7 +2130,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_S390=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set @@ -2155,6 +2165,7 @@ CONFIG_I2C_ALGOBIT=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_CHARDEV is not set @@ -2464,6 +2475,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2492,7 +2504,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2578,6 +2590,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2654,6 +2667,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2801,14 +2815,16 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM=m +CONFIG_KVM_PROVE_MMU=y # CONFIG_KVM_S390_UCONTROL is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set @@ -2881,6 +2897,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3030,7 +3047,9 @@ CONFIG_MARCH_Z14=y # CONFIG_MARCH_Z990 is not set # CONFIG_MARCH_ZEC12 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y # CONFIG_MARVELL_PHY is not set # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3071,9 +3090,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3125,6 +3146,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3159,6 +3181,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3305,6 +3329,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3586,6 +3611,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4006,6 +4032,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4052,6 +4079,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4095,6 +4123,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4170,6 +4199,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCI_DEBUG=y +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4263,6 +4293,7 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4272,6 +4303,8 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4423,6 +4456,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4441,6 +4475,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set @@ -4540,6 +4575,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4584,12 +4620,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y # CONFIG_REALTEK_PHY is not set # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set # CONFIG_REGMAP is not set CONFIG_REGMAP_KUNIT=m # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4606,6 +4644,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4618,9 +4657,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4653,7 +4694,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -4856,10 +4896,9 @@ CONFIG_RV_REACT_PRINTK=y CONFIG_RV=y CONFIG_RXKAD=y CONFIG_RXPERF=m -CONFIG_S390_AP_IOMMU=y -CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y +CONFIG_S390_HYPFS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set # CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m @@ -5063,6 +5102,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5072,6 +5112,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5147,6 +5188,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5630,7 +5672,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5647,7 +5691,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5712,6 +5755,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5722,6 +5766,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -5841,6 +5886,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -5900,6 +5946,7 @@ CONFIG_SND_SOC_SOF_HDA_PROBES=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5970,6 +6017,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6190,6 +6238,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6295,6 +6344,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6399,6 +6449,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TN3215_CONSOLE=y @@ -6449,6 +6500,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -6960,8 +7012,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7260,6 +7316,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7346,7 +7403,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-s390x-fedora.config b/SOURCES/kernel-s390x-fedora.config index edf2b05..5fb78a9 100644 --- a/SOURCES/kernel-s390x-fedora.config +++ b/SOURCES/kernel-s390x-fedora.config @@ -137,6 +137,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADDRESS_MASKING is not set # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -804,6 +805,7 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +CONFIG_CERT_STORE=y CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_CFG80211_CERTIFICATION_ONUS is not set @@ -955,6 +957,7 @@ CONFIG_COMMON_CLK_SI521XX=y # CONFIG_COMMON_CLK_SI5351 is not set CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -971,6 +974,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1010,6 +1014,8 @@ CONFIG_CPUSETS=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1348,6 +1354,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1372,6 +1379,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1483,6 +1491,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set # CONFIG_DRM_MGAG200 is not set @@ -1568,11 +1577,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1609,6 +1620,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1787,6 +1799,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -1868,6 +1881,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2079,6 +2093,7 @@ CONFIG_GPIO_CADENCE=m CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m # CONFIG_GPIO_FTGPIO010 is not set @@ -2191,6 +2206,7 @@ CONFIG_HID_GENERIC=m CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2375,6 +2391,7 @@ CONFIG_I2C_ALGOBIT=m # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_CHARDEV is not set @@ -2720,6 +2737,7 @@ CONFIG_IONIC=m CONFIG_IOSCHED_BFQ=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2807,6 +2825,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -2882,6 +2901,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3082,11 +3102,12 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m CONFIG_KVM=m +# CONFIG_KVM_PROVE_MMU is not set # CONFIG_KVM_S390_UCONTROL is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set @@ -3139,6 +3160,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set @@ -3166,6 +3188,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -3325,6 +3348,7 @@ CONFIG_MARCH_Z13=y # CONFIG_MARCH_Z990 is not set # CONFIG_MARCH_ZEC12 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3368,11 +3392,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3471,6 +3497,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BD9571MWV is not set CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set @@ -3622,6 +3650,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3945,6 +3974,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4456,6 +4486,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4542,6 +4573,7 @@ CONFIG_ORINOCO_USB=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4625,6 +4657,7 @@ CONFIG_PATA_WINBOND=m # CONFIG_PCH_GBE is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4681,6 +4714,7 @@ CONFIG_PCS_XPCS=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m # CONFIG_PECI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set @@ -4719,6 +4753,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4726,6 +4762,7 @@ CONFIG_PID_NS=y CONFIG_PINCTRL_ALDERLAKE=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_ELKHARTLAKE=m CONFIG_PINCTRL_EMMITSBURG=m @@ -4753,6 +4790,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -4891,6 +4929,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4912,6 +4951,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y @@ -4999,6 +5039,7 @@ CONFIG_RANDOMIZE_BASE=y CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5058,12 +5099,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=m CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +CONFIG_REGULATOR_AW37503=m CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -5084,9 +5127,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5119,6 +5164,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5165,8 +5211,7 @@ CONFIG_RESOURCE_KUNIT_TEST=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL is not set -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -5389,10 +5434,9 @@ CONFIG_RV=y CONFIG_RXKAD=y # CONFIG_RXPERF is not set CONFIG_S2IO=m -CONFIG_S390_AP_IOMMU=y -CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y +CONFIG_S390_HYPFS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set # CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m @@ -5584,6 +5628,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5659,6 +5704,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5745,6 +5791,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6052,6 +6099,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=2048 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6164,7 +6214,9 @@ CONFIG_SND_SOC_AK5558=m # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6181,7 +6233,6 @@ CONFIG_SND_SOC_CS35L36=m CONFIG_SND_SOC_CS35L45_I2C=m CONFIG_SND_SOC_CS35L45_SPI=m CONFIG_SND_SOC_CS35L56_I2C=m -CONFIG_SND_SOC_CS35L56_SDW=m CONFIG_SND_SOC_CS35L56_SPI=m CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4265 is not set @@ -6190,6 +6241,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6375,6 +6428,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -6505,6 +6559,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6629,6 +6684,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -6759,6 +6815,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m # CONFIG_SUSPEND is not set # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set CONFIG_SX9310=m CONFIG_SX9324=m @@ -6869,6 +6926,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6943,6 +7001,8 @@ CONFIG_TIFM_7XX1=m # CONFIG_TIFM_CORE is not set CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -6975,6 +7035,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TN3215_CONSOLE=y @@ -7026,6 +7087,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7233,6 +7295,7 @@ CONFIG_USB_CHIPIDEA_IMX=m # CONFIG_USB_CHIPIDEA is not set CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7567,6 +7630,8 @@ CONFIG_VFAT_FS=m CONFIG_VFIO_AP=m CONFIG_VFIO_CCW=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -7635,8 +7700,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -7977,6 +8046,7 @@ CONFIG_XDP_SOCKETS_DIAG=m CONFIG_XDP_SOCKETS=y # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_FRONTEND is not set CONFIG_XEN_PVHVM_GUEST=y @@ -7994,6 +8064,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8082,7 +8153,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-s390x-rhel.config b/SOURCES/kernel-s390x-rhel.config index c6a07ce..2782394 100644 --- a/SOURCES/kernel-s390x-rhel.config +++ b/SOURCES/kernel-s390x-rhel.config @@ -203,7 +203,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set # CONFIG_AMD_PHY is not set CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMIGA_PARTITION is not set @@ -677,6 +676,7 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_CERT_STORE=y # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_CRDA_SUPPORT=y # CONFIG_CFG80211_DEBUGFS is not set @@ -812,6 +812,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -829,6 +830,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -910,6 +912,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA_S390=y CONFIG_CRYPTO_CMAC=y @@ -997,6 +1000,7 @@ CONFIG_CRYPTO_PAES_S390=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RSA=y @@ -1203,6 +1207,7 @@ CONFIG_DMABUF_MOVE_NOTIFY=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1225,6 +1230,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1345,6 +1351,7 @@ CONFIG_DRM_KUNIT_TEST=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM=m # CONFIG_DRM_MALI_DISPLAY is not set @@ -1419,6 +1426,7 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1659,6 +1667,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1841,6 +1850,7 @@ CONFIG_GNSS=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -1960,6 +1970,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2103,7 +2114,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_S390=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set @@ -2139,6 +2149,7 @@ CONFIG_I2C_ALGOBIT=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_CHARDEV is not set @@ -2448,6 +2459,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2476,7 +2488,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2562,6 +2574,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2638,6 +2651,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2781,14 +2795,16 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set CONFIG_KVM=m +# CONFIG_KVM_PROVE_MMU is not set # CONFIG_KVM_S390_UCONTROL is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set @@ -2861,6 +2877,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3010,7 +3027,9 @@ CONFIG_MARCH_Z14=y # CONFIG_MARCH_Z990 is not set # CONFIG_MARCH_ZEC12 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y # CONFIG_MARVELL_PHY is not set # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3051,9 +3070,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3105,6 +3126,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3139,6 +3161,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3285,6 +3309,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3566,6 +3591,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -3986,6 +4012,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4032,6 +4059,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4075,6 +4103,7 @@ CONFIG_OPENVSWITCH_VXLAN=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4149,6 +4178,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4242,6 +4272,7 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4251,6 +4282,8 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4402,6 +4435,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4420,6 +4454,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set @@ -4519,6 +4554,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4563,12 +4599,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y # CONFIG_REALTEK_PHY is not set # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set # CONFIG_REGMAP is not set CONFIG_REGMAP_KUNIT=m # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4585,6 +4623,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4597,9 +4636,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4632,7 +4673,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -4835,10 +4875,9 @@ CONFIG_RV_REACT_PRINTK=y CONFIG_RV=y CONFIG_RXKAD=y CONFIG_RXPERF=m -CONFIG_S390_AP_IOMMU=y -CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y +CONFIG_S390_HYPFS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set # CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m @@ -5042,6 +5081,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5051,6 +5091,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5126,6 +5167,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5608,7 +5650,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5625,7 +5669,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5690,6 +5733,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5700,6 +5744,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -5819,6 +5864,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -5877,6 +5923,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5947,6 +5994,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6167,6 +6215,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6272,6 +6321,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6376,6 +6426,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TN3215_CONSOLE=y @@ -6426,6 +6477,7 @@ CONFIG_TORTURE_TEST=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -6937,8 +6989,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7237,6 +7293,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7323,7 +7380,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-s390x-zfcpdump-rhel.config b/SOURCES/kernel-s390x-zfcpdump-rhel.config index 959c976..a3cb80d 100644 --- a/SOURCES/kernel-s390x-zfcpdump-rhel.config +++ b/SOURCES/kernel-s390x-zfcpdump-rhel.config @@ -203,7 +203,6 @@ CONFIG_AMD_HSMP=m # CONFIG_AMD_IOMMU_DEBUGFS is not set # CONFIG_AMD_PHY is not set CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set # CONFIG_AMD_PTDMA is not set # CONFIG_AMDTEE is not set # CONFIG_AMIGA_PARTITION is not set @@ -679,6 +678,7 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_CERT_STORE=y # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_CRDA_SUPPORT=y # CONFIG_CFG80211_DEBUGFS is not set @@ -814,6 +814,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -831,6 +832,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -911,6 +913,7 @@ CONFIG_CRYPTO_CAST6=y CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CCM is not set CONFIG_CRYPTO_CFB=y +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=y CONFIG_CRYPTO_CHACHA20=y CONFIG_CRYPTO_CHACHA_S390=y @@ -998,6 +1001,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PAES_S390=m CONFIG_CRYPTO_PCBC=y CONFIG_CRYPTO_PCRYPT=y +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_POLY1305=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=y @@ -1205,6 +1209,7 @@ CONFIG_DMABUF_MOVE_NOTIFY=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1227,6 +1232,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1347,6 +1353,7 @@ CONFIG_DRM_KUNIT_TEST=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set CONFIG_DRM=m # CONFIG_DRM_MALI_DISPLAY is not set @@ -1421,6 +1428,7 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1662,6 +1670,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1847,6 +1856,7 @@ CONFIG_GLOB=y # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -1966,6 +1976,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2110,7 +2121,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_S390=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set @@ -2146,6 +2156,7 @@ CONFIG_I2C_ALGOBIT=m # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_CHARDEV is not set @@ -2456,6 +2467,7 @@ CONFIG_INTEL_SDSI=m # CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# CONFIG_INTEL_VSC is not set # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m CONFIG_INTEL_XWAY_PHY=m @@ -2484,7 +2496,7 @@ CONFIG_IOSCHED_BFQ=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2570,6 +2582,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2646,6 +2659,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2790,14 +2804,16 @@ CONFIG_KPROBES=y # CONFIG_KSM is not set # CONFIG_KUNIT_ALL_TESTS is not set CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m # CONFIG_KUNIT is not set CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set # CONFIG_KVM_BOOK3S_HV_P9_TIMING is not set # CONFIG_KVM is not set +# CONFIG_KVM_PROVE_MMU is not set # CONFIG_KVM_S390_UCONTROL is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set @@ -2870,6 +2886,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3020,7 +3037,9 @@ CONFIG_MARCH_Z14=y # CONFIG_MARCH_Z990 is not set # CONFIG_MARCH_ZEC12 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y # CONFIG_MARVELL_PHY is not set # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3061,9 +3080,11 @@ CONFIG_MAX_SKB_FRAGS=17 # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3115,6 +3136,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set # CONFIG_MEMORY_HOTPLUG is not set @@ -3149,6 +3171,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3295,6 +3319,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3576,6 +3601,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -3999,6 +4025,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m # CONFIG_NMI_CHECK_CPU is not set # CONFIG_NOA1305 is not set @@ -4044,6 +4071,7 @@ CONFIG_NVME_AUTH=y # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4087,6 +4115,7 @@ CONFIG_OPENVSWITCH_GENEVE=m # CONFIG_OSF_PARTITION is not set CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set # CONFIG_OVERLAY_FS is not set # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4161,6 +4190,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4254,6 +4284,7 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4263,6 +4294,8 @@ CONFIG_PHY_BCM_SR_USB=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set # CONFIG_PHY_TUSB1210 is not set # CONFIG_PI433 is not set CONFIG_PID_NS=y @@ -4415,6 +4448,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4433,6 +4467,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set @@ -4532,6 +4567,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4576,12 +4612,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y # CONFIG_REALTEK_PHY is not set # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set # CONFIG_REGMAP is not set CONFIG_REGMAP_KUNIT=m # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4598,6 +4636,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4610,9 +4649,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4645,7 +4686,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL is not set -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -4849,10 +4889,9 @@ CONFIG_RV_REACT_PRINTK=y CONFIG_RV=y CONFIG_RXKAD=y CONFIG_RXPERF=m -CONFIG_S390_AP_IOMMU=y -CONFIG_S390_CCW_IOMMU=y # CONFIG_S390_GUEST is not set # CONFIG_S390_HYPFS_FS is not set +CONFIG_S390_HYPFS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set # CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=y @@ -5060,6 +5099,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5068,6 +5108,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5143,6 +5184,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m # CONFIG_SENSORS_IBM_CFFPS is not set @@ -5625,7 +5667,9 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_AMD_YC_MACH is not set # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5642,7 +5686,6 @@ CONFIG_SND_SEQ_UMP=y # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5707,6 +5750,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5717,6 +5761,7 @@ CONFIG_SND_SOC_CX2072X=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set # CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set @@ -5836,6 +5881,7 @@ CONFIG_SND_SOC_MAX98927=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set # CONFIG_SND_SOC_RT1308 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set @@ -5894,6 +5940,7 @@ CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set # CONFIG_SND_SOC_SOF_JASPERLAKE is not set # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m # CONFIG_SND_SOC_SOF_MERRIFIELD is not set # CONFIG_SND_SOC_SOF_METEORLAKE is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5964,6 +6011,7 @@ CONFIG_SND_SOC_SOF_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set @@ -6187,6 +6235,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y # CONFIG_SWAP is not set +# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set # CONFIG_SX9324 is not set @@ -6294,6 +6343,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6399,6 +6449,7 @@ CONFIG_TLS=m CONFIG_TMPFS_INODE64=y # CONFIG_TMPFS is not set CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TN3215_CONSOLE=y CONFIG_TN3215=y @@ -6448,6 +6499,7 @@ CONFIG_TN3270=y # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -6960,8 +7012,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7260,6 +7316,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set # CONFIG_XFS_FS is not set # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7346,7 +7403,7 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-debug-fedora.config b/SOURCES/kernel-x86_64-debug-fedora.config index cfa48ae..6eab1bd 100644 --- a/SOURCES/kernel-x86_64-debug-fedora.config +++ b/SOURCES/kernel-x86_64-debug-fedora.config @@ -154,7 +154,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1021,6 +1021,7 @@ CONFIG_COMMON_CLK_SI521XX=y CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set CONFIG_COMMON_CLK_TPS68470=m +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -1038,6 +1039,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1082,6 +1084,8 @@ CONFIG_CPU_UNRET_ENTRY=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1486,6 +1490,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1510,6 +1515,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1634,6 +1640,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set CONFIG_DRM_MGAG200=m @@ -1719,11 +1726,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1760,6 +1769,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_VBOXVIDEO=m @@ -1973,6 +1983,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2064,6 +2075,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2293,6 +2305,7 @@ CONFIG_GPIO_CDEV=y CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_ELKHARTLAKE=m CONFIG_GPIO_EXAR=m @@ -2416,6 +2429,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2541,6 +2555,7 @@ CONFIG_HOTPLUG_PCI=y # CONFIG_HP03 is not set # CONFIG_HP206C is not set CONFIG_HP_ACCEL=m +CONFIG_HP_BIOSCFG=m # CONFIG_HPET_MMAP is not set CONFIG_HPET_TIMER=y CONFIG_HPET=y @@ -2615,6 +2630,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -3032,6 +3048,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +CONFIG_INTEL_VSC=m CONFIG_INTEL_VSEC=m CONFIG_INTEL_WMI_SBL_FW_UPDATE=m CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -3062,6 +3079,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3149,6 +3167,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3226,6 +3245,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3438,7 +3458,7 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m @@ -3448,6 +3468,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3500,6 +3521,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m @@ -3528,6 +3550,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -3683,6 +3706,7 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3726,11 +3750,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3830,6 +3856,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS47L24 is not set # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set @@ -3996,6 +4024,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4332,6 +4361,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4847,6 +4877,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4946,6 +4977,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5049,6 +5081,7 @@ CONFIG_PCH_PHUB=m CONFIG_PCI_BIOS=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -5120,6 +5153,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m CONFIG_PEAQ_WMI=m # CONFIG_PECI is not set CONFIG_PERCPU_STATS=y @@ -5165,6 +5199,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -5178,6 +5214,7 @@ CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_ELKHARTLAKE=m @@ -5209,6 +5246,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -5356,6 +5394,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5377,6 +5416,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_VMW=m @@ -5468,6 +5508,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5529,6 +5570,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y @@ -5537,6 +5579,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set CONFIG_REGULATOR_ARIZONA_LDO1=m CONFIG_REGULATOR_ARIZONA_MICSUPP=m +CONFIG_REGULATOR_AW37503=m # CONFIG_REGULATOR_AXP20X is not set # CONFIG_REGULATOR_BD9571MWV is not set # CONFIG_REGULATOR_DA9121 is not set @@ -5558,9 +5601,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5593,6 +5638,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5641,8 +5687,7 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6051,6 +6096,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6060,6 +6106,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +CONFIG_SEL3350_PLATFORM=m # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -6137,6 +6184,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -6226,6 +6274,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6553,6 +6602,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6668,7 +6720,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6694,6 +6748,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6751,6 +6807,7 @@ CONFIG_SND_SOC_IDT821034=m CONFIG_SND_SOC_INTEL_AVS=m CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m +CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336=m CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m @@ -6761,6 +6818,7 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6881,6 +6939,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6922,6 +6981,7 @@ CONFIG_SND_SOC_SOF_ALDERLAKE=m CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m CONFIG_SND_SOC_SOF_AMD_RENOIR=m CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m +CONFIG_SND_SOC_SOF_AMD_VANGOGH=m CONFIG_SND_SOC_SOF_APOLLOLAKE=m CONFIG_SND_SOC_SOF_BAYTRAIL=m CONFIG_SND_SOC_SOF_BROADWELL=m @@ -6942,6 +7002,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m CONFIG_SND_SOC_SOF_KABYLAKE=m +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_MT8195 is not set @@ -7014,6 +7075,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -7147,6 +7209,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -7288,6 +7351,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -7398,6 +7462,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -7479,6 +7544,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -7511,6 +7578,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TOPSTAR_LAPTOP=m @@ -7560,6 +7628,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7761,6 +7830,7 @@ CONFIG_USB_CHIPIDEA_IMX=m CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7776,6 +7846,8 @@ CONFIG_USB_DWC3_HAPS=m # CONFIG_USB_DWC3_HOST is not set CONFIG_USB_DWC3=m # CONFIG_USB_DWC3_OF_SIMPLE is not set +CONFIG_USB_DWC3_PCI=m +CONFIG_USB_DWC3_ULPI=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set # CONFIG_USB_EHCI_HCD_PLATFORM is not set @@ -8100,6 +8172,8 @@ CONFIG_VETH=m # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -8172,8 +8246,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -8571,6 +8649,7 @@ CONFIG_X86_SGX_KVM=y CONFIG_X86_SGX=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -8603,6 +8682,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_BACKEND is not set # CONFIG_XEN_PVCALLS_FRONTEND is not set @@ -8633,6 +8713,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8727,7 +8808,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -8735,9 +8815,7 @@ CONFIG_MFD_STEAMDECK=m CONFIG_SENSORS_STEAMDECK=m CONFIG_LEDS_STEAMDECK=m CONFIG_EXTCON_STEAMDECK=m -CONFIG_USB_DWC3_ULPI=y CONFIG_USB_DWC3_DUAL_ROLE=y -CONFIG_USB_DWC3_PCI=m CONFIG_USB_DWC2_DUAL_ROLE=y CONFIG_USB_DWC2_PCI=m # CONFIG_USB_DWC2_DEBUG is not set @@ -8766,3 +8844,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-debug-rhel.config b/SOURCES/kernel-x86_64-debug-rhel.config index 6d8f971..7807bc9 100644 --- a/SOURCES/kernel-x86_64-debug-rhel.config +++ b/SOURCES/kernel-x86_64-debug-rhel.config @@ -134,7 +134,7 @@ CONFIG_ACPI=y # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -225,7 +225,8 @@ CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set +CONFIG_AMD_PMF_DEBUG=y +CONFIG_AMD_PMF=m CONFIG_AMD_PTDMA=m CONFIG_AMD_SFH_HID=m # CONFIG_AMDTEE is not set @@ -842,6 +843,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -860,6 +862,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -906,6 +909,8 @@ CONFIG_CPU_UNRET_ENTRY=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -958,6 +963,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20_X86_64=y CONFIG_CRYPTO_CMAC=y @@ -1054,6 +1060,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_POLY1305_X86_64=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1288,6 +1295,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1310,6 +1318,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1435,6 +1444,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1508,6 +1518,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1781,6 +1792,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1970,6 +1982,7 @@ CONFIG_GPIO_AMDPT=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2092,6 +2105,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2256,7 +2270,6 @@ CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2294,6 +2307,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2653,6 +2667,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +# CONFIG_INTEL_VSC is not set CONFIG_INTEL_VSEC=m # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -2684,7 +2699,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2770,6 +2785,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2847,6 +2863,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2994,10 +3011,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD=m CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set @@ -3006,6 +3024,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3076,6 +3095,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3219,7 +3239,9 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3261,9 +3283,11 @@ CONFIG_MAXSMP=y # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3315,6 +3339,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3349,6 +3374,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3504,6 +3531,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3794,6 +3822,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4213,6 +4242,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4262,6 +4292,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4306,6 +4337,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4391,6 +4423,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4490,6 +4523,7 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4499,6 +4533,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -4667,6 +4703,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4685,6 +4722,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y @@ -4783,6 +4821,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4827,12 +4866,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4849,6 +4890,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4861,9 +4903,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4897,7 +4941,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5291,6 +5334,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5300,6 +5344,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5377,6 +5422,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -5761,6 +5807,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -5872,7 +5921,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5889,7 +5940,7 @@ CONFIG_SND_SOC_CS35L41_SPI=m # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set +CONFIG_SND_SOC_CS35L56_SDW=m # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5954,6 +6005,7 @@ CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5964,6 +6016,7 @@ CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6084,6 +6137,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6144,6 +6198,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_OF is not set @@ -6214,6 +6269,7 @@ CONFIG_SND_SOC_SSM4567=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -6453,6 +6509,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set @@ -6558,6 +6615,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6669,6 +6727,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6717,6 +6776,7 @@ CONFIG_TOUCHSCREEN_ELO=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7223,8 +7283,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7554,6 +7618,7 @@ CONFIG_X86_SGX_KVM=y CONFIG_X86_SGX=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -7603,6 +7668,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7686,7 +7752,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -7728,3 +7793,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-fedora.config b/SOURCES/kernel-x86_64-fedora.config index ed65762..065fece 100644 --- a/SOURCES/kernel-x86_64-fedora.config +++ b/SOURCES/kernel-x86_64-fedora.config @@ -154,7 +154,7 @@ CONFIG_AD7949=m # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -1019,6 +1019,7 @@ CONFIG_COMMON_CLK_SI521XX=y CONFIG_COMMON_CLK_SI544=m # CONFIG_COMMON_CLK_SI570 is not set CONFIG_COMMON_CLK_TPS68470=m +CONFIG_COMMON_CLK_VC3=m # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_VC7=m # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -1036,6 +1037,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=3 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -1080,6 +1082,8 @@ CONFIG_CPU_UNRET_ENTRY=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -1475,6 +1479,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1499,6 +1504,7 @@ CONFIG_DM_INIT=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=y @@ -1623,6 +1629,7 @@ CONFIG_DRM_LONTIUM_LT8912B=m # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set CONFIG_DRM_LONTIUM_LT9611UXC=m +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set CONFIG_DRM_MGAG200=m @@ -1708,11 +1715,13 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +CONFIG_DRM_PANEL_VISIONOX_R66451=m CONFIG_DRM_PANEL_VISIONOX_RM69299=m # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m @@ -1749,6 +1758,7 @@ CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TOSHIBA_TC358775=m +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y CONFIG_DRM_VBOXVIDEO=m @@ -1962,6 +1972,7 @@ CONFIG_EROFS_FS=m CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_LZMA=y CONFIG_EROFS_FS_ZIP=y CONFIG_ET131X=m @@ -2045,6 +2056,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2274,6 +2286,7 @@ CONFIG_GPIO_CDEV=y CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set CONFIG_GPIO_DLN2=m +CONFIG_GPIO_DS4520=m # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_ELKHARTLAKE=m CONFIG_GPIO_EXAR=m @@ -2397,6 +2410,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set +CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2522,6 +2536,7 @@ CONFIG_HOTPLUG_PCI=y # CONFIG_HP03 is not set # CONFIG_HP206C is not set CONFIG_HP_ACCEL=m +CONFIG_HP_BIOSCFG=m # CONFIG_HPET_MMAP is not set CONFIG_HPET_TIMER=y CONFIG_HPET=y @@ -2596,6 +2611,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_AMD_MP2=m # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +CONFIG_I2C_ATR=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -3012,6 +3028,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +CONFIG_INTEL_VSC=m CONFIG_INTEL_VSEC=m CONFIG_INTEL_WMI_SBL_FW_UPDATE=m CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -3042,6 +3059,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -3129,6 +3147,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IPU_BRIDGE=m CONFIG_IPV6_GRE=m CONFIG_IPV6_ILA=m CONFIG_IPV6_IOAM6_LWTUNNEL=y @@ -3206,6 +3225,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_RCMM_DECODER=m CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_IR_SHARP_DECODER=m @@ -3412,7 +3432,7 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m @@ -3422,6 +3442,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set CONFIG_KVM_XEN=y @@ -3474,6 +3495,7 @@ CONFIG_LEDS_CR0014114=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_EL15203000 is not set CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GROUP_MULTICOLOR=m CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=m @@ -3502,6 +3524,7 @@ CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_PCA995X=m # CONFIG_LEDS_PWM is not set CONFIG_LEDS_PWM_MULTICOLOR=m CONFIG_LEDS_QCOM_FLASH=m @@ -3657,6 +3680,7 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88Q2XXX_PHY=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set @@ -3700,11 +3724,13 @@ CONFIG_MCP41010=m # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +CONFIG_MCP4728=m # CONFIG_MCP4922 is not set CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP=y CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3804,6 +3830,8 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_CS42L43_I2C=m +CONFIG_MFD_CS42L43_SDW=m # CONFIG_MFD_CS47L24 is not set # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_DA9052_I2C is not set @@ -3970,6 +3998,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -4306,6 +4335,7 @@ CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4821,6 +4851,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4920,6 +4951,7 @@ CONFIG_ORINOCO_USB=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -5022,6 +5054,7 @@ CONFIG_PCH_PHUB=m CONFIG_PCI_BIOS=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -5093,6 +5126,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m CONFIG_PDS_CORE=m CONFIG_PDS_VDPA=m +CONFIG_PDS_VFIO_PCI=m CONFIG_PEAQ_WMI=m # CONFIG_PECI is not set # CONFIG_PERCPU_STATS is not set @@ -5138,6 +5172,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +CONFIG_PHY_RTK_RTD_USB2PHY=m +CONFIG_PHY_RTK_RTD_USB3PHY=m CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -5151,6 +5187,7 @@ CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_CS42L43=m CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_ELKHARTLAKE=m @@ -5182,6 +5219,7 @@ CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SM8150 is not set # CONFIG_PINCTRL_SM8250 is not set # CONFIG_PINCTRL_SM8350 is not set +CONFIG_PINCTRL_SM8350_LPASS_LPI=m # CONFIG_PINCTRL_SM8450 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SUN4I_A10 is not set @@ -5328,6 +5366,7 @@ CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set CONFIG_PSTORE_842_COMPRESS=y # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -5349,6 +5388,7 @@ CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_VMW=m @@ -5440,6 +5480,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -5501,6 +5542,7 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=y # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y @@ -5509,6 +5551,7 @@ CONFIG_REGMAP=y # CONFIG_REGULATOR_AD5398 is not set CONFIG_REGULATOR_ARIZONA_LDO1=m CONFIG_REGULATOR_ARIZONA_MICSUPP=m +CONFIG_REGULATOR_AW37503=m # CONFIG_REGULATOR_AXP20X is not set # CONFIG_REGULATOR_BD9571MWV is not set # CONFIG_REGULATOR_DA9121 is not set @@ -5530,9 +5573,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX5970=m CONFIG_REGULATOR_MAX597X=m CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX77826 is not set +CONFIG_REGULATOR_MAX77857=m # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_MAX8893=m @@ -5565,6 +5610,7 @@ CONFIG_REGULATOR_RT6190=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ2208=m CONFIG_REGULATOR_RTQ6752=m # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY7636A=m @@ -5613,8 +5659,7 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -# CONFIG_RH_DISABLE_DEPRECATED is not set -CONFIG_RH_FEDORA=y +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RICHTEK_RTQ6056=m CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set @@ -6023,6 +6068,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -6032,6 +6078,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +CONFIG_SEL3350_PLATFORM=m # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -6109,6 +6156,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_HP_WMI=m +CONFIG_SENSORS_HS3001=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -6198,6 +6246,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_MLXREG_FAN=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP2975_REGULATOR=y CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_MPQ7932=m CONFIG_SENSORS_MPQ7932_REGULATOR=y @@ -6525,6 +6574,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -6639,7 +6691,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +CONFIG_SND_SOC_AUDIO_IIO_AUX=m CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -6665,6 +6719,8 @@ CONFIG_SND_SOC_CS4234=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L43=m +CONFIG_SND_SOC_CS42L43_SDW=m # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -6722,6 +6778,7 @@ CONFIG_SND_SOC_IDT821034=m CONFIG_SND_SOC_INTEL_AVS=m CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m +CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336=m CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m @@ -6732,6 +6789,7 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663=m CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6852,6 +6910,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +CONFIG_SND_SOC_RT1017_SDCA_SDW=m CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6893,6 +6952,7 @@ CONFIG_SND_SOC_SOF_ALDERLAKE=m CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m CONFIG_SND_SOC_SOF_AMD_RENOIR=m CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m +CONFIG_SND_SOC_SOF_AMD_VANGOGH=m CONFIG_SND_SOC_SOF_APOLLOLAKE=m CONFIG_SND_SOC_SOF_BAYTRAIL=m CONFIG_SND_SOC_SOF_BROADWELL=m @@ -6912,6 +6972,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m CONFIG_SND_SOC_SOF_KABYLAKE=m +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_MT8195 is not set @@ -6984,6 +7045,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -7117,6 +7179,7 @@ CONFIG_SPI_AX88796C=m # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CS42L43 is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_DLN2=m @@ -7258,6 +7321,7 @@ CONFIG_SURFACE_PRO3_BUTTON=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set CONFIG_SX9310=m @@ -7368,6 +7432,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -7449,6 +7514,8 @@ CONFIG_TIFM_7XX1=m CONFIG_TIFM_CORE=m CONFIG_TIGON3_HWMON=y CONFIG_TIGON3=m +# CONFIG_TI_ICSSG_PRUETH is not set +CONFIG_TI_ICSS_IEP=m CONFIG_TI_LMP92064=m CONFIG_TIME_KUNIT_TEST=m CONFIG_TIME_NS=y @@ -7481,6 +7548,7 @@ CONFIG_TLS=m CONFIG_TMP117=m CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_QUOTA=y CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y CONFIG_TOPSTAR_LAPTOP=m @@ -7530,6 +7598,7 @@ CONFIG_TOUCHSCREEN_IMAGIS=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_IQS7211=m # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=m # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7731,6 +7800,7 @@ CONFIG_USB_CHIPIDEA_IMX=m CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_MSM=m CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CONFIGFS_F_MIDI2=y # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_CXACRU=m @@ -7746,6 +7816,8 @@ CONFIG_USB_DWC3_HAPS=m # CONFIG_USB_DWC3_HOST is not set CONFIG_USB_DWC3=m # CONFIG_USB_DWC3_OF_SIMPLE is not set +CONFIG_USB_DWC3_PCI=m +CONFIG_USB_DWC3_ULPI=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_EHCI_FSL is not set # CONFIG_USB_EHCI_HCD_PLATFORM is not set @@ -8070,6 +8142,8 @@ CONFIG_VETH=m # CONFIG_VF610_DAC is not set CONFIG_VFAT_FS=m CONFIG_VFIO_CONTAINER=y +# CONFIG_VFIO_DEVICE_CDEV is not set +CONFIG_VFIO_GROUP=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_MDEV=m @@ -8142,8 +8216,12 @@ CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DS90UB913=m +CONFIG_VIDEO_DS90UB953=m +CONFIG_VIDEO_DS90UB960=m # CONFIG_VIDEO_DT3155 is not set CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9719=m CONFIG_VIDEO_DW9768=m CONFIG_VIDEO_DW9807_VCM=m CONFIG_VIDEO_EM28XX_ALSA=m @@ -8541,6 +8619,7 @@ CONFIG_X86_SGX_KVM=y CONFIG_X86_SGX=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -8573,6 +8652,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PRIVCMD_IRQFD=y CONFIG_XEN_PRIVCMD=m # CONFIG_XEN_PVCALLS_BACKEND is not set # CONFIG_XEN_PVCALLS_FRONTEND is not set @@ -8603,6 +8683,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -8697,7 +8778,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -8705,9 +8785,7 @@ CONFIG_MFD_STEAMDECK=m CONFIG_SENSORS_STEAMDECK=m CONFIG_LEDS_STEAMDECK=m CONFIG_EXTCON_STEAMDECK=m -CONFIG_USB_DWC3_ULPI=y CONFIG_USB_DWC3_DUAL_ROLE=y -CONFIG_USB_DWC3_PCI=m CONFIG_USB_DWC2_DUAL_ROLE=y CONFIG_USB_DWC2_PCI=m # CONFIG_USB_DWC2_DEBUG is not set @@ -8736,3 +8814,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-rhel.config b/SOURCES/kernel-x86_64-rhel.config index c529b4c..9115001 100644 --- a/SOURCES/kernel-x86_64-rhel.config +++ b/SOURCES/kernel-x86_64-rhel.config @@ -134,7 +134,7 @@ CONFIG_ACPI=y # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -225,7 +225,8 @@ CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set +# CONFIG_AMD_PMF_DEBUG is not set +CONFIG_AMD_PMF=m CONFIG_AMD_PTDMA=m CONFIG_AMD_SFH_HID=m # CONFIG_AMDTEE is not set @@ -842,6 +843,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -860,6 +862,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -906,6 +909,8 @@ CONFIG_CPU_UNRET_ENTRY=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -958,6 +963,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20_X86_64=y CONFIG_CRYPTO_CMAC=y @@ -1054,6 +1060,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_POLY1305_X86_64=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1280,6 +1287,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1302,6 +1310,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1427,6 +1436,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1500,6 +1510,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1765,6 +1776,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1954,6 +1966,7 @@ CONFIG_GPIO_AMDPT=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2076,6 +2089,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2240,7 +2254,6 @@ CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2278,6 +2291,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2637,6 +2651,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +# CONFIG_INTEL_VSC is not set CONFIG_INTEL_VSEC=m # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -2668,7 +2683,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2754,6 +2769,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2831,6 +2847,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -2974,10 +2991,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD=m CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set @@ -2986,6 +3004,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3056,6 +3075,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3199,7 +3219,9 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3241,9 +3263,11 @@ CONFIG_MAXSMP=y # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3295,6 +3319,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3329,6 +3354,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3484,6 +3511,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3774,6 +3802,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4193,6 +4222,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4242,6 +4272,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4286,6 +4317,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4370,6 +4402,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4469,6 +4502,7 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4478,6 +4512,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -4645,6 +4681,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4663,6 +4700,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y @@ -4761,6 +4799,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4805,12 +4844,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4827,6 +4868,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4839,9 +4881,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4875,7 +4919,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5269,6 +5312,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5278,6 +5322,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5355,6 +5400,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -5739,6 +5785,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -5849,7 +5898,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5866,7 +5917,7 @@ CONFIG_SND_SOC_CS35L41_SPI=m # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set +CONFIG_SND_SOC_CS35L56_SDW=m # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5931,6 +5982,7 @@ CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5941,6 +5993,7 @@ CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6061,6 +6114,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6120,6 +6174,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_OF is not set @@ -6190,6 +6245,7 @@ CONFIG_SND_SOC_SSM4567=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -6429,6 +6485,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set @@ -6534,6 +6591,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6645,6 +6703,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6693,6 +6752,7 @@ CONFIG_TOUCHSCREEN_ELO=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7199,8 +7259,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7530,6 +7594,7 @@ CONFIG_X86_SGX_KVM=y CONFIG_X86_SGX=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -7579,6 +7644,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7662,7 +7728,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -7704,3 +7769,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-rt-debug-rhel.config b/SOURCES/kernel-x86_64-rt-debug-rhel.config index 3a7fbfc..a9ec149 100644 --- a/SOURCES/kernel-x86_64-rt-debug-rhel.config +++ b/SOURCES/kernel-x86_64-rt-debug-rhel.config @@ -134,7 +134,7 @@ CONFIG_ACPI=y # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -225,7 +225,8 @@ CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set +CONFIG_AMD_PMF_DEBUG=y +CONFIG_AMD_PMF=m CONFIG_AMD_PTDMA=m CONFIG_AMD_SFH_HID=m # CONFIG_AMDTEE is not set @@ -842,6 +843,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -860,6 +862,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -907,6 +910,8 @@ CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -959,6 +964,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20_X86_64=y CONFIG_CRYPTO_CMAC=y @@ -1055,6 +1061,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_POLY1305_X86_64=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1290,6 +1297,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1312,6 +1320,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1437,6 +1446,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1510,6 +1520,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1819,6 +1830,7 @@ CONFIG_FAULT_INJECTION=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -2009,6 +2021,7 @@ CONFIG_GPIO_AMDPT=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2132,6 +2145,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2296,7 +2310,6 @@ CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2334,6 +2347,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2693,6 +2707,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +# CONFIG_INTEL_VSC is not set CONFIG_INTEL_VSEC=m # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -2724,7 +2739,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2810,6 +2825,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2887,6 +2903,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3034,10 +3051,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD=m CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set @@ -3046,6 +3064,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_PROVE_MMU=y CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3116,6 +3135,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3259,7 +3279,9 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3301,9 +3323,11 @@ CONFIG_MAXSMP=y # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3360,6 +3384,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3394,6 +3419,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3549,6 +3576,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3839,6 +3867,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4258,6 +4287,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4307,6 +4337,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4351,6 +4382,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +CONFIG_OVERLAY_FS_DEBUG=y # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4436,6 +4468,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4535,6 +4568,7 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4544,6 +4578,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -4716,6 +4752,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4734,6 +4771,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y @@ -4832,6 +4870,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4879,12 +4918,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4901,6 +4942,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4913,9 +4955,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4949,7 +4993,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5343,6 +5386,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5352,6 +5396,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5429,6 +5474,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -5815,6 +5861,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -5926,7 +5975,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5943,7 +5994,7 @@ CONFIG_SND_SOC_CS35L41_SPI=m # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set +CONFIG_SND_SOC_CS35L56_SDW=m # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -6008,6 +6059,7 @@ CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -6018,6 +6070,7 @@ CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6138,6 +6191,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6198,6 +6252,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_OF is not set @@ -6268,6 +6323,7 @@ CONFIG_SND_SOC_SSM4567=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +CONFIG_SND_SOC_TOPOLOGY_BUILD=y CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -6507,6 +6563,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set @@ -6612,6 +6669,7 @@ CONFIG_TEST_FPU=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=m @@ -6723,6 +6781,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6771,6 +6830,7 @@ CONFIG_TOUCHSCREEN_ELO=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7278,8 +7338,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7611,6 +7675,7 @@ CONFIG_X86_SGX=y CONFIG_X86_SMAP=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -7660,6 +7725,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7748,7 +7814,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -7790,3 +7855,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/kernel-x86_64-rt-rhel.config b/SOURCES/kernel-x86_64-rt-rhel.config index a8cdfb8..741d909 100644 --- a/SOURCES/kernel-x86_64-rt-rhel.config +++ b/SOURCES/kernel-x86_64-rt-rhel.config @@ -134,7 +134,7 @@ CONFIG_ACPI=y # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set # CONFIG_ADA4250 is not set -# CONFIG_ADDRESS_MASKING is not set +CONFIG_ADDRESS_MASKING=y # CONFIG_ADE7854 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set @@ -225,7 +225,8 @@ CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_PMC=m -# CONFIG_AMD_PMF is not set +# CONFIG_AMD_PMF_DEBUG is not set +CONFIG_AMD_PMF=m CONFIG_AMD_PTDMA=m CONFIG_AMD_SFH_HID=m # CONFIG_AMDTEE is not set @@ -842,6 +843,7 @@ CONFIG_COMMON_CLK_HI3798CV200=y # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -860,6 +862,7 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_SWITCH_TRACER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set +# CONFIG_COPS is not set CONFIG_CORDIC=m CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_COREDUMP=y @@ -907,6 +910,8 @@ CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS is not set # CONFIG_CRAMFS_MTD is not set CONFIG_CRASH_DUMP=y +CONFIG_CRASH_HOTPLUG=y +CONFIG_CRASH_MAX_MEMORY_RANGES=8192 CONFIG_CRC16=y # CONFIG_CRC32_BIT is not set # CONFIG_CRC32_SARWATE is not set @@ -959,6 +964,7 @@ CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CHACHA20=m +# CONFIG_CRYPTO_CHACHA20_P10 is not set CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20_X86_64=y CONFIG_CRYPTO_CMAC=y @@ -1055,6 +1061,7 @@ CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_POLY1305=m +# CONFIG_CRYPTO_POLY1305_P10 is not set CONFIG_CRYPTO_POLY1305_X86_64=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_RMD160=m @@ -1282,6 +1289,7 @@ CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_DMA_NUMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set # CONFIG_DMAPOOL_TEST is not set # CONFIG_DMARD06 is not set @@ -1304,6 +1312,7 @@ CONFIG_DMIID=y CONFIG_DM_INTEGRITY=m CONFIG_DMI_SYSFS=y CONFIG_DMI=y +# CONFIG_DM_KUNIT_TEST is not set CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_MIRROR=m @@ -1429,6 +1438,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_LOONGSON is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -1502,6 +1512,7 @@ CONFIG_DRM_SIMPLEDRM=y # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TTM_KUNIT_TEST is not set CONFIG_DRM_UDL=m CONFIG_DRM_USE_DYNAMIC_DEBUG=y # CONFIG_DRM_VBOXVIDEO is not set @@ -1803,6 +1814,7 @@ CONFIG_FAT_KUNIT_TEST=m # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set +CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set @@ -1993,6 +2005,7 @@ CONFIG_GPIO_AMDPT=m # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_CDEV=y +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_ELKHARTLAKE is not set # CONFIG_GPIO_EXAR is not set @@ -2116,6 +2129,7 @@ CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m CONFIG_HID_GYRATION=m @@ -2280,7 +2294,6 @@ CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set -CONFIG_HW_RANDOM_HISI=y # CONFIG_HW_RANDOM_HISTB is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2318,6 +2331,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m # CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_ATR is not set # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_CHARDEV=m @@ -2677,6 +2691,7 @@ CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_TXT=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m CONFIG_INTEL_VBTN=m +# CONFIG_INTEL_VSC is not set CONFIG_INTEL_VSEC=m # CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set CONFIG_INTEL_WMI_THUNDERBOLT=m @@ -2708,7 +2723,7 @@ CONFIG_IOSCHED_BFQ=y CONFIG_IOSF_MBI=y CONFIG_IOSM=m # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_IO_URING is not set +CONFIG_IO_URING=y # CONFIG_IP5XXX_POWER is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m @@ -2794,6 +2809,7 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 +# CONFIG_IPU_BRIDGE is not set CONFIG_IPV6_GRE=m # CONFIG_IPV6_ILA is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set @@ -2871,6 +2887,7 @@ CONFIG_IR_RC6_DECODER=m # CONFIG_IR_RCMM_DECODER is not set CONFIG_IR_REDRAT3=m CONFIG_IR_SANYO_DECODER=m +# CONFIG_IRSD200 is not set # CONFIG_IR_SERIAL is not set CONFIG_IR_SERIAL_TRANSMITTER=y # CONFIG_IR_SHARP_DECODER is not set @@ -3014,10 +3031,11 @@ CONFIG_KPROBES=y CONFIG_KSM=y CONFIG_KUNIT_ALL_TESTS=m CONFIG_KUNIT_DEBUGFS=y -CONFIG_KUNIT_DEFAULT_ENABLED=y +# CONFIG_KUNIT_DEFAULT_ENABLED is not set CONFIG_KUNIT_EXAMPLE_TEST=m CONFIG_KUNIT=m CONFIG_KUNIT_TEST=m +# CONFIG_KUNPENG_HCCS is not set CONFIG_KVM_AMD=m CONFIG_KVM_AMD_SEV=y # CONFIG_KVM_BOOK3S_HV_P8_TIMING is not set @@ -3026,6 +3044,7 @@ CONFIG_KVM_GUEST=y CONFIG_KVM_INTEL=m CONFIG_KVM=m CONFIG_KVM_MMU_AUDIT=y +# CONFIG_KVM_PROVE_MMU is not set CONFIG_KVM_SMM=y # CONFIG_KVM_WERROR is not set # CONFIG_KVM_XEN is not set @@ -3096,6 +3115,7 @@ CONFIG_LEDS_MLXCPLD=m # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_RT4505 is not set @@ -3239,7 +3259,9 @@ CONFIG_MANA_INFINIBAND=m CONFIG_MANTIS_CORE=m # CONFIG_MARCH_Z16 is not set CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MARVELL_GTI_WDT=y CONFIG_MARVELL_PHY=m # CONFIG_MATOM is not set # CONFIG_MAX1027 is not set @@ -3281,9 +3303,11 @@ CONFIG_MAXSMP=y # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set # CONFIG_MCP4922 is not set # CONFIG_MCTP is not set CONFIG_MD_AUTODETECT=y +CONFIG_MD_BITMAP_FILE=y # CONFIG_MD_CLUSTER is not set CONFIG_MD_FAULTY=m CONFIG_MDIO_BCM_UNIMAC=m @@ -3340,6 +3364,7 @@ CONFIG_MEMCG_SWAP=y CONFIG_MEMCG=y CONFIG_MEMCPY_KUNIT_TEST=m CONFIG_MEMCPY_SLOW_KUNIT_TEST=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_FAILURE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTPLUG=y @@ -3374,6 +3399,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_CS42L43_SDW is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set @@ -3529,6 +3556,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_IPSEC=y +CONFIG_MLX5_MACSEC=y CONFIG_MLX5_MPFS=y CONFIG_MLX5_SF=y CONFIG_MLX5_SW_STEERING=y @@ -3819,6 +3847,7 @@ CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS=y CONFIG_NETCONSOLE_DYNAMIC=y +# CONFIG_NETCONSOLE_EXTENDED_LOG is not set CONFIG_NETCONSOLE=m CONFIG_NET_CORE=y CONFIG_NETDEV_ADDR_LIST_TEST=m @@ -4238,6 +4267,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UCS2_UTILS=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NMI_CHECK_CPU is not set @@ -4287,6 +4317,7 @@ CONFIG_NVME_FC=m # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set CONFIG_NVMEM_SYSFS=y @@ -4331,6 +4362,7 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OSF_PARTITION=y CONFIG_OSNOISE_TRACER=y CONFIG_OVERFLOW_KUNIT_TEST=m +# CONFIG_OVERLAY_FS_DEBUG is not set # CONFIG_OVERLAY_FS_INDEX is not set CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_METACOPY is not set @@ -4415,6 +4447,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_PCI200SYN is not set # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set CONFIG_PCIEAER_INJECT=m CONFIG_PCIEAER=y # CONFIG_PCIE_ALTERA is not set @@ -4514,6 +4547,7 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_EUSB2_REPEATER is not set # CONFIG_PHY_QCOM_IPQ4019_USB is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_M31_USB is not set # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set # CONFIG_PHY_QCOM_SGMII_ETH is not set @@ -4523,6 +4557,8 @@ CONFIG_PHYLINK=m # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set # CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_RTK_RTD_USB2PHY is not set +# CONFIG_PHY_RTK_RTD_USB3PHY is not set CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_TUSB1210 is not set @@ -4694,6 +4730,7 @@ CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_PSI=y # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_BLK is not set +CONFIG_PSTORE_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y @@ -4712,6 +4749,7 @@ CONFIG_PTE_MARKER_UFFD_WP=y # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m +# CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y @@ -4810,6 +4848,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y CONFIG_RANDOMIZE_KSTACK_OFFSET=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_RANDOMIZE_MEMORY=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set CONFIG_RANDOM_TRUST_BOOTLOADER=y CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDSTRUCT_FULL is not set @@ -4857,12 +4896,14 @@ CONFIG_RD_ZSTD=y CONFIG_REALTEK_AUTOPM=y CONFIG_REALTEK_PHY=m # CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_REGMAP_BUILD is not set CONFIG_REGMAP_KUNIT=m CONFIG_REGMAP=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4879,6 +4920,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77857 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set @@ -4891,9 +4933,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RTQ2208 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set @@ -4927,7 +4971,6 @@ CONFIG_RETPOLINE=y # CONFIG_RFKILL_GPIO is not set CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m -CONFIG_RH_DISABLE_DEPRECATED=y CONFIG_RHEL_DIFFERENCES=y # CONFIG_RICHTEK_RTQ6056 is not set CONFIG_RING_BUFFER_BENCHMARK=m @@ -5321,6 +5364,7 @@ CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_DEBUG is not set CONFIG_SECURITY_SELINUX_DEVELOP=y # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 @@ -5330,6 +5374,7 @@ CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY=y CONFIG_SECURITY_YAMA=y +# CONFIG_SEL3350_PLATFORM is not set # CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set @@ -5407,6 +5452,7 @@ CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_HP_WMI is not set +# CONFIG_SENSORS_HS3001 is not set CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m @@ -5793,6 +5839,9 @@ CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m +CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m # CONFIG_SND_HDA_TEGRA is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m @@ -5903,7 +5952,9 @@ CONFIG_SND_SOC_AMD_VANGOGH_MACH=m CONFIG_SND_SOC_AMD_YC_MACH=m # CONFIG_SND_SOC_APQ8016_SBC is not set # CONFIG_SND_SOC_ARNDALE is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88261 is not set # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set @@ -5920,7 +5971,7 @@ CONFIG_SND_SOC_CS35L41_SPI=m # CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS35L45_SPI is not set # CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set +CONFIG_SND_SOC_CS35L56_SDW=m # CONFIG_SND_SOC_CS35L56_SPI is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set @@ -5985,6 +6036,7 @@ CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A is not set @@ -5995,6 +6047,7 @@ CONFIG_SND_SOC_INTEL_AVS=m # CONFIG_SND_SOC_INTEL_AVS_MACH_RT274 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT286 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT298 is not set +# CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682 is not set # CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567 is not set CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m @@ -6115,6 +6168,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_ROCKCHIP_PDM is not set # CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set +# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set CONFIG_SND_SOC_RT1308=m CONFIG_SND_SOC_RT1308_SDW=m CONFIG_SND_SOC_RT1316_SDW=m @@ -6174,6 +6228,7 @@ CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_JASPERLAKE=m # CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_LUNARLAKE=m CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_METEORLAKE=m # CONFIG_SND_SOC_SOF_OF is not set @@ -6244,6 +6299,7 @@ CONFIG_SND_SOC_SSM4567=m # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SOC_TS3A227E=m @@ -6483,6 +6539,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SUSPEND=y CONFIG_SWAP=y +# CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_SWIOTLB=y # CONFIG_SW_SYNC is not set # CONFIG_SX9310 is not set @@ -6588,6 +6645,7 @@ CONFIG_TEST_CPUMASK=m # CONFIG_TEST_HEXDUMP is not set CONFIG_TEST_HMM=m # CONFIG_TEST_IDA is not set +CONFIG_TEST_IOV_ITER=m # CONFIG_TEST_KMOD is not set CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set @@ -6699,6 +6757,7 @@ CONFIG_TLS=m # CONFIG_TMP117 is not set CONFIG_TMPFS_INODE64=y CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS_QUOTA is not set CONFIG_TMPFS_XATTR=y CONFIG_TMPFS=y # CONFIG_TOOLCHAIN_DEFAULT_CPU is not set @@ -6747,6 +6806,7 @@ CONFIG_TOUCHSCREEN_ELO=m # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -7254,8 +7314,12 @@ CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_CX88_ENABLE_VP3054 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set # CONFIG_VIDEO_DT3155 is not set # CONFIG_VIDEO_DW9714 is not set +CONFIG_VIDEO_DW9719=m # CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9807_VCM is not set CONFIG_VIDEO_EM28XX_ALSA=m @@ -7587,6 +7651,7 @@ CONFIG_X86_SGX=y CONFIG_X86_SMAP=y # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_UMIP=y +CONFIG_X86_USER_SHADOW_STACK=y CONFIG_X86_UV=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_X86_VSMP is not set @@ -7636,6 +7701,7 @@ CONFIG_XFRM=y # CONFIG_XFS_DEBUG is not set CONFIG_XFS_FS=m # CONFIG_XFS_ONLINE_REPAIR is not set +# CONFIG_XFS_ONLINE_SCRUB_STATS is not set CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_QUOTA=y @@ -7724,7 +7790,6 @@ CONFIG_ZENIFY=y CONFIG_HID_IPTS=m CONFIG_HID_ITHC=m CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m -CONFIG_VIDEO_DW9719=m CONFIG_IPC_CLASSES=y CONFIG_LEDS_TPS68470=m CONFIG_LEGION_LAPTOP=m @@ -7766,3 +7831,4 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_WINESYNC=y diff --git a/SOURCES/linux-surface.patch b/SOURCES/linux-surface.patch index ac6bcf5..68a1525 100644 --- a/SOURCES/linux-surface.patch +++ b/SOURCES/linux-surface.patch @@ -1,4 +1,4 @@ -From 38f9bee60e9c7c742358e862c6c9422964f1d41a Mon Sep 17 00:00:00 2001 +From da55b6ffe4a98a4af6ced4074317ba9d026f84dd Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Sun, 18 Oct 2020 16:42:44 +0900 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI @@ -40,7 +40,7 @@ Patchset: surface3-oemb 3 files changed, 24 insertions(+) diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c -index ca4602bcc7de..490b9731068a 100644 +index ca4602bcc7dea..490b9731068ae 100644 --- a/drivers/platform/surface/surface3-wmi.c +++ b/drivers/platform/surface/surface3-wmi.c @@ -37,6 +37,13 @@ static const struct dmi_system_id surface3_dmi_table[] = { @@ -58,10 +58,10 @@ index ca4602bcc7de..490b9731068a 100644 { } }; diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c -index a506d940a2ea..2766484b8d2c 100644 +index 7938b52d741d8..2d5f83b0cdb0b 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c -@@ -3717,6 +3717,15 @@ static const struct dmi_system_id dmi_platform_data[] = { +@@ -3746,6 +3746,15 @@ static const struct dmi_system_id dmi_platform_data[] = { }, .driver_data = (void *)&intel_braswell_platform_data, }, @@ -78,7 +78,7 @@ index a506d940a2ea..2766484b8d2c 100644 /* * Match for the GPDwin which unfortunately uses somewhat diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c -index cdcbf04b8832..958305779b12 100644 +index cdcbf04b8832f..958305779b125 100644 --- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c @@ -27,6 +27,14 @@ static const struct dmi_system_id cht_table[] = { @@ -99,7 +99,7 @@ index cdcbf04b8832..958305779b12 100644 -- 2.42.0 -From b8dec23a399dc5deb88ac30d71dd6270c1794ba0 Mon Sep 17 00:00:00 2001 +From 35b3c5195c9fc191de6b5a6e4361762aa37edad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 3 Nov 2020 13:28:04 +0100 Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface @@ -133,7 +133,7 @@ Patchset: mwifiex 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index 6697132ecc97..f06b4ebc5bd8 100644 +index 6697132ecc977..f06b4ebc5bd8e 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -1771,9 +1771,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb) @@ -159,7 +159,7 @@ index 6697132ecc97..f06b4ebc5bd8 100644 if (mwifiex_write_reg(adapter, reg->rx_rdptr, card->rxbd_rdptr | tx_wrap)) { diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c -index dd6d21f1dbfd..f46b06f8d643 100644 +index dd6d21f1dbfd7..f46b06f8d6435 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c @@ -13,7 +13,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = { @@ -252,7 +252,7 @@ index dd6d21f1dbfd..f46b06f8d643 100644 static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h -index d6ff964aec5b..5d30ae39d65e 100644 +index d6ff964aec5bf..5d30ae39d65ec 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h @@ -4,6 +4,7 @@ @@ -266,7 +266,7 @@ index d6ff964aec5b..5d30ae39d65e 100644 -- 2.42.0 -From 44360e255e0cfebd6e0584e75e13c2cc69c7d41a Mon Sep 17 00:00:00 2001 +From 241da24644ea2f5b8119019448b638aa8df6ab26 Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Sun, 4 Oct 2020 00:11:49 +0900 Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+ @@ -288,7 +288,7 @@ Patchset: mwifiex 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index f06b4ebc5bd8..07f13b52ddb9 100644 +index f06b4ebc5bd8e..07f13b52ddb92 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -370,6 +370,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, @@ -313,7 +313,7 @@ index f06b4ebc5bd8..07f13b52ddb9 100644 } diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c -index f46b06f8d643..99b024ecbade 100644 +index f46b06f8d6435..99b024ecbadea 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c @@ -14,7 +14,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = { @@ -407,7 +407,7 @@ index f46b06f8d643..99b024ecbade 100644 static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h -index 5d30ae39d65e..c14eb56eb911 100644 +index 5d30ae39d65ec..c14eb56eb9118 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h @@ -5,6 +5,7 @@ @@ -421,7 +421,7 @@ index 5d30ae39d65e..c14eb56eb911 100644 -- 2.42.0 -From 9203ef88e0067699c993d4715c48ff9deaea92be Mon Sep 17 00:00:00 2001 +From d20b58f9e2ccec57c66864e79c291c2618ab2dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 25 Mar 2021 11:33:02 +0100 Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell @@ -457,7 +457,7 @@ Patchset: mwifiex 1 file changed, 15 insertions(+) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c -index dfdfb72d350f..44ef02efba46 100644 +index 499f4809fcdf3..2d442e080ca28 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -65,6 +65,7 @@ static struct usb_driver btusb_driver; @@ -468,7 +468,7 @@ index dfdfb72d350f..44ef02efba46 100644 static const struct usb_device_id btusb_table[] = { /* Generic Bluetooth USB device */ -@@ -468,6 +469,7 @@ static const struct usb_device_id blacklist_table[] = { +@@ -468,6 +469,7 @@ static const struct usb_device_id quirks_table[] = { { USB_DEVICE(0x1286, 0x2044), .driver_info = BTUSB_MARVELL }, { USB_DEVICE(0x1286, 0x2046), .driver_info = BTUSB_MARVELL }, { USB_DEVICE(0x1286, 0x204e), .driver_info = BTUSB_MARVELL }, @@ -476,7 +476,7 @@ index dfdfb72d350f..44ef02efba46 100644 /* Intel Bluetooth devices */ { USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED }, -@@ -4317,6 +4319,19 @@ static int btusb_probe(struct usb_interface *intf, +@@ -4388,6 +4390,19 @@ static int btusb_probe(struct usb_interface *intf, if (id->driver_info & BTUSB_MARVELL) hdev->set_bdaddr = btusb_set_bdaddr_marvell; @@ -499,7 +499,7 @@ index dfdfb72d350f..44ef02efba46 100644 -- 2.42.0 -From 4ec07cef92d6b7ce42ccc5e1b0e73678cf023dcb Mon Sep 17 00:00:00 2001 +From c6f0985fae241ed43ea1245c9e5861e2c728e21e Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 27 Feb 2021 00:45:52 +0100 Subject: [PATCH] ath10k: Add module parameters to override board files @@ -521,7 +521,7 @@ Patchset: ath10k 1 file changed, 58 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c -index 6cdb225b7eac..19c036751fb1 100644 +index 6cdb225b7eacc..19c036751fb16 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -38,6 +38,9 @@ static bool fw_diag_log; @@ -620,7 +620,7 @@ index 6cdb225b7eac..19c036751fb1 100644 -- 2.42.0 -From 6e7929685df7d87379ad03942e364d7e22122624 Mon Sep 17 00:00:00 2001 +From 986fe56f682f93925b2964f59fe78c7043758e47 Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Thu, 30 Jul 2020 13:21:53 +0200 Subject: [PATCH] misc: mei: Add missing IPTS device IDs @@ -632,7 +632,7 @@ Patchset: ipts 2 files changed, 2 insertions(+) diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h -index bdc65d50b945..08723c01d727 100644 +index bdc65d50b945f..08723c01d7275 100644 --- a/drivers/misc/mei/hw-me-regs.h +++ b/drivers/misc/mei/hw-me-regs.h @@ -92,6 +92,7 @@ @@ -644,7 +644,7 @@ index bdc65d50b945..08723c01d727 100644 #define MEI_DEV_ID_JSP_N 0x4DE0 /* Jasper Lake Point N */ diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c -index 676d566f38dd..6b37dd1f8b2a 100644 +index 676d566f38ddf..6b37dd1f8b2a3 100644 --- a/drivers/misc/mei/pci-me.c +++ b/drivers/misc/mei/pci-me.c @@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = { @@ -658,7 +658,7 @@ index 676d566f38dd..6b37dd1f8b2a 100644 -- 2.42.0 -From 390bee34de9e6382d9a0e0af9e515cb1f114b210 Mon Sep 17 00:00:00 2001 +From 72ee1cbf26ccc575dbfbaee5e7305ab13e1aeb1e Mon Sep 17 00:00:00 2001 From: Liban Hannan Date: Tue, 12 Apr 2022 23:31:12 +0100 Subject: [PATCH] iommu: ipts: use IOMMU passthrough mode for IPTS @@ -680,10 +680,10 @@ Patchset: ipts 1 file changed, 24 insertions(+) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c -index 4a9d9e82847d..6387f3a6eccf 100644 +index 3685ba90ec88e..5a627e081797c 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c -@@ -37,6 +37,8 @@ +@@ -38,6 +38,8 @@ #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY) #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) @@ -692,7 +692,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e) #define IOAPIC_RANGE_START (0xfee00000) -@@ -287,12 +289,14 @@ int intel_iommu_enabled = 0; +@@ -292,12 +294,14 @@ int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; @@ -707,7 +707,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 const struct iommu_ops intel_iommu_ops; -@@ -2548,6 +2552,9 @@ static int device_def_domain_type(struct device *dev) +@@ -2542,6 +2546,9 @@ static int device_def_domain_type(struct device *dev) if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev)) return IOMMU_DOMAIN_IDENTITY; @@ -717,7 +717,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 } return 0; -@@ -2855,6 +2862,9 @@ static int __init init_dmars(void) +@@ -2849,6 +2856,9 @@ static int __init init_dmars(void) if (!dmar_map_gfx) iommu_identity_mapping |= IDENTMAP_GFX; @@ -727,7 +727,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 check_tylersburg_isoch(); ret = si_domain_init(hw_pass_through); -@@ -4755,6 +4765,17 @@ static void quirk_iommu_igfx(struct pci_dev *dev) +@@ -4828,6 +4838,17 @@ static void quirk_iommu_igfx(struct pci_dev *dev) dmar_map_gfx = 0; } @@ -745,7 +745,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 /* G4x/GM45 integrated gfx dmar support is totally busted. */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx); -@@ -4790,6 +4811,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx); +@@ -4863,6 +4884,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx); @@ -758,7 +758,7 @@ index 4a9d9e82847d..6387f3a6eccf 100644 -- 2.42.0 -From 13b6ad2c284cf321144851a527dda96e6d4b9064 Mon Sep 17 00:00:00 2001 +From 8330f9f39ce8c9796259a8aeffe919fa950e18f5 Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Sun, 11 Dec 2022 12:00:59 +0100 Subject: [PATCH] hid: Add support for Intel Precise Touch and Stylus @@ -825,10 +825,10 @@ Patchset: ipts create mode 100644 drivers/hid/ipts/thread.h diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig -index dc456c86e956..b35203b9a7d8 100644 +index 790aa908e2a78..0b9d245d10e54 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig -@@ -1335,4 +1335,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig" +@@ -1345,4 +1345,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig" source "drivers/hid/surface-hid/Kconfig" @@ -836,10 +836,10 @@ index dc456c86e956..b35203b9a7d8 100644 + endif # HID_SUPPORT diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile -index 7a9e160158f7..f58610f27216 100644 +index 8a06d0f840bcb..2ef21b257d0b5 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile -@@ -168,3 +168,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/ +@@ -169,3 +169,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/ obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/ @@ -847,7 +847,7 @@ index 7a9e160158f7..f58610f27216 100644 +obj-$(CONFIG_HID_IPTS) += ipts/ diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig new file mode 100644 -index 000000000000..297401bd388d +index 0000000000000..297401bd388dd --- /dev/null +++ b/drivers/hid/ipts/Kconfig @@ -0,0 +1,14 @@ @@ -867,7 +867,7 @@ index 000000000000..297401bd388d + module will be called ipts. diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile new file mode 100644 -index 000000000000..883896f68e6a +index 0000000000000..883896f68e6ad --- /dev/null +++ b/drivers/hid/ipts/Makefile @@ -0,0 +1,16 @@ @@ -889,7 +889,7 @@ index 000000000000..883896f68e6a +ipts-objs += thread.o diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c new file mode 100644 -index 000000000000..63a4934bbc5f +index 0000000000000..63a4934bbc5fa --- /dev/null +++ b/drivers/hid/ipts/cmd.c @@ -0,0 +1,61 @@ @@ -956,7 +956,7 @@ index 000000000000..63a4934bbc5f +} diff --git a/drivers/hid/ipts/cmd.h b/drivers/hid/ipts/cmd.h new file mode 100644 -index 000000000000..2b4079075b64 +index 0000000000000..2b4079075b642 --- /dev/null +++ b/drivers/hid/ipts/cmd.h @@ -0,0 +1,60 @@ @@ -1022,7 +1022,7 @@ index 000000000000..2b4079075b64 +#endif /* IPTS_CMD_H */ diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h new file mode 100644 -index 000000000000..ba33259f1f7c +index 0000000000000..ba33259f1f7c5 --- /dev/null +++ b/drivers/hid/ipts/context.h @@ -0,0 +1,52 @@ @@ -1080,7 +1080,7 @@ index 000000000000..ba33259f1f7c +#endif /* IPTS_CONTEXT_H */ diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c new file mode 100644 -index 000000000000..5360842d260b +index 0000000000000..5360842d260ba --- /dev/null +++ b/drivers/hid/ipts/control.c @@ -0,0 +1,486 @@ @@ -1572,7 +1572,7 @@ index 000000000000..5360842d260b +} diff --git a/drivers/hid/ipts/control.h b/drivers/hid/ipts/control.h new file mode 100644 -index 000000000000..26629c5144ed +index 0000000000000..26629c5144edb --- /dev/null +++ b/drivers/hid/ipts/control.h @@ -0,0 +1,126 @@ @@ -1704,7 +1704,7 @@ index 000000000000..26629c5144ed +#endif /* IPTS_CONTROL_H */ diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h new file mode 100644 -index 000000000000..307438c7c80c +index 0000000000000..307438c7c80cd --- /dev/null +++ b/drivers/hid/ipts/desc.h @@ -0,0 +1,80 @@ @@ -1790,7 +1790,7 @@ index 000000000000..307438c7c80c +#endif /* IPTS_DESC_H */ diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c new file mode 100644 -index 000000000000..ecbb3a8bdaf6 +index 0000000000000..ecbb3a8bdaf60 --- /dev/null +++ b/drivers/hid/ipts/eds1.c @@ -0,0 +1,103 @@ @@ -1899,7 +1899,7 @@ index 000000000000..ecbb3a8bdaf6 +} diff --git a/drivers/hid/ipts/eds1.h b/drivers/hid/ipts/eds1.h new file mode 100644 -index 000000000000..eeeb6575e3e8 +index 0000000000000..eeeb6575e3e89 --- /dev/null +++ b/drivers/hid/ipts/eds1.h @@ -0,0 +1,35 @@ @@ -1940,7 +1940,7 @@ index 000000000000..eeeb6575e3e8 + enum hid_report_type report_type, enum hid_class_request request_type); diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c new file mode 100644 -index 000000000000..198dc65d7887 +index 0000000000000..198dc65d78876 --- /dev/null +++ b/drivers/hid/ipts/eds2.c @@ -0,0 +1,144 @@ @@ -2090,7 +2090,7 @@ index 000000000000..198dc65d7887 +} diff --git a/drivers/hid/ipts/eds2.h b/drivers/hid/ipts/eds2.h new file mode 100644 -index 000000000000..064e3716907a +index 0000000000000..064e3716907ab --- /dev/null +++ b/drivers/hid/ipts/eds2.h @@ -0,0 +1,35 @@ @@ -2131,7 +2131,7 @@ index 000000000000..064e3716907a + enum hid_report_type report_type, enum hid_class_request request_type); diff --git a/drivers/hid/ipts/hid.c b/drivers/hid/ipts/hid.c new file mode 100644 -index 000000000000..e34a1a4f9fa7 +index 0000000000000..e34a1a4f9fa77 --- /dev/null +++ b/drivers/hid/ipts/hid.c @@ -0,0 +1,225 @@ @@ -2362,7 +2362,7 @@ index 000000000000..e34a1a4f9fa7 +} diff --git a/drivers/hid/ipts/hid.h b/drivers/hid/ipts/hid.h new file mode 100644 -index 000000000000..1ebe77447903 +index 0000000000000..1ebe77447903a --- /dev/null +++ b/drivers/hid/ipts/hid.h @@ -0,0 +1,24 @@ @@ -2392,7 +2392,7 @@ index 000000000000..1ebe77447903 +#endif /* IPTS_HID_H */ diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c new file mode 100644 -index 000000000000..fb5b5c13ee3e +index 0000000000000..fb5b5c13ee3ea --- /dev/null +++ b/drivers/hid/ipts/main.c @@ -0,0 +1,126 @@ @@ -2524,7 +2524,7 @@ index 000000000000..fb5b5c13ee3e +MODULE_LICENSE("GPL"); diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c new file mode 100644 -index 000000000000..1e0395ceae4a +index 0000000000000..1e0395ceae4a4 --- /dev/null +++ b/drivers/hid/ipts/mei.c @@ -0,0 +1,188 @@ @@ -2718,7 +2718,7 @@ index 000000000000..1e0395ceae4a +} diff --git a/drivers/hid/ipts/mei.h b/drivers/hid/ipts/mei.h new file mode 100644 -index 000000000000..973bade6b0fd +index 0000000000000..973bade6b0fdd --- /dev/null +++ b/drivers/hid/ipts/mei.h @@ -0,0 +1,66 @@ @@ -2790,7 +2790,7 @@ index 000000000000..973bade6b0fd +#endif /* IPTS_MEI_H */ diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c new file mode 100644 -index 000000000000..ef66c3c9db80 +index 0000000000000..ef66c3c9db807 --- /dev/null +++ b/drivers/hid/ipts/receiver.c @@ -0,0 +1,250 @@ @@ -3046,7 +3046,7 @@ index 000000000000..ef66c3c9db80 +} diff --git a/drivers/hid/ipts/receiver.h b/drivers/hid/ipts/receiver.h new file mode 100644 -index 000000000000..3de7da62d40c +index 0000000000000..3de7da62d40c1 --- /dev/null +++ b/drivers/hid/ipts/receiver.h @@ -0,0 +1,16 @@ @@ -3068,7 +3068,7 @@ index 000000000000..3de7da62d40c +#endif /* IPTS_RECEIVER_H */ diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c new file mode 100644 -index 000000000000..cc14653b2a9f +index 0000000000000..cc14653b2a9f5 --- /dev/null +++ b/drivers/hid/ipts/resources.c @@ -0,0 +1,131 @@ @@ -3205,7 +3205,7 @@ index 000000000000..cc14653b2a9f +} diff --git a/drivers/hid/ipts/resources.h b/drivers/hid/ipts/resources.h new file mode 100644 -index 000000000000..2068e13285f0 +index 0000000000000..2068e13285f0e --- /dev/null +++ b/drivers/hid/ipts/resources.h @@ -0,0 +1,41 @@ @@ -3252,7 +3252,7 @@ index 000000000000..2068e13285f0 +#endif /* IPTS_RESOURCES_H */ diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h new file mode 100644 -index 000000000000..e8dd98895a7e +index 0000000000000..e8dd98895a7ee --- /dev/null +++ b/drivers/hid/ipts/spec-data.h @@ -0,0 +1,100 @@ @@ -3358,7 +3358,7 @@ index 000000000000..e8dd98895a7e +#endif /* IPTS_SPEC_DATA_H */ diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h new file mode 100644 -index 000000000000..41845f9d9025 +index 0000000000000..41845f9d90257 --- /dev/null +++ b/drivers/hid/ipts/spec-device.h @@ -0,0 +1,290 @@ @@ -3654,7 +3654,7 @@ index 000000000000..41845f9d9025 +#endif /* IPTS_SPEC_DEVICE_H */ diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h new file mode 100644 -index 000000000000..5a58d4a0a610 +index 0000000000000..5a58d4a0a610f --- /dev/null +++ b/drivers/hid/ipts/spec-hid.h @@ -0,0 +1,34 @@ @@ -3694,7 +3694,7 @@ index 000000000000..5a58d4a0a610 +#endif /* IPTS_SPEC_HID_H */ diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c new file mode 100644 -index 000000000000..355e92bea26f +index 0000000000000..355e92bea26f8 --- /dev/null +++ b/drivers/hid/ipts/thread.c @@ -0,0 +1,84 @@ @@ -3784,7 +3784,7 @@ index 000000000000..355e92bea26f +} diff --git a/drivers/hid/ipts/thread.h b/drivers/hid/ipts/thread.h new file mode 100644 -index 000000000000..1f966b8b32c4 +index 0000000000000..1f966b8b32c45 --- /dev/null +++ b/drivers/hid/ipts/thread.h @@ -0,0 +1,59 @@ @@ -3850,7 +3850,7 @@ index 000000000000..1f966b8b32c4 -- 2.42.0 -From cc8157a9538ba31fb72482b9fa52803241f0887d Mon Sep 17 00:00:00 2001 +From 033de13abc9653b2d773f06182465e03d5d6463b Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Sun, 11 Dec 2022 12:03:38 +0100 Subject: [PATCH] iommu: intel: Disable source id verification for ITHC @@ -3862,7 +3862,7 @@ Patchset: ithc 1 file changed, 16 insertions(+) diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c -index 08f56326e2f8..75218b38995c 100644 +index 29b9e55dcf26c..986e91c813ae1 100644 --- a/drivers/iommu/intel/irq_remapping.c +++ b/drivers/iommu/intel/irq_remapping.c @@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev) @@ -3891,7 +3891,7 @@ index 08f56326e2f8..75218b38995c 100644 -- 2.42.0 -From b835496e4ba0bc567b8e83fe1fcb5c4da34c1289 Mon Sep 17 00:00:00 2001 +From 0dd32bcfb70f9e36cfa009d94cd6c86a4839cff3 Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Sun, 11 Dec 2022 12:10:54 +0100 Subject: [PATCH] hid: Add support for Intel Touch Host Controller @@ -3924,10 +3924,10 @@ Patchset: ithc create mode 100644 drivers/hid/ithc/ithc.h diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig -index b35203b9a7d8..3259f2764dc4 100644 +index 0b9d245d10e54..8ba1c309228be 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig -@@ -1337,4 +1337,6 @@ source "drivers/hid/surface-hid/Kconfig" +@@ -1347,4 +1347,6 @@ source "drivers/hid/surface-hid/Kconfig" source "drivers/hid/ipts/Kconfig" @@ -3935,17 +3935,17 @@ index b35203b9a7d8..3259f2764dc4 100644 + endif # HID_SUPPORT diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile -index f58610f27216..656a0783c709 100644 +index 2ef21b257d0b5..e94b79727b489 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile -@@ -170,3 +170,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/ +@@ -171,3 +171,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/ obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/ obj-$(CONFIG_HID_IPTS) += ipts/ +obj-$(CONFIG_HID_ITHC) += ithc/ diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild new file mode 100644 -index 000000000000..aea83f2ac07b +index 0000000000000..aea83f2ac07b4 --- /dev/null +++ b/drivers/hid/ithc/Kbuild @@ -0,0 +1,6 @@ @@ -3957,7 +3957,7 @@ index 000000000000..aea83f2ac07b + diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig new file mode 100644 -index 000000000000..ede713023609 +index 0000000000000..ede7130236096 --- /dev/null +++ b/drivers/hid/ithc/Kconfig @@ -0,0 +1,12 @@ @@ -3975,7 +3975,7 @@ index 000000000000..ede713023609 + module will be called ithc. diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c new file mode 100644 -index 000000000000..57bf125c45bd +index 0000000000000..57bf125c45bd5 --- /dev/null +++ b/drivers/hid/ithc/ithc-debug.c @@ -0,0 +1,96 @@ @@ -4077,7 +4077,7 @@ index 000000000000..57bf125c45bd + diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c new file mode 100644 -index 000000000000..7e89b3496918 +index 0000000000000..7e89b3496918d --- /dev/null +++ b/drivers/hid/ithc/ithc-dma.c @@ -0,0 +1,258 @@ @@ -4341,7 +4341,7 @@ index 000000000000..7e89b3496918 + diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h new file mode 100644 -index 000000000000..d9f2c19a13f3 +index 0000000000000..d9f2c19a13f3a --- /dev/null +++ b/drivers/hid/ithc/ithc-dma.h @@ -0,0 +1,67 @@ @@ -4414,7 +4414,7 @@ index 000000000000..d9f2c19a13f3 + diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c new file mode 100644 -index 000000000000..09512b9cb4d3 +index 0000000000000..09512b9cb4d31 --- /dev/null +++ b/drivers/hid/ithc/ithc-main.c @@ -0,0 +1,534 @@ @@ -4954,7 +4954,7 @@ index 000000000000..09512b9cb4d3 + diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c new file mode 100644 -index 000000000000..85d567b05761 +index 0000000000000..85d567b05761f --- /dev/null +++ b/drivers/hid/ithc/ithc-regs.c @@ -0,0 +1,64 @@ @@ -5024,7 +5024,7 @@ index 000000000000..85d567b05761 + diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h new file mode 100644 -index 000000000000..1a96092ed7ee +index 0000000000000..1a96092ed7eed --- /dev/null +++ b/drivers/hid/ithc/ithc-regs.h @@ -0,0 +1,186 @@ @@ -5216,7 +5216,7 @@ index 000000000000..1a96092ed7ee + diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h new file mode 100644 -index 000000000000..6a9b0d480bc1 +index 0000000000000..6a9b0d480bc15 --- /dev/null +++ b/drivers/hid/ithc/ithc.h @@ -0,0 +1,60 @@ @@ -5283,7 +5283,7 @@ index 000000000000..6a9b0d480bc1 -- 2.42.0 -From 7edaa4190fe42f701948b6320b82dce4bf0e0a42 Mon Sep 17 00:00:00 2001 +From 9f8d2a0f4012644f56ed8dfd322e575b57e1c208 Mon Sep 17 00:00:00 2001 From: quo Date: Mon, 23 Oct 2023 10:15:29 +0200 Subject: [PATCH] Update ITHC from module repo @@ -5308,7 +5308,7 @@ Patchset: ithc 7 files changed, 623 insertions(+), 236 deletions(-) diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c -index 57bf125c45bd..1f1f1e33f2e5 100644 +index 57bf125c45bd5..1f1f1e33f2e5a 100644 --- a/drivers/hid/ithc/ithc-debug.c +++ b/drivers/hid/ithc/ithc-debug.c @@ -1,10 +1,14 @@ @@ -5465,7 +5465,7 @@ index 57bf125c45bd..1f1f1e33f2e5 100644 return 0; } diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c -index 7e89b3496918..ffb8689b8a78 100644 +index 7e89b3496918d..ffb8689b8a780 100644 --- a/drivers/hid/ithc/ithc-dma.c +++ b/drivers/hid/ithc/ithc-dma.c @@ -1,59 +1,91 @@ @@ -5883,7 +5883,7 @@ index 7e89b3496918..ffb8689b8a78 100644 int ret = ithc_dma_tx_unlocked(ithc, cmdcode, datasize, data); mutex_unlock(&ithc->dma_tx.mutex); diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h -index d9f2c19a13f3..93652e4476bf 100644 +index d9f2c19a13f3a..93652e4476bf8 100644 --- a/drivers/hid/ithc/ithc-dma.h +++ b/drivers/hid/ithc/ithc-dma.h @@ -1,3 +1,5 @@ @@ -5902,7 +5902,7 @@ index d9f2c19a13f3..93652e4476bf 100644 int ithc_dma_tx_init(struct ithc *ithc); int ithc_dma_rx(struct ithc *ithc, u8 channel); diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c -index 09512b9cb4d3..87ed4aa70fda 100644 +index 09512b9cb4d31..87ed4aa70fda0 100644 --- a/drivers/hid/ithc/ithc-main.c +++ b/drivers/hid/ithc/ithc-main.c @@ -1,3 +1,5 @@ @@ -6651,7 +6651,7 @@ index 09512b9cb4d3..87ed4aa70fda 100644 } diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c -index 85d567b05761..e058721886e3 100644 +index 85d567b05761f..e058721886e37 100644 --- a/drivers/hid/ithc/ithc-regs.c +++ b/drivers/hid/ithc/ithc-regs.c @@ -1,63 +1,95 @@ @@ -6769,7 +6769,7 @@ index 85d567b05761..e058721886e3 100644 return 0; } diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h -index 1a96092ed7ee..d4007d9e2bac 100644 +index 1a96092ed7eed..d4007d9e2bacc 100644 --- a/drivers/hid/ithc/ithc-regs.h +++ b/drivers/hid/ithc/ithc-regs.h @@ -1,3 +1,5 @@ @@ -6829,7 +6829,7 @@ index 1a96092ed7ee..d4007d9e2bac 100644 u32 _unknown_34; // 34 = 0x0404035e (u8,u8,u8,u8 = version?) u32 _unknown_38; // 38 = 0x000001c0 (0x000001c1 after DMA_RX_CODE_RESET) diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h -index 6a9b0d480bc1..028e55a4ec53 100644 +index 6a9b0d480bc15..028e55a4ec53e 100644 --- a/drivers/hid/ithc/ithc.h +++ b/drivers/hid/ithc/ithc.h @@ -1,3 +1,5 @@ @@ -6874,7 +6874,7 @@ index 6a9b0d480bc1..028e55a4ec53 100644 -- 2.42.0 -From 1528e0fe127f03118f593fc1db51a4d4b5a20341 Mon Sep 17 00:00:00 2001 +From c4cbbcd24ea10e6558753174ae6dabcc9b54e438 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 22 Oct 2023 14:57:11 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Add support for @@ -6891,7 +6891,7 @@ Patchset: surface-sam 1 file changed, 3 insertions(+) diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c -index 0fe5be539652..0d8c8395c588 100644 +index 0fe5be5396525..0d8c8395c5886 100644 --- a/drivers/platform/surface/surface_aggregator_registry.c +++ b/drivers/platform/surface/surface_aggregator_registry.c @@ -367,6 +367,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = { @@ -6907,7 +6907,77 @@ index 0fe5be539652..0d8c8395c588 100644 -- 2.42.0 -From 2ba1a8bceb51c41accd3416aa85d86e58ae86d5d Mon Sep 17 00:00:00 2001 +From 0bb0adce3efad7a43fc3811f6cc24148c8c75253 Mon Sep 17 00:00:00 2001 +From: Maximilian Luz +Date: Mon, 20 Nov 2023 19:47:00 +0100 +Subject: [PATCH] platform/surface: aggregator_registry: Add support for + Surface Laptop Studio 2 + +Add SAM client device nodes for the Surface Laptop Studio 2 (SLS2). The +SLS2 is quite similar to the SLS1, but it does not provide the touchpad +as a SAM-HID device. Therefore, add a new node group for the SLS2 and +update the comments accordingly + +Signed-off-by: Maximilian Luz +Patchset: surface-sam +--- + .../surface/surface_aggregator_registry.c | 25 ++++++++++++++++--- + 1 file changed, 21 insertions(+), 4 deletions(-) + +diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c +index 0d8c8395c5886..530db4db71aba 100644 +--- a/drivers/platform/surface/surface_aggregator_registry.c ++++ b/drivers/platform/surface/surface_aggregator_registry.c +@@ -247,8 +247,8 @@ static const struct software_node *ssam_node_group_sl5[] = { + NULL, + }; + +-/* Devices for Surface Laptop Studio. */ +-static const struct software_node *ssam_node_group_sls[] = { ++/* Devices for Surface Laptop Studio 1. */ ++static const struct software_node *ssam_node_group_sls1[] = { + &ssam_node_root, + &ssam_node_bat_ac, + &ssam_node_bat_main, +@@ -263,6 +263,20 @@ static const struct software_node *ssam_node_group_sls[] = { + NULL, + }; + ++/* Devices for Surface Laptop Studio 2. */ ++static const struct software_node *ssam_node_group_sls2[] = { ++ &ssam_node_root, ++ &ssam_node_bat_ac, ++ &ssam_node_bat_main, ++ &ssam_node_tmp_pprof, ++ &ssam_node_pos_tablet_switch, ++ &ssam_node_hid_sam_keyboard, ++ &ssam_node_hid_sam_penstash, ++ &ssam_node_hid_sam_sensors, ++ &ssam_node_hid_sam_ucm_ucsi, ++ NULL, ++}; ++ + /* Devices for Surface Laptop Go. */ + static const struct software_node *ssam_node_group_slg1[] = { + &ssam_node_root, +@@ -370,8 +384,11 @@ static const struct acpi_device_id ssam_platform_hub_match[] = { + /* Surface Laptop Go 3 */ + { "MSHW0440", (unsigned long)ssam_node_group_slg1 }, + +- /* Surface Laptop Studio */ +- { "MSHW0123", (unsigned long)ssam_node_group_sls }, ++ /* Surface Laptop Studio 1 */ ++ { "MSHW0123", (unsigned long)ssam_node_group_sls1 }, ++ ++ /* Surface Laptop Studio 2 */ ++ { "MSHW0360", (unsigned long)ssam_node_group_sls2 }, + + { }, + }; +-- +2.42.0 + +From 3772b511c710c369b737fd0a111fbda63b028f1d Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 25 Jul 2020 17:19:53 +0200 Subject: [PATCH] i2c: acpi: Implement RawBytes read access @@ -6964,7 +7034,7 @@ Patchset: surface-sam-over-hid 1 file changed, 35 insertions(+) diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c -index d6037a328669..a290ebc77aea 100644 +index d6037a3286690..a290ebc77aea2 100644 --- a/drivers/i2c/i2c-core-acpi.c +++ b/drivers/i2c/i2c-core-acpi.c @@ -628,6 +628,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, @@ -7019,7 +7089,7 @@ index d6037a328669..a290ebc77aea 100644 -- 2.42.0 -From 646e55b10dd11dcabcb886a39c8d3b63ec16d867 Mon Sep 17 00:00:00 2001 +From f45a16750118da615fca44e7214204c83631ee7f Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 13 Feb 2021 16:41:18 +0100 Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch @@ -7042,7 +7112,7 @@ Patchset: surface-sam-over-hid create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig -index b629e82af97c..68656e8f309e 100644 +index b629e82af97c0..68656e8f309ed 100644 --- a/drivers/platform/surface/Kconfig +++ b/drivers/platform/surface/Kconfig @@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH @@ -7060,7 +7130,7 @@ index b629e82af97c..68656e8f309e 100644 tristate "Surface DTX (Detachment System) Driver" depends on SURFACE_AGGREGATOR diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile -index 53344330939b..7efcd0cdb532 100644 +index 53344330939bf..7efcd0cdb5329 100644 --- a/drivers/platform/surface/Makefile +++ b/drivers/platform/surface/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o @@ -7073,7 +7143,7 @@ index 53344330939b..7efcd0cdb532 100644 obj-$(CONFIG_SURFACE_HOTPLUG) += surface_hotplug.o diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c new file mode 100644 -index 000000000000..8b816ed8f35c +index 0000000000000..8b816ed8f35c6 --- /dev/null +++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c @@ -0,0 +1,162 @@ @@ -7242,7 +7312,7 @@ index 000000000000..8b816ed8f35c -- 2.42.0 -From f7519ec63734ab71e46bf03b6a38573788dfa29d Mon Sep 17 00:00:00 2001 +From a5d9cf4762a27e2bf7f38c0d5a223b9df8b4ba8a Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:05:09 +1100 Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices @@ -7264,7 +7334,7 @@ Patchset: surface-button 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c -index e79f5497948b..2bddbe6e9ea4 100644 +index e79f5497948b8..2bddbe6e9ea4d 100644 --- a/drivers/input/misc/soc_button_array.c +++ b/drivers/input/misc/soc_button_array.c @@ -537,8 +537,8 @@ static const struct soc_device_data soc_device_MSHW0028 = { @@ -7319,7 +7389,7 @@ index e79f5497948b..2bddbe6e9ea4 100644 -- 2.42.0 -From 500ba0980d1e89041a9c83a3e937df0a2119f4af Mon Sep 17 00:00:00 2001 +From 66f0a34801ad81ff08cc3ae0e175e0958959c461 Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:22:57 +1100 Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd @@ -7340,7 +7410,7 @@ Patchset: surface-button 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c -index 2755601f979c..4240c98ca226 100644 +index 2755601f979cd..4240c98ca2265 100644 --- a/drivers/platform/surface/surfacepro3_button.c +++ b/drivers/platform/surface/surfacepro3_button.c @@ -149,7 +149,8 @@ static int surface_button_resume(struct device *dev) @@ -7391,7 +7461,7 @@ index 2755601f979c..4240c98ca226 100644 -- 2.42.0 -From b478d859ace437e33ae34ff41d639566d877fff5 Mon Sep 17 00:00:00 2001 +From a55587ce4f5065bedb604f9031082ad47612a163 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 18 Feb 2023 01:02:49 +0100 Subject: [PATCH] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3 @@ -7416,7 +7486,7 @@ Patchset: surface-typecover 1 file changed, 3 insertions(+) diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 15e9bd180a1d..0d70461d01e1 100644 +index 15e9bd180a1d2..0d70461d01e16 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c @@ -220,6 +220,9 @@ static const struct usb_device_id usb_quirk_list[] = { @@ -7432,7 +7502,7 @@ index 15e9bd180a1d..0d70461d01e1 100644 -- 2.42.0 -From edb9e1949c6164b318183b3796eab9bbd5e3297e Mon Sep 17 00:00:00 2001 +From 678999792d6b1c72e56c6b63fc3909b93db47b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 5 Nov 2020 13:09:45 +0100 Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when @@ -7468,7 +7538,7 @@ Patchset: surface-typecover 1 file changed, 98 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index 521b2ffb4244..c8f3d05c8866 100644 +index 8db4ae05febc8..99a5efef45258 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -34,7 +34,10 @@ @@ -7650,7 +7720,7 @@ index 521b2ffb4244..c8f3d05c8866 100644 del_timer_sync(&td->release_timer); sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group); -@@ -2219,6 +2310,11 @@ static const struct hid_device_id mt_devices[] = { +@@ -2223,6 +2314,11 @@ static const struct hid_device_id mt_devices[] = { MT_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR2) }, @@ -7665,7 +7735,7 @@ index 521b2ffb4244..c8f3d05c8866 100644 -- 2.42.0 -From 687dbad7b7d5da3923289f28fb576231ffe79f99 Mon Sep 17 00:00:00 2001 +From 12427f01e38ebf653ccf44faefdcb92110c43c20 Mon Sep 17 00:00:00 2001 From: PJungkamp Date: Fri, 25 Feb 2022 12:04:25 +0100 Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet @@ -7694,7 +7764,7 @@ Patchset: surface-typecover 1 file changed, 122 insertions(+), 26 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index c8f3d05c8866..1c6e4d66e762 100644 +index 99a5efef45258..6ae43ea90bcd5 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -77,6 +77,7 @@ MODULE_LICENSE("GPL"); @@ -7965,7 +8035,7 @@ index c8f3d05c8866..1c6e4d66e762 100644 -- 2.42.0 -From 9349467c1adee5875fe9b6664f280a2d1ff77fb6 Mon Sep 17 00:00:00 2001 +From 151f9dba2f3d6d066d160128da109a0173a3ff4c Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 19 Feb 2023 22:12:24 +0100 Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod @@ -7990,7 +8060,7 @@ Patchset: surface-shutdown 3 files changed, 40 insertions(+) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index 41ee3dd8cecb..0bc473c2c187 100644 +index 51ec9e7e784f0..40554890d7211 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -507,6 +507,9 @@ static void pci_device_shutdown(struct device *dev) @@ -8004,13 +8074,13 @@ index 41ee3dd8cecb..0bc473c2c187 100644 if (drv && drv->shutdown) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 321156ca273d..37e06e778ce2 100644 +index e3e915329510f..666ff1e9b6d7b 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -6138,3 +6138,39 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a2d, dpc_log_size); - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a2f, dpc_log_size); - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a31, dpc_log_size); - #endif +@@ -6190,3 +6190,39 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a31, dpc_log_size); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5020, of_pci_make_dev_node); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5021, of_pci_make_dev_node); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REDHAT, 0x0005, of_pci_make_dev_node); + +static const struct dmi_system_id no_shutdown_dmi_table[] = { + /* @@ -8048,13 +8118,13 @@ index 321156ca273d..37e06e778ce2 100644 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU diff --git a/include/linux/pci.h b/include/linux/pci.h -index 7ee498cd1f37..740049a82343 100644 +index 8c7c2c3c6c652..0c223b04dff91 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h -@@ -464,6 +464,7 @@ struct pci_dev { - unsigned int no_vf_scan:1; /* Don't scan for VFs after IOV enablement */ +@@ -465,6 +465,7 @@ struct pci_dev { unsigned int no_command_memory:1; /* No PCI_COMMAND_MEMORY */ unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */ + unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */ + unsigned int no_shutdown:1; /* Do not touch device on shutdown */ pci_dev_flags_t dev_flags; atomic_t enable_cnt; /* pci_enable_device has been called */ @@ -8062,7 +8132,7 @@ index 7ee498cd1f37..740049a82343 100644 -- 2.42.0 -From cc9f1aa3808d704ee8cbdb971ff2395d8db57b6d Mon Sep 17 00:00:00 2001 +From 912e956823b3cadd7203d3ce94418d162ff701be Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 12 Mar 2023 01:41:57 +0100 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9 @@ -8076,7 +8146,7 @@ Patchset: surface-gpe 1 file changed, 17 insertions(+) diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c -index c219b840d491..69c4352e8406 100644 +index c219b840d491a..69c4352e8406b 100644 --- a/drivers/platform/surface/surface_gpe.c +++ b/drivers/platform/surface/surface_gpe.c @@ -41,6 +41,11 @@ static const struct property_entry lid_device_props_l4F[] = { @@ -8113,7 +8183,7 @@ index c219b840d491..69c4352e8406 100644 -- 2.42.0 -From 6d04b8ab365775a6b1ab7b7c560b5d50e78bb783 Mon Sep 17 00:00:00 2001 +From df083025f8c63824279c19de8ec3339440f819c9 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:56:57 +0200 Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an @@ -8173,10 +8243,10 @@ Patchset: cameras 1 file changed, 3 insertions(+) diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index 87e385542576..1183d09c13a6 100644 +index 691d4b7686ee7..9283217689279 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c -@@ -2105,6 +2105,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used, +@@ -2108,6 +2108,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used, static void acpi_default_enumeration(struct acpi_device *device) { @@ -8189,7 +8259,7 @@ index 87e385542576..1183d09c13a6 100644 -- 2.42.0 -From df1aa869818d56d8153223c60d74fb307cf3ff81 Mon Sep 17 00:00:00 2001 +From 87650a001d3068a8b614fd688e21bb87c2d3a3e6 Mon Sep 17 00:00:00 2001 From: zouxiaoh Date: Fri, 25 Jun 2021 08:52:59 +0800 Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs @@ -8215,10 +8285,10 @@ Patchset: cameras 1 file changed, 30 insertions(+) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c -index 6387f3a6eccf..d75107c47de0 100644 +index 5a627e081797c..da866ac6b30ba 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c -@@ -37,6 +37,12 @@ +@@ -38,6 +38,12 @@ #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY) #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) @@ -8231,7 +8301,7 @@ index 6387f3a6eccf..d75107c47de0 100644 #define IS_IPTS(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \ ((pdev)->device == 0x9d3e)) #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e) -@@ -290,12 +296,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled); +@@ -295,12 +301,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; static int dmar_map_ipts = 1; @@ -8246,7 +8316,7 @@ index 6387f3a6eccf..d75107c47de0 100644 #define IDENTMAP_IPTS 16 const struct iommu_ops intel_iommu_ops; -@@ -2553,6 +2561,9 @@ static int device_def_domain_type(struct device *dev) +@@ -2547,6 +2555,9 @@ static int device_def_domain_type(struct device *dev) if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev)) return IOMMU_DOMAIN_IDENTITY; @@ -8256,7 +8326,7 @@ index 6387f3a6eccf..d75107c47de0 100644 if ((iommu_identity_mapping & IDENTMAP_IPTS) && IS_IPTS(pdev)) return IOMMU_DOMAIN_IDENTITY; } -@@ -2862,6 +2873,9 @@ static int __init init_dmars(void) +@@ -2856,6 +2867,9 @@ static int __init init_dmars(void) if (!dmar_map_gfx) iommu_identity_mapping |= IDENTMAP_GFX; @@ -8266,7 +8336,7 @@ index 6387f3a6eccf..d75107c47de0 100644 if (!dmar_map_ipts) iommu_identity_mapping |= IDENTMAP_IPTS; -@@ -4765,6 +4779,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev) +@@ -4838,6 +4852,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev) dmar_map_gfx = 0; } @@ -8285,7 +8355,7 @@ index 6387f3a6eccf..d75107c47de0 100644 static void quirk_iommu_ipts(struct pci_dev *dev) { if (!IS_IPTS(dev)) -@@ -4776,6 +4802,7 @@ static void quirk_iommu_ipts(struct pci_dev *dev) +@@ -4849,6 +4875,7 @@ static void quirk_iommu_ipts(struct pci_dev *dev) pci_info(dev, "Passthrough IOMMU for IPTS\n"); dmar_map_ipts = 0; } @@ -8293,7 +8363,7 @@ index 6387f3a6eccf..d75107c47de0 100644 /* G4x/GM45 integrated gfx dmar support is totally busted. */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx); -@@ -4811,6 +4838,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx); +@@ -4884,6 +4911,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx); @@ -8306,7 +8376,7 @@ index 6387f3a6eccf..d75107c47de0 100644 -- 2.42.0 -From 58f403707b4b56371254100412f325a30ef1707d Mon Sep 17 00:00:00 2001 +From 76fec27d978bf7708a60862d4aab2e1fe7ec3f27 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sun, 10 Oct 2021 20:57:02 +0200 Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain @@ -8323,7 +8393,7 @@ Patchset: cameras 1 file changed, 7 insertions(+) diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c -index 1e107fd49f82..e3e1696e7f0e 100644 +index 1e107fd49f828..e3e1696e7f0ee 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -46,6 +46,13 @@ static int tps68470_chip_init(struct device *dev, struct regmap *regmap) @@ -8343,692 +8413,7 @@ index 1e107fd49f82..e3e1696e7f0e 100644 -- 2.42.0 -From 60a2d404d65225351612a7d3d3d5a1d1a382ca82 Mon Sep 17 00:00:00 2001 -From: Daniel Scally -Date: Wed, 4 May 2022 23:21:45 +0100 -Subject: [PATCH] media: ipu3-cio2: Move functionality from .complete() to - .bound() - -Creating links and registering subdev nodes during the .complete() -callback has the unfortunate effect of preventing all cameras that -connect to a notifier from working if any one of their drivers fails -to probe. Moving the functionality from .complete() to .bound() allows -those camera sensor drivers that did probe correctly to work regardless. - -Signed-off-by: Daniel Scally -Patchset: cameras ---- - drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 59 +++++++------------ - 1 file changed, 21 insertions(+), 38 deletions(-) - -diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -index ca51776a961f..c027b2bfd851 100644 ---- a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -@@ -1386,7 +1386,10 @@ static int cio2_notifier_bound(struct v4l2_async_notifier *notifier, - { - struct cio2_device *cio2 = to_cio2_device(notifier); - struct sensor_async_subdev *s_asd = to_sensor_asd(asd); -+ struct device *dev = &cio2->pci_dev->dev; - struct cio2_queue *q; -+ unsigned int pad; -+ int ret; - - if (cio2->queue[s_asd->csi2.port].sensor) - return -EBUSY; -@@ -1397,7 +1400,24 @@ static int cio2_notifier_bound(struct v4l2_async_notifier *notifier, - q->sensor = sd; - q->csi_rx_base = cio2->base + CIO2_REG_PIPE_BASE(q->csi2.port); - -- return 0; -+ ret = media_entity_get_fwnode_pad(&q->sensor->entity, -+ s_asd->asd.match.fwnode, -+ MEDIA_PAD_FL_SOURCE); -+ if (ret < 0) { -+ dev_err(dev, "no pad for endpoint %pfw (%d)\n", -+ s_asd->asd.match.fwnode, ret); -+ return ret; -+ } -+ -+ ret = media_create_pad_link(&q->sensor->entity, ret, &q->subdev.entity, -+ CIO2_PAD_SINK, 0); -+ if (ret) { -+ dev_err(dev, "failed to create link for %s\n", -+ q->sensor->name); -+ return ret; -+ } -+ -+ return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev); - } - - /* The .unbind callback */ -@@ -1411,46 +1431,9 @@ static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier, - cio2->queue[s_asd->csi2.port].sensor = NULL; - } - --/* .complete() is called after all subdevices have been located */ --static int cio2_notifier_complete(struct v4l2_async_notifier *notifier) --{ -- struct cio2_device *cio2 = to_cio2_device(notifier); -- struct device *dev = &cio2->pci_dev->dev; -- struct sensor_async_subdev *s_asd; -- struct v4l2_async_subdev *asd; -- struct cio2_queue *q; -- int ret; -- -- list_for_each_entry(asd, &cio2->notifier.asd_list, asd_list) { -- s_asd = to_sensor_asd(asd); -- q = &cio2->queue[s_asd->csi2.port]; -- -- ret = media_entity_get_fwnode_pad(&q->sensor->entity, -- s_asd->asd.match.fwnode, -- MEDIA_PAD_FL_SOURCE); -- if (ret < 0) { -- dev_err(dev, "no pad for endpoint %pfw (%d)\n", -- s_asd->asd.match.fwnode, ret); -- return ret; -- } -- -- ret = media_create_pad_link(&q->sensor->entity, ret, -- &q->subdev.entity, CIO2_PAD_SINK, -- 0); -- if (ret) { -- dev_err(dev, "failed to create link for %s (endpoint %pfw, error %d)\n", -- q->sensor->name, s_asd->asd.match.fwnode, ret); -- return ret; -- } -- } -- -- return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev); --} -- - static const struct v4l2_async_notifier_operations cio2_async_ops = { - .bound = cio2_notifier_bound, - .unbind = cio2_notifier_unbind, -- .complete = cio2_notifier_complete, - }; - - static int cio2_parse_firmware(struct cio2_device *cio2) --- -2.42.0 - -From e9b59c24855f146141b665efed05b7455aeb5fd4 Mon Sep 17 00:00:00 2001 -From: Daniel Scally -Date: Thu, 2 Jun 2022 22:15:56 +0100 -Subject: [PATCH] media: ipu3-cio2: Re-add .complete() to ipu3-cio2 - -Removing the .complete() callback had some unintended consequences. -Because the VCM driver is not directly linked to the ipu3-cio2 -driver .bound() never gets called for it, which means its devnode -is never created if it probes late. Because .complete() waits for -any sub-notifiers to also be complete it is captured in that call. - -Signed-off-by: Daniel Scally -Patchset: cameras ---- - drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -index c027b2bfd851..031acee26553 100644 ---- a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c -@@ -1431,9 +1431,18 @@ static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier, - cio2->queue[s_asd->csi2.port].sensor = NULL; - } - -+/* .complete() is called after all subdevices have been located */ -+static int cio2_notifier_complete(struct v4l2_async_notifier *notifier) -+{ -+ struct cio2_device *cio2 = to_cio2_device(notifier); -+ -+ return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev); -+} -+ - static const struct v4l2_async_notifier_operations cio2_async_ops = { - .bound = cio2_notifier_bound, - .unbind = cio2_notifier_unbind, -+ .complete = cio2_notifier_complete, - }; - - static int cio2_parse_firmware(struct cio2_device *cio2) --- -2.42.0 - -From 0926490302f353661c1a454f27611f5c94d928f0 Mon Sep 17 00:00:00 2001 -From: Daniel Scally -Date: Thu, 28 Oct 2021 21:55:16 +0100 -Subject: [PATCH] media: i2c: Add driver for DW9719 VCM - -Add a driver for the DW9719 VCM. The driver creates a v4l2 subdevice -and registers a control to set the desired focus. - -Signed-off-by: Daniel Scally -Patchset: cameras ---- - MAINTAINERS | 7 + - drivers/media/i2c/Kconfig | 11 + - drivers/media/i2c/Makefile | 1 + - drivers/media/i2c/dw9719.c | 425 +++++++++++++++++++++++++++++++++++++ - 4 files changed, 444 insertions(+) - create mode 100644 drivers/media/i2c/dw9719.c - -diff --git a/MAINTAINERS b/MAINTAINERS -index 4cc6bf79fdd8..439cf523b80e 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -6251,6 +6251,13 @@ T: git git://linuxtv.org/media_tree.git - F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml - F: drivers/media/i2c/dw9714.c - -+DONGWOON DW9719 LENS VOICE COIL DRIVER -+M: Daniel Scally -+L: linux-media@vger.kernel.org -+S: Maintained -+T: git git://linuxtv.org/media_tree.git -+F: drivers/media/i2c/dw9719.c -+ - DONGWOON DW9768 LENS VOICE COIL DRIVER - M: Dongchun Zhu - L: linux-media@vger.kernel.org -diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index 0669aea3eba3..6959ee1a89fb 100644 ---- a/drivers/media/i2c/Kconfig -+++ b/drivers/media/i2c/Kconfig -@@ -855,6 +855,17 @@ config VIDEO_DW9714 - capability. This is designed for linear control of - voice coil motors, controlled via I2C serial interface. - -+config VIDEO_DW9719 -+ tristate "DW9719 lens voice coil support" -+ depends on I2C && VIDEO_V4L2 -+ select MEDIA_CONTROLLER -+ select VIDEO_V4L2_SUBDEV_API -+ select V4L2_ASYNC -+ help -+ This is a driver for the DW9719 camera lens voice coil. -+ This is designed for linear control of voice coil motors, -+ controlled via I2C serial interface. -+ - config VIDEO_DW9768 - tristate "DW9768 lens voice coil support" - depends on I2C && VIDEO_DEV -diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index c743aeb5d1ad..db1ebf5cadfe 100644 ---- a/drivers/media/i2c/Makefile -+++ b/drivers/media/i2c/Makefile -@@ -29,6 +29,7 @@ obj-$(CONFIG_VIDEO_CS5345) += cs5345.o - obj-$(CONFIG_VIDEO_CS53L32A) += cs53l32a.o - obj-$(CONFIG_VIDEO_CX25840) += cx25840/ - obj-$(CONFIG_VIDEO_DW9714) += dw9714.o -+obj-$(CONFIG_VIDEO_DW9719) += dw9719.o - obj-$(CONFIG_VIDEO_DW9768) += dw9768.o - obj-$(CONFIG_VIDEO_DW9807_VCM) += dw9807-vcm.o - obj-$(CONFIG_VIDEO_ET8EK8) += et8ek8/ -diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c -new file mode 100644 -index 000000000000..180b04d2a6b3 ---- /dev/null -+++ b/drivers/media/i2c/dw9719.c -@@ -0,0 +1,425 @@ -+// SPDX-License-Identifier: GPL-2.0 -+// Copyright (c) 2012 Intel Corporation -+ -+/* -+ * Based on linux/modules/camera/drivers/media/i2c/imx/dw9719.c in this repo: -+ * https://github.com/ZenfoneArea/android_kernel_asus_zenfone5 -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#define DW9719_MAX_FOCUS_POS 1023 -+#define DW9719_CTRL_STEPS 16 -+#define DW9719_CTRL_DELAY_US 1000 -+#define DELAY_MAX_PER_STEP_NS (1000000 * 1023) -+ -+#define DW9719_INFO 0 -+#define DW9719_ID 0xF1 -+#define DW9719_CONTROL 2 -+#define DW9719_VCM_CURRENT 3 -+ -+#define DW9719_MODE 6 -+#define DW9719_VCM_FREQ 7 -+ -+#define DW9719_MODE_SAC3 0x40 -+#define DW9719_DEFAULT_VCM_FREQ 0x60 -+#define DW9719_ENABLE_RINGING 0x02 -+ -+#define NUM_REGULATORS 2 -+ -+#define to_dw9719_device(x) container_of(x, struct dw9719_device, sd) -+ -+struct dw9719_device { -+ struct device *dev; -+ struct i2c_client *client; -+ struct regulator_bulk_data regulators[NUM_REGULATORS]; -+ struct v4l2_subdev sd; -+ -+ struct dw9719_v4l2_ctrls { -+ struct v4l2_ctrl_handler handler; -+ struct v4l2_ctrl *focus; -+ } ctrls; -+}; -+ -+static int dw9719_i2c_rd8(struct i2c_client *client, u8 reg, u8 *val) -+{ -+ struct i2c_msg msg[2]; -+ u8 buf[2] = { reg }; -+ int ret; -+ -+ msg[0].addr = client->addr; -+ msg[0].flags = 0; -+ msg[0].len = 1; -+ msg[0].buf = buf; -+ -+ msg[1].addr = client->addr; -+ msg[1].flags = I2C_M_RD; -+ msg[1].len = 1; -+ msg[1].buf = &buf[1]; -+ *val = 0; -+ -+ ret = i2c_transfer(client->adapter, msg, 2); -+ if (ret < 0) -+ return ret; -+ -+ *val = buf[1]; -+ -+ return 0; -+} -+ -+static int dw9719_i2c_wr8(struct i2c_client *client, u8 reg, u8 val) -+{ -+ struct i2c_msg msg; -+ int ret; -+ -+ u8 buf[2] = { reg, val }; -+ -+ msg.addr = client->addr; -+ msg.flags = 0; -+ msg.len = sizeof(buf); -+ msg.buf = buf; -+ -+ ret = i2c_transfer(client->adapter, &msg, 1); -+ -+ return ret < 0 ? ret : 0; -+} -+ -+static int dw9719_i2c_wr16(struct i2c_client *client, u8 reg, u16 val) -+{ -+ struct i2c_msg msg; -+ u8 buf[3] = { reg }; -+ int ret; -+ -+ put_unaligned_be16(val, buf + 1); -+ -+ msg.addr = client->addr; -+ msg.flags = 0; -+ msg.len = sizeof(buf); -+ msg.buf = buf; -+ -+ ret = i2c_transfer(client->adapter, &msg, 1); -+ -+ return ret < 0 ? ret : 0; -+} -+ -+static int dw9719_detect(struct dw9719_device *dw9719) -+{ -+ int ret; -+ u8 val; -+ -+ ret = dw9719_i2c_rd8(dw9719->client, DW9719_INFO, &val); -+ if (ret < 0) -+ return ret; -+ -+ if (val != DW9719_ID) { -+ dev_err(dw9719->dev, "Failed to detect correct id\n"); -+ ret = -ENXIO; -+ } -+ -+ return 0; -+} -+ -+static int dw9719_power_down(struct dw9719_device *dw9719) -+{ -+ return regulator_bulk_disable(NUM_REGULATORS, dw9719->regulators); -+} -+ -+static int dw9719_power_up(struct dw9719_device *dw9719) -+{ -+ int ret; -+ -+ ret = regulator_bulk_enable(NUM_REGULATORS, dw9719->regulators); -+ if (ret) -+ return ret; -+ -+ /* Jiggle SCL pin to wake up device */ -+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_CONTROL, 1); -+ -+ /* Need 100us to transit from SHUTDOWN to STANDBY*/ -+ usleep_range(100, 1000); -+ -+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_CONTROL, -+ DW9719_ENABLE_RINGING); -+ if (ret < 0) -+ goto fail_powerdown; -+ -+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_MODE, DW9719_MODE_SAC3); -+ if (ret < 0) -+ goto fail_powerdown; -+ -+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_VCM_FREQ, -+ DW9719_DEFAULT_VCM_FREQ); -+ if (ret < 0) -+ goto fail_powerdown; -+ -+ return 0; -+ -+fail_powerdown: -+ dw9719_power_down(dw9719); -+ return ret; -+} -+ -+static int dw9719_t_focus_abs(struct dw9719_device *dw9719, s32 value) -+{ -+ int ret; -+ -+ value = clamp(value, 0, DW9719_MAX_FOCUS_POS); -+ ret = dw9719_i2c_wr16(dw9719->client, DW9719_VCM_CURRENT, value); -+ if (ret < 0) -+ return ret; -+ -+ return 0; -+} -+ -+static int dw9719_set_ctrl(struct v4l2_ctrl *ctrl) -+{ -+ struct dw9719_device *dw9719 = container_of(ctrl->handler, -+ struct dw9719_device, -+ ctrls.handler); -+ int ret; -+ -+ /* Only apply changes to the controls if the device is powered up */ -+ if (!pm_runtime_get_if_in_use(dw9719->dev)) -+ return 0; -+ -+ switch (ctrl->id) { -+ case V4L2_CID_FOCUS_ABSOLUTE: -+ ret = dw9719_t_focus_abs(dw9719, ctrl->val); -+ break; -+ default: -+ ret = -EINVAL; -+ } -+ -+ pm_runtime_put(dw9719->dev); -+ -+ return ret; -+} -+ -+static const struct v4l2_ctrl_ops dw9719_ctrl_ops = { -+ .s_ctrl = dw9719_set_ctrl, -+}; -+ -+static int __maybe_unused dw9719_suspend(struct device *dev) -+{ -+ struct v4l2_subdev *sd = dev_get_drvdata(dev); -+ struct dw9719_device *dw9719 = to_dw9719_device(sd); -+ int ret; -+ int val; -+ -+ for (val = dw9719->ctrls.focus->val; val >= 0; -+ val -= DW9719_CTRL_STEPS) { -+ ret = dw9719_t_focus_abs(dw9719, val); -+ if (ret) -+ return ret; -+ -+ usleep_range(DW9719_CTRL_DELAY_US, DW9719_CTRL_DELAY_US + 10); -+ } -+ -+ return dw9719_power_down(dw9719); -+} -+ -+static int __maybe_unused dw9719_resume(struct device *dev) -+{ -+ struct v4l2_subdev *sd = dev_get_drvdata(dev); -+ struct dw9719_device *dw9719 = to_dw9719_device(sd); -+ int current_focus = dw9719->ctrls.focus->val; -+ int ret; -+ int val; -+ -+ ret = dw9719_power_up(dw9719); -+ if (ret) -+ return ret; -+ -+ for (val = current_focus % DW9719_CTRL_STEPS; val < current_focus; -+ val += DW9719_CTRL_STEPS) { -+ ret = dw9719_t_focus_abs(dw9719, val); -+ if (ret) -+ goto err_power_down; -+ -+ usleep_range(DW9719_CTRL_DELAY_US, DW9719_CTRL_DELAY_US + 10); -+ } -+ -+ return 0; -+ -+err_power_down: -+ dw9719_power_down(dw9719); -+ return ret; -+} -+ -+static int dw9719_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) -+{ -+ return pm_runtime_resume_and_get(sd->dev); -+} -+ -+static int dw9719_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) -+{ -+ pm_runtime_put(sd->dev); -+ -+ return 0; -+} -+ -+static const struct v4l2_subdev_internal_ops dw9719_internal_ops = { -+ .open = dw9719_open, -+ .close = dw9719_close, -+}; -+ -+static int dw9719_init_controls(struct dw9719_device *dw9719) -+{ -+ const struct v4l2_ctrl_ops *ops = &dw9719_ctrl_ops; -+ int ret; -+ -+ ret = v4l2_ctrl_handler_init(&dw9719->ctrls.handler, 1); -+ if (ret) -+ return ret; -+ -+ dw9719->ctrls.focus = v4l2_ctrl_new_std(&dw9719->ctrls.handler, ops, -+ V4L2_CID_FOCUS_ABSOLUTE, 0, -+ DW9719_MAX_FOCUS_POS, 1, 0); -+ -+ if (dw9719->ctrls.handler.error) { -+ dev_err(dw9719->dev, "Error initialising v4l2 ctrls\n"); -+ ret = dw9719->ctrls.handler.error; -+ goto err_free_handler; -+ } -+ -+ dw9719->sd.ctrl_handler = &dw9719->ctrls.handler; -+ -+ return ret; -+ -+err_free_handler: -+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler); -+ return ret; -+} -+ -+static const struct v4l2_subdev_ops dw9719_ops = { }; -+ -+static int dw9719_probe(struct i2c_client *client) -+{ -+ struct dw9719_device *dw9719; -+ int ret; -+ -+ dw9719 = devm_kzalloc(&client->dev, sizeof(*dw9719), GFP_KERNEL); -+ if (!dw9719) -+ return -ENOMEM; -+ -+ dw9719->client = client; -+ dw9719->dev = &client->dev; -+ -+ dw9719->regulators[0].supply = "vdd"; -+ /* -+ * The DW9719 has only the 1 VDD voltage input, but some PMICs such as -+ * the TPS68470 PMIC have I2C passthrough capability, to disconnect the -+ * sensor's I2C pins from the I2C bus when the sensors VSIO (Sensor-IO) -+ * is off, because some sensors then short these pins to ground; -+ * and the DW9719 might sit behind this passthrough, this it needs to -+ * enable VSIO as that will also enable the I2C passthrough. -+ */ -+ dw9719->regulators[1].supply = "vsio"; -+ -+ ret = devm_regulator_bulk_get(&client->dev, NUM_REGULATORS, -+ dw9719->regulators); -+ if (ret) -+ return dev_err_probe(&client->dev, ret, "getting regulators\n"); -+ -+ v4l2_i2c_subdev_init(&dw9719->sd, client, &dw9719_ops); -+ dw9719->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; -+ dw9719->sd.internal_ops = &dw9719_internal_ops; -+ -+ ret = dw9719_init_controls(dw9719); -+ if (ret) -+ return ret; -+ -+ ret = media_entity_pads_init(&dw9719->sd.entity, 0, NULL); -+ if (ret < 0) -+ goto err_free_ctrl_handler; -+ -+ dw9719->sd.entity.function = MEDIA_ENT_F_LENS; -+ -+ /* -+ * We need the driver to work in the event that pm runtime is disable in -+ * the kernel, so power up and verify the chip now. In the event that -+ * runtime pm is disabled this will leave the chip on, so that the lens -+ * will work. -+ */ -+ -+ ret = dw9719_power_up(dw9719); -+ if (ret) -+ goto err_cleanup_media; -+ -+ ret = dw9719_detect(dw9719); -+ if (ret) -+ goto err_powerdown; -+ -+ pm_runtime_set_active(&client->dev); -+ pm_runtime_get_noresume(&client->dev); -+ pm_runtime_enable(&client->dev); -+ -+ ret = v4l2_async_register_subdev(&dw9719->sd); -+ if (ret < 0) -+ goto err_pm_runtime; -+ -+ pm_runtime_set_autosuspend_delay(&client->dev, 1000); -+ pm_runtime_use_autosuspend(&client->dev); -+ pm_runtime_put_autosuspend(&client->dev); -+ -+ return ret; -+ -+err_pm_runtime: -+ pm_runtime_disable(&client->dev); -+ pm_runtime_put_noidle(&client->dev); -+err_powerdown: -+ dw9719_power_down(dw9719); -+err_cleanup_media: -+ media_entity_cleanup(&dw9719->sd.entity); -+err_free_ctrl_handler: -+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler); -+ -+ return ret; -+} -+ -+static void dw9719_remove(struct i2c_client *client) -+{ -+ struct v4l2_subdev *sd = i2c_get_clientdata(client); -+ struct dw9719_device *dw9719 = container_of(sd, struct dw9719_device, -+ sd); -+ -+ pm_runtime_disable(&client->dev); -+ v4l2_async_unregister_subdev(sd); -+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler); -+ media_entity_cleanup(&dw9719->sd.entity); -+} -+ -+static const struct i2c_device_id dw9719_id_table[] = { -+ { "dw9719" }, -+ { } -+}; -+MODULE_DEVICE_TABLE(i2c, dw9719_id_table); -+ -+static const struct dev_pm_ops dw9719_pm_ops = { -+ SET_RUNTIME_PM_OPS(dw9719_suspend, dw9719_resume, NULL) -+}; -+ -+static struct i2c_driver dw9719_i2c_driver = { -+ .driver = { -+ .name = "dw9719", -+ .pm = &dw9719_pm_ops, -+ }, -+ .probe_new = dw9719_probe, -+ .remove = dw9719_remove, -+ .id_table = dw9719_id_table, -+}; -+module_i2c_driver(dw9719_i2c_driver); -+ -+MODULE_AUTHOR("Daniel Scally "); -+MODULE_DESCRIPTION("DW9719 VCM Driver"); -+MODULE_LICENSE("GPL"); --- -2.42.0 - -From 3a35f5894c7e979357c64bbf198bd35dc3489a0a Mon Sep 17 00:00:00 2001 -From: Maximilian Luz -Date: Fri, 15 Jul 2022 23:48:00 +0200 -Subject: [PATCH] drivers/media/i2c: Fix DW9719 dependencies - -It should depend on VIDEO_DEV instead of VIDEO_V4L2. - -Signed-off-by: Maximilian Luz -Patchset: cameras ---- - drivers/media/i2c/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index 6959ee1a89fb..1d5082fe9ce3 100644 ---- a/drivers/media/i2c/Kconfig -+++ b/drivers/media/i2c/Kconfig -@@ -857,7 +857,7 @@ config VIDEO_DW9714 - - config VIDEO_DW9719 - tristate "DW9719 lens voice coil support" -- depends on I2C && VIDEO_V4L2 -+ depends on I2C && VIDEO_DEV - select MEDIA_CONTROLLER - select VIDEO_V4L2_SUBDEV_API - select V4L2_ASYNC --- -2.42.0 - -From acbd8c1b38ffee270862e8efcf68ae3580b1b82d Mon Sep 17 00:00:00 2001 +From 232a0f88ecc21141c6f0d94cc74eb63c7869c217 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 2 Mar 2023 12:59:39 +0000 Subject: [PATCH] platform/x86: int3472: Remap reset GPIO for INT347E @@ -9050,7 +8435,7 @@ Patchset: cameras 1 file changed, 14 insertions(+) diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c -index e33c2d75975c..c0c90ae66b70 100644 +index e33c2d75975cf..c0c90ae66b705 100644 --- a/drivers/platform/x86/intel/int3472/discrete.c +++ b/drivers/platform/x86/intel/int3472/discrete.c @@ -57,6 +57,9 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347 @@ -9084,7 +8469,7 @@ index e33c2d75975c..c0c90ae66b70 100644 -- 2.42.0 -From b2ae8fc0aecde894bf6e8f52e515de645f1b4739 Mon Sep 17 00:00:00 2001 +From 0cfd5c05a675388bbb2edfa87423dc5ad931cc97 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 21 Mar 2023 13:45:26 +0000 Subject: [PATCH] media: i2c: Clarify that gain is Analogue gain in OV7251 @@ -9099,7 +8484,7 @@ Patchset: cameras 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c -index 675fb37a6fea..43b30db08c9e 100644 +index 675fb37a6feae..43b30db08c9e4 100644 --- a/drivers/media/i2c/ov7251.c +++ b/drivers/media/i2c/ov7251.c @@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl) @@ -9123,7 +8508,7 @@ index 675fb37a6fea..43b30db08c9e 100644 -- 2.42.0 -From 590fe333492348f48411fd9c2fc14d4302223266 Mon Sep 17 00:00:00 2001 +From 18fa273c21f1dd86160f18242a81947392272443 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 22 Mar 2023 11:01:42 +0000 Subject: [PATCH] media: v4l2-core: Acquire privacy led in @@ -9142,27 +8527,27 @@ Patchset: cameras 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c -index b16b5f4cb91e..33739a979cbc 100644 +index 091e8cf4114ba..cca10f5355844 100644 --- a/drivers/media/v4l2-core/v4l2-async.c +++ b/drivers/media/v4l2-core/v4l2-async.c -@@ -760,6 +760,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd) - struct v4l2_async_notifier *notifier; - int ret; +@@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd) + + INIT_LIST_HEAD(&sd->asc_list); + ret = v4l2_subdev_get_privacy_led(sd); + if (ret < 0) + return ret; + /* - * No reference taken. The reference is held by the device - * (struct v4l2_subdev.dev), and async sub-device does not + * No reference taken. The reference is held by the device (struct + * v4l2_subdev.dev), and async sub-device does not exist independently diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c -index 4fa9225aa3d9..ed4c75253cbc 100644 +index 7f181fbbb1407..1c0347de4e216 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c -@@ -1314,10 +1314,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd) +@@ -1217,10 +1217,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd) - v4l2_async_nf_init(notifier); + v4l2_async_subdev_nf_init(notifier, sd); - ret = v4l2_subdev_get_privacy_led(sd); - if (ret < 0) @@ -9174,7 +8559,7 @@ index 4fa9225aa3d9..ed4c75253cbc 100644 -- 2.42.0 -From cf42b6660ce6a705292e0cd0df8e7d39dcae8f04 Mon Sep 17 00:00:00 2001 +From 07e01113f2641afab78b155d42e9d9d399a9e164 Mon Sep 17 00:00:00 2001 From: Kate Hsuan Date: Tue, 21 Mar 2023 23:37:16 +0800 Subject: [PATCH] platform: x86: int3472: Add MFD cell for tps68470 LED @@ -9190,7 +8575,7 @@ Patchset: cameras 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c -index e3e1696e7f0e..423dc555093f 100644 +index e3e1696e7f0ee..423dc555093f7 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -17,7 +17,7 @@ @@ -9215,7 +8600,7 @@ index e3e1696e7f0e..423dc555093f 100644 -- 2.42.0 -From 5ef4b0088658da64a7f39c37e33aad3469b3fb39 Mon Sep 17 00:00:00 2001 +From a704bf822539e09b00015110b48bc997692c92ce Mon Sep 17 00:00:00 2001 From: Kate Hsuan Date: Tue, 21 Mar 2023 23:37:17 +0800 Subject: [PATCH] include: mfd: tps68470: Add masks for LEDA and LEDB @@ -9233,7 +8618,7 @@ Patchset: cameras 1 file changed, 5 insertions(+) diff --git a/include/linux/mfd/tps68470.h b/include/linux/mfd/tps68470.h -index 7807fa329db0..2d2abb25b944 100644 +index 7807fa329db00..2d2abb25b944f 100644 --- a/include/linux/mfd/tps68470.h +++ b/include/linux/mfd/tps68470.h @@ -34,6 +34,7 @@ @@ -9256,7 +8641,7 @@ index 7807fa329db0..2d2abb25b944 100644 -- 2.42.0 -From 3296fb49f2be7439c31fb45250c403a484107463 Mon Sep 17 00:00:00 2001 +From c8a6ce96be3a4dca7e9e99613b28494d10b4ade0 Mon Sep 17 00:00:00 2001 From: Kate Hsuan Date: Tue, 21 Mar 2023 23:37:18 +0800 Subject: [PATCH] leds: tps68470: Add LED control for tps68470 @@ -9279,10 +8664,10 @@ Patchset: cameras create mode 100644 drivers/leds/leds-tps68470.c diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig -index 6046dfeca16f..385c06e4f1d3 100644 +index b92208eccdea9..312c0c21cc5ef 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig -@@ -864,6 +864,18 @@ config LEDS_TPS6105X +@@ -873,6 +873,18 @@ config LEDS_TPS6105X It is a single boost converter primarily for white LEDs and audio amplifiers. @@ -9302,10 +8687,10 @@ index 6046dfeca16f..385c06e4f1d3 100644 tristate "LED support for SGI Octane machines" depends on LEDS_CLASS diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile -index d71f1226540c..e2002b535967 100644 +index d7348e8bc019a..10caea4e7c614 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile -@@ -83,6 +83,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o +@@ -84,6 +84,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o obj-$(CONFIG_LEDS_TPS6105X) += leds-tps6105x.o @@ -9315,7 +8700,7 @@ index d71f1226540c..e2002b535967 100644 obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c new file mode 100644 -index 000000000000..35aeb5db89c8 +index 0000000000000..35aeb5db89c8f --- /dev/null +++ b/drivers/leds/leds-tps68470.c @@ -0,0 +1,185 @@ @@ -9507,7 +8892,7 @@ index 000000000000..35aeb5db89c8 -- 2.42.0 -From bc06956985ee377fba5e8a4483d8777373c3d54c Mon Sep 17 00:00:00 2001 +From 82252c3764ecee6c09218077759072f15001f9ee Mon Sep 17 00:00:00 2001 From: Sachi King Date: Sat, 29 May 2021 17:47:38 +1000 Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7 @@ -9530,7 +8915,7 @@ Patchset: amd-gpio 1 file changed, 17 insertions(+) diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c -index 53369c57751e..1ec1a9015178 100644 +index c55c0ef47a187..f29740cf89ff6 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -22,6 +22,7 @@ @@ -9541,7 +8926,7 @@ index 53369c57751e..1ec1a9015178 100644 #include #include -@@ -1256,6 +1257,17 @@ static void __init mp_config_acpi_legacy_irqs(void) +@@ -1255,6 +1256,17 @@ static void __init mp_config_acpi_legacy_irqs(void) } } @@ -9559,7 +8944,7 @@ index 53369c57751e..1ec1a9015178 100644 /* * Parse IOAPIC related entries in MADT * returns 0 on success, < 0 on error -@@ -1311,6 +1323,11 @@ static int __init acpi_parse_madt_ioapic_entries(void) +@@ -1310,6 +1322,11 @@ static int __init acpi_parse_madt_ioapic_entries(void) acpi_sci_ioapic_setup(acpi_gbl_FADT.sci_interrupt, 0, 0, acpi_gbl_FADT.sci_interrupt); @@ -9574,7 +8959,7 @@ index 53369c57751e..1ec1a9015178 100644 -- 2.42.0 -From 221495b0d4fc09a39ddff1ea38a82f621e26f722 Mon Sep 17 00:00:00 2001 +From 52e3f50633128a93bf99ca5c97f98929da66a9ed Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 3 Jun 2021 14:04:26 +0200 Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override @@ -9589,10 +8974,10 @@ Patchset: amd-gpio 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c -index 1ec1a9015178..a7d40015e46a 100644 +index f29740cf89ff6..247d2a8bcdf4b 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c -@@ -1259,12 +1259,19 @@ static void __init mp_config_acpi_legacy_irqs(void) +@@ -1258,12 +1258,19 @@ static void __init mp_config_acpi_legacy_irqs(void) static const struct dmi_system_id surface_quirk[] __initconst = { { @@ -9616,7 +9001,7 @@ index 1ec1a9015178..a7d40015e46a 100644 -- 2.42.0 -From 709097b5e8cea4cb5296d01c6ba30c2761c1a36c Mon Sep 17 00:00:00 2001 +From 8cd23b1bb3a8b7a3ef7cec2c37e7e46e6397a858 Mon Sep 17 00:00:00 2001 From: "Bart Groeneveld | GPX Solutions B.V" Date: Mon, 5 Dec 2022 16:08:46 +0100 Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms @@ -9635,11 +9020,11 @@ but it does have an HW-reduced TAD, which can be used as a RTC instead. Signed-off-by: Bart Groeneveld | GPX Solutions B.V. Patchset: rtc --- - drivers/acpi/acpi_tad.c | 35 ++++++++++++++++++++++++----------- - 1 file changed, 24 insertions(+), 11 deletions(-) + drivers/acpi/acpi_tad.c | 36 ++++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c -index e9b8e8305e23..944276934e7e 100644 +index 33c3b16af556b..900445d06623d 100644 --- a/drivers/acpi/acpi_tad.c +++ b/drivers/acpi/acpi_tad.c @@ -432,6 +432,14 @@ static ssize_t caps_show(struct device *dev, struct device_attribute *attr, @@ -9676,7 +9061,7 @@ index e9b8e8305e23..944276934e7e 100644 }; static ssize_t dc_alarm_store(struct device *dev, struct device_attribute *attr, -@@ -563,13 +570,18 @@ static int acpi_tad_remove(struct platform_device *pdev) +@@ -564,13 +571,18 @@ static int acpi_tad_remove(struct platform_device *pdev) pm_runtime_get_sync(dev); @@ -9697,19 +9082,20 @@ index e9b8e8305e23..944276934e7e 100644 if (dd->capabilities & ACPI_TAD_DC_WAKE) { acpi_tad_disable_timer(dev, ACPI_TAD_DC_TIMER); acpi_tad_clear_status(dev, ACPI_TAD_DC_TIMER); -@@ -604,11 +616,6 @@ static int acpi_tad_probe(struct platform_device *pdev) - return -ENODEV; +@@ -613,12 +625,6 @@ static int acpi_tad_probe(struct platform_device *pdev) + goto remove_handler; } - if (!acpi_has_method(handle, "_PRW")) { - dev_info(dev, "Missing _PRW\n"); -- return -ENODEV; +- ret = -ENODEV; +- goto remove_handler; - } - dd = devm_kzalloc(dev, sizeof(*dd), GFP_KERNEL); - if (!dd) - return -ENOMEM; -@@ -637,6 +644,12 @@ static int acpi_tad_probe(struct platform_device *pdev) + if (!dd) { + ret = -ENOMEM; +@@ -649,6 +655,12 @@ static int acpi_tad_probe(struct platform_device *pdev) if (ret) goto fail; diff --git a/SOURCES/mod-internal.list b/SOURCES/mod-internal.list index f4c6692..1d535d8 100644 --- a/SOURCES/mod-internal.list +++ b/SOURCES/mod-internal.list @@ -12,6 +12,7 @@ drm_cmdline_parser_test drm_connector_test drm_damage_helper_test drm_dp_mst_helper_test +drm_exec_test drm_format_helper_test drm_format_test drm_framebuffer_test diff --git a/SOURCES/mt76:-mt7921:-Disable-powersave-features-by-default.patch b/SOURCES/mt76:-mt7921:-Disable-powersave-features-by-default.patch index 4bb775c..1a0ddc8 100644 --- a/SOURCES/mt76:-mt7921:-Disable-powersave-features-by-default.patch +++ b/SOURCES/mt76:-mt7921:-Disable-powersave-features-by-default.patch @@ -1,6 +1,6 @@ -From ca89780690f7492c2d357e0ed2213a1d027341ae Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf -Date: Sun, 29 May 2022 01:32:19 -0700 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Mon, 27 Nov 2023 15:25:48 +0100 Subject: [PATCH] mt76: mt7921: Disable powersave features by default This brings WiFi latency down considerably and makes latency consistent by @@ -9,27 +9,17 @@ power consumption difference is inconsequential on desktops and laptops, while the performance difference is monumental. Latencies of 20+ ms are no longer observed after this change, and the connection is much more stable. -Signed-off-by: Sultan Alsawaf +Signed-off-by: Jan200101 --- - drivers/net/wireless/mediatek/mt76/mt7921/init.c | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) + drivers/net/wireless/mediatek/mt76/mt7921/init.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/init.c b/drivers/net/wireless/mediatek/mt76/mt7921/init.c -index 91fc41922d95..cfa0bb51004d 100644 +index ff63f37f67d9..840b4c606c83 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/init.c -@@ -99,7 +99,8 @@ - wiphy->n_iface_combinations = ARRAY_SIZE(if_comb); - } - wiphy->flags &= ~(WIPHY_FLAG_IBSS_RSN | WIPHY_FLAG_4ADDR_AP | -- WIPHY_FLAG_4ADDR_STATION); -+ WIPHY_FLAG_4ADDR_STATION | -+ WIPHY_FLAG_PS_ON_BY_DEFAULT); - wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | - BIT(NL80211_IFTYPE_AP) | - BIT(NL80211_IFTYPE_P2P_CLIENT) | -@@ -408,12 +409,6 @@ - dev->pm.idle_timeout = MT7921_PM_TIMEOUT; +@@ -220,12 +220,6 @@ int mt7921_register_device(struct mt792x_dev *dev) + dev->pm.idle_timeout = MT792x_PM_TIMEOUT; dev->pm.stats.last_wake_event = jiffies; dev->pm.stats.last_doze_event = jiffies; - if (!mt76_is_usb(&dev->mt76)) { @@ -41,3 +31,12 @@ index 91fc41922d95..cfa0bb51004d 100644 if (!mt76_is_mmio(&dev->mt76)) hw->extra_tx_headroom += MT_SDIO_TXD_SIZE + MT_SDIO_HDR_SIZE; +@@ -240,6 +234,8 @@ int mt7921_register_device(struct mt792x_dev *dev) + if (ret) + return ret; + ++ hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; ++ + hw->wiphy->reg_notifier = mt7921_regd_notifier; + dev->mphy.sband_2g.sband.ht_cap.cap |= + IEEE80211_HT_CAP_LDPC_CODING | diff --git a/SOURCES/partial-clang-debug-snip.config b/SOURCES/partial-clang-debug-snip.config new file mode 100644 index 0000000..19fa152 --- /dev/null +++ b/SOURCES/partial-clang-debug-snip.config @@ -0,0 +1,3 @@ +# clang +CONFIG_KASAN_STACK=y +# CONFIG_KMSAN is not set diff --git a/SOURCES/partial-clang-snip.config b/SOURCES/partial-clang-snip.config new file mode 100644 index 0000000..841c19d --- /dev/null +++ b/SOURCES/partial-clang-snip.config @@ -0,0 +1,3 @@ +# clang +# CONFIG_KASAN_STACK is not set +# CONFIG_KMSAN is not set diff --git a/SOURCES/partial-clang_lto-aarch64-debug-snip.config b/SOURCES/partial-clang_lto-aarch64-debug-snip.config new file mode 100644 index 0000000..0178f37 --- /dev/null +++ b/SOURCES/partial-clang_lto-aarch64-debug-snip.config @@ -0,0 +1,3 @@ +# clang_lto +CONFIG_KASAN_STACK=y +# CONFIG_KMSAN is not set diff --git a/SOURCES/partial-clang_lto-aarch64-snip.config b/SOURCES/partial-clang_lto-aarch64-snip.config new file mode 100644 index 0000000..9e30765 --- /dev/null +++ b/SOURCES/partial-clang_lto-aarch64-snip.config @@ -0,0 +1,5 @@ +# clang_lto +# CONFIG_KASAN_STACK is not set +# CONFIG_KMSAN is not set +CONFIG_LTO_CLANG_THIN=y +# CONFIG_LTO_NONE is not set diff --git a/SOURCES/partial-clang_lto-x86_64-debug-snip.config b/SOURCES/partial-clang_lto-x86_64-debug-snip.config new file mode 100644 index 0000000..0178f37 --- /dev/null +++ b/SOURCES/partial-clang_lto-x86_64-debug-snip.config @@ -0,0 +1,3 @@ +# clang_lto +CONFIG_KASAN_STACK=y +# CONFIG_KMSAN is not set diff --git a/SOURCES/partial-clang_lto-x86_64-snip.config b/SOURCES/partial-clang_lto-x86_64-snip.config new file mode 100644 index 0000000..9e30765 --- /dev/null +++ b/SOURCES/partial-clang_lto-x86_64-snip.config @@ -0,0 +1,5 @@ +# clang_lto +# CONFIG_KASAN_STACK is not set +# CONFIG_KMSAN is not set +CONFIG_LTO_CLANG_THIN=y +# CONFIG_LTO_NONE is not set diff --git a/SOURCES/partial-kgcov-debug-snip.config b/SOURCES/partial-kgcov-debug-snip.config new file mode 100644 index 0000000..fb37359 --- /dev/null +++ b/SOURCES/partial-kgcov-debug-snip.config @@ -0,0 +1,4 @@ +# kgcov +CONFIG_GCOV_KERNEL=y +CONFIG_GCOV_PROFILE_ALL=y +# CONFIG_GCOV_PROFILE_FTRACE is not set diff --git a/SOURCES/patch-6.5-redhat.patch b/SOURCES/patch-6.5-redhat.patch deleted file mode 100644 index cb273af..0000000 --- a/SOURCES/patch-6.5-redhat.patch +++ /dev/null @@ -1,1519 +0,0 @@ - Makefile | 12 ++ - arch/s390/include/asm/ipl.h | 1 + - arch/s390/kernel/ipl.c | 5 + - arch/s390/kernel/setup.c | 4 + - arch/x86/kernel/setup.c | 22 ++-- - drivers/acpi/apei/hest.c | 8 ++ - drivers/acpi/irq.c | 17 ++- - drivers/acpi/scan.c | 9 ++ - drivers/ata/libahci.c | 18 +++ - drivers/char/ipmi/ipmi_dmi.c | 15 +++ - drivers/char/ipmi/ipmi_msghandler.c | 16 ++- - drivers/firmware/efi/Makefile | 1 + - drivers/firmware/efi/efi.c | 124 +++++++++++++++------ - drivers/firmware/efi/secureboot.c | 38 +++++++ - drivers/firmware/sysfb.c | 18 ++- - drivers/hid/hid-rmi.c | 66 ----------- - drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 ++++ - drivers/input/rmi4/rmi_driver.c | 124 ++++++++++++--------- - drivers/iommu/iommu.c | 22 ++++ - drivers/misc/cardreader/rts5228.c | 6 + - drivers/misc/cardreader/rts5260.c | 6 + - drivers/misc/cardreader/rts5261.c | 6 + - drivers/nvme/host/core.c | 22 +++- - drivers/nvme/host/multipath.c | 19 ++-- - drivers/nvme/host/nvme.h | 4 + - drivers/pci/quirks.c | 24 ++++ - drivers/rtc/rtc-cmos.c | 18 ++- - drivers/scsi/sd.c | 10 ++ - drivers/usb/core/hub.c | 7 ++ - fs/btrfs/space-info.c | 17 +++ - include/linux/efi.h | 22 ++-- - include/linux/lsm_hook_defs.h | 2 + - include/linux/rmi.h | 1 + - include/linux/security.h | 5 + - kernel/module/signing.c | 9 +- - scripts/tags.sh | 2 + - security/integrity/platform_certs/load_uefi.c | 6 +- - security/lockdown/Kconfig | 13 +++ - security/lockdown/lockdown.c | 1 + - security/security.c | 12 ++ - 40 files changed, 561 insertions(+), 190 deletions(-) - -diff --git a/Makefile b/Makefile -index a6e152146028..af6bab938da2 100644 ---- a/Makefile -+++ b/Makefile -@@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ - PHONY := __all - __all: - -+# Set RHEL variables -+# Note that this ifdef'ery is required to handle when building with -+# the O= mechanism (relocate the object file results) due to upstream -+# commit 67d7c302 which broke our RHEL include file -+ifneq ($(realpath source),) -+include $(realpath source)/Makefile.rhelver -+else -+ifneq ($(realpath Makefile.rhelver),) -+include Makefile.rhelver -+endif -+endif -+ - # We are using a recursive build, so we need to do a little thinking - # to get the ordering right. - # -diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h -index b0d00032479d..afb9544fb007 100644 ---- a/arch/s390/include/asm/ipl.h -+++ b/arch/s390/include/asm/ipl.h -@@ -139,6 +139,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, - unsigned char flags, unsigned short cert); - int ipl_report_add_certificate(struct ipl_report *report, void *key, - unsigned long addr, unsigned long len); -+bool ipl_get_secureboot(void); - - /* - * DIAG 308 support -diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c -index dfcb2b563e2b..29e3f1b4bd00 100644 ---- a/arch/s390/kernel/ipl.c -+++ b/arch/s390/kernel/ipl.c -@@ -2535,3 +2535,8 @@ int ipl_report_free(struct ipl_report *report) - } - - #endif -+ -+bool ipl_get_secureboot(void) -+{ -+ return !!ipl_secure_flag; -+} -diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c -index 00d76448319d..e679d13303e3 100644 ---- a/arch/s390/kernel/setup.c -+++ b/arch/s390/kernel/setup.c -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -914,6 +915,9 @@ void __init setup_arch(char **cmdline_p) - - log_component_list(); - -+ if (ipl_get_secureboot()) -+ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); -+ - /* Have one command line that is parsed and saved in /proc/cmdline */ - /* boot_command_line has been already set up in early.c */ - *cmdline_p = boot_command_line; -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index aa0df37c1fe7..04f1de50e058 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -1027,6 +1028,13 @@ void __init setup_arch(char **cmdline_p) - if (efi_enabled(EFI_BOOT)) - efi_init(); - -+ efi_set_secure_boot(boot_params.secure_boot); -+ -+#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT -+ if (efi_enabled(EFI_SECURE_BOOT)) -+ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); -+#endif -+ - reserve_ibft_region(); - dmi_setup(); - -@@ -1188,19 +1196,7 @@ void __init setup_arch(char **cmdline_p) - /* Allocate bigger log buffer */ - setup_log_buf(1); - -- if (efi_enabled(EFI_BOOT)) { -- switch (boot_params.secure_boot) { -- case efi_secureboot_mode_disabled: -- pr_info("Secure boot disabled\n"); -- break; -- case efi_secureboot_mode_enabled: -- pr_info("Secure boot enabled\n"); -- break; -- default: -- pr_info("Secure boot could not be determined\n"); -- break; -- } -- } -+ efi_set_secure_boot(boot_params.secure_boot); - - reserve_initrd(); - -diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c -index 6aef1ee5e1bd..8f146b1b4972 100644 ---- a/drivers/acpi/apei/hest.c -+++ b/drivers/acpi/apei/hest.c -@@ -96,6 +96,14 @@ static int apei_hest_parse(apei_hest_func_t func, void *data) - if (hest_disable || !hest_tab) - return -EINVAL; - -+#ifdef CONFIG_ARM64 -+ /* Ignore broken firmware */ -+ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && -+ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && -+ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) -+ return -EINVAL; -+#endif -+ - hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); - for (i = 0; i < hest_tab->error_source_count; i++) { - len = hest_esrc_len(hest_hdr); -diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c -index 1687483ff319..390b67f19181 100644 ---- a/drivers/acpi/irq.c -+++ b/drivers/acpi/irq.c -@@ -143,6 +143,7 @@ struct acpi_irq_parse_one_ctx { - unsigned int index; - unsigned long *res_flags; - struct irq_fwspec *fwspec; -+ bool skip_producer_check; - }; - - /** -@@ -216,7 +217,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, - return AE_CTRL_TERMINATE; - case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: - eirq = &ares->data.extended_irq; -- if (eirq->producer_consumer == ACPI_PRODUCER) -+ if (!ctx->skip_producer_check && -+ eirq->producer_consumer == ACPI_PRODUCER) - return AE_OK; - if (ctx->index >= eirq->interrupt_count) { - ctx->index -= eirq->interrupt_count; -@@ -252,8 +254,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, - static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, - struct irq_fwspec *fwspec, unsigned long *flags) - { -- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; -+ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; - -+ /* -+ * Firmware on arm64-based HPE m400 platform incorrectly marks -+ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. -+ * Don't do the producer/consumer check for that device. -+ */ -+ if (IS_ENABLED(CONFIG_ARM64)) { -+ struct acpi_device *adev = acpi_get_acpi_dev(handle); -+ -+ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08")) -+ ctx.skip_producer_check = true; -+ } - acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx); - return ctx.rc; - } -diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index 87e385542576..7e9de6e3eb9f 100644 ---- a/drivers/acpi/scan.c -+++ b/drivers/acpi/scan.c -@@ -1749,6 +1749,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) - if (!acpi_match_device_ids(device, ignore_serial_bus_ids)) - return false; - -+ /* -+ * Firmware on some arm64 X-Gene platforms will make the UART -+ * device appear as both a UART and a slave of that UART. Just -+ * bail out here for X-Gene UARTs. -+ */ -+ if (IS_ENABLED(CONFIG_ARM64) && -+ !strcmp(acpi_device_hid(device), "APMC0D08")) -+ return false; -+ - INIT_LIST_HEAD(&resource_list); - acpi_dev_get_resources(device, &resource_list, - acpi_check_serial_bus_slave, -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index a6212f6d3796..1bd84617d751 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -729,6 +729,24 @@ int ahci_stop_engine(struct ata_port *ap) - tmp &= ~PORT_CMD_START; - writel(tmp, port_mmio + PORT_CMD); - -+#ifdef CONFIG_ARM64 -+ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ -+ if (dev_is_pci(ap->host->dev) && -+ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && -+ to_pci_dev(ap->host->dev)->device == 0x9027 && -+ midr_is_cpu_model_range(read_cpuid_id(), -+ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), -+ MIDR_CPU_VAR_REV(0, 0), -+ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { -+ tmp = readl(hpriv->mmio + 0x8000); -+ udelay(100); -+ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -+ udelay(100); -+ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -+ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); -+ } -+#endif -+ - /* wait for engine to stop. This could be as long as 500 msec */ - tmp = ata_wait_register(ap, port_mmio + PORT_CMD, - PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); -diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c -index bbf7029e224b..cf7faa970dd6 100644 ---- a/drivers/char/ipmi/ipmi_dmi.c -+++ b/drivers/char/ipmi/ipmi_dmi.c -@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) - { - const struct dmi_device *dev = NULL; - -+#ifdef CONFIG_ARM64 -+ /* RHEL-only -+ * If this is ARM-based HPE m400, return now, because that platform -+ * reports the host-side ipmi address as intel port-io space, which -+ * does not exist in the ARM architecture. -+ */ -+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); -+ -+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { -+ pr_debug("%s does not support host ipmi\n", dmistr); -+ return 0; -+ } -+ /* END RHEL-only */ -+#endif -+ - while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) - dmi_decode_ipmi((const struct dmi_header *) dev->device_data); - -diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c -index 186f1fee7534..93e3a76596ff 100644 ---- a/drivers/char/ipmi/ipmi_msghandler.c -+++ b/drivers/char/ipmi/ipmi_msghandler.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - - #define IPMI_DRIVER_VERSION "39.2" -@@ -5516,8 +5517,21 @@ static int __init ipmi_init_msghandler_mod(void) - { - int rv; - -- pr_info("version " IPMI_DRIVER_VERSION "\n"); -+#ifdef CONFIG_ARM64 -+ /* RHEL-only -+ * If this is ARM-based HPE m400, return now, because that platform -+ * reports the host-side ipmi address as intel port-io space, which -+ * does not exist in the ARM architecture. -+ */ -+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); - -+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { -+ pr_debug("%s does not support host ipmi\n", dmistr); -+ return -ENOSYS; -+ } -+ /* END RHEL-only */ -+#endif -+ pr_info("version " IPMI_DRIVER_VERSION "\n"); - mutex_lock(&ipmi_interfaces_mutex); - rv = ipmi_register_driver(); - mutex_unlock(&ipmi_interfaces_mutex); -diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile -index e489fefd23da..f2dfae764fb5 100644 ---- a/drivers/firmware/efi/Makefile -+++ b/drivers/firmware/efi/Makefile -@@ -25,6 +25,7 @@ subdir-$(CONFIG_EFI_STUB) += libstub - obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o - obj-$(CONFIG_EFI_TEST) += test/ - obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o -+obj-$(CONFIG_EFI) += secureboot.o - obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o - obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o - obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o -diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 9cfac61812f6..a8462d3bd33c 100644 ---- a/drivers/firmware/efi/efi.c -+++ b/drivers/firmware/efi/efi.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - #include - -@@ -957,40 +958,101 @@ int efi_mem_type(unsigned long phys_addr) - } - #endif - -+struct efi_error_code { -+ efi_status_t status; -+ int errno; -+ const char *description; -+}; -+ -+static const struct efi_error_code efi_error_codes[] = { -+ { EFI_SUCCESS, 0, "Success"}, -+#if 0 -+ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"}, -+#endif -+ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"}, -+ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"}, -+ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"}, -+ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"}, -+ { EFI_NOT_READY, -EAGAIN, "Not Ready"}, -+ { EFI_DEVICE_ERROR, -EIO, "Device Error"}, -+ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"}, -+ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"}, -+#if 0 -+ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"}, -+ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"}, -+ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"}, -+ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"}, -+#endif -+ { EFI_NOT_FOUND, -ENOENT, "Not Found"}, -+#if 0 -+ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"}, -+ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"}, -+ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"}, -+ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"}, -+ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"}, -+ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"}, -+#endif -+ { EFI_ABORTED, -EINTR, "Aborted"}, -+#if 0 -+ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"}, -+ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"}, -+ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"}, -+ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"}, -+#endif -+ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"}, -+#if 0 -+ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"}, -+ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"}, -+ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"}, -+ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"}, -+ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"}, -+ -+ // warnings -+ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"}, -+ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"}, -+ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"}, -+ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"}, -+#endif -+}; -+ -+static int -+efi_status_cmp_bsearch(const void *key, const void *item) -+{ -+ u64 status = (u64)(uintptr_t)key; -+ struct efi_error_code *code = (struct efi_error_code *)item; -+ -+ if (status < code->status) -+ return -1; -+ if (status > code->status) -+ return 1; -+ return 0; -+} -+ - int efi_status_to_err(efi_status_t status) - { -- int err; -- -- switch (status) { -- case EFI_SUCCESS: -- err = 0; -- break; -- case EFI_INVALID_PARAMETER: -- err = -EINVAL; -- break; -- case EFI_OUT_OF_RESOURCES: -- err = -ENOSPC; -- break; -- case EFI_DEVICE_ERROR: -- err = -EIO; -- break; -- case EFI_WRITE_PROTECTED: -- err = -EROFS; -- break; -- case EFI_SECURITY_VIOLATION: -- err = -EACCES; -- break; -- case EFI_NOT_FOUND: -- err = -ENOENT; -- break; -- case EFI_ABORTED: -- err = -EINTR; -- break; -- default: -- err = -EINVAL; -- } -+ struct efi_error_code *found; -+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); - -- return err; -+ found = bsearch((void *)(uintptr_t)status, efi_error_codes, -+ sizeof(struct efi_error_code), num, -+ efi_status_cmp_bsearch); -+ if (!found) -+ return -EINVAL; -+ return found->errno; -+} -+ -+const char * -+efi_status_to_str(efi_status_t status) -+{ -+ struct efi_error_code *found; -+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); -+ -+ found = bsearch((void *)(uintptr_t)status, efi_error_codes, -+ sizeof(struct efi_error_code), num, -+ efi_status_cmp_bsearch); -+ if (!found) -+ return "Unknown error code"; -+ return found->description; - } - EXPORT_SYMBOL_GPL(efi_status_to_err); - -diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c -new file mode 100644 -index 000000000000..de0a3714a5d4 ---- /dev/null -+++ b/drivers/firmware/efi/secureboot.c -@@ -0,0 +1,38 @@ -+/* Core kernel secure boot support. -+ * -+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. -+ * Written by David Howells (dhowells@redhat.com) -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public Licence -+ * as published by the Free Software Foundation; either version -+ * 2 of the Licence, or (at your option) any later version. -+ */ -+ -+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+#include -+#include -+#include -+ -+/* -+ * Decide what to do when UEFI secure boot mode is enabled. -+ */ -+void __init efi_set_secure_boot(enum efi_secureboot_mode mode) -+{ -+ if (efi_enabled(EFI_BOOT)) { -+ switch (mode) { -+ case efi_secureboot_mode_disabled: -+ pr_info("Secure boot disabled\n"); -+ break; -+ case efi_secureboot_mode_enabled: -+ set_bit(EFI_SECURE_BOOT, &efi.flags); -+ pr_info("Secure boot enabled\n"); -+ break; -+ default: -+ pr_warn("Secure boot could not be determined (mode %u)\n", -+ mode); -+ break; -+ } -+ } -+} -diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c -index 82fcfd29bc4d..17b7e096b682 100644 ---- a/drivers/firmware/sysfb.c -+++ b/drivers/firmware/sysfb.c -@@ -34,6 +34,22 @@ - #include - #include - -+static int skip_simpledrm; -+ -+static int __init simpledrm_disable(char *opt) -+{ -+ if (!opt) -+ return -EINVAL; -+ -+ get_option(&opt, &skip_simpledrm); -+ -+ if (skip_simpledrm) -+ pr_info("The simpledrm driver will not be probed\n"); -+ -+ return 0; -+} -+early_param("nvidia-drm.modeset", simpledrm_disable); -+ - static struct platform_device *pd; - static DEFINE_MUTEX(disable_lock); - static bool disabled; -@@ -85,7 +101,7 @@ static __init int sysfb_init(void) - - /* try to create a simple-framebuffer device */ - compatible = sysfb_parse_mode(si, &mode); -- if (compatible) { -+ if (compatible && !skip_simpledrm) { - pd = sysfb_create_simplefb(si, &mode); - if (!IS_ERR(pd)) - goto unlock_mutex; -diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index 84e7ba5314d3..efc96776f761 100644 ---- a/drivers/hid/hid-rmi.c -+++ b/drivers/hid/hid-rmi.c -@@ -321,21 +321,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) - { - struct rmi_data *hdata = hid_get_drvdata(hdev); - struct rmi_device *rmi_dev = hdata->xport.rmi_dev; -- unsigned long flags; - - if (!(test_bit(RMI_STARTED, &hdata->flags))) - return 0; - -- pm_wakeup_event(hdev->dev.parent, 0); -- -- local_irq_save(flags); -- - rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); - -- generic_handle_irq(hdata->rmi_irq); -- -- local_irq_restore(flags); -- - return 1; - } - -@@ -591,56 +582,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { - .reset = rmi_hid_reset, - }; - --static void rmi_irq_teardown(void *data) --{ -- struct rmi_data *hdata = data; -- struct irq_domain *domain = hdata->domain; -- -- if (!domain) -- return; -- -- irq_dispose_mapping(irq_find_mapping(domain, 0)); -- -- irq_domain_remove(domain); -- hdata->domain = NULL; -- hdata->rmi_irq = 0; --} -- --static int rmi_irq_map(struct irq_domain *h, unsigned int virq, -- irq_hw_number_t hw_irq_num) --{ -- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); -- -- return 0; --} -- --static const struct irq_domain_ops rmi_irq_ops = { -- .map = rmi_irq_map, --}; -- --static int rmi_setup_irq_domain(struct hid_device *hdev) --{ -- struct rmi_data *hdata = hid_get_drvdata(hdev); -- int ret; -- -- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, -- &rmi_irq_ops, hdata); -- if (!hdata->domain) -- return -ENOMEM; -- -- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); -- if (ret) -- return ret; -- -- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); -- if (hdata->rmi_irq <= 0) { -- hid_err(hdev, "Can't allocate an IRQ\n"); -- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; -- } -- -- return 0; --} -- - static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) - { - struct rmi_data *data = NULL; -@@ -713,18 +654,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) - - mutex_init(&data->page_mutex); - -- ret = rmi_setup_irq_domain(hdev); -- if (ret) { -- hid_err(hdev, "failed to allocate IRQ domain\n"); -- return ret; -- } -- - if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) - rmi_hid_pdata.gpio_data.disable = true; - - data->xport.dev = hdev->dev.parent; - data->xport.pdata = rmi_hid_pdata; -- data->xport.pdata.irq = data->rmi_irq; - data->xport.proto_name = "hid"; - data->xport.ops = &hid_rmi_ops; - -diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c -index 7e307022303a..c68d7da67148 100644 ---- a/drivers/hwtracing/coresight/coresight-etm4x-core.c -+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -2265,6 +2266,16 @@ static const struct amba_id etm4_ids[] = { - {}, - }; - -+static const struct dmi_system_id broken_coresight[] = { -+ { -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "HPE"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Apollo 70"), -+ }, -+ }, -+ { } /* terminating entry */ -+}; -+ - MODULE_DEVICE_TABLE(amba, etm4_ids); - - static struct amba_driver etm4x_amba_driver = { -@@ -2298,6 +2309,11 @@ static int __init etm4x_init(void) - { - int ret; - -+ if (dmi_check_system(broken_coresight)) { -+ pr_info("ETM4 disabled due to firmware bug\n"); -+ return 0; -+ } -+ - ret = etm4_pm_setup(); - - /* etm4_pm_setup() does its own cleanup - exit on error */ -@@ -2324,6 +2340,9 @@ static int __init etm4x_init(void) - - static void __exit etm4x_exit(void) - { -+ if (dmi_check_system(broken_coresight)) -+ return; -+ - amba_driver_unregister(&etm4x_amba_driver); - platform_driver_unregister(&etm4_platform_driver); - etm4_pm_clear(); -diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c -index 258d5fe3d395..f7298e3dc8f3 100644 ---- a/drivers/input/rmi4/rmi_driver.c -+++ b/drivers/input/rmi4/rmi_driver.c -@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, - attn_data.data = fifo_data; - - kfifo_put(&drvdata->attn_fifo, attn_data); -+ -+ schedule_work(&drvdata->attn_work); - } - EXPORT_SYMBOL_GPL(rmi_set_attn_data); - --static irqreturn_t rmi_irq_fn(int irq, void *dev_id) -+static void attn_callback(struct work_struct *work) - { -- struct rmi_device *rmi_dev = dev_id; -- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); -+ struct rmi_driver_data *drvdata = container_of(work, -+ struct rmi_driver_data, -+ attn_work); - struct rmi4_attn_data attn_data = {0}; - int ret, count; - - count = kfifo_get(&drvdata->attn_fifo, &attn_data); -- if (count) { -- *(drvdata->irq_status) = attn_data.irq_status; -- drvdata->attn_data = attn_data; -- } -+ if (!count) -+ return; - -- ret = rmi_process_interrupt_requests(rmi_dev); -+ *(drvdata->irq_status) = attn_data.irq_status; -+ drvdata->attn_data = attn_data; -+ -+ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); - if (ret) -- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, -+ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, - "Failed to process interrupt request: %d\n", ret); - -- if (count) { -- kfree(attn_data.data); -- drvdata->attn_data.data = NULL; -- } -+ kfree(attn_data.data); -+ drvdata->attn_data.data = NULL; - - if (!kfifo_is_empty(&drvdata->attn_fifo)) -- return rmi_irq_fn(irq, dev_id); -+ schedule_work(&drvdata->attn_work); -+} -+ -+static irqreturn_t rmi_irq_fn(int irq, void *dev_id) -+{ -+ struct rmi_device *rmi_dev = dev_id; -+ int ret; -+ -+ ret = rmi_process_interrupt_requests(rmi_dev); -+ if (ret) -+ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, -+ "Failed to process interrupt request: %d\n", ret); - - return IRQ_HANDLED; - } -@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) - static int rmi_irq_init(struct rmi_device *rmi_dev) - { - struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); -- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); - int irq_flags = irq_get_trigger_type(pdata->irq); - int ret; - -@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) - return ret; - } - -- data->enabled = true; -- - return 0; - } - -@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) - if (data->enabled) - goto out; - -- enable_irq(irq); -- data->enabled = true; -- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { -- retval = disable_irq_wake(irq); -- if (retval) -- dev_warn(&rmi_dev->dev, -- "Failed to disable irq for wake: %d\n", -- retval); -- } -+ if (irq) { -+ enable_irq(irq); -+ data->enabled = true; -+ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { -+ retval = disable_irq_wake(irq); -+ if (retval) -+ dev_warn(&rmi_dev->dev, -+ "Failed to disable irq for wake: %d\n", -+ retval); -+ } - -- /* -- * Call rmi_process_interrupt_requests() after enabling irq, -- * otherwise we may lose interrupt on edge-triggered systems. -- */ -- irq_flags = irq_get_trigger_type(pdata->irq); -- if (irq_flags & IRQ_TYPE_EDGE_BOTH) -- rmi_process_interrupt_requests(rmi_dev); -+ /* -+ * Call rmi_process_interrupt_requests() after enabling irq, -+ * otherwise we may lose interrupt on edge-triggered systems. -+ */ -+ irq_flags = irq_get_trigger_type(pdata->irq); -+ if (irq_flags & IRQ_TYPE_EDGE_BOTH) -+ rmi_process_interrupt_requests(rmi_dev); -+ } else { -+ data->enabled = true; -+ } - - out: - mutex_unlock(&data->enabled_mutex); -@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) - goto out; - - data->enabled = false; -- disable_irq(irq); -- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { -- retval = enable_irq_wake(irq); -- if (retval) -- dev_warn(&rmi_dev->dev, -- "Failed to enable irq for wake: %d\n", -- retval); -- } -- -- /* make sure the fifo is clean */ -- while (!kfifo_is_empty(&data->attn_fifo)) { -- count = kfifo_get(&data->attn_fifo, &attn_data); -- if (count) -- kfree(attn_data.data); -+ if (irq) { -+ disable_irq(irq); -+ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { -+ retval = enable_irq_wake(irq); -+ if (retval) -+ dev_warn(&rmi_dev->dev, -+ "Failed to enable irq for wake: %d\n", -+ retval); -+ } -+ } else { -+ /* make sure the fifo is clean */ -+ while (!kfifo_is_empty(&data->attn_fifo)) { -+ count = kfifo_get(&data->attn_fifo, &attn_data); -+ if (count) -+ kfree(attn_data.data); -+ } - } - - out: -@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) - irq_domain_remove(data->irqdomain); - data->irqdomain = NULL; - -+ cancel_work_sync(&data->attn_work); -+ - rmi_f34_remove_sysfs(rmi_dev); - rmi_free_function_list(rmi_dev); - -@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) - } - } - -- retval = rmi_irq_init(rmi_dev); -- if (retval < 0) -- goto err_destroy_functions; -+ if (pdata->irq) { -+ retval = rmi_irq_init(rmi_dev); -+ if (retval < 0) -+ goto err_destroy_functions; -+ } -+ -+ data->enabled = true; -+ -+ INIT_WORK(&data->attn_work, attn_callback); - - if (data->f01_container->dev.driver) { - /* Driver already bound, so enable ATTN now. */ -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index cabeb5bd3e41..25ef4e9cc34a 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -8,6 +8,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -2819,6 +2820,27 @@ int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat) - } - EXPORT_SYMBOL_GPL(iommu_dev_disable_feature); - -+#ifdef CONFIG_ARM64 -+static int __init iommu_quirks(void) -+{ -+ const char *vendor, *name; -+ -+ vendor = dmi_get_system_info(DMI_SYS_VENDOR); -+ name = dmi_get_system_info(DMI_PRODUCT_NAME); -+ -+ if (vendor && -+ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && -+ (strncmp(name, "R120", 4) == 0 || -+ strncmp(name, "R270", 4) == 0))) { -+ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); -+ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; -+ } -+ -+ return 0; -+} -+arch_initcall(iommu_quirks); -+#endif -+ - /** - * iommu_setup_default_domain - Set the default_domain for the group - * @group: Group to change -diff --git a/drivers/misc/cardreader/rts5228.c b/drivers/misc/cardreader/rts5228.c -index 0c7f10bcf6f1..4ca9da411ebb 100644 ---- a/drivers/misc/cardreader/rts5228.c -+++ b/drivers/misc/cardreader/rts5228.c -@@ -400,6 +400,12 @@ static void rts5228_init_from_cfg(struct rtsx_pcr *pcr) - if (option->ltr_enabled) - rtsx_set_ltr_latency(pcr, option->ltr_active_latency); - } -+ -+ if (rtsx_check_dev_flag(pcr, ASPM_L1_1_EN | ASPM_L1_2_EN -+ | PM_L1_1_EN | PM_L1_2_EN)) -+ option->force_clkreq_0 = false; -+ else -+ option->force_clkreq_0 = true; - } - - static int rts5228_extra_init_hw(struct rtsx_pcr *pcr) -diff --git a/drivers/misc/cardreader/rts5260.c b/drivers/misc/cardreader/rts5260.c -index d2d3a6ccb8f7..0cef0808b1f1 100644 ---- a/drivers/misc/cardreader/rts5260.c -+++ b/drivers/misc/cardreader/rts5260.c -@@ -488,6 +488,12 @@ static void rts5260_init_from_cfg(struct rtsx_pcr *pcr) - if (option->ltr_enabled) - rtsx_set_ltr_latency(pcr, option->ltr_active_latency); - } -+ -+ if (rtsx_check_dev_flag(pcr, ASPM_L1_1_EN | ASPM_L1_2_EN -+ | PM_L1_1_EN | PM_L1_2_EN)) -+ option->force_clkreq_0 = false; -+ else -+ option->force_clkreq_0 = true; - } - - static int rts5260_extra_init_hw(struct rtsx_pcr *pcr) -diff --git a/drivers/misc/cardreader/rts5261.c b/drivers/misc/cardreader/rts5261.c -index 67252512a132..3236a82feca5 100644 ---- a/drivers/misc/cardreader/rts5261.c -+++ b/drivers/misc/cardreader/rts5261.c -@@ -460,6 +460,12 @@ static void rts5261_init_from_cfg(struct rtsx_pcr *pcr) - if (option->ltr_enabled) - rtsx_set_ltr_latency(pcr, option->ltr_active_latency); - } -+ -+ if (rtsx_check_dev_flag(pcr, ASPM_L1_1_EN | ASPM_L1_2_EN -+ | PM_L1_1_EN | PM_L1_2_EN)) -+ option->force_clkreq_0 = false; -+ else -+ option->force_clkreq_0 = true; - } - - static int rts5261_extra_init_hw(struct rtsx_pcr *pcr) -diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c -index 21783aa2ee8e..f2f9bdb3e0c8 100644 ---- a/drivers/nvme/host/core.c -+++ b/drivers/nvme/host/core.c -@@ -251,6 +251,9 @@ void nvme_delete_ctrl_sync(struct nvme_ctrl *ctrl) - - static blk_status_t nvme_error_status(u16 status) - { -+ if (unlikely(status & NVME_SC_DNR)) -+ return BLK_STS_TARGET; -+ - switch (status & 0x7ff) { - case NVME_SC_SUCCESS: - return BLK_STS_OK; -@@ -341,6 +344,7 @@ enum nvme_disposition { - COMPLETE, - RETRY, - FAILOVER, -+ FAILUP, - AUTHENTICATE, - }; - -@@ -352,15 +356,16 @@ static inline enum nvme_disposition nvme_decide_disposition(struct request *req) - if ((nvme_req(req)->status & 0x7ff) == NVME_SC_AUTH_REQUIRED) - return AUTHENTICATE; - -- if (blk_noretry_request(req) || -+ if ((req->cmd_flags & (REQ_FAILFAST_DEV | REQ_FAILFAST_DRIVER)) || - (nvme_req(req)->status & NVME_SC_DNR) || - nvme_req(req)->retries >= nvme_max_retries) - return COMPLETE; - -- if (req->cmd_flags & REQ_NVME_MPATH) { -+ if (req->cmd_flags & (REQ_NVME_MPATH | REQ_FAILFAST_TRANSPORT)) { - if (nvme_is_path_error(nvme_req(req)->status) || - blk_queue_dying(req->q)) -- return FAILOVER; -+ return (req->cmd_flags & REQ_NVME_MPATH) ? -+ FAILOVER : FAILUP; - } else { - if (blk_queue_dying(req->q)) - return COMPLETE; -@@ -390,6 +395,14 @@ static inline void nvme_end_req(struct request *req) - blk_mq_end_request(req, status); - } - -+static inline void nvme_failup_req(struct request *req) -+{ -+ nvme_update_ana(req); -+ -+ nvme_req(req)->status = NVME_SC_HOST_PATH_ERROR; -+ nvme_end_req(req); -+} -+ - void nvme_complete_rq(struct request *req) - { - struct nvme_ctrl *ctrl = nvme_req(req)->ctrl; -@@ -419,6 +432,9 @@ void nvme_complete_rq(struct request *req) - case FAILOVER: - nvme_failover_req(req); - return; -+ case FAILUP: -+ nvme_failup_req(req); -+ return; - case AUTHENTICATE: - #ifdef CONFIG_NVME_AUTH - queue_work(nvme_wq, &ctrl->dhchap_auth_work); -diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c -index 0a88d7bdc5e3..967bb3a85889 100644 ---- a/drivers/nvme/host/multipath.c -+++ b/drivers/nvme/host/multipath.c -@@ -80,14 +80,10 @@ void nvme_mpath_start_freeze(struct nvme_subsystem *subsys) - blk_freeze_queue_start(h->disk->queue); - } - --void nvme_failover_req(struct request *req) -+void nvme_update_ana(struct request *req) - { - struct nvme_ns *ns = req->q->queuedata; - u16 status = nvme_req(req)->status & 0x7ff; -- unsigned long flags; -- struct bio *bio; -- -- nvme_mpath_clear_current_path(ns); - - /* - * If we got back an ANA error, we know the controller is alive but not -@@ -98,6 +94,16 @@ void nvme_failover_req(struct request *req) - set_bit(NVME_NS_ANA_PENDING, &ns->flags); - queue_work(nvme_wq, &ns->ctrl->ana_work); - } -+} -+ -+void nvme_failover_req(struct request *req) -+{ -+ struct nvme_ns *ns = req->q->queuedata; -+ unsigned long flags; -+ struct bio *bio; -+ -+ nvme_mpath_clear_current_path(ns); -+ nvme_update_ana(req); - - spin_lock_irqsave(&ns->head->requeue_lock, flags); - for (bio = req->bio; bio; bio = bio->bi_next) { -@@ -912,8 +918,7 @@ int nvme_mpath_init_identify(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) - int error = 0; - - /* check if multipath is enabled and we have the capability */ -- if (!multipath || !ctrl->subsys || -- !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) -+ if (!ctrl->subsys || !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) - return 0; - - if (!ctrl->max_namespaces || -diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h -index f35647c470af..e57357f23306 100644 ---- a/drivers/nvme/host/nvme.h -+++ b/drivers/nvme/host/nvme.h -@@ -885,6 +885,7 @@ void nvme_mpath_wait_freeze(struct nvme_subsystem *subsys); - void nvme_mpath_start_freeze(struct nvme_subsystem *subsys); - void nvme_mpath_default_iopolicy(struct nvme_subsystem *subsys); - void nvme_failover_req(struct request *req); -+void nvme_update_ana(struct request *req); - void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl); - int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,struct nvme_ns_head *head); - void nvme_mpath_add_disk(struct nvme_ns *ns, __le32 anagrpid); -@@ -923,6 +924,9 @@ static inline bool nvme_ctrl_use_ana(struct nvme_ctrl *ctrl) - static inline void nvme_failover_req(struct request *req) - { - } -+static inline void nvme_update_ana(struct request *req) -+{ -+} - static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl) - { - } -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index eb65170b97ff..e8b906b6ffbf 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -4408,6 +4408,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, - quirk_bridge_cavm_thrx2_pcie_root); - -+/* -+ * PCI BAR 5 is not setup correctly for the on-board AHCI controller -+ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by -+ * using BAR 4's resources which are populated correctly and NOT -+ * actually used by the AHCI controller. -+ */ -+static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) -+{ -+ struct resource *r = &dev->resource[4]; -+ -+ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) -+ return; -+ -+ /* Set BAR5 resource to BAR4 */ -+ dev->resource[5] = *r; -+ -+ /* Update BAR5 in pci config space */ -+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); -+ -+ /* Clear BAR4's resource */ -+ memset(r, 0, sizeof(*r)); -+} -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); -+ - /* - * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) - * class code. Fix it. -diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c -index c9416fe8542d..aafb1efe7915 100644 ---- a/drivers/rtc/rtc-cmos.c -+++ b/drivers/rtc/rtc-cmos.c -@@ -818,18 +818,24 @@ static void rtc_wake_off(struct device *dev) - } - - #ifdef CONFIG_X86 --/* Enable use_acpi_alarm mode for Intel platforms no earlier than 2015 */ - static void use_acpi_alarm_quirks(void) - { -- if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) -+ switch (boot_cpu_data.x86_vendor) { -+ case X86_VENDOR_INTEL: -+ if (dmi_get_bios_year() < 2015) -+ return; -+ break; -+ case X86_VENDOR_AMD: -+ case X86_VENDOR_HYGON: -+ if (dmi_get_bios_year() < 2021) -+ return; -+ break; -+ default: - return; -- -+ } - if (!is_hpet_enabled()) - return; - -- if (dmi_get_bios_year() < 2015) -- return; -- - use_acpi_alarm = true; - } - #else -diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c -index c4babb16dac7..9c9342e0c055 100644 ---- a/drivers/scsi/sd.c -+++ b/drivers/scsi/sd.c -@@ -130,6 +130,14 @@ static const char *sd_cache_types[] = { - "write back, no read (daft)" - }; - -+static const char *sd_probe_types[] = { "async", "sync" }; -+ -+static char sd_probe_type[6] = "async"; -+module_param_string(probe, sd_probe_type, sizeof(sd_probe_type), -+ S_IRUGO|S_IWUSR); -+MODULE_PARM_DESC(probe, "async or sync. Setting to 'sync' disables asynchronous " -+ "device number assignments (sda, sdb, ...)."); -+ - static void sd_set_flush_flag(struct scsi_disk *sdkp) - { - bool wc = false, fua = false; -@@ -4057,6 +4065,8 @@ static int __init init_sd(void) - goto err_out_class; - } - -+ if (!strcmp(sd_probe_type, "sync")) -+ sd_template.gendrv.probe_type = PROBE_FORCE_SYNCHRONOUS; - err = scsi_register_driver(&sd_template.gendrv); - if (err) - goto err_out_driver; -diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index f2c561ae4bfe..36805f1c5786 100644 ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -5824,6 +5824,13 @@ static void hub_event(struct work_struct *work) - (u16) hub->change_bits[0], - (u16) hub->event_bits[0]); - -+ /* Don't disconnect USB-SATA on TrimSlice */ -+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { -+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && -+ (hub->event_bits[0] == 0x2)) -+ hub->event_bits[0] = 0; -+ } -+ - /* Lock the device, then check to see if we were - * disconnected while waiting for the lock to succeed. */ - usb_lock_device(hdev); -diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c -index ba5322fe34f5..35d084c52f2d 100644 ---- a/fs/btrfs/space-info.c -+++ b/fs/btrfs/space-info.c -@@ -365,6 +365,23 @@ static u64 calc_available_free_space(struct btrfs_fs_info *fs_info, - factor = btrfs_bg_type_to_factor(profile); - avail = div_u64(avail, factor); - -+ /* -+ * Since data allocations immediately use block groups as part of the -+ * reservation, because we assume that data reservations will == actual -+ * usage, we could potentially overcommit and then immediately have that -+ * available space used by a data allocation, which could put us in a -+ * bind when we get close to filling the file system. -+ * -+ * To handle this simply remove 1G (which is our current maximum chunk -+ * allocation size) from the available space. If we are relatively -+ * empty this won't affect our ability to overcommit much, and if we're -+ * very close to full it'll keep us from getting into a position where -+ * we've given ourselves very little metadata wiggle room. -+ */ -+ if (avail < SZ_1G) -+ return 0; -+ avail -= SZ_1G; -+ - /* - * If we aren't flushing all things, let us overcommit up to - * 1/2th of the space. If we can flush, don't let us overcommit -diff --git a/include/linux/efi.h b/include/linux/efi.h -index ab088c662e88..f974f9d9a7c5 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -43,6 +43,8 @@ - #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) - #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) - -+#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) -+ - typedef unsigned long efi_status_t; - typedef u8 efi_bool_t; - typedef u16 efi_char16_t; /* UNICODE character */ -@@ -871,6 +873,14 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ - #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ - #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ -+#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ -+ -+enum efi_secureboot_mode { -+ efi_secureboot_mode_unset, -+ efi_secureboot_mode_unknown, -+ efi_secureboot_mode_disabled, -+ efi_secureboot_mode_enabled, -+}; - - #ifdef CONFIG_EFI - /* -@@ -882,6 +892,8 @@ static inline bool efi_enabled(int feature) - } - extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); - -+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); -+ - bool __pure __efi_soft_reserve_enabled(void); - - static inline bool __pure efi_soft_reserve_enabled(void) -@@ -903,6 +915,8 @@ static inline bool efi_enabled(int feature) - static inline void - efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} - -+static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} -+ - static inline bool efi_soft_reserve_enabled(void) - { - return false; -@@ -917,6 +931,7 @@ static inline void efi_find_mirror(void) {} - #endif - - extern int efi_status_to_err(efi_status_t status); -+extern const char *efi_status_to_str(efi_status_t status); - - /* - * Variable Attributes -@@ -1133,13 +1148,6 @@ static inline bool efi_runtime_disabled(void) { return true; } - extern void efi_call_virt_check_flags(unsigned long flags, const char *call); - extern unsigned long efi_call_virt_save_flags(void); - --enum efi_secureboot_mode { -- efi_secureboot_mode_unset, -- efi_secureboot_mode_unknown, -- efi_secureboot_mode_disabled, -- efi_secureboot_mode_enabled, --}; -- - static inline - enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) - { -diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h -index af796986baee..83e1cb0ca159 100644 ---- a/include/linux/lsm_hook_defs.h -+++ b/include/linux/lsm_hook_defs.h -@@ -405,6 +405,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) - #endif /* CONFIG_BPF_SYSCALL */ - - LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) -+LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) -+ - - #ifdef CONFIG_PERF_EVENTS - LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) -diff --git a/include/linux/rmi.h b/include/linux/rmi.h -index ab7eea01ab42..fff7c5f737fc 100644 ---- a/include/linux/rmi.h -+++ b/include/linux/rmi.h -@@ -364,6 +364,7 @@ struct rmi_driver_data { - - struct rmi4_attn_data attn_data; - DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); -+ struct work_struct attn_work; - }; - - int rmi_register_transport_device(struct rmi_transport_dev *xport); -diff --git a/include/linux/security.h b/include/linux/security.h -index bac98ea18f78..28abed10b583 100644 ---- a/include/linux/security.h -+++ b/include/linux/security.h -@@ -483,6 +483,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); - int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); - int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); - int security_locked_down(enum lockdown_reason what); -+int security_lock_kernel_down(const char *where, enum lockdown_reason level); - #else /* CONFIG_SECURITY */ - - static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) -@@ -1394,6 +1395,10 @@ static inline int security_locked_down(enum lockdown_reason what) - { - return 0; - } -+static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return 0; -+} - #endif /* CONFIG_SECURITY */ - - #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) -diff --git a/kernel/module/signing.c b/kernel/module/signing.c -index a2ff4242e623..f0d2be1ee4f1 100644 ---- a/kernel/module/signing.c -+++ b/kernel/module/signing.c -@@ -61,10 +61,17 @@ int mod_verify_sig(const void *mod, struct load_info *info) - modlen -= sig_len + sizeof(ms); - info->len = modlen; - -- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, -+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, - VERIFY_USE_SECONDARY_KEYRING, - VERIFYING_MODULE_SIGNATURE, - NULL, NULL); -+ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { -+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, -+ VERIFY_USE_PLATFORM_KEYRING, -+ VERIFYING_MODULE_SIGNATURE, -+ NULL, NULL); -+ } -+ return ret; - } - - int module_sig_check(struct load_info *info, int flags) -diff --git a/scripts/tags.sh b/scripts/tags.sh -index a70d43723146..56d06b04f752 100755 ---- a/scripts/tags.sh -+++ b/scripts/tags.sh -@@ -16,6 +16,8 @@ fi - ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" - # tags and cscope files should also ignore MODVERSION *.mod.c files - ignore="$ignore ( -name *.mod.c ) -prune -o" -+# RHEL tags and cscope should also ignore redhat/rpm -+ignore="$ignore ( -path redhat/rpm ) -prune -o" - - # ignore arbitrary directories - if [ -n "${IGNORE_DIRS}" ]; then -diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c -index d1fdd113450a..182e8090cfe8 100644 ---- a/security/integrity/platform_certs/load_uefi.c -+++ b/security/integrity/platform_certs/load_uefi.c -@@ -74,7 +74,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, - return NULL; - - if (*status != EFI_BUFFER_TOO_SMALL) { -- pr_err("Couldn't get size: 0x%lx\n", *status); -+ pr_err("Couldn't get size: %s (0x%lx)\n", -+ efi_status_to_str(*status), *status); - return NULL; - } - -@@ -85,7 +86,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, - *status = efi.get_variable(name, guid, NULL, &lsize, db); - if (*status != EFI_SUCCESS) { - kfree(db); -- pr_err("Error reading db var: 0x%lx\n", *status); -+ pr_err("Error reading db var: %s (0x%lx)\n", -+ efi_status_to_str(*status), *status); - return NULL; - } - -diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig -index e84ddf484010..d0501353a4b9 100644 ---- a/security/lockdown/Kconfig -+++ b/security/lockdown/Kconfig -@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY - subsystem is fully initialised. If enabled, lockdown will - unconditionally be called before any other LSMs. - -+config LOCK_DOWN_IN_EFI_SECURE_BOOT -+ bool "Lock down the kernel in EFI Secure Boot mode" -+ default n -+ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY -+ help -+ UEFI Secure Boot provides a mechanism for ensuring that the firmware -+ will only load signed bootloaders and kernels. Secure boot mode may -+ be determined from EFI variables provided by the system firmware if -+ not indicated by the boot parameters. -+ -+ Enabling this option results in kernel lockdown being triggered if -+ EFI Secure Boot is set. -+ - choice - prompt "Kernel default lockdown mode" - default LOCK_DOWN_KERNEL_FORCE_NONE -diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c -index 68d19632aeb7..ef348935b6ff 100644 ---- a/security/lockdown/lockdown.c -+++ b/security/lockdown/lockdown.c -@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) - - static struct security_hook_list lockdown_hooks[] __ro_after_init = { - LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), -+ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), - }; - - static int __init lockdown_lsm_init(void) -diff --git a/security/security.c b/security/security.c -index 549104a447e3..73670798f075 100644 ---- a/security/security.c -+++ b/security/security.c -@@ -5198,6 +5198,18 @@ int security_locked_down(enum lockdown_reason what) - } - EXPORT_SYMBOL(security_locked_down); - -+/** -+ * security_lock_kernel_down() - Put the kernel into lock-down mode. -+ * -+ * @where: Where the lock-down is originating from (e.g. command line option) -+ * @level: The lock-down level (can only increase) -+ */ -+int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return call_int_hook(lock_kernel_down, 0, where, level); -+} -+EXPORT_SYMBOL(security_lock_kernel_down); -+ - #ifdef CONFIG_PERF_EVENTS - /** - * security_perf_event_open() - Check if a perf event open is allowed diff --git a/SOURCES/patch-6.6-redhat.patch b/SOURCES/patch-6.6-redhat.patch new file mode 100644 index 0000000..50b6ea9 --- /dev/null +++ b/SOURCES/patch-6.6-redhat.patch @@ -0,0 +1,1611 @@ + Makefile | 20 ++- + arch/s390/include/asm/ipl.h | 1 + + arch/s390/kernel/ipl.c | 5 + + arch/s390/kernel/setup.c | 4 + + arch/x86/kernel/setup.c | 22 ++- + drivers/acpi/acpi_video.c | 2 +- + drivers/acpi/apei/hest.c | 8 + + drivers/acpi/device_pm.c | 13 ++ + drivers/acpi/irq.c | 17 +- + drivers/acpi/scan.c | 9 ++ + drivers/ata/libahci.c | 18 +++ + drivers/char/ipmi/ipmi_dmi.c | 15 ++ + drivers/char/ipmi/ipmi_msghandler.c | 16 +- + drivers/firmware/efi/Makefile | 1 + + drivers/firmware/efi/efi.c | 124 +++++++++++---- + drivers/firmware/efi/secureboot.c | 38 +++++ + drivers/firmware/sysfb.c | 18 ++- + drivers/hid/hid-rmi.c | 66 -------- + drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +++ + drivers/input/rmi4/rmi_driver.c | 124 +++++++++------ + drivers/iommu/iommu.c | 22 +++ + drivers/pci/quirks.c | 24 +++ + drivers/rtc/rtc-cmos.c | 18 ++- + drivers/scsi/sd.c | 10 ++ + drivers/usb/core/hub.c | 7 + + include/acpi/acpi_bus.h | 1 + + include/linux/efi.h | 22 ++- + include/linux/lsm_hook_defs.h | 2 + + include/linux/module.h | 1 + + include/linux/rh_kabi.h | 172 +++++++++++++++++++++ + include/linux/rmi.h | 1 + + include/linux/security.h | 5 + + kernel/module/main.c | 2 + + kernel/module/signing.c | 9 +- + scripts/mod/modpost.c | 8 + + scripts/tags.sh | 2 + + security/integrity/platform_certs/load_uefi.c | 6 +- + security/lockdown/Kconfig | 13 ++ + security/lockdown/lockdown.c | 1 + + security/security.c | 12 ++ + 40 files changed, 696 insertions(+), 182 deletions(-) + +diff --git a/Makefile b/Makefile +index 03c52108af62..66048c4637d1 100644 +--- a/Makefile ++++ b/Makefile +@@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ + PHONY := __all + __all: + ++# Set RHEL variables ++# Note that this ifdef'ery is required to handle when building with ++# the O= mechanism (relocate the object file results) due to upstream ++# commit 67d7c302 which broke our RHEL include file ++ifneq ($(realpath source),) ++include $(realpath source)/Makefile.rhelver ++else ++ifneq ($(realpath Makefile.rhelver),) ++include Makefile.rhelver ++endif ++endif ++ + # We are using a recursive build, so we need to do a little thinking + # to get the ordering right. + # +@@ -1250,7 +1262,13 @@ define filechk_version.h + ((c) > 255 ? 255 : (c)))'; \ + echo \#define LINUX_VERSION_MAJOR $(VERSION); \ + echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \ +- echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL) ++ echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL); \ ++ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \ ++ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \ ++ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \ ++ echo '#define RHEL_RELEASE_CODE \ ++ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \ ++ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"' + endef + + $(version_h): PATCHLEVEL := $(or $(PATCHLEVEL), 0) +diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h +index b0d00032479d..afb9544fb007 100644 +--- a/arch/s390/include/asm/ipl.h ++++ b/arch/s390/include/asm/ipl.h +@@ -139,6 +139,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, + unsigned char flags, unsigned short cert); + int ipl_report_add_certificate(struct ipl_report *report, void *key, + unsigned long addr, unsigned long len); ++bool ipl_get_secureboot(void); + + /* + * DIAG 308 support +diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c +index 05e51666db03..454a33b77878 100644 +--- a/arch/s390/kernel/ipl.c ++++ b/arch/s390/kernel/ipl.c +@@ -2519,3 +2519,8 @@ int ipl_report_free(struct ipl_report *report) + } + + #endif ++ ++bool ipl_get_secureboot(void) ++{ ++ return !!ipl_secure_flag; ++} +diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c +index de6ad0fb2328..5cc2758be027 100644 +--- a/arch/s390/kernel/setup.c ++++ b/arch/s390/kernel/setup.c +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -914,6 +915,9 @@ void __init setup_arch(char **cmdline_p) + + log_component_list(); + ++ if (ipl_get_secureboot()) ++ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); ++ + /* Have one command line that is parsed and saved in /proc/cmdline */ + /* boot_command_line has been already set up in early.c */ + *cmdline_p = boot_command_line; +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index b098b1fa2470..a159419e60df 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1028,6 +1029,13 @@ void __init setup_arch(char **cmdline_p) + if (efi_enabled(EFI_BOOT)) + efi_init(); + ++ efi_set_secure_boot(boot_params.secure_boot); ++ ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); ++#endif ++ + reserve_ibft_region(); + dmi_setup(); + +@@ -1189,19 +1197,7 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- if (efi_enabled(EFI_BOOT)) { +- switch (boot_params.secure_boot) { +- case efi_secureboot_mode_disabled: +- pr_info("Secure boot disabled\n"); +- break; +- case efi_secureboot_mode_enabled: +- pr_info("Secure boot enabled\n"); +- break; +- default: +- pr_info("Secure boot could not be determined\n"); +- break; +- } +- } ++ efi_set_secure_boot(boot_params.secure_boot); + + reserve_initrd(); + +diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c +index b411948594ff..4e868454b38d 100644 +--- a/drivers/acpi/acpi_video.c ++++ b/drivers/acpi/acpi_video.c +@@ -2031,7 +2031,7 @@ static int acpi_video_bus_add(struct acpi_device *device) + * HP ZBook Fury 16 G10 requires ACPI video's child devices have _PS0 + * evaluated to have functional panel brightness control. + */ +- acpi_device_fix_up_power_extended(device); ++ acpi_device_fix_up_power_children(device); + + pr_info("%s [%s] (multi-head: %s rom: %s post: %s)\n", + ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), +diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c +index 6aef1ee5e1bd..8f146b1b4972 100644 +--- a/drivers/acpi/apei/hest.c ++++ b/drivers/acpi/apei/hest.c +@@ -96,6 +96,14 @@ static int apei_hest_parse(apei_hest_func_t func, void *data) + if (hest_disable || !hest_tab) + return -EINVAL; + ++#ifdef CONFIG_ARM64 ++ /* Ignore broken firmware */ ++ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && ++ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && ++ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) ++ return -EINVAL; ++#endif ++ + hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); + for (i = 0; i < hest_tab->error_source_count; i++) { + len = hest_esrc_len(hest_hdr); +diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c +index f007116a8427..3b4d048c4941 100644 +--- a/drivers/acpi/device_pm.c ++++ b/drivers/acpi/device_pm.c +@@ -397,6 +397,19 @@ void acpi_device_fix_up_power_extended(struct acpi_device *adev) + } + EXPORT_SYMBOL_GPL(acpi_device_fix_up_power_extended); + ++/** ++ * acpi_device_fix_up_power_children - Force a device's children into D0. ++ * @adev: Parent device object whose children's power state is to be fixed up. ++ * ++ * Call acpi_device_fix_up_power() for @adev's children so long as they ++ * are reported as present and enabled. ++ */ ++void acpi_device_fix_up_power_children(struct acpi_device *adev) ++{ ++ acpi_dev_for_each_child(adev, fix_up_power_if_applicable, NULL); ++} ++EXPORT_SYMBOL_GPL(acpi_device_fix_up_power_children); ++ + int acpi_device_update_power(struct acpi_device *device, int *state_p) + { + int state; +diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c +index 1687483ff319..390b67f19181 100644 +--- a/drivers/acpi/irq.c ++++ b/drivers/acpi/irq.c +@@ -143,6 +143,7 @@ struct acpi_irq_parse_one_ctx { + unsigned int index; + unsigned long *res_flags; + struct irq_fwspec *fwspec; ++ bool skip_producer_check; + }; + + /** +@@ -216,7 +217,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + return AE_CTRL_TERMINATE; + case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: + eirq = &ares->data.extended_irq; +- if (eirq->producer_consumer == ACPI_PRODUCER) ++ if (!ctx->skip_producer_check && ++ eirq->producer_consumer == ACPI_PRODUCER) + return AE_OK; + if (ctx->index >= eirq->interrupt_count) { + ctx->index -= eirq->interrupt_count; +@@ -252,8 +254,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, + struct irq_fwspec *fwspec, unsigned long *flags) + { +- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; ++ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; + ++ /* ++ * Firmware on arm64-based HPE m400 platform incorrectly marks ++ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. ++ * Don't do the producer/consumer check for that device. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64)) { ++ struct acpi_device *adev = acpi_get_acpi_dev(handle); ++ ++ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08")) ++ ctx.skip_producer_check = true; ++ } + acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx); + return ctx.rc; + } +diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c +index 691d4b7686ee..433ff7d8a844 100644 +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -1752,6 +1752,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) + if (!acpi_match_device_ids(device, ignore_serial_bus_ids)) + return false; + ++ /* ++ * Firmware on some arm64 X-Gene platforms will make the UART ++ * device appear as both a UART and a slave of that UART. Just ++ * bail out here for X-Gene UARTs. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64) && ++ !strcmp(acpi_device_hid(device), "APMC0D08")) ++ return false; ++ + INIT_LIST_HEAD(&resource_list); + acpi_dev_get_resources(device, &resource_list, + acpi_check_serial_bus_slave, +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index f1263364fa97..24ac410f4366 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -729,6 +729,24 @@ int ahci_stop_engine(struct ata_port *ap) + tmp &= ~PORT_CMD_START; + writel(tmp, port_mmio + PORT_CMD); + ++#ifdef CONFIG_ARM64 ++ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ ++ if (dev_is_pci(ap->host->dev) && ++ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && ++ to_pci_dev(ap->host->dev)->device == 0x9027 && ++ midr_is_cpu_model_range(read_cpuid_id(), ++ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), ++ MIDR_CPU_VAR_REV(0, 0), ++ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { ++ tmp = readl(hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); ++ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); ++ } ++#endif ++ + /* wait for engine to stop. This could be as long as 500 msec */ + tmp = ata_wait_register(ap, port_mmio + PORT_CMD, + PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); +diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c +index bbf7029e224b..cf7faa970dd6 100644 +--- a/drivers/char/ipmi/ipmi_dmi.c ++++ b/drivers/char/ipmi/ipmi_dmi.c +@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) + { + const struct dmi_device *dev = NULL; + ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return 0; ++ } ++ /* END RHEL-only */ ++#endif ++ + while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) + dmi_decode_ipmi((const struct dmi_header *) dev->device_data); + +diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c +index 186f1fee7534..93e3a76596ff 100644 +--- a/drivers/char/ipmi/ipmi_msghandler.c ++++ b/drivers/char/ipmi/ipmi_msghandler.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + + #define IPMI_DRIVER_VERSION "39.2" +@@ -5516,8 +5517,21 @@ static int __init ipmi_init_msghandler_mod(void) + { + int rv; + +- pr_info("version " IPMI_DRIVER_VERSION "\n"); ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); + ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return -ENOSYS; ++ } ++ /* END RHEL-only */ ++#endif ++ pr_info("version " IPMI_DRIVER_VERSION "\n"); + mutex_lock(&ipmi_interfaces_mutex); + rv = ipmi_register_driver(); + mutex_unlock(&ipmi_interfaces_mutex); +diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile +index e489fefd23da..f2dfae764fb5 100644 +--- a/drivers/firmware/efi/Makefile ++++ b/drivers/firmware/efi/Makefile +@@ -25,6 +25,7 @@ subdir-$(CONFIG_EFI_STUB) += libstub + obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o + obj-$(CONFIG_EFI_TEST) += test/ + obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o ++obj-$(CONFIG_EFI) += secureboot.o + obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o + obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o + obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index 1974f0ad32ba..6ba6391494ec 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include + +@@ -983,40 +984,101 @@ int efi_mem_type(unsigned long phys_addr) + } + #endif + ++struct efi_error_code { ++ efi_status_t status; ++ int errno; ++ const char *description; ++}; ++ ++static const struct efi_error_code efi_error_codes[] = { ++ { EFI_SUCCESS, 0, "Success"}, ++#if 0 ++ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"}, ++#endif ++ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"}, ++ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"}, ++ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"}, ++ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"}, ++ { EFI_NOT_READY, -EAGAIN, "Not Ready"}, ++ { EFI_DEVICE_ERROR, -EIO, "Device Error"}, ++ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"}, ++ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"}, ++#if 0 ++ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"}, ++ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"}, ++ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"}, ++ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"}, ++#endif ++ { EFI_NOT_FOUND, -ENOENT, "Not Found"}, ++#if 0 ++ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"}, ++ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"}, ++ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"}, ++ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"}, ++ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"}, ++ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"}, ++#endif ++ { EFI_ABORTED, -EINTR, "Aborted"}, ++#if 0 ++ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"}, ++ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"}, ++ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"}, ++ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"}, ++#endif ++ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"}, ++#if 0 ++ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"}, ++ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"}, ++ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"}, ++ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"}, ++ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"}, ++ ++ // warnings ++ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"}, ++ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"}, ++ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"}, ++ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"}, ++#endif ++}; ++ ++static int ++efi_status_cmp_bsearch(const void *key, const void *item) ++{ ++ u64 status = (u64)(uintptr_t)key; ++ struct efi_error_code *code = (struct efi_error_code *)item; ++ ++ if (status < code->status) ++ return -1; ++ if (status > code->status) ++ return 1; ++ return 0; ++} ++ + int efi_status_to_err(efi_status_t status) + { +- int err; +- +- switch (status) { +- case EFI_SUCCESS: +- err = 0; +- break; +- case EFI_INVALID_PARAMETER: +- err = -EINVAL; +- break; +- case EFI_OUT_OF_RESOURCES: +- err = -ENOSPC; +- break; +- case EFI_DEVICE_ERROR: +- err = -EIO; +- break; +- case EFI_WRITE_PROTECTED: +- err = -EROFS; +- break; +- case EFI_SECURITY_VIOLATION: +- err = -EACCES; +- break; +- case EFI_NOT_FOUND: +- err = -ENOENT; +- break; +- case EFI_ABORTED: +- err = -EINTR; +- break; +- default: +- err = -EINVAL; +- } ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); + +- return err; ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return -EINVAL; ++ return found->errno; ++} ++ ++const char * ++efi_status_to_str(efi_status_t status) ++{ ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); ++ ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return "Unknown error code"; ++ return found->description; + } + EXPORT_SYMBOL_GPL(efi_status_to_err); + +diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c +new file mode 100644 +index 000000000000..de0a3714a5d4 +--- /dev/null ++++ b/drivers/firmware/efi/secureboot.c +@@ -0,0 +1,38 @@ ++/* Core kernel secure boot support. ++ * ++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. ++ * Written by David Howells (dhowells@redhat.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public Licence ++ * as published by the Free Software Foundation; either version ++ * 2 of the Licence, or (at your option) any later version. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include ++#include ++#include ++ ++/* ++ * Decide what to do when UEFI secure boot mode is enabled. ++ */ ++void __init efi_set_secure_boot(enum efi_secureboot_mode mode) ++{ ++ if (efi_enabled(EFI_BOOT)) { ++ switch (mode) { ++ case efi_secureboot_mode_disabled: ++ pr_info("Secure boot disabled\n"); ++ break; ++ case efi_secureboot_mode_enabled: ++ set_bit(EFI_SECURE_BOOT, &efi.flags); ++ pr_info("Secure boot enabled\n"); ++ break; ++ default: ++ pr_warn("Secure boot could not be determined (mode %u)\n", ++ mode); ++ break; ++ } ++ } ++} +diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c +index 82fcfd29bc4d..17b7e096b682 100644 +--- a/drivers/firmware/sysfb.c ++++ b/drivers/firmware/sysfb.c +@@ -34,6 +34,22 @@ + #include + #include + ++static int skip_simpledrm; ++ ++static int __init simpledrm_disable(char *opt) ++{ ++ if (!opt) ++ return -EINVAL; ++ ++ get_option(&opt, &skip_simpledrm); ++ ++ if (skip_simpledrm) ++ pr_info("The simpledrm driver will not be probed\n"); ++ ++ return 0; ++} ++early_param("nvidia-drm.modeset", simpledrm_disable); ++ + static struct platform_device *pd; + static DEFINE_MUTEX(disable_lock); + static bool disabled; +@@ -85,7 +101,7 @@ static __init int sysfb_init(void) + + /* try to create a simple-framebuffer device */ + compatible = sysfb_parse_mode(si, &mode); +- if (compatible) { ++ if (compatible && !skip_simpledrm) { + pd = sysfb_create_simplefb(si, &mode); + if (!IS_ERR(pd)) + goto unlock_mutex; +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 84e7ba5314d3..efc96776f761 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -321,21 +321,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + struct rmi_device *rmi_dev = hdata->xport.rmi_dev; +- unsigned long flags; + + if (!(test_bit(RMI_STARTED, &hdata->flags))) + return 0; + +- pm_wakeup_event(hdev->dev.parent, 0); +- +- local_irq_save(flags); +- + rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); + +- generic_handle_irq(hdata->rmi_irq); +- +- local_irq_restore(flags); +- + return 1; + } + +@@ -591,56 +582,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { + .reset = rmi_hid_reset, + }; + +-static void rmi_irq_teardown(void *data) +-{ +- struct rmi_data *hdata = data; +- struct irq_domain *domain = hdata->domain; +- +- if (!domain) +- return; +- +- irq_dispose_mapping(irq_find_mapping(domain, 0)); +- +- irq_domain_remove(domain); +- hdata->domain = NULL; +- hdata->rmi_irq = 0; +-} +- +-static int rmi_irq_map(struct irq_domain *h, unsigned int virq, +- irq_hw_number_t hw_irq_num) +-{ +- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); +- +- return 0; +-} +- +-static const struct irq_domain_ops rmi_irq_ops = { +- .map = rmi_irq_map, +-}; +- +-static int rmi_setup_irq_domain(struct hid_device *hdev) +-{ +- struct rmi_data *hdata = hid_get_drvdata(hdev); +- int ret; +- +- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, +- &rmi_irq_ops, hdata); +- if (!hdata->domain) +- return -ENOMEM; +- +- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); +- if (ret) +- return ret; +- +- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); +- if (hdata->rmi_irq <= 0) { +- hid_err(hdev, "Can't allocate an IRQ\n"); +- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; +- } +- +- return 0; +-} +- + static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + { + struct rmi_data *data = NULL; +@@ -713,18 +654,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + + mutex_init(&data->page_mutex); + +- ret = rmi_setup_irq_domain(hdev); +- if (ret) { +- hid_err(hdev, "failed to allocate IRQ domain\n"); +- return ret; +- } +- + if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) + rmi_hid_pdata.gpio_data.disable = true; + + data->xport.dev = hdev->dev.parent; + data->xport.pdata = rmi_hid_pdata; +- data->xport.pdata.irq = data->rmi_irq; + data->xport.proto_name = "hid"; + data->xport.ops = &hid_rmi_ops; + +diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c +index 77b0271ce6eb..96f60c139c4a 100644 +--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c ++++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2303,6 +2304,16 @@ static const struct amba_id etm4_ids[] = { + {}, + }; + ++static const struct dmi_system_id broken_coresight[] = { ++ { ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "HPE"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Apollo 70"), ++ }, ++ }, ++ { } /* terminating entry */ ++}; ++ + MODULE_DEVICE_TABLE(amba, etm4_ids); + + static struct amba_driver etm4x_amba_driver = { +@@ -2372,6 +2383,11 @@ static int __init etm4x_init(void) + { + int ret; + ++ if (dmi_check_system(broken_coresight)) { ++ pr_info("ETM4 disabled due to firmware bug\n"); ++ return 0; ++ } ++ + ret = etm4_pm_setup(); + + /* etm4_pm_setup() does its own cleanup - exit on error */ +@@ -2398,6 +2414,9 @@ static int __init etm4x_init(void) + + static void __exit etm4x_exit(void) + { ++ if (dmi_check_system(broken_coresight)) ++ return; ++ + amba_driver_unregister(&etm4x_amba_driver); + platform_driver_unregister(&etm4_platform_driver); + etm4_pm_clear(); +diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c +index 258d5fe3d395..f7298e3dc8f3 100644 +--- a/drivers/input/rmi4/rmi_driver.c ++++ b/drivers/input/rmi4/rmi_driver.c +@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, + attn_data.data = fifo_data; + + kfifo_put(&drvdata->attn_fifo, attn_data); ++ ++ schedule_work(&drvdata->attn_work); + } + EXPORT_SYMBOL_GPL(rmi_set_attn_data); + +-static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++static void attn_callback(struct work_struct *work) + { +- struct rmi_device *rmi_dev = dev_id; +- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); ++ struct rmi_driver_data *drvdata = container_of(work, ++ struct rmi_driver_data, ++ attn_work); + struct rmi4_attn_data attn_data = {0}; + int ret, count; + + count = kfifo_get(&drvdata->attn_fifo, &attn_data); +- if (count) { +- *(drvdata->irq_status) = attn_data.irq_status; +- drvdata->attn_data = attn_data; +- } ++ if (!count) ++ return; + +- ret = rmi_process_interrupt_requests(rmi_dev); ++ *(drvdata->irq_status) = attn_data.irq_status; ++ drvdata->attn_data = attn_data; ++ ++ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); + if (ret) +- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, + "Failed to process interrupt request: %d\n", ret); + +- if (count) { +- kfree(attn_data.data); +- drvdata->attn_data.data = NULL; +- } ++ kfree(attn_data.data); ++ drvdata->attn_data.data = NULL; + + if (!kfifo_is_empty(&drvdata->attn_fifo)) +- return rmi_irq_fn(irq, dev_id); ++ schedule_work(&drvdata->attn_work); ++} ++ ++static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++{ ++ struct rmi_device *rmi_dev = dev_id; ++ int ret; ++ ++ ret = rmi_process_interrupt_requests(rmi_dev); ++ if (ret) ++ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ "Failed to process interrupt request: %d\n", ret); + + return IRQ_HANDLED; + } +@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) + static int rmi_irq_init(struct rmi_device *rmi_dev) + { + struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); +- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); + int irq_flags = irq_get_trigger_type(pdata->irq); + int ret; + +@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) + return ret; + } + +- data->enabled = true; +- + return 0; + } + +@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) + if (data->enabled) + goto out; + +- enable_irq(irq); +- data->enabled = true; +- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = disable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to disable irq for wake: %d\n", +- retval); +- } ++ if (irq) { ++ enable_irq(irq); ++ data->enabled = true; ++ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = disable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to disable irq for wake: %d\n", ++ retval); ++ } + +- /* +- * Call rmi_process_interrupt_requests() after enabling irq, +- * otherwise we may lose interrupt on edge-triggered systems. +- */ +- irq_flags = irq_get_trigger_type(pdata->irq); +- if (irq_flags & IRQ_TYPE_EDGE_BOTH) +- rmi_process_interrupt_requests(rmi_dev); ++ /* ++ * Call rmi_process_interrupt_requests() after enabling irq, ++ * otherwise we may lose interrupt on edge-triggered systems. ++ */ ++ irq_flags = irq_get_trigger_type(pdata->irq); ++ if (irq_flags & IRQ_TYPE_EDGE_BOTH) ++ rmi_process_interrupt_requests(rmi_dev); ++ } else { ++ data->enabled = true; ++ } + + out: + mutex_unlock(&data->enabled_mutex); +@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) + goto out; + + data->enabled = false; +- disable_irq(irq); +- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = enable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to enable irq for wake: %d\n", +- retval); +- } +- +- /* make sure the fifo is clean */ +- while (!kfifo_is_empty(&data->attn_fifo)) { +- count = kfifo_get(&data->attn_fifo, &attn_data); +- if (count) +- kfree(attn_data.data); ++ if (irq) { ++ disable_irq(irq); ++ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = enable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to enable irq for wake: %d\n", ++ retval); ++ } ++ } else { ++ /* make sure the fifo is clean */ ++ while (!kfifo_is_empty(&data->attn_fifo)) { ++ count = kfifo_get(&data->attn_fifo, &attn_data); ++ if (count) ++ kfree(attn_data.data); ++ } + } + + out: +@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) + irq_domain_remove(data->irqdomain); + data->irqdomain = NULL; + ++ cancel_work_sync(&data->attn_work); ++ + rmi_f34_remove_sysfs(rmi_dev); + rmi_free_function_list(rmi_dev); + +@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) + } + } + +- retval = rmi_irq_init(rmi_dev); +- if (retval < 0) +- goto err_destroy_functions; ++ if (pdata->irq) { ++ retval = rmi_irq_init(rmi_dev); ++ if (retval < 0) ++ goto err_destroy_functions; ++ } ++ ++ data->enabled = true; ++ ++ INIT_WORK(&data->attn_work, attn_callback); + + if (data->f01_container->dev.driver) { + /* Driver already bound, so enable ATTN now. */ +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index c146378c7d03..f9e8d35eaccc 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -8,6 +8,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -2931,6 +2932,27 @@ int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat) + } + EXPORT_SYMBOL_GPL(iommu_dev_disable_feature); + ++#ifdef CONFIG_ARM64 ++static int __init iommu_quirks(void) ++{ ++ const char *vendor, *name; ++ ++ vendor = dmi_get_system_info(DMI_SYS_VENDOR); ++ name = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (vendor && ++ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && ++ (strncmp(name, "R120", 4) == 0 || ++ strncmp(name, "R270", 4) == 0))) { ++ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); ++ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; ++ } ++ ++ return 0; ++} ++arch_initcall(iommu_quirks); ++#endif ++ + /** + * iommu_setup_default_domain - Set the default_domain for the group + * @group: Group to change +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index e3e915329510..929ca9fa61a7 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -4410,6 +4410,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, + quirk_bridge_cavm_thrx2_pcie_root); + ++/* ++ * PCI BAR 5 is not setup correctly for the on-board AHCI controller ++ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by ++ * using BAR 4's resources which are populated correctly and NOT ++ * actually used by the AHCI controller. ++ */ ++static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) ++{ ++ struct resource *r = &dev->resource[4]; ++ ++ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) ++ return; ++ ++ /* Set BAR5 resource to BAR4 */ ++ dev->resource[5] = *r; ++ ++ /* Update BAR5 in pci config space */ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); ++ ++ /* Clear BAR4's resource */ ++ memset(r, 0, sizeof(*r)); ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); ++ + /* + * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) + * class code. Fix it. +diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c +index 228fb2d11c70..696cfa7025de 100644 +--- a/drivers/rtc/rtc-cmos.c ++++ b/drivers/rtc/rtc-cmos.c +@@ -818,18 +818,24 @@ static void rtc_wake_off(struct device *dev) + } + + #ifdef CONFIG_X86 +-/* Enable use_acpi_alarm mode for Intel platforms no earlier than 2015 */ + static void use_acpi_alarm_quirks(void) + { +- if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) ++ switch (boot_cpu_data.x86_vendor) { ++ case X86_VENDOR_INTEL: ++ if (dmi_get_bios_year() < 2015) ++ return; ++ break; ++ case X86_VENDOR_AMD: ++ case X86_VENDOR_HYGON: ++ if (dmi_get_bios_year() < 2021) ++ return; ++ break; ++ default: + return; +- ++ } + if (!is_hpet_enabled()) + return; + +- if (dmi_get_bios_year() < 2015) +- return; +- + use_acpi_alarm = true; + } + #else +diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c +index 6effa13039f3..fbfbd542b858 100644 +--- a/drivers/scsi/sd.c ++++ b/drivers/scsi/sd.c +@@ -118,6 +118,14 @@ static const char *sd_cache_types[] = { + "write back, no read (daft)" + }; + ++static const char *sd_probe_types[] = { "async", "sync" }; ++ ++static char sd_probe_type[6] = "async"; ++module_param_string(probe, sd_probe_type, sizeof(sd_probe_type), ++ S_IRUGO|S_IWUSR); ++MODULE_PARM_DESC(probe, "async or sync. Setting to 'sync' disables asynchronous " ++ "device number assignments (sda, sdb, ...)."); ++ + static void sd_set_flush_flag(struct scsi_disk *sdkp) + { + bool wc = false, fua = false; +@@ -4045,6 +4053,8 @@ static int __init init_sd(void) + goto err_out_class; + } + ++ if (!strcmp(sd_probe_type, "sync")) ++ sd_template.gendrv.probe_type = PROBE_FORCE_SYNCHRONOUS; + err = scsi_register_driver(&sd_template.gendrv); + if (err) + goto err_out_driver; +diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c +index 0ff47eeffb49..005b8c595c60 100644 +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -5782,6 +5782,13 @@ static void hub_event(struct work_struct *work) + (u16) hub->change_bits[0], + (u16) hub->event_bits[0]); + ++ /* Don't disconnect USB-SATA on TrimSlice */ ++ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { ++ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && ++ (hub->event_bits[0] == 0x2)) ++ hub->event_bits[0] = 0; ++ } ++ + /* Lock the device, then check to see if we were + * disconnected while waiting for the lock to succeed. */ + usb_lock_device(hdev); +diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h +index 254685085c82..0b7eab0ef7d7 100644 +--- a/include/acpi/acpi_bus.h ++++ b/include/acpi/acpi_bus.h +@@ -539,6 +539,7 @@ int acpi_device_set_power(struct acpi_device *device, int state); + int acpi_bus_init_power(struct acpi_device *device); + int acpi_device_fix_up_power(struct acpi_device *device); + void acpi_device_fix_up_power_extended(struct acpi_device *adev); ++void acpi_device_fix_up_power_children(struct acpi_device *adev); + int acpi_bus_update_power(acpi_handle handle, int *state_p); + int acpi_device_update_power(struct acpi_device *device, int *state_p); + bool acpi_bus_power_manageable(acpi_handle handle); +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 80b21d1c6eaf..b66c0683f2fc 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -44,6 +44,8 @@ struct screen_info; + #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) + #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) + ++#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) ++ + typedef unsigned long efi_status_t; + typedef u8 efi_bool_t; + typedef u16 efi_char16_t; /* UNICODE character */ +@@ -871,6 +873,14 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ + #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ + #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ ++#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ ++ ++enum efi_secureboot_mode { ++ efi_secureboot_mode_unset, ++ efi_secureboot_mode_unknown, ++ efi_secureboot_mode_disabled, ++ efi_secureboot_mode_enabled, ++}; + + #ifdef CONFIG_EFI + /* +@@ -882,6 +892,8 @@ static inline bool efi_enabled(int feature) + } + extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + ++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); ++ + bool __pure __efi_soft_reserve_enabled(void); + + static inline bool __pure efi_soft_reserve_enabled(void) +@@ -903,6 +915,8 @@ static inline bool efi_enabled(int feature) + static inline void + efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} + ++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} ++ + static inline bool efi_soft_reserve_enabled(void) + { + return false; +@@ -917,6 +931,7 @@ static inline void efi_find_mirror(void) {} + #endif + + extern int efi_status_to_err(efi_status_t status); ++extern const char *efi_status_to_str(efi_status_t status); + + /* + * Variable Attributes +@@ -1133,13 +1148,6 @@ static inline bool efi_runtime_disabled(void) { return true; } + extern void efi_call_virt_check_flags(unsigned long flags, const void *caller); + extern unsigned long efi_call_virt_save_flags(void); + +-enum efi_secureboot_mode { +- efi_secureboot_mode_unset, +- efi_secureboot_mode_unknown, +- efi_secureboot_mode_disabled, +- efi_secureboot_mode_enabled, +-}; +- + static inline + enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) + { +diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h +index ac962c4cb44b..d0cedef6859c 100644 +--- a/include/linux/lsm_hook_defs.h ++++ b/include/linux/lsm_hook_defs.h +@@ -405,6 +405,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) + #endif /* CONFIG_BPF_SYSCALL */ + + LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) ++LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) ++ + + #ifdef CONFIG_PERF_EVENTS + LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) +diff --git a/include/linux/module.h b/include/linux/module.h +index a98e188cf37b..2eef4246c2c9 100644 +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -418,6 +418,7 @@ struct module { + struct module_attribute *modinfo_attrs; + const char *version; + const char *srcversion; ++ const char *rhelversion; + struct kobject *holders_dir; + + /* Exported symbols */ +diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h +new file mode 100644 +index 000000000000..e0d3353802bb +--- /dev/null ++++ b/include/linux/rh_kabi.h +@@ -0,0 +1,172 @@ ++/* ++ * rh_kabi.h - Red Hat kABI abstraction header ++ * ++ * Copyright (c) 2014 Don Zickus ++ * Copyright (c) 2015-2017 Jiri Benc ++ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa ++ * Copyright (c) 2016-2018 Prarit Bhargava ++ * Copyright (c) 2017 Paolo Abeni, Larry Woodman ++ * ++ * This file is released under the GPLv2. ++ * See the file COPYING for more details. ++ * ++ * These kabi macros hide the changes from the kabi checker and from the ++ * process that computes the exported symbols' checksums. ++ * They have 2 variants: one (defined under __GENKSYMS__) used when ++ * generating the checksums, and the other used when building the kernel's ++ * binaries. ++ * ++ * The use of these macros does not guarantee that the usage and modification ++ * of code is correct. As with all Red Hat only changes, an engineer must ++ * explain why the use of the macro is valid in the patch containing the ++ * changes. ++ * ++ */ ++ ++#ifndef _LINUX_RH_KABI_H ++#define _LINUX_RH_KABI_H ++ ++#include ++#include ++ ++/* ++ * RH_KABI_CONST ++ * Adds a new const modifier to a function parameter preserving the old ++ * checksum. ++ * ++ * RH_KABI_DEPRECATE ++ * Mark the element as deprecated and make it unusable by modules while ++ * preserving kABI checksums. ++ * ++ * RH_KABI_DEPRECATE_FN ++ * Mark the function pointer as deprecated and make it unusable by modules ++ * while preserving kABI checksums. ++ * ++ * RH_KABI_EXTEND ++ * Simple macro for adding a new element to a struct. ++ * ++ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify. ++ * ++ * RH_KABI_FILL_HOLE ++ * Simple macro for filling a hole in a struct. ++ * ++ * RH_KABI_RENAME ++ * Simple macro for renaming an element without changing its type. This ++ * macro can be used in bitfields, for example. ++ * ++ * NOTE: does not include the final ';' ++ * ++ * RH_KABI_REPLACE ++ * Simple replacement of _orig with a union of _orig and _new. ++ * ++ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new' ++ * element while preserving size alignment with the '_orig' element. ++ * ++ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous ++ * union structure preserves the size alignment (assuming the '_new' element ++ * is not bigger than the '_orig' element). ++ * ++ * RH_KABI_REPLACE_UNSAFE ++ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs. ++ * ++ * RH_KABI_FORCE_CHANGE ++ * Force change of the symbol checksum. The argument of the macro is a ++ * version for cases we need to do this more than once. ++ * ++ * This macro does the opposite: it changes the symbol checksum without ++ * actually changing anything about the exported symbol. It is useful for ++ * symbols that are not whitelisted, we're changing them in an ++ * incompatible way and want to prevent 3rd party modules to silently ++ * corrupt memory. Instead, by changing the symbol checksum, such modules ++ * won't be loaded by the kernel. This macro should only be used as a ++ * last resort when all other KABI workarounds have failed. ++ * ++ * NOTE ++ * Don't use ';' after these macros as it messes up the kABI checker by ++ * changing what the resulting token string looks like. Instead let this ++ * macro add the ';' so it can be properly hidden from the kABI checker ++ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity). ++ * ++ */ ++#ifdef __GENKSYMS__ ++ ++# define RH_KABI_CONST ++# define RH_KABI_EXTEND(_new) ++# define RH_KABI_FILL_HOLE(_new) ++# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver)) ++# define RH_KABI_RENAME(_orig, _new) _orig ++ ++# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig ++# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args) ++# define _RH_KABI_REPLACE(_orig, _new) _orig ++# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig ++ ++#else ++ ++# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging." ++ ++# define RH_KABI_CONST const ++# define RH_KABI_EXTEND(_new) _new; ++# define RH_KABI_FILL_HOLE(_new) _new; ++# define RH_KABI_FORCE_CHANGE(ver) ++# define RH_KABI_RENAME(_orig, _new) _new ++ ++ ++#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS) ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \ ++ union { \ ++ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \ ++ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \ ++ } ++#else ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) ++#endif ++ ++# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig ++# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ ++ _type (* rh_reserved_##_orig)(_args) ++# define _RH_KABI_REPLACE(_orig, _new) \ ++ union { \ ++ _new; \ ++ struct { \ ++ _orig; \ ++ } __UNIQUE_ID(rh_kabi_hide); \ ++ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \ ++ } ++# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new ++ ++#endif /* __GENKSYMS__ */ ++ ++/* semicolon added wrappers for the RH_KABI_REPLACE macros */ ++# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig); ++# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ ++ _RH_KABI_DEPRECATE_FN(_type, _orig, _args); ++# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new); ++# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new); ++/* ++ * Macro for breaking up a random element into two smaller chunks using an ++ * anonymous struct inside an anonymous union. ++ */ ++# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;}) ++ ++# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n); ++/* ++ * Simple wrappers to replace standard Red Hat reserved elements. ++ */ ++# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new) ++/* ++ * Macros for breaking up a reserved element into two smaller chunks using ++ * an anonymous struct inside an anonymous union. ++ */ ++# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; }) ++ ++/* ++ * We tried to standardize on Red Hat reserved names. These wrappers ++ * leverage those common names making it easier to read and find in the ++ * code. ++ */ ++# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n ++ ++#endif /* _LINUX_RH_KABI_H */ +diff --git a/include/linux/rmi.h b/include/linux/rmi.h +index ab7eea01ab42..fff7c5f737fc 100644 +--- a/include/linux/rmi.h ++++ b/include/linux/rmi.h +@@ -364,6 +364,7 @@ struct rmi_driver_data { + + struct rmi4_attn_data attn_data; + DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); ++ struct work_struct attn_work; + }; + + int rmi_register_transport_device(struct rmi_transport_dev *xport); +diff --git a/include/linux/security.h b/include/linux/security.h +index 5f16eecde00b..974be25cfa70 100644 +--- a/include/linux/security.h ++++ b/include/linux/security.h +@@ -484,6 +484,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); + int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); + int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); + int security_locked_down(enum lockdown_reason what); ++int security_lock_kernel_down(const char *where, enum lockdown_reason level); + #else /* CONFIG_SECURITY */ + + static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) +@@ -1395,6 +1396,10 @@ static inline int security_locked_down(enum lockdown_reason what) + { + return 0; + } ++static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return 0; ++} + #endif /* CONFIG_SECURITY */ + + #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) +diff --git a/kernel/module/main.c b/kernel/module/main.c +index 98fedfdb8db5..a21921f880e1 100644 +--- a/kernel/module/main.c ++++ b/kernel/module/main.c +@@ -528,6 +528,7 @@ static struct module_attribute modinfo_##field = { \ + + MODINFO_ATTR(version); + MODINFO_ATTR(srcversion); ++MODINFO_ATTR(rhelversion); + + static struct { + char name[MODULE_NAME_LEN + 1]; +@@ -980,6 +981,7 @@ struct module_attribute *modinfo_attrs[] = { + &module_uevent, + &modinfo_version, + &modinfo_srcversion, ++ &modinfo_rhelversion, + &modinfo_initstate, + &modinfo_coresize, + #ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC +diff --git a/kernel/module/signing.c b/kernel/module/signing.c +index a2ff4242e623..f0d2be1ee4f1 100644 +--- a/kernel/module/signing.c ++++ b/kernel/module/signing.c +@@ -61,10 +61,17 @@ int mod_verify_sig(const void *mod, struct load_info *info) + modlen -= sig_len + sizeof(ms); + info->len = modlen; + +- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + VERIFY_USE_SECONDARY_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); ++ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ VERIFY_USE_PLATFORM_KEYRING, ++ VERIFYING_MODULE_SIGNATURE, ++ NULL, NULL); ++ } ++ return ret; + } + + int module_sig_check(struct load_info *info, int flags) +diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c +index b3dee80497cb..3715db3f99d4 100644 +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -23,6 +23,7 @@ + #include "modpost.h" + #include "../../include/linux/license.h" + #include "../../include/linux/module_symbol.h" ++#include "../../include/generated/uapi/linux/version.h" + + static bool module_enabled; + /* Are we using CONFIG_MODVERSIONS? */ +@@ -2088,6 +2089,12 @@ static void write_buf(struct buffer *b, const char *fname) + } + } + ++static void add_rhelversion(struct buffer *b, struct module *mod) ++{ ++ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR, ++ RHEL_MINOR); ++} ++ + static void write_if_changed(struct buffer *b, const char *fname) + { + char *tmp; +@@ -2148,6 +2155,7 @@ static void write_mod_c_file(struct module *mod) + add_depends(&buf, mod); + add_moddevtable(&buf, mod); + add_srcversion(&buf, mod); ++ add_rhelversion(&buf, mod); + + ret = snprintf(fname, sizeof(fname), "%s.mod.c", mod->name); + if (ret >= sizeof(fname)) { +diff --git a/scripts/tags.sh b/scripts/tags.sh +index a70d43723146..56d06b04f752 100755 +--- a/scripts/tags.sh ++++ b/scripts/tags.sh +@@ -16,6 +16,8 @@ fi + ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" + # tags and cscope files should also ignore MODVERSION *.mod.c files + ignore="$ignore ( -name *.mod.c ) -prune -o" ++# RHEL tags and cscope should also ignore redhat/rpm ++ignore="$ignore ( -path redhat/rpm ) -prune -o" + + # ignore arbitrary directories + if [ -n "${IGNORE_DIRS}" ]; then +diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c +index d1fdd113450a..182e8090cfe8 100644 +--- a/security/integrity/platform_certs/load_uefi.c ++++ b/security/integrity/platform_certs/load_uefi.c +@@ -74,7 +74,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + return NULL; + + if (*status != EFI_BUFFER_TOO_SMALL) { +- pr_err("Couldn't get size: 0x%lx\n", *status); ++ pr_err("Couldn't get size: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +@@ -85,7 +86,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + *status = efi.get_variable(name, guid, NULL, &lsize, db); + if (*status != EFI_SUCCESS) { + kfree(db); +- pr_err("Error reading db var: 0x%lx\n", *status); ++ pr_err("Error reading db var: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig +index e84ddf484010..d0501353a4b9 100644 +--- a/security/lockdown/Kconfig ++++ b/security/lockdown/Kconfig +@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY + subsystem is fully initialised. If enabled, lockdown will + unconditionally be called before any other LSMs. + ++config LOCK_DOWN_IN_EFI_SECURE_BOOT ++ bool "Lock down the kernel in EFI Secure Boot mode" ++ default n ++ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY ++ help ++ UEFI Secure Boot provides a mechanism for ensuring that the firmware ++ will only load signed bootloaders and kernels. Secure boot mode may ++ be determined from EFI variables provided by the system firmware if ++ not indicated by the boot parameters. ++ ++ Enabling this option results in kernel lockdown being triggered if ++ EFI Secure Boot is set. ++ + choice + prompt "Kernel default lockdown mode" + default LOCK_DOWN_KERNEL_FORCE_NONE +diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c +index 68d19632aeb7..ef348935b6ff 100644 +--- a/security/lockdown/lockdown.c ++++ b/security/lockdown/lockdown.c +@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) + + static struct security_hook_list lockdown_hooks[] __ro_after_init = { + LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), ++ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), + }; + + static int __init lockdown_lsm_init(void) +diff --git a/security/security.c b/security/security.c +index 23b129d482a7..55d0fe0d121b 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -5230,6 +5230,18 @@ int security_locked_down(enum lockdown_reason what) + } + EXPORT_SYMBOL(security_locked_down); + ++/** ++ * security_lock_kernel_down() - Put the kernel into lock-down mode. ++ * ++ * @where: Where the lock-down is originating from (e.g. command line option) ++ * @level: The lock-down level (can only increase) ++ */ ++int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return call_int_hook(lock_kernel_down, 0, where, level); ++} ++EXPORT_SYMBOL(security_lock_kernel_down); ++ + #ifdef CONFIG_PERF_EVENTS + /** + * security_perf_event_open() - Check if a perf event open is allowed diff --git a/SOURCES/rog-ally-alsa.patch b/SOURCES/rog-ally-alsa.patch index 6cfa703..189b049 100644 --- a/SOURCES/rog-ally-alsa.patch +++ b/SOURCES/rog-ally-alsa.patch @@ -4,327 +4,6 @@ From: Cristian Ciocaltea @ 2023-09-07 17:10 UTC (permalink / raw) Stefan Binding, Charles Keepax, Vitaly Rodionov Cc: alsa-devel, patches, linux-kernel, kernel -The return code of regmap_multi_reg_write() call related to "MDSYNC up" -sequence is shadowed by the subsequent regmap_read_poll_timeout() -invocation, which will hit a timeout in case the write operation above -fails. - -Make sure cs35l41_global_enable() returns the correct error code instead -of -ETIMEDOUT. - -Additionally, to be able to distinguish between the timeouts of -wait_for_completion_timeout() and regmap_read_poll_timeout(), print an -error message for the former and return immediately. This also avoids -having to wait unnecessarily for the second time. - -Fixes: f8264c759208 ("ALSA: cs35l41: Poll for Power Up/Down rather than waiting a fixed delay") -Signed-off-by: Cristian Ciocaltea -Acked-by: Charles Keepax ---- - sound/soc/codecs/cs35l41-lib.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c -index a018f1d98428..a6c6bb23b957 100644 ---- a/sound/soc/codecs/cs35l41-lib.c -+++ b/sound/soc/codecs/cs35l41-lib.c -@@ -1251,15 +1251,18 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - - ret = wait_for_completion_timeout(pll_lock, msecs_to_jiffies(1000)); - if (ret == 0) { -- ret = -ETIMEDOUT; -- } else { -- regmap_read(regmap, CS35L41_PWR_CTRL3, &pwr_ctrl3); -- pwr_ctrl3 |= CS35L41_SYNC_EN_MASK; -- cs35l41_mdsync_up_seq[0].def = pwr_ctrl3; -- ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_up_seq, -- ARRAY_SIZE(cs35l41_mdsync_up_seq)); -+ dev_err(dev, "Timed out waiting for pll_lock\n"); -+ return -ETIMEDOUT; - } - -+ regmap_read(regmap, CS35L41_PWR_CTRL3, &pwr_ctrl3); -+ pwr_ctrl3 |= CS35L41_SYNC_EN_MASK; -+ cs35l41_mdsync_up_seq[0].def = pwr_ctrl3; -+ ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_up_seq, -+ ARRAY_SIZE(cs35l41_mdsync_up_seq)); -+ if (ret) -+ return ret; -+ - ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, - int_status, int_status & pup_pdn_mask, - 1000, 100000); --- -2.41.0 -From: Cristian Ciocaltea @ 2023-09-07 17:10 UTC (permalink / raw) - To: James Schulman, David Rhodes, Richard Fitzgerald, - Jaroslav Kysela, Takashi Iwai, Liam Girdwood, Mark Brown, - Stefan Binding, Charles Keepax, Vitaly Rodionov - Cc: alsa-devel, patches, linux-kernel, kernel - -Enabling the active/passive shared boosts requires setting SYNC_EN, but -*not* before receiving the PLL Lock signal. - -Due to improper error handling, it was not obvious that waiting for the -completion operation times out and, consequently, the shared boost is -never activated. - -Further investigations revealed the signal is triggered while -snd_pcm_start() is executed, right after receiving the -SNDRV_PCM_TRIGGER_START command, which happens long after the -SND_SOC_DAPM_PRE_PMU event handler is invoked as part of -snd_pcm_prepare(). That is where cs35l41_global_enable() is called -from. - -Increasing the wait duration doesn't help, as it only causes an -unnecessary delay in the invocation of snd_pcm_start(). Moving the wait -and the subsequent regmap operations to the SNDRV_PCM_TRIGGER_START -callback is not a solution either, since they would be executed in an -IRQ-off atomic context. - -Solve the issue by setting the SYNC_EN bit in PWR_CTRL3 register right -after receiving the PLL Lock interrupt. - -Additionally, drop the unnecessary writes to PWR_CTRL1 register, part of -the original mdsync_up_seq, which would have toggled GLOBAL_EN with -unwanted consequences on PLL locking behavior. - -Fixes: f5030564938b ("ALSA: cs35l41: Add shared boost feature") -Signed-off-by: Cristian Ciocaltea ---- - include/sound/cs35l41.h | 4 +-- - sound/pci/hda/cs35l41_hda.c | 4 +-- - sound/soc/codecs/cs35l41-lib.c | 61 ++++++++++++++++++++-------------- - sound/soc/codecs/cs35l41.c | 24 ++++++++----- - sound/soc/codecs/cs35l41.h | 1 - - 5 files changed, 55 insertions(+), 39 deletions(-) - -diff --git a/include/sound/cs35l41.h b/include/sound/cs35l41.h -index 1bf757901d02..2fe8c6b0d4cf 100644 ---- a/include/sound/cs35l41.h -+++ b/include/sound/cs35l41.h -@@ -11,7 +11,6 @@ - #define __CS35L41_H - - #include --#include - #include - - #define CS35L41_FIRSTREG 0x00000000 -@@ -902,7 +901,8 @@ int cs35l41_exit_hibernate(struct device *dev, struct regmap *regmap); - int cs35l41_init_boost(struct device *dev, struct regmap *regmap, - struct cs35l41_hw_cfg *hw_cfg); - bool cs35l41_safe_reset(struct regmap *regmap, enum cs35l41_boost_type b_type); -+int cs35l41_mdsync_up(struct regmap *regmap); - int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type, -- int enable, struct completion *pll_lock, bool firmware_running); -+ int enable, bool firmware_running); - - #endif /* __CS35L41_H */ -diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c -index f9b77353c266..09a9c135d9b6 100644 ---- a/sound/pci/hda/cs35l41_hda.c -+++ b/sound/pci/hda/cs35l41_hda.c -@@ -527,7 +527,7 @@ static void cs35l41_hda_play_done(struct device *dev) - - dev_dbg(dev, "Play (Complete)\n"); - -- cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL, -+ cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, - cs35l41->firmware_running); - if (cs35l41->firmware_running) { - regmap_multi_reg_write(reg, cs35l41_hda_unmute_dsp, -@@ -546,7 +546,7 @@ static void cs35l41_hda_pause_start(struct device *dev) - dev_dbg(dev, "Pause (Start)\n"); - - regmap_multi_reg_write(reg, cs35l41_hda_mute, ARRAY_SIZE(cs35l41_hda_mute)); -- cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0, NULL, -+ cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0, - cs35l41->firmware_running); - } - -diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c -index a6c6bb23b957..2ec5fdc875b1 100644 ---- a/sound/soc/codecs/cs35l41-lib.c -+++ b/sound/soc/codecs/cs35l41-lib.c -@@ -1192,8 +1192,28 @@ bool cs35l41_safe_reset(struct regmap *regmap, enum cs35l41_boost_type b_type) - } - EXPORT_SYMBOL_GPL(cs35l41_safe_reset); - -+/* -+ * Enabling the CS35L41_SHD_BOOST_ACTV and CS35L41_SHD_BOOST_PASS shared boosts -+ * does also require a call to cs35l41_mdsync_up(), but not before getting the -+ * PLL Lock signal. -+ * -+ * PLL Lock seems to be triggered soon after snd_pcm_start() is executed and -+ * SNDRV_PCM_TRIGGER_START command is processed, which happens (long) after the -+ * SND_SOC_DAPM_PRE_PMU event handler is invoked as part of snd_pcm_prepare(). -+ * -+ * This event handler is where cs35l41_global_enable() is normally called from, -+ * but waiting for PLL Lock here will time out. Increasing the wait duration -+ * will not help, as the only consequence of it would be to add an unnecessary -+ * delay in the invocation of snd_pcm_start(). -+ * -+ * Trying to move the wait in the SNDRV_PCM_TRIGGER_START callback is not a -+ * solution either, as the trigger is executed in an IRQ-off atomic context. -+ * -+ * The current approach is to invoke cs35l41_mdsync_up() right after receiving -+ * the PLL Lock interrupt, in the IRQ handler. -+ */ - int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l41_boost_type b_type, -- int enable, struct completion *pll_lock, bool firmware_running) -+ int enable, bool firmware_running) - { - int ret; - unsigned int gpio1_func, pad_control, pwr_ctrl1, pwr_ctrl3, int_status, pup_pdn_mask; -@@ -1203,11 +1223,6 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - {CS35L41_GPIO_PAD_CONTROL, 0}, - {CS35L41_PWR_CTRL1, 0, 3000}, - }; -- struct reg_sequence cs35l41_mdsync_up_seq[] = { -- {CS35L41_PWR_CTRL3, 0}, -- {CS35L41_PWR_CTRL1, 0x00000000, 3000}, -- {CS35L41_PWR_CTRL1, 0x00000001, 3000}, -- }; - - pup_pdn_mask = enable ? CS35L41_PUP_DONE_MASK : CS35L41_PDN_DONE_MASK; - -@@ -1241,26 +1256,11 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - cs35l41_mdsync_down_seq[0].def = pwr_ctrl3; - cs35l41_mdsync_down_seq[1].def = pad_control; - cs35l41_mdsync_down_seq[2].def = pwr_ctrl1; -+ - ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_down_seq, - ARRAY_SIZE(cs35l41_mdsync_down_seq)); -- if (ret || !enable) -- break; -- -- if (!pll_lock) -- return -EINVAL; -- -- ret = wait_for_completion_timeout(pll_lock, msecs_to_jiffies(1000)); -- if (ret == 0) { -- dev_err(dev, "Timed out waiting for pll_lock\n"); -- return -ETIMEDOUT; -- } -- -- regmap_read(regmap, CS35L41_PWR_CTRL3, &pwr_ctrl3); -- pwr_ctrl3 |= CS35L41_SYNC_EN_MASK; -- cs35l41_mdsync_up_seq[0].def = pwr_ctrl3; -- ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_up_seq, -- ARRAY_SIZE(cs35l41_mdsync_up_seq)); -- if (ret) -+ /* Activation to be completed later via cs35l41_mdsync_up() */ -+ if (ret || enable) - return ret; - - ret = regmap_read_poll_timeout(regmap, CS35L41_IRQ1_STATUS1, -@@ -1269,7 +1269,7 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - if (ret) - dev_err(dev, "Enable(%d) failed: %d\n", enable, ret); - -- // Clear PUP/PDN status -+ /* Clear PUP/PDN status */ - regmap_write(regmap, CS35L41_IRQ1_STATUS1, pup_pdn_mask); - break; - case CS35L41_INT_BOOST: -@@ -1351,6 +1351,17 @@ int cs35l41_global_enable(struct device *dev, struct regmap *regmap, enum cs35l4 - } - EXPORT_SYMBOL_GPL(cs35l41_global_enable); - -+/* -+ * To be called after receiving the IRQ Lock interrupt, in order to complete -+ * any shared boost activation initiated by cs35l41_global_enable(). -+ */ -+int cs35l41_mdsync_up(struct regmap *regmap) -+{ -+ return regmap_update_bits(regmap, CS35L41_PWR_CTRL3, -+ CS35L41_SYNC_EN_MASK, CS35L41_SYNC_EN_MASK); -+} -+EXPORT_SYMBOL_GPL(cs35l41_mdsync_up); -+ - int cs35l41_gpio_config(struct regmap *regmap, struct cs35l41_hw_cfg *hw_cfg) - { - struct cs35l41_gpio_cfg *gpio1 = &hw_cfg->gpio1; -diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c -index fe5376b3e01b..12327b4c3d56 100644 ---- a/sound/soc/codecs/cs35l41.c -+++ b/sound/soc/codecs/cs35l41.c -@@ -459,7 +459,19 @@ static irqreturn_t cs35l41_irq(int irq, void *data) - - if (status[2] & CS35L41_PLL_LOCK) { - regmap_write(cs35l41->regmap, CS35L41_IRQ1_STATUS3, CS35L41_PLL_LOCK); -- complete(&cs35l41->pll_lock); -+ -+ if (cs35l41->hw_cfg.bst_type == CS35L41_SHD_BOOST_ACTV || -+ cs35l41->hw_cfg.bst_type == CS35L41_SHD_BOOST_PASS) { -+ ret = cs35l41_mdsync_up(cs35l41->regmap); -+ if (ret) -+ dev_err(cs35l41->dev, "MDSYNC-up failed: %d\n", ret); -+ else -+ dev_dbg(cs35l41->dev, "MDSYNC-up done\n"); -+ -+ dev_dbg(cs35l41->dev, "PUP-done status: %d\n", -+ !!(status[0] & CS35L41_PUP_DONE_MASK)); -+ } -+ - ret = IRQ_HANDLED; - } - -@@ -500,11 +512,11 @@ static int cs35l41_main_amp_event(struct snd_soc_dapm_widget *w, - ARRAY_SIZE(cs35l41_pup_patch)); - - ret = cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, -- 1, &cs35l41->pll_lock, cs35l41->dsp.cs_dsp.running); -+ 1, cs35l41->dsp.cs_dsp.running); - break; - case SND_SOC_DAPM_POST_PMD: - ret = cs35l41_global_enable(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type, -- 0, &cs35l41->pll_lock, cs35l41->dsp.cs_dsp.running); -+ 0, cs35l41->dsp.cs_dsp.running); - - regmap_multi_reg_write_bypassed(cs35l41->regmap, - cs35l41_pdn_patch, -@@ -802,10 +814,6 @@ static const struct snd_pcm_hw_constraint_list cs35l41_constraints = { - static int cs35l41_pcm_startup(struct snd_pcm_substream *substream, - struct snd_soc_dai *dai) - { -- struct cs35l41_private *cs35l41 = snd_soc_component_get_drvdata(dai->component); -- -- reinit_completion(&cs35l41->pll_lock); -- - if (substream->runtime) - return snd_pcm_hw_constraint_list(substream->runtime, 0, - SNDRV_PCM_HW_PARAM_RATE, -@@ -1273,8 +1281,6 @@ int cs35l41_probe(struct cs35l41_private *cs35l41, const struct cs35l41_hw_cfg * - regmap_update_bits(cs35l41->regmap, CS35L41_IRQ1_MASK3, CS35L41_INT3_PLL_LOCK_MASK, - 0 << CS35L41_INT3_PLL_LOCK_SHIFT); - -- init_completion(&cs35l41->pll_lock); -- - ret = devm_request_threaded_irq(cs35l41->dev, cs35l41->irq, NULL, cs35l41_irq, - IRQF_ONESHOT | IRQF_SHARED | irq_pol, - "cs35l41", cs35l41); -diff --git a/sound/soc/codecs/cs35l41.h b/sound/soc/codecs/cs35l41.h -index 34d967d4372b..c85cbc1dd333 100644 ---- a/sound/soc/codecs/cs35l41.h -+++ b/sound/soc/codecs/cs35l41.h -@@ -33,7 +33,6 @@ struct cs35l41_private { - int irq; - /* GPIO for /RST */ - struct gpio_desc *reset_gpio; -- struct completion pll_lock; - }; - - int cs35l41_probe(struct cs35l41_private *cs35l41, const struct cs35l41_hw_cfg *hw_cfg); --- -2.41.0 -From: Cristian Ciocaltea @ 2023-09-07 17:10 UTC (permalink / raw) - To: James Schulman, David Rhodes, Richard Fitzgerald, - Jaroslav Kysela, Takashi Iwai, Liam Girdwood, Mark Brown, - Stefan Binding, Charles Keepax, Vitaly Rodionov - Cc: alsa-devel, patches, linux-kernel, kernel - Use dev_err_probe() helper where possible, to simplify error handling during probe. diff --git a/SOURCES/rpminspect.yaml b/SOURCES/rpminspect.yaml index 8b160a4..b4e599a 100644 --- a/SOURCES/rpminspect.yaml +++ b/SOURCES/rpminspect.yaml @@ -23,7 +23,7 @@ emptyrpm: patches: ignore_list: - linux-kernel-test.patch - - patch-6.5-redhat.patch + - patch-6.6-redhat.patch runpath: ignore: diff --git a/SOURCES/steam-deck.patch b/SOURCES/steam-deck.patch index 696f642..395cdd3 100644 --- a/SOURCES/steam-deck.patch +++ b/SOURCES/steam-deck.patch @@ -181,6 +181,7 @@ index 000000000000..0e504b3c2796 +MODULE_AUTHOR("Andrey Smirnov "); +MODULE_DESCRIPTION("Steam Deck EC MFD core driver"); +MODULE_LICENSE("GPL"); + From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Sat, 19 Feb 2022 16:09:45 -0800 @@ -462,6 +463,7 @@ index 000000000000..fab9e9460bd4 +MODULE_AUTHOR("Andrey Smirnov "); +MODULE_DESCRIPTION("Steam Deck EC sensors driver"); +MODULE_LICENSE("GPL"); + From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Sun, 27 Feb 2022 12:58:05 -0800 @@ -587,6 +589,7 @@ index 000000000000..686500b8de73 +MODULE_AUTHOR("Andrey Smirnov "); +MODULE_DESCRIPTION("Steam Deck LEDs driver"); +MODULE_LICENSE("GPL"); + From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Sun, 27 Feb 2022 14:46:08 -0800 @@ -813,6 +816,7 @@ index 000000000000..74f190adc8ea +MODULE_AUTHOR("Andrey Smirnov "); +MODULE_DESCRIPTION("Steam Deck extcon driver"); +MODULE_LICENSE("GPL"); + From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Sat, 15 Jul 2023 12:58:54 -0700 @@ -919,7 +923,59 @@ index fab9e9460bd4..9d0a5471b181 100644 if (IS_ERR(hwmon)) { dev_err(dev, "Failed to register HWMON device"); return PTR_ERR(hwmon); -From b899859fe49cccda9e8739d29d883dbd6dd057f3 Mon Sep 17 00:00:00 2001 + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrey Smirnov +Date: Sun, 24 Sep 2023 15:02:33 -0700 +Subject: [PATCH] mfd: steamdeck: Expose controller board power in sysfs + +As of version 118 Deck's BIOS implements "SCBP" method that allows +gating power of the controller board (VBUS). Add a basic WO method to +our root MFD device to allow toggling that. + +Signed-off-by: Andrey Smirnov +(cherry picked from commit f97f32718acc10cbb51fef925842392e80904d74) +Signed-off-by: Cristian Ciocaltea +Signed-off-by: Jan200101 +--- + drivers/mfd/steamdeck.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/drivers/mfd/steamdeck.c b/drivers/mfd/steamdeck.c +index 0e504b3c2796..a60fa7db9141 100644 +--- a/drivers/mfd/steamdeck.c ++++ b/drivers/mfd/steamdeck.c +@@ -41,9 +41,29 @@ struct steamdeck { + STEAMDECK_ATTR_RO(firmware_version, "PDFW"); + STEAMDECK_ATTR_RO(board_id, "BOID"); + ++static ssize_t controller_board_power_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t count) ++{ ++ struct steamdeck *sd = dev_get_drvdata(dev); ++ bool enabled; ++ ssize_t ret = kstrtobool(buf, &enabled); ++ ++ if (ret) ++ return ret; ++ ++ if (ACPI_FAILURE(acpi_execute_simple_method(sd->adev->handle, ++ "SCBP", enabled))) ++ return -EIO; ++ ++ return count; ++} ++static DEVICE_ATTR_WO(controller_board_power); ++ + static struct attribute *steamdeck_attrs[] = { + &dev_attr_firmware_version.attr, + &dev_attr_board_id.attr, ++ &dev_attr_controller_board_power.attr, + NULL + }; + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 30 Jun 2022 18:42:10 -0700 Subject: [PATCH 01/10] USB: gadget: f_hid: Add Get-Feature report @@ -1219,7 +1275,7 @@ index 835473910a498..9754822b2a409 100644 2.41.0 -From 20ebaf7b44ff03078cf53e43306d6c5a3d0613e6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 30 Jun 2022 18:43:10 -0700 Subject: [PATCH 02/10] USB: gadget: f_hid: Add Set-Feature report @@ -1485,7 +1541,7 @@ index c6068b4863543..54814c2c68d60 100644 2.41.0 -From 146e98d6f595e3a4e6c09a00ee9ec2d48a6703cb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 29 Nov 2022 18:32:58 -0800 Subject: [PATCH 03/10] HID: hid-steam: Update list of identifiers from SDL @@ -1752,7 +1808,7 @@ index b110818fc9458..39a9bf3b7f77d 100644 2.41.0 -From 4b1dd1ebfd2d3f123212e1296d304909e5b3a406 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 16 Nov 2022 19:54:26 -0800 Subject: [PATCH 04/10] HID: hid-steam: Add gamepad-only mode switched to by @@ -1906,7 +1962,7 @@ index 39a9bf3b7f77d..0620046b142ef 100644 2.41.0 -From 187582492c359d56865759f120214cfe6fa4ed50 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 8 May 2023 20:24:56 -0700 Subject: [PATCH 05/10] HID: hid-steam: Clean up locking @@ -2313,7 +2369,7 @@ index 0620046b142ef..845ca71b8bd3a 100644 2.41.0 -From d4490c88bed06b4c18af4a6029d67374df5218e1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 10 May 2023 17:27:12 -0700 Subject: [PATCH 06/10] HID: hid-steam: Make client_opened a counter @@ -2382,7 +2438,7 @@ index 845ca71b8bd3a..0c2fe51b29bc1 100644 2.41.0 -From 58a8667b251984ecc85a503c5dec3fc8f98028ff Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 18 May 2023 18:00:35 -0700 Subject: [PATCH 07/10] HID: hid-steam: Better handling of serial number length @@ -2439,137 +2495,3 @@ index 0c2fe51b29bc1..92e3e1052fa42 100644 return ret; -- 2.41.0 - - -From 7460867bd78651a6187ac44c73d1be653c09973b Mon Sep 17 00:00:00 2001 -From: Vicki Pfau -Date: Fri, 24 Mar 2023 10:42:27 -0700 -Subject: [PATCH 08/10] Input: xpad - fix support for some third-party - controllers - -Some third-party controllers, such as the HORPIAD FPS for Nintendo Switch and -Gamesir-G3w, require a specific packet that the first-party XInput driver sends -before it will start sending reports. It's not currently known what this packet -does, but since the first-party driver always sends it's unlikely that this -could cause issues with existing controllers. - -Co-authored-by: Andrey Smirnov -Signed-off-by: Vicki Pfau -Link: https://lore.kernel.org/r/20230324040446.3487725-3-vi@endrift.com -Signed-off-by: Dmitry Torokhov ---- - drivers/input/joystick/xpad.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c -index cdb193317c3b6..fc680b45f936e 100644 ---- a/drivers/input/joystick/xpad.c -+++ b/drivers/input/joystick/xpad.c -@@ -264,6 +264,7 @@ static const struct xpad_device { - { 0x0f0d, 0x0067, "HORIPAD ONE", 0, XTYPE_XBOXONE }, - { 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, - { 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, -+ { 0x0f0d, 0x00dc, "HORIPAD FPS for Nintendo Switch", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, - { 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX }, - { 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX }, - { 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX }, -@@ -1720,6 +1721,27 @@ static int xpad_start_input(struct usb_xpad *xpad) - return error; - } - } -+ if (xpad->xtype == XTYPE_XBOX360) { -+ /* -+ * Some third-party controllers Xbox 360-style controllers -+ * require this message to finish initialization. -+ */ -+ u8 dummy[20]; -+ -+ error = usb_control_msg_recv(xpad->udev, 0, -+ /* bRequest */ 0x01, -+ /* bmRequestType */ -+ USB_TYPE_VENDOR | USB_DIR_IN | -+ USB_RECIP_INTERFACE, -+ /* wValue */ 0x100, -+ /* wIndex */ 0x00, -+ dummy, sizeof(dummy), -+ 25, GFP_KERNEL); -+ if (error) -+ dev_warn(&xpad->dev->dev, -+ "unable to receive magic message: %d\n", -+ error); -+ } - - return 0; - } --- -2.41.0 - - -From 469ab7efd0383f60e83c086347526273ed1d1a33 Mon Sep 17 00:00:00 2001 -From: Timothee Besset -Date: Mon, 22 May 2023 20:25:57 -0500 -Subject: [PATCH 09/10] Input: xpad - Add GameSir VID for Xbox One controllers - -Co-authored-by: Sam Lantinga -Signed-off-by: Sam Lantinga -Signed-off-by: Vicki Pfau ---- - drivers/input/joystick/xpad.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c -index fc680b45f936e..bb2f69faa2a81 100644 ---- a/drivers/input/joystick/xpad.c -+++ b/drivers/input/joystick/xpad.c -@@ -500,6 +500,7 @@ static const struct usb_device_id xpad_table[] = { - XPAD_XBOX360_VENDOR(0x2f24), /* GameSir controllers */ - XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ - XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ -+ XPAD_XBOXONE_VENDOR(0x3537), /* GameSir Controllers */ - { } - }; - --- -2.41.0 - - -From 4fd74c574f8554056facabd4e36e5e397f2e6b98 Mon Sep 17 00:00:00 2001 -From: Jonathan Frederick -Date: Fri, 7 Jul 2023 15:11:33 -0700 -Subject: [PATCH 10/10] Input: xpad - add GameSir T4 Kaleid Controller support - -Add VID and PID to the xpad_device table to allow driver -to use the GameSir T4 Kaleid Controller, which is -XTYPE_XBOX360 compatible in xinput mode. - -Signed-off-by: Jonathan Frederick -Link: https://lore.kernel.org/r/ZKeKSbP3faIPv5jB@dbj-hp-flip -Signed-off-by: Dmitry Torokhov ---- - drivers/input/joystick/xpad.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c -index bb2f69faa2a81..ede380551e55c 100644 ---- a/drivers/input/joystick/xpad.c -+++ b/drivers/input/joystick/xpad.c -@@ -366,6 +366,7 @@ static const struct xpad_device { - { 0x31e3, 0x1300, "Wooting 60HE (AVR)", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, - { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, -+ { 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 }, - { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, - { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, - { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } -@@ -500,6 +501,7 @@ static const struct usb_device_id xpad_table[] = { - XPAD_XBOX360_VENDOR(0x2f24), /* GameSir controllers */ - XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ - XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ -+ XPAD_XBOX360_VENDOR(0x3537), /* GameSir Controllers */ - XPAD_XBOXONE_VENDOR(0x3537), /* GameSir Controllers */ - { } - }; --- -2.41.0 - - diff --git a/SOURCES/tkg.patch b/SOURCES/tkg.patch index 8831829..3c405c8 100644 --- a/SOURCES/tkg.patch +++ b/SOURCES/tkg.patch @@ -49,12 +49,10 @@ index f788cd61df21..2bfbb4213707 100644 From f85ed068b4d0e6c31edce8574a95757a60e58b87 Mon Sep 17 00:00:00 2001 From: Etienne Juvigny Date: Mon, 3 Sep 2018 17:36:25 +0200 -Subject: [PATCH 07/17] Zenify & stuff +Subject: [PATCH 07/17] Add Zenify option --- init/Kconfig | 32 ++++++++++++++++++++++++++++++++ - kernel/sched/fair.c | 25 +++++++++++++++++++++++++ - mm/page-writeback.c | 8 ++++++++ 3 files changed, 65 insertions(+) diff --git a/init/Kconfig b/init/Kconfig @@ -99,102 +97,7 @@ index 3ae8678e1145..da708eed0f1e 100644 + config BROKEN bool - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 6b3b59cc51d6..2a0072192c3d 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -69,8 +69,13 @@ - * - * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds) - */ -+#ifdef CONFIG_ZENIFY -+unsigned int sysctl_sched_latency = 3000000ULL; -+static unsigned int normalized_sysctl_sched_latency = 3000000ULL; -+#else - unsigned int sysctl_sched_latency = 6000000ULL; - static unsigned int normalized_sysctl_sched_latency = 6000000ULL; -+#endif - - /* - * The initial- and re-scaling of tunables is configurable -@@ -90,8 +95,13 @@ - * - * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) - */ -+#ifdef CONFIG_ZENIFY -+unsigned int sysctl_sched_min_granularity = 300000ULL; -+static unsigned int normalized_sysctl_sched_min_granularity = 300000ULL; -+#else - unsigned int sysctl_sched_min_granularity = 750000ULL; - static unsigned int normalized_sysctl_sched_min_granularity = 750000ULL; -+#endif - - /* - * Minimal preemption granularity for CPU-bound SCHED_IDLE tasks. -@@ -99,12 +109,20 @@ - * - * (default: 0.75 msec) - */ -+#ifdef CONFIG_ZENIFY -+unsigned int sysctl_sched_idle_min_granularity = 300000ULL; -+#else - unsigned int sysctl_sched_idle_min_granularity = 750000ULL; -+#endif - /* - * This value is kept at sysctl_sched_latency/sysctl_sched_min_granularity - */ -+#ifdef CONFIG_ZENIFY -+static unsigned int sched_nr_latency = 10; -+#else - static unsigned int sched_nr_latency = 8; -+#endif - - /* - * After fork, child runs first. If set to 0 (default) then -@@ -175,8 +193,12 @@ - * - * (default: 5 msec, units: microseconds) - */ -+#ifdef CONFIG_ZENIFY -+static unsigned int sysctl_sched_cfs_bandwidth_slice = 3000UL; -+#else - static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; - #endif -+#endif - - #ifdef CONFIG_NUMA_BALANCING - /* Restrict the NUMA promotion throughput (MB/s) for each target node. */ - -diff --git a/mm/page-writeback.c b/mm/page-writeback.c -index 28b3e7a67565..01a1aef2b9b1 100644 ---- a/mm/page-writeback.c -+++ b/mm/page-writeback.c -@@ -71,7 +71,11 @@ static long ratelimit_pages = 32; - /* - * Start background writeback (via writeback threads) at this percentage - */ -+#ifdef CONFIG_ZENIFY -+static int dirty_background_ratio = 20; -+#else - static int dirty_background_ratio = 10; -+#endif - - /* - * dirty_background_bytes starts at 0 (disabled) so that it is a function of -@@ -88,7 +92,11 @@ int vm_highmem_is_dirtyable; - /* - * The generator of dirty data starts writeback at this percentage - */ -+#ifdef CONFIG_ZENIFY -+static int vm_dirty_ratio = 50; -+#else - static int vm_dirty_ratio = 20; -+#endif - - /* - * vm_dirty_bytes starts at 0 (disabled) so that it is a function of -- 2.28.0 diff --git a/SOURCES/winesync.patch b/SOURCES/winesync.patch new file mode 100644 index 0000000..3c72546 --- /dev/null +++ b/SOURCES/winesync.patch @@ -0,0 +1,5071 @@ +From 153c94d81f583dfbd9e4e81eefc6a9b8e83ff06d Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 10:50:45 -0600 +Subject: [PATCH 01/34] winesync: Introduce the winesync driver and character + device. + +--- + drivers/misc/Kconfig | 11 +++++++ + drivers/misc/Makefile | 1 + + drivers/misc/winesync.c | 64 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 76 insertions(+) + create mode 100644 drivers/misc/winesync.c + +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index 94e9fb4cdd76..4f9e3d80a6e8 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -562,6 +562,17 @@ config VCPU_STALL_DETECTOR + This driver can also be built as a module. If so, the module + will be called tps6594-pfsm. + ++config WINESYNC ++ tristate "Synchronization primitives for Wine" ++ help ++ This module provides kernel support for synchronization primitives ++ used by Wine. It is not a hardware driver. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called winesync. ++ ++ If unsure, say N. ++ + source "drivers/misc/c2port/Kconfig" + source "drivers/misc/eeprom/Kconfig" + source "drivers/misc/cb710/Kconfig" +diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile +index 2be8542616dd..d061fe45407b 100644 +--- a/drivers/misc/Makefile ++++ b/drivers/misc/Makefile +@@ -59,6 +59,7 @@ obj-$(CONFIG_HABANA_AI) += habanalabs/ + obj-$(CONFIG_UACCE) += uacce/ + obj-$(CONFIG_XILINX_SDFEC) += xilinx_sdfec.o + obj-$(CONFIG_HISI_HIKEY_USB) += hisi_hikey_usb.o ++obj-$(CONFIG_WINESYNC) += winesync.o + obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o + obj-$(CONFIG_OPEN_DICE) += open-dice.o + obj-$(CONFIG_GP_PCI1XXXX) += mchp_pci1xxxx/ +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +new file mode 100644 +index 000000000000..111f33c5676e +--- /dev/null ++++ b/drivers/misc/winesync.c +@@ -0,0 +1,64 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/* ++ * winesync.c - Kernel driver for Wine synchronization primitives ++ * ++ * Copyright (C) 2021 Zebediah Figura ++ */ ++ ++#include ++#include ++#include ++ ++#define WINESYNC_NAME "winesync" ++ ++static int winesync_char_open(struct inode *inode, struct file *file) ++{ ++ return nonseekable_open(inode, file); ++} ++ ++static int winesync_char_release(struct inode *inode, struct file *file) ++{ ++ return 0; ++} ++ ++static long winesync_char_ioctl(struct file *file, unsigned int cmd, ++ unsigned long parm) ++{ ++ switch (cmd) { ++ default: ++ return -ENOSYS; ++ } ++} ++ ++static const struct file_operations winesync_fops = { ++ .owner = THIS_MODULE, ++ .open = winesync_char_open, ++ .release = winesync_char_release, ++ .unlocked_ioctl = winesync_char_ioctl, ++ .compat_ioctl = winesync_char_ioctl, ++ .llseek = no_llseek, ++}; ++ ++static struct miscdevice winesync_misc = { ++ .minor = MISC_DYNAMIC_MINOR, ++ .name = WINESYNC_NAME, ++ .fops = &winesync_fops, ++}; ++ ++static int __init winesync_init(void) ++{ ++ return misc_register(&winesync_misc); ++} ++ ++static void __exit winesync_exit(void) ++{ ++ misc_deregister(&winesync_misc); ++} ++ ++module_init(winesync_init); ++module_exit(winesync_exit); ++ ++MODULE_AUTHOR("Zebediah Figura"); ++MODULE_DESCRIPTION("Kernel driver for Wine synchronization primitives"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("devname:" WINESYNC_NAME); +-- +2.37.3 + +From 1f142d40cb7537bd936a68cadaf0f2a0d94abd62 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 10:57:06 -0600 +Subject: [PATCH 02/34] winesync: Reserve a minor device number and ioctl + range. + +--- + Documentation/admin-guide/devices.txt | 3 ++- + Documentation/userspace-api/ioctl/ioctl-number.rst | 2 ++ + drivers/misc/winesync.c | 3 ++- + include/linux/miscdevice.h | 1 + + 4 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt +index c07dc0ee860e..4e5abe508426 100644 +--- a/Documentation/admin-guide/devices.txt ++++ b/Documentation/admin-guide/devices.txt +@@ -376,8 +376,9 @@ + 240 = /dev/userio Serio driver testing device + 241 = /dev/vhost-vsock Host kernel driver for virtio vsock + 242 = /dev/rfkill Turning off radio transmissions (rfkill) ++ 243 = /dev/winesync Wine synchronization primitive device + +- 243-254 Reserved for local use ++ 244-254 Reserved for local use + 255 Reserved for MISC_DYNAMIC_MINOR + + 11 char Raw keyboard device (Linux/SPARC only) +diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst +index 3b985b19f39d..3f313fd4338c 100644 +--- a/Documentation/userspace-api/ioctl/ioctl-number.rst ++++ b/Documentation/userspace-api/ioctl/ioctl-number.rst +@@ -375,6 +375,8 @@ Code Seq# Include File Comments + + 0xF6 all LTTng Linux Trace Toolkit Next Generation + ++0xF7 00-0F uapi/linux/winesync.h Wine synchronization primitives ++ + 0xF8 all arch/x86/include/uapi/asm/amd_hsmp.h AMD HSMP EPYC system management interface driver + + 0xFD all linux/dm-ioctl.h +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 111f33c5676e..85cb6ccaa077 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -40,7 +40,7 @@ static const struct file_operations winesync_fops = { + }; + + static struct miscdevice winesync_misc = { +- .minor = MISC_DYNAMIC_MINOR, ++ .minor = WINESYNC_MINOR, + .name = WINESYNC_NAME, + .fops = &winesync_fops, + }; +@@ -62,3 +62,4 @@ MODULE_AUTHOR("Zebediah Figura"); + MODULE_DESCRIPTION("Kernel driver for Wine synchronization primitives"); + MODULE_LICENSE("GPL"); + MODULE_ALIAS("devname:" WINESYNC_NAME); ++MODULE_ALIAS_MISCDEV(WINESYNC_MINOR); +diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h +index 0676f18093f9..350aecfcfb29 100644 +--- a/include/linux/miscdevice.h ++++ b/include/linux/miscdevice.h +@@ -71,6 +71,7 @@ + #define USERIO_MINOR 240 + #define VHOST_VSOCK_MINOR 241 + #define RFKILL_MINOR 242 ++#define WINESYNC_MINOR 243 + #define MISC_DYNAMIC_MINOR 255 + + struct device; +-- +2.36.0 + +From 8ad26f39cb5442d9e17f22ed0cda8d3669bb11b5 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:15:39 -0600 +Subject: [PATCH 03/34] winesync: Introduce WINESYNC_IOC_CREATE_SEM and + WINESYNC_IOC_DELETE. + +--- + drivers/misc/winesync.c | 117 ++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 25 ++++++++ + 2 files changed, 142 insertions(+) + create mode 100644 include/uapi/linux/winesync.h + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 85cb6ccaa077..36e31bbe0390 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -8,23 +8,140 @@ + #include + #include + #include ++#include ++#include ++#include + + #define WINESYNC_NAME "winesync" + ++enum winesync_type { ++ WINESYNC_TYPE_SEM, ++}; ++ ++struct winesync_obj { ++ struct rcu_head rhead; ++ struct kref refcount; ++ ++ enum winesync_type type; ++ ++ union { ++ struct { ++ __u32 count; ++ __u32 max; ++ } sem; ++ } u; ++}; ++ ++struct winesync_device { ++ struct xarray objects; ++}; ++ ++static void destroy_obj(struct kref *ref) ++{ ++ struct winesync_obj *obj = container_of(ref, struct winesync_obj, refcount); ++ ++ kfree_rcu(obj, rhead); ++} ++ ++static void put_obj(struct winesync_obj *obj) ++{ ++ kref_put(&obj->refcount, destroy_obj); ++} ++ + static int winesync_char_open(struct inode *inode, struct file *file) + { ++ struct winesync_device *dev; ++ ++ dev = kzalloc(sizeof(*dev), GFP_KERNEL); ++ if (!dev) ++ return -ENOMEM; ++ ++ xa_init_flags(&dev->objects, XA_FLAGS_ALLOC); ++ ++ file->private_data = dev; + return nonseekable_open(inode, file); + } + + static int winesync_char_release(struct inode *inode, struct file *file) + { ++ struct winesync_device *dev = file->private_data; ++ struct winesync_obj *obj; ++ unsigned long id; ++ ++ xa_for_each(&dev->objects, id, obj) ++ put_obj(obj); ++ ++ xa_destroy(&dev->objects); ++ ++ kfree(dev); ++ ++ return 0; ++} ++ ++static void init_obj(struct winesync_obj *obj) ++{ ++ kref_init(&obj->refcount); ++} ++ ++static int winesync_create_sem(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_sem_args __user *user_args = argp; ++ struct winesync_sem_args args; ++ struct winesync_obj *sem; ++ __u32 id; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ if (args.count > args.max) ++ return -EINVAL; ++ ++ sem = kzalloc(sizeof(*sem), GFP_KERNEL); ++ if (!sem) ++ return -ENOMEM; ++ ++ init_obj(sem); ++ sem->type = WINESYNC_TYPE_SEM; ++ sem->u.sem.count = args.count; ++ sem->u.sem.max = args.max; ++ ++ ret = xa_alloc(&dev->objects, &id, sem, xa_limit_32b, GFP_KERNEL); ++ if (ret < 0) { ++ kfree(sem); ++ return ret; ++ } ++ ++ return put_user(id, &user_args->sem); ++} ++ ++static int winesync_delete(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_obj *obj; ++ __u32 id; ++ ++ if (get_user(id, (__u32 __user *)argp)) ++ return -EFAULT; ++ ++ obj = xa_erase(&dev->objects, id); ++ if (!obj) ++ return -EINVAL; ++ ++ put_obj(obj); + return 0; + } + + static long winesync_char_ioctl(struct file *file, unsigned int cmd, + unsigned long parm) + { ++ struct winesync_device *dev = file->private_data; ++ void __user *argp = (void __user *)parm; ++ + switch (cmd) { ++ case WINESYNC_IOC_CREATE_SEM: ++ return winesync_create_sem(dev, argp); ++ case WINESYNC_IOC_DELETE: ++ return winesync_delete(dev, argp); + default: + return -ENOSYS; + } +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +new file mode 100644 +index 000000000000..aabb491f39d2 +--- /dev/null ++++ b/include/uapi/linux/winesync.h +@@ -0,0 +1,25 @@ ++/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ ++/* ++ * Kernel support for Wine synchronization primitives ++ * ++ * Copyright (C) 2021 Zebediah Figura ++ */ ++ ++#ifndef __LINUX_WINESYNC_H ++#define __LINUX_WINESYNC_H ++ ++#include ++ ++struct winesync_sem_args { ++ __u32 sem; ++ __u32 count; ++ __u32 max; ++}; ++ ++#define WINESYNC_IOC_BASE 0xf7 ++ ++#define WINESYNC_IOC_CREATE_SEM _IOWR(WINESYNC_IOC_BASE, 0, \ ++ struct winesync_sem_args) ++#define WINESYNC_IOC_DELETE _IOW (WINESYNC_IOC_BASE, 1, __u32) ++ ++#endif +-- +2.36.0 + +From 144e223bfd7c5e733a9e7e50a3a8d37dbbedc0b7 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:22:42 -0600 +Subject: [PATCH 04/34] winesync: Introduce WINESYNC_IOC_PUT_SEM. + +--- + drivers/misc/winesync.c | 76 +++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 + + 2 files changed, 78 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 36e31bbe0390..84b5a5c9e0ce 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -21,9 +21,11 @@ enum winesync_type { + struct winesync_obj { + struct rcu_head rhead; + struct kref refcount; ++ spinlock_t lock; + + enum winesync_type type; + ++ /* The following fields are protected by the object lock. */ + union { + struct { + __u32 count; +@@ -36,6 +38,19 @@ struct winesync_device { + struct xarray objects; + }; + ++static struct winesync_obj *get_obj(struct winesync_device *dev, __u32 id) ++{ ++ struct winesync_obj *obj; ++ ++ rcu_read_lock(); ++ obj = xa_load(&dev->objects, id); ++ if (obj && !kref_get_unless_zero(&obj->refcount)) ++ obj = NULL; ++ rcu_read_unlock(); ++ ++ return obj; ++} ++ + static void destroy_obj(struct kref *ref) + { + struct winesync_obj *obj = container_of(ref, struct winesync_obj, refcount); +@@ -48,6 +63,18 @@ static void put_obj(struct winesync_obj *obj) + kref_put(&obj->refcount, destroy_obj); + } + ++static struct winesync_obj *get_obj_typed(struct winesync_device *dev, __u32 id, ++ enum winesync_type type) ++{ ++ struct winesync_obj *obj = get_obj(dev, id); ++ ++ if (obj && obj->type != type) { ++ put_obj(obj); ++ return NULL; ++ } ++ return obj; ++} ++ + static int winesync_char_open(struct inode *inode, struct file *file) + { + struct winesync_device *dev; +@@ -81,6 +108,7 @@ static int winesync_char_release(struct inode *inode, struct file *file) + static void init_obj(struct winesync_obj *obj) + { + kref_init(&obj->refcount); ++ spin_lock_init(&obj->lock); + } + + static int winesync_create_sem(struct winesync_device *dev, void __user *argp) +@@ -131,6 +159,52 @@ static int winesync_delete(struct winesync_device *dev, void __user *argp) + return 0; + } + ++/* ++ * Actually change the semaphore state, returning -EOVERFLOW if it is made ++ * invalid. ++ */ ++static int put_sem_state(struct winesync_obj *sem, __u32 count) ++{ ++ lockdep_assert_held(&sem->lock); ++ ++ if (sem->u.sem.count + count < sem->u.sem.count || ++ sem->u.sem.count + count > sem->u.sem.max) ++ return -EOVERFLOW; ++ ++ sem->u.sem.count += count; ++ return 0; ++} ++ ++static int winesync_put_sem(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_sem_args __user *user_args = argp; ++ struct winesync_sem_args args; ++ struct winesync_obj *sem; ++ __u32 prev_count; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ sem = get_obj_typed(dev, args.sem, WINESYNC_TYPE_SEM); ++ if (!sem) ++ return -EINVAL; ++ ++ spin_lock(&sem->lock); ++ ++ prev_count = sem->u.sem.count; ++ ret = put_sem_state(sem, args.count); ++ ++ spin_unlock(&sem->lock); ++ ++ put_obj(sem); ++ ++ if (!ret && put_user(prev_count, &user_args->count)) ++ ret = -EFAULT; ++ ++ return ret; ++} ++ + static long winesync_char_ioctl(struct file *file, unsigned int cmd, + unsigned long parm) + { +@@ -142,6 +216,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_create_sem(dev, argp); + case WINESYNC_IOC_DELETE: + return winesync_delete(dev, argp); ++ case WINESYNC_IOC_PUT_SEM: ++ return winesync_put_sem(dev, argp); + default: + return -ENOSYS; + } +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index aabb491f39d2..7681a168eb92 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -21,5 +21,7 @@ struct winesync_sem_args { + #define WINESYNC_IOC_CREATE_SEM _IOWR(WINESYNC_IOC_BASE, 0, \ + struct winesync_sem_args) + #define WINESYNC_IOC_DELETE _IOW (WINESYNC_IOC_BASE, 1, __u32) ++#define WINESYNC_IOC_PUT_SEM _IOWR(WINESYNC_IOC_BASE, 2, \ ++ struct winesync_sem_args) + + #endif +-- +2.36.0 + +From 207daf2aa77f9d197b205a88322d5359f432bc67 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:31:44 -0600 +Subject: [PATCH 05/34] winesync: Introduce WINESYNC_IOC_WAIT_ANY. + +--- + drivers/misc/winesync.c | 226 ++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 11 ++ + 2 files changed, 237 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 84b5a5c9e0ce..d9b5ab159520 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -23,6 +23,8 @@ struct winesync_obj { + struct kref refcount; + spinlock_t lock; + ++ struct list_head any_waiters; ++ + enum winesync_type type; + + /* The following fields are protected by the object lock. */ +@@ -34,6 +36,28 @@ struct winesync_obj { + } u; + }; + ++struct winesync_q_entry { ++ struct list_head node; ++ struct winesync_q *q; ++ struct winesync_obj *obj; ++ __u32 index; ++}; ++ ++struct winesync_q { ++ struct task_struct *task; ++ __u32 owner; ++ ++ /* ++ * Protected via atomic_cmpxchg(). Only the thread that wins the ++ * compare-and-swap may actually change object states and wake this ++ * task. ++ */ ++ atomic_t signaled; ++ ++ __u32 count; ++ struct winesync_q_entry entries[]; ++}; ++ + struct winesync_device { + struct xarray objects; + }; +@@ -109,6 +133,26 @@ static void init_obj(struct winesync_obj *obj) + { + kref_init(&obj->refcount); + spin_lock_init(&obj->lock); ++ INIT_LIST_HEAD(&obj->any_waiters); ++} ++ ++static void try_wake_any_sem(struct winesync_obj *sem) ++{ ++ struct winesync_q_entry *entry; ++ ++ lockdep_assert_held(&sem->lock); ++ ++ list_for_each_entry(entry, &sem->any_waiters, node) { ++ struct winesync_q *q = entry->q; ++ ++ if (!sem->u.sem.count) ++ break; ++ ++ if (atomic_cmpxchg(&q->signaled, -1, entry->index) == -1) { ++ sem->u.sem.count--; ++ wake_up_process(q->task); ++ } ++ } + } + + static int winesync_create_sem(struct winesync_device *dev, void __user *argp) +@@ -194,6 +238,8 @@ static int winesync_put_sem(struct winesync_device *dev, void __user *argp) + + prev_count = sem->u.sem.count; + ret = put_sem_state(sem, args.count); ++ if (!ret) ++ try_wake_any_sem(sem); + + spin_unlock(&sem->lock); + +@@ -205,6 +251,184 @@ static int winesync_put_sem(struct winesync_device *dev, void __user *argp) + return ret; + } + ++static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) ++{ ++ int ret = 0; ++ ++ do { ++ if (signal_pending(current)) { ++ ret = -ERESTARTSYS; ++ break; ++ } ++ ++ set_current_state(TASK_INTERRUPTIBLE); ++ if (atomic_read(&q->signaled) != -1) { ++ ret = 0; ++ break; ++ } ++ ret = schedule_hrtimeout(timeout, HRTIMER_MODE_ABS); ++ } while (ret < 0); ++ __set_current_state(TASK_RUNNING); ++ ++ return ret; ++} ++ ++/* ++ * Allocate and initialize the winesync_q structure, but do not queue us yet. ++ * Also, calculate the relative timeout. ++ */ ++static int setup_wait(struct winesync_device *dev, ++ const struct winesync_wait_args *args, ++ ktime_t *ret_timeout, struct winesync_q **ret_q) ++{ ++ const __u32 count = args->count; ++ struct winesync_q *q; ++ ktime_t timeout = 0; ++ __u32 *ids; ++ __u32 i, j; ++ ++ if (!args->owner || args->pad) ++ return -EINVAL; ++ ++ if (args->timeout) { ++ struct timespec64 to; ++ ++ if (get_timespec64(&to, u64_to_user_ptr(args->timeout))) ++ return -EFAULT; ++ if (!timespec64_valid(&to)) ++ return -EINVAL; ++ ++ timeout = timespec64_to_ns(&to); ++ } ++ ++ ids = kmalloc_array(count, sizeof(*ids), GFP_KERNEL); ++ if (!ids) ++ return -ENOMEM; ++ if (copy_from_user(ids, u64_to_user_ptr(args->objs), ++ array_size(count, sizeof(*ids)))) { ++ kfree(ids); ++ return -EFAULT; ++ } ++ ++ q = kmalloc(struct_size(q, entries, count), GFP_KERNEL); ++ if (!q) { ++ kfree(ids); ++ return -ENOMEM; ++ } ++ q->task = current; ++ q->owner = args->owner; ++ atomic_set(&q->signaled, -1); ++ q->count = count; ++ ++ for (i = 0; i < count; i++) { ++ struct winesync_q_entry *entry = &q->entries[i]; ++ struct winesync_obj *obj = get_obj(dev, ids[i]); ++ ++ if (!obj) ++ goto err; ++ ++ entry->obj = obj; ++ entry->q = q; ++ entry->index = i; ++ } ++ ++ kfree(ids); ++ ++ *ret_q = q; ++ *ret_timeout = timeout; ++ return 0; ++ ++err: ++ for (j = 0; j < i; j++) ++ put_obj(q->entries[j].obj); ++ kfree(ids); ++ kfree(q); ++ return -EINVAL; ++} ++ ++static void try_wake_any_obj(struct winesync_obj *obj) ++{ ++ switch (obj->type) { ++ case WINESYNC_TYPE_SEM: ++ try_wake_any_sem(obj); ++ break; ++ } ++} ++ ++static int winesync_wait_any(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_wait_args args; ++ struct winesync_q *q; ++ ktime_t timeout; ++ int signaled; ++ __u32 i; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ ret = setup_wait(dev, &args, &timeout, &q); ++ if (ret < 0) ++ return ret; ++ ++ /* queue ourselves */ ++ ++ for (i = 0; i < args.count; i++) { ++ struct winesync_q_entry *entry = &q->entries[i]; ++ struct winesync_obj *obj = entry->obj; ++ ++ spin_lock(&obj->lock); ++ list_add_tail(&entry->node, &obj->any_waiters); ++ spin_unlock(&obj->lock); ++ } ++ ++ /* check if we are already signaled */ ++ ++ for (i = 0; i < args.count; i++) { ++ struct winesync_obj *obj = q->entries[i].obj; ++ ++ if (atomic_read(&q->signaled) != -1) ++ break; ++ ++ spin_lock(&obj->lock); ++ try_wake_any_obj(obj); ++ spin_unlock(&obj->lock); ++ } ++ ++ /* sleep */ ++ ++ ret = winesync_schedule(q, args.timeout ? &timeout : NULL); ++ ++ /* and finally, unqueue */ ++ ++ for (i = 0; i < args.count; i++) { ++ struct winesync_q_entry *entry = &q->entries[i]; ++ struct winesync_obj *obj = entry->obj; ++ ++ spin_lock(&obj->lock); ++ list_del(&entry->node); ++ spin_unlock(&obj->lock); ++ ++ put_obj(obj); ++ } ++ ++ signaled = atomic_read(&q->signaled); ++ if (signaled != -1) { ++ struct winesync_wait_args __user *user_args = argp; ++ ++ /* even if we caught a signal, we need to communicate success */ ++ ret = 0; ++ ++ if (put_user(signaled, &user_args->index)) ++ ret = -EFAULT; ++ } else if (!ret) { ++ ret = -ETIMEDOUT; ++ } ++ ++ kfree(q); ++ return ret; ++} ++ + static long winesync_char_ioctl(struct file *file, unsigned int cmd, + unsigned long parm) + { +@@ -218,6 +442,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_delete(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); ++ case WINESYNC_IOC_WAIT_ANY: ++ return winesync_wait_any(dev, argp); + default: + return -ENOSYS; + } +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 7681a168eb92..f57ebfbe1dd9 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -16,6 +16,15 @@ struct winesync_sem_args { + __u32 max; + }; + ++struct winesync_wait_args { ++ __u64 timeout; ++ __u64 objs; ++ __u32 count; ++ __u32 owner; ++ __u32 index; ++ __u32 pad; ++}; ++ + #define WINESYNC_IOC_BASE 0xf7 + + #define WINESYNC_IOC_CREATE_SEM _IOWR(WINESYNC_IOC_BASE, 0, \ +@@ -23,5 +32,7 @@ struct winesync_sem_args { + #define WINESYNC_IOC_DELETE _IOW (WINESYNC_IOC_BASE, 1, __u32) + #define WINESYNC_IOC_PUT_SEM _IOWR(WINESYNC_IOC_BASE, 2, \ + struct winesync_sem_args) ++#define WINESYNC_IOC_WAIT_ANY _IOWR(WINESYNC_IOC_BASE, 3, \ ++ struct winesync_wait_args) + + #endif +-- +2.36.0 + +From 3d68ffb91767194d5a1a07aa6c57849343530a15 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:36:09 -0600 +Subject: [PATCH 06/34] winesync: Introduce WINESYNC_IOC_WAIT_ALL. + +--- + drivers/misc/winesync.c | 242 ++++++++++++++++++++++++++++++++-- + include/uapi/linux/winesync.h | 2 + + 2 files changed, 236 insertions(+), 8 deletions(-) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index d9b5ab159520..2b708c5b88a6 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -23,7 +23,34 @@ struct winesync_obj { + struct kref refcount; + spinlock_t lock; + ++ /* ++ * any_waiters is protected by the object lock, but all_waiters is ++ * protected by the device wait_all_lock. ++ */ + struct list_head any_waiters; ++ struct list_head all_waiters; ++ ++ /* ++ * Hint describing how many tasks are queued on this object in a ++ * wait-all operation. ++ * ++ * Any time we do a wake, we may need to wake "all" waiters as well as ++ * "any" waiters. In order to atomically wake "all" waiters, we must ++ * lock all of the objects, and that means grabbing the wait_all_lock ++ * below (and, due to lock ordering rules, before locking this object). ++ * However, wait-all is a rare operation, and grabbing the wait-all ++ * lock for every wake would create unnecessary contention. Therefore we ++ * first check whether all_hint is zero, and, if it is, we skip trying ++ * to wake "all" waiters. ++ * ++ * This hint isn't protected by any lock. It might change during the ++ * course of a wake, but there's no meaningful race there; it's only a ++ * hint. ++ * ++ * Since wait requests must originate from user-space threads, we're ++ * limited here by PID_MAX_LIMIT, so there's no risk of saturation. ++ */ ++ atomic_t all_hint; + + enum winesync_type type; + +@@ -54,11 +81,25 @@ struct winesync_q { + */ + atomic_t signaled; + ++ bool all; + __u32 count; + struct winesync_q_entry entries[]; + }; + + struct winesync_device { ++ /* ++ * Wait-all operations must atomically grab all objects, and be totally ++ * ordered with respect to each other and wait-any operations. If one ++ * thread is trying to acquire several objects, another thread cannot ++ * touch the object at the same time. ++ * ++ * We achieve this by grabbing multiple object locks at the same time. ++ * However, this creates a lock ordering problem. To solve that problem, ++ * wait_all_lock is taken first whenever multiple objects must be locked ++ * at the same time. ++ */ ++ spinlock_t wait_all_lock; ++ + struct xarray objects; + }; + +@@ -107,6 +148,8 @@ static int winesync_char_open(struct inode *inode, struct file *file) + if (!dev) + return -ENOMEM; + ++ spin_lock_init(&dev->wait_all_lock); ++ + xa_init_flags(&dev->objects, XA_FLAGS_ALLOC); + + file->private_data = dev; +@@ -132,8 +175,82 @@ static int winesync_char_release(struct inode *inode, struct file *file) + static void init_obj(struct winesync_obj *obj) + { + kref_init(&obj->refcount); ++ atomic_set(&obj->all_hint, 0); + spin_lock_init(&obj->lock); + INIT_LIST_HEAD(&obj->any_waiters); ++ INIT_LIST_HEAD(&obj->all_waiters); ++} ++ ++static bool is_signaled(struct winesync_obj *obj, __u32 owner) ++{ ++ lockdep_assert_held(&obj->lock); ++ ++ switch (obj->type) { ++ case WINESYNC_TYPE_SEM: ++ return !!obj->u.sem.count; ++ } ++ ++ WARN(1, "bad object type %#x\n", obj->type); ++ return false; ++} ++ ++/* ++ * "locked_obj" is an optional pointer to an object which is already locked and ++ * should not be locked again. This is necessary so that changing an object's ++ * state and waking it can be a single atomic operation. ++ */ ++static void try_wake_all(struct winesync_device *dev, struct winesync_q *q, ++ struct winesync_obj *locked_obj) ++{ ++ __u32 count = q->count; ++ bool can_wake = true; ++ __u32 i; ++ ++ lockdep_assert_held(&dev->wait_all_lock); ++ if (locked_obj) ++ lockdep_assert_held(&locked_obj->lock); ++ ++ for (i = 0; i < count; i++) { ++ if (q->entries[i].obj != locked_obj) ++ spin_lock(&q->entries[i].obj->lock); ++ } ++ ++ for (i = 0; i < count; i++) { ++ if (!is_signaled(q->entries[i].obj, q->owner)) { ++ can_wake = false; ++ break; ++ } ++ } ++ ++ if (can_wake && atomic_cmpxchg(&q->signaled, -1, 0) == -1) { ++ for (i = 0; i < count; i++) { ++ struct winesync_obj *obj = q->entries[i].obj; ++ ++ switch (obj->type) { ++ case WINESYNC_TYPE_SEM: ++ obj->u.sem.count--; ++ break; ++ } ++ } ++ wake_up_process(q->task); ++ } ++ ++ for (i = 0; i < count; i++) { ++ if (q->entries[i].obj != locked_obj) ++ spin_unlock(&q->entries[i].obj->lock); ++ } ++} ++ ++static void try_wake_all_obj(struct winesync_device *dev, ++ struct winesync_obj *obj) ++{ ++ struct winesync_q_entry *entry; ++ ++ lockdep_assert_held(&dev->wait_all_lock); ++ lockdep_assert_held(&obj->lock); ++ ++ list_for_each_entry(entry, &obj->all_waiters, node) ++ try_wake_all(dev, entry->q, obj); + } + + static void try_wake_any_sem(struct winesync_obj *sem) +@@ -234,14 +351,29 @@ static int winesync_put_sem(struct winesync_device *dev, void __user *argp) + if (!sem) + return -EINVAL; + +- spin_lock(&sem->lock); ++ if (atomic_read(&sem->all_hint) > 0) { ++ spin_lock(&dev->wait_all_lock); ++ spin_lock(&sem->lock); ++ ++ prev_count = sem->u.sem.count; ++ ret = put_sem_state(sem, args.count); ++ if (!ret) { ++ try_wake_all_obj(dev, sem); ++ try_wake_any_sem(sem); ++ } + +- prev_count = sem->u.sem.count; +- ret = put_sem_state(sem, args.count); +- if (!ret) +- try_wake_any_sem(sem); ++ spin_unlock(&sem->lock); ++ spin_unlock(&dev->wait_all_lock); ++ } else { ++ spin_lock(&sem->lock); + +- spin_unlock(&sem->lock); ++ prev_count = sem->u.sem.count; ++ ret = put_sem_state(sem, args.count); ++ if (!ret) ++ try_wake_any_sem(sem); ++ ++ spin_unlock(&sem->lock); ++ } + + put_obj(sem); + +@@ -278,7 +410,7 @@ static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) + * Also, calculate the relative timeout. + */ + static int setup_wait(struct winesync_device *dev, +- const struct winesync_wait_args *args, ++ const struct winesync_wait_args *args, bool all, + ktime_t *ret_timeout, struct winesync_q **ret_q) + { + const __u32 count = args->count; +@@ -318,6 +450,7 @@ static int setup_wait(struct winesync_device *dev, + q->task = current; + q->owner = args->owner; + atomic_set(&q->signaled, -1); ++ q->all = all; + q->count = count; + + for (i = 0; i < count; i++) { +@@ -327,6 +460,16 @@ static int setup_wait(struct winesync_device *dev, + if (!obj) + goto err; + ++ if (all) { ++ /* Check that the objects are all distinct. */ ++ for (j = 0; j < i; j++) { ++ if (obj == q->entries[j].obj) { ++ put_obj(obj); ++ goto err; ++ } ++ } ++ } ++ + entry->obj = obj; + entry->q = q; + entry->index = i; +@@ -367,7 +510,7 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + if (copy_from_user(&args, argp, sizeof(args))) + return -EFAULT; + +- ret = setup_wait(dev, &args, &timeout, &q); ++ ret = setup_wait(dev, &args, false, &timeout, &q); + if (ret < 0) + return ret; + +@@ -429,6 +572,87 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + return ret; + } + ++static int winesync_wait_all(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_wait_args args; ++ struct winesync_q *q; ++ ktime_t timeout; ++ int signaled; ++ __u32 i; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ ret = setup_wait(dev, &args, true, &timeout, &q); ++ if (ret < 0) ++ return ret; ++ ++ /* queue ourselves */ ++ ++ spin_lock(&dev->wait_all_lock); ++ ++ for (i = 0; i < args.count; i++) { ++ struct winesync_q_entry *entry = &q->entries[i]; ++ struct winesync_obj *obj = entry->obj; ++ ++ atomic_inc(&obj->all_hint); ++ ++ /* ++ * obj->all_waiters is protected by dev->wait_all_lock rather ++ * than obj->lock, so there is no need to acquire it here. ++ */ ++ list_add_tail(&entry->node, &obj->all_waiters); ++ } ++ ++ /* check if we are already signaled */ ++ ++ try_wake_all(dev, q, NULL); ++ ++ spin_unlock(&dev->wait_all_lock); ++ ++ /* sleep */ ++ ++ ret = winesync_schedule(q, args.timeout ? &timeout : NULL); ++ ++ /* and finally, unqueue */ ++ ++ spin_lock(&dev->wait_all_lock); ++ ++ for (i = 0; i < args.count; i++) { ++ struct winesync_q_entry *entry = &q->entries[i]; ++ struct winesync_obj *obj = entry->obj; ++ ++ /* ++ * obj->all_waiters is protected by dev->wait_all_lock rather ++ * than obj->lock, so there is no need to acquire it here. ++ */ ++ list_del(&entry->node); ++ ++ atomic_dec(&obj->all_hint); ++ ++ put_obj(obj); ++ } ++ ++ spin_unlock(&dev->wait_all_lock); ++ ++ signaled = atomic_read(&q->signaled); ++ if (signaled != -1) { ++ struct winesync_wait_args __user *user_args = argp; ++ ++ /* even if we caught a signal, we need to communicate success */ ++ ret = 0; ++ ++ if (put_user(signaled, &user_args->index)) ++ ret = -EFAULT; ++ } else if (!ret) { ++ ret = -ETIMEDOUT; ++ } ++ ++ kfree(q); ++ return ret; ++} ++ + static long winesync_char_ioctl(struct file *file, unsigned int cmd, + unsigned long parm) + { +@@ -442,6 +666,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_delete(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); ++ case WINESYNC_IOC_WAIT_ALL: ++ return winesync_wait_all(dev, argp); + case WINESYNC_IOC_WAIT_ANY: + return winesync_wait_any(dev, argp); + default: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index f57ebfbe1dd9..44025a510cb9 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -34,5 +34,7 @@ struct winesync_wait_args { + struct winesync_sem_args) + #define WINESYNC_IOC_WAIT_ANY _IOWR(WINESYNC_IOC_BASE, 3, \ + struct winesync_wait_args) ++#define WINESYNC_IOC_WAIT_ALL _IOWR(WINESYNC_IOC_BASE, 4, \ ++ struct winesync_wait_args) + + #endif +-- +2.36.0 + +From 2838a60302cd26a2ab92a143749e455edebe7b7c Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:41:10 -0600 +Subject: [PATCH 07/34] winesync: Introduce WINESYNC_IOC_CREATE_MUTEX. + +--- + drivers/misc/winesync.c | 72 +++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 8 ++++ + 2 files changed, 80 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 2b708c5b88a6..18eb05975907 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -16,6 +16,7 @@ + + enum winesync_type { + WINESYNC_TYPE_SEM, ++ WINESYNC_TYPE_MUTEX, + }; + + struct winesync_obj { +@@ -60,6 +61,10 @@ struct winesync_obj { + __u32 count; + __u32 max; + } sem; ++ struct { ++ __u32 count; ++ __u32 owner; ++ } mutex; + } u; + }; + +@@ -188,6 +193,10 @@ static bool is_signaled(struct winesync_obj *obj, __u32 owner) + switch (obj->type) { + case WINESYNC_TYPE_SEM: + return !!obj->u.sem.count; ++ case WINESYNC_TYPE_MUTEX: ++ if (obj->u.mutex.owner && obj->u.mutex.owner != owner) ++ return false; ++ return obj->u.mutex.count < UINT_MAX; + } + + WARN(1, "bad object type %#x\n", obj->type); +@@ -230,6 +239,10 @@ static void try_wake_all(struct winesync_device *dev, struct winesync_q *q, + case WINESYNC_TYPE_SEM: + obj->u.sem.count--; + break; ++ case WINESYNC_TYPE_MUTEX: ++ obj->u.mutex.count++; ++ obj->u.mutex.owner = q->owner; ++ break; + } + } + wake_up_process(q->task); +@@ -272,6 +285,28 @@ static void try_wake_any_sem(struct winesync_obj *sem) + } + } + ++static void try_wake_any_mutex(struct winesync_obj *mutex) ++{ ++ struct winesync_q_entry *entry; ++ ++ lockdep_assert_held(&mutex->lock); ++ ++ list_for_each_entry(entry, &mutex->any_waiters, node) { ++ struct winesync_q *q = entry->q; ++ ++ if (mutex->u.mutex.count == UINT_MAX) ++ break; ++ if (mutex->u.mutex.owner && mutex->u.mutex.owner != q->owner) ++ continue; ++ ++ if (atomic_cmpxchg(&q->signaled, -1, entry->index) == -1) { ++ mutex->u.mutex.count++; ++ mutex->u.mutex.owner = q->owner; ++ wake_up_process(q->task); ++ } ++ } ++} ++ + static int winesync_create_sem(struct winesync_device *dev, void __user *argp) + { + struct winesync_sem_args __user *user_args = argp; +@@ -304,6 +339,38 @@ static int winesync_create_sem(struct winesync_device *dev, void __user *argp) + return put_user(id, &user_args->sem); + } + ++static int winesync_create_mutex(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_mutex_args __user *user_args = argp; ++ struct winesync_mutex_args args; ++ struct winesync_obj *mutex; ++ __u32 id; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ if (!args.owner != !args.count) ++ return -EINVAL; ++ ++ mutex = kzalloc(sizeof(*mutex), GFP_KERNEL); ++ if (!mutex) ++ return -ENOMEM; ++ ++ init_obj(mutex); ++ mutex->type = WINESYNC_TYPE_MUTEX; ++ mutex->u.mutex.count = args.count; ++ mutex->u.mutex.owner = args.owner; ++ ++ ret = xa_alloc(&dev->objects, &id, mutex, xa_limit_32b, GFP_KERNEL); ++ if (ret < 0) { ++ kfree(mutex); ++ return ret; ++ } ++ ++ return put_user(id, &user_args->mutex); ++} ++ + static int winesync_delete(struct winesync_device *dev, void __user *argp) + { + struct winesync_obj *obj; +@@ -495,6 +562,9 @@ static void try_wake_any_obj(struct winesync_obj *obj) + case WINESYNC_TYPE_SEM: + try_wake_any_sem(obj); + break; ++ case WINESYNC_TYPE_MUTEX: ++ try_wake_any_mutex(obj); ++ break; + } + } + +@@ -660,6 +730,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + void __user *argp = (void __user *)parm; + + switch (cmd) { ++ case WINESYNC_IOC_CREATE_MUTEX: ++ return winesync_create_mutex(dev, argp); + case WINESYNC_IOC_CREATE_SEM: + return winesync_create_sem(dev, argp); + case WINESYNC_IOC_DELETE: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 44025a510cb9..23606a3b1546 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -16,6 +16,12 @@ struct winesync_sem_args { + __u32 max; + }; + ++struct winesync_mutex_args { ++ __u32 mutex; ++ __u32 owner; ++ __u32 count; ++}; ++ + struct winesync_wait_args { + __u64 timeout; + __u64 objs; +@@ -36,5 +42,7 @@ struct winesync_wait_args { + struct winesync_wait_args) + #define WINESYNC_IOC_WAIT_ALL _IOWR(WINESYNC_IOC_BASE, 4, \ + struct winesync_wait_args) ++#define WINESYNC_IOC_CREATE_MUTEX _IOWR(WINESYNC_IOC_BASE, 5, \ ++ struct winesync_mutex_args) + + #endif +-- +2.36.0 + +From 25b9628ad91377840cdc2b08dd53e1539ad05bdd Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:44:41 -0600 +Subject: [PATCH 08/34] winesync: Introduce WINESYNC_IOC_PUT_MUTEX. + +--- + drivers/misc/winesync.c | 67 +++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 69 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 18eb05975907..d18d08a68546 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -450,6 +450,71 @@ static int winesync_put_sem(struct winesync_device *dev, void __user *argp) + return ret; + } + ++/* ++ * Actually change the mutex state, returning -EPERM if not the owner. ++ */ ++static int put_mutex_state(struct winesync_obj *mutex, ++ const struct winesync_mutex_args *args) ++{ ++ lockdep_assert_held(&mutex->lock); ++ ++ if (mutex->u.mutex.owner != args->owner) ++ return -EPERM; ++ ++ if (!--mutex->u.mutex.count) ++ mutex->u.mutex.owner = 0; ++ return 0; ++} ++ ++static int winesync_put_mutex(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_mutex_args __user *user_args = argp; ++ struct winesync_mutex_args args; ++ struct winesync_obj *mutex; ++ __u32 prev_count; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ if (!args.owner) ++ return -EINVAL; ++ ++ mutex = get_obj_typed(dev, args.mutex, WINESYNC_TYPE_MUTEX); ++ if (!mutex) ++ return -EINVAL; ++ ++ if (atomic_read(&mutex->all_hint) > 0) { ++ spin_lock(&dev->wait_all_lock); ++ spin_lock(&mutex->lock); ++ ++ prev_count = mutex->u.mutex.count; ++ ret = put_mutex_state(mutex, &args); ++ if (!ret) { ++ try_wake_all_obj(dev, mutex); ++ try_wake_any_mutex(mutex); ++ } ++ ++ spin_unlock(&mutex->lock); ++ spin_unlock(&dev->wait_all_lock); ++ } else { ++ spin_lock(&mutex->lock); ++ ++ prev_count = mutex->u.mutex.count; ++ ret = put_mutex_state(mutex, &args); ++ if (!ret) ++ try_wake_any_mutex(mutex); ++ ++ spin_unlock(&mutex->lock); ++ } ++ ++ put_obj(mutex); ++ ++ if (!ret && put_user(prev_count, &user_args->count)) ++ ret = -EFAULT; ++ ++ return ret; ++} ++ + static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) + { + int ret = 0; +@@ -736,6 +801,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_create_sem(dev, argp); + case WINESYNC_IOC_DELETE: + return winesync_delete(dev, argp); ++ case WINESYNC_IOC_PUT_MUTEX: ++ return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); + case WINESYNC_IOC_WAIT_ALL: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 23606a3b1546..fde08cb8ab95 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -44,5 +44,7 @@ struct winesync_wait_args { + struct winesync_wait_args) + #define WINESYNC_IOC_CREATE_MUTEX _IOWR(WINESYNC_IOC_BASE, 5, \ + struct winesync_mutex_args) ++#define WINESYNC_IOC_PUT_MUTEX _IOWR(WINESYNC_IOC_BASE, 6, \ ++ struct winesync_mutex_args) + + #endif +-- +2.36.0 + +From 97d6dc0155da6609849e6a03bcc9e7d7e0cb58f5 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:46:46 -0600 +Subject: [PATCH 09/34] winesync: Introduce WINESYNC_IOC_KILL_OWNER. + +--- + drivers/misc/winesync.c | 80 ++++++++++++++++++++++++++++++++++- + include/uapi/linux/winesync.h | 1 + + 2 files changed, 79 insertions(+), 2 deletions(-) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index d18d08a68546..891537063bb6 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -64,6 +64,7 @@ struct winesync_obj { + struct { + __u32 count; + __u32 owner; ++ bool ownerdead; + } mutex; + } u; + }; +@@ -87,6 +88,7 @@ struct winesync_q { + atomic_t signaled; + + bool all; ++ bool ownerdead; + __u32 count; + struct winesync_q_entry entries[]; + }; +@@ -240,6 +242,9 @@ static void try_wake_all(struct winesync_device *dev, struct winesync_q *q, + obj->u.sem.count--; + break; + case WINESYNC_TYPE_MUTEX: ++ if (obj->u.mutex.ownerdead) ++ q->ownerdead = true; ++ obj->u.mutex.ownerdead = false; + obj->u.mutex.count++; + obj->u.mutex.owner = q->owner; + break; +@@ -300,6 +305,9 @@ static void try_wake_any_mutex(struct winesync_obj *mutex) + continue; + + if (atomic_cmpxchg(&q->signaled, -1, entry->index) == -1) { ++ if (mutex->u.mutex.ownerdead) ++ q->ownerdead = true; ++ mutex->u.mutex.ownerdead = false; + mutex->u.mutex.count++; + mutex->u.mutex.owner = q->owner; + wake_up_process(q->task); +@@ -515,6 +523,71 @@ static int winesync_put_mutex(struct winesync_device *dev, void __user *argp) + return ret; + } + ++/* ++ * Actually change the mutex state to mark its owner as dead. ++ */ ++static void put_mutex_ownerdead_state(struct winesync_obj *mutex) ++{ ++ lockdep_assert_held(&mutex->lock); ++ ++ mutex->u.mutex.ownerdead = true; ++ mutex->u.mutex.owner = 0; ++ mutex->u.mutex.count = 0; ++} ++ ++static int winesync_kill_owner(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_obj *obj; ++ unsigned long id; ++ __u32 owner; ++ ++ if (get_user(owner, (__u32 __user *)argp)) ++ return -EFAULT; ++ if (!owner) ++ return -EINVAL; ++ ++ rcu_read_lock(); ++ ++ xa_for_each(&dev->objects, id, obj) { ++ if (!kref_get_unless_zero(&obj->refcount)) ++ continue; ++ ++ if (obj->type != WINESYNC_TYPE_MUTEX) { ++ put_obj(obj); ++ continue; ++ } ++ ++ if (atomic_read(&obj->all_hint) > 0) { ++ spin_lock(&dev->wait_all_lock); ++ spin_lock(&obj->lock); ++ ++ if (obj->u.mutex.owner == owner) { ++ put_mutex_ownerdead_state(obj); ++ try_wake_all_obj(dev, obj); ++ try_wake_any_mutex(obj); ++ } ++ ++ spin_unlock(&obj->lock); ++ spin_unlock(&dev->wait_all_lock); ++ } else { ++ spin_lock(&obj->lock); ++ ++ if (obj->u.mutex.owner == owner) { ++ put_mutex_ownerdead_state(obj); ++ try_wake_any_mutex(obj); ++ } ++ ++ spin_unlock(&obj->lock); ++ } ++ ++ put_obj(obj); ++ } ++ ++ rcu_read_unlock(); ++ ++ return 0; ++} ++ + static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) + { + int ret = 0; +@@ -583,6 +656,7 @@ static int setup_wait(struct winesync_device *dev, + q->owner = args->owner; + atomic_set(&q->signaled, -1); + q->all = all; ++ q->ownerdead = false; + q->count = count; + + for (i = 0; i < count; i++) { +@@ -695,7 +769,7 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + struct winesync_wait_args __user *user_args = argp; + + /* even if we caught a signal, we need to communicate success */ +- ret = 0; ++ ret = q->ownerdead ? -EOWNERDEAD : 0; + + if (put_user(signaled, &user_args->index)) + ret = -EFAULT; +@@ -776,7 +850,7 @@ static int winesync_wait_all(struct winesync_device *dev, void __user *argp) + struct winesync_wait_args __user *user_args = argp; + + /* even if we caught a signal, we need to communicate success */ +- ret = 0; ++ ret = q->ownerdead ? -EOWNERDEAD : 0; + + if (put_user(signaled, &user_args->index)) + ret = -EFAULT; +@@ -801,6 +875,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_create_sem(dev, argp); + case WINESYNC_IOC_DELETE: + return winesync_delete(dev, argp); ++ case WINESYNC_IOC_KILL_OWNER: ++ return winesync_kill_owner(dev, argp); + case WINESYNC_IOC_PUT_MUTEX: + return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index fde08cb8ab95..f57aa76d57f5 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -46,5 +46,6 @@ struct winesync_wait_args { + struct winesync_mutex_args) + #define WINESYNC_IOC_PUT_MUTEX _IOWR(WINESYNC_IOC_BASE, 6, \ + struct winesync_mutex_args) ++#define WINESYNC_IOC_KILL_OWNER _IOW (WINESYNC_IOC_BASE, 7, __u32) + + #endif +-- +2.36.0 + +From 888bb6fa10b7eb593db18a38fe696fc396ee30de Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:47:55 -0600 +Subject: [PATCH 10/34] winesync: Introduce WINESYNC_IOC_READ_SEM. + +--- + drivers/misc/winesync.c | 29 +++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 31 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 891537063bb6..98bedda2f8eb 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -523,6 +523,33 @@ static int winesync_put_mutex(struct winesync_device *dev, void __user *argp) + return ret; + } + ++static int winesync_read_sem(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_sem_args __user *user_args = argp; ++ struct winesync_sem_args args; ++ struct winesync_obj *sem; ++ __u32 id; ++ ++ if (get_user(id, &user_args->sem)) ++ return -EFAULT; ++ ++ sem = get_obj_typed(dev, id, WINESYNC_TYPE_SEM); ++ if (!sem) ++ return -EINVAL; ++ ++ args.sem = id; ++ spin_lock(&sem->lock); ++ args.count = sem->u.sem.count; ++ args.max = sem->u.sem.max; ++ spin_unlock(&sem->lock); ++ ++ put_obj(sem); ++ ++ if (copy_to_user(user_args, &args, sizeof(args))) ++ return -EFAULT; ++ return 0; ++} ++ + /* + * Actually change the mutex state to mark its owner as dead. + */ +@@ -881,6 +908,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); ++ case WINESYNC_IOC_READ_SEM: ++ return winesync_read_sem(dev, argp); + case WINESYNC_IOC_WAIT_ALL: + return winesync_wait_all(dev, argp); + case WINESYNC_IOC_WAIT_ANY: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index f57aa76d57f5..311eb810647d 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -47,5 +47,7 @@ struct winesync_wait_args { + #define WINESYNC_IOC_PUT_MUTEX _IOWR(WINESYNC_IOC_BASE, 6, \ + struct winesync_mutex_args) + #define WINESYNC_IOC_KILL_OWNER _IOW (WINESYNC_IOC_BASE, 7, __u32) ++#define WINESYNC_IOC_READ_SEM _IOWR(WINESYNC_IOC_BASE, 8, \ ++ struct winesync_sem_args) + + #endif +-- +2.36.0 + +From 4f17c2ab7b9aca22fb00f7f16e0bd3cf70c44fe1 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:48:10 -0600 +Subject: [PATCH 11/34] winesync: Introduce WINESYNC_IOC_READ_MUTEX. + +--- + drivers/misc/winesync.c | 31 +++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 33 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 98bedda2f8eb..eae272663abe 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -550,6 +550,35 @@ static int winesync_read_sem(struct winesync_device *dev, void __user *argp) + return 0; + } + ++static int winesync_read_mutex(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_mutex_args __user *user_args = argp; ++ struct winesync_mutex_args args; ++ struct winesync_obj *mutex; ++ __u32 id; ++ int ret; ++ ++ if (get_user(id, &user_args->mutex)) ++ return -EFAULT; ++ ++ mutex = get_obj_typed(dev, id, WINESYNC_TYPE_MUTEX); ++ if (!mutex) ++ return -EINVAL; ++ ++ args.mutex = id; ++ spin_lock(&mutex->lock); ++ args.count = mutex->u.mutex.count; ++ args.owner = mutex->u.mutex.owner; ++ ret = mutex->u.mutex.ownerdead ? -EOWNERDEAD : 0; ++ spin_unlock(&mutex->lock); ++ ++ put_obj(mutex); ++ ++ if (copy_to_user(user_args, &args, sizeof(args))) ++ return -EFAULT; ++ return ret; ++} ++ + /* + * Actually change the mutex state to mark its owner as dead. + */ +@@ -908,6 +937,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); ++ case WINESYNC_IOC_READ_MUTEX: ++ return winesync_read_mutex(dev, argp); + case WINESYNC_IOC_READ_SEM: + return winesync_read_sem(dev, argp); + case WINESYNC_IOC_WAIT_ALL: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 311eb810647d..3371a303a927 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -49,5 +49,7 @@ struct winesync_wait_args { + #define WINESYNC_IOC_KILL_OWNER _IOW (WINESYNC_IOC_BASE, 7, __u32) + #define WINESYNC_IOC_READ_SEM _IOWR(WINESYNC_IOC_BASE, 8, \ + struct winesync_sem_args) ++#define WINESYNC_IOC_READ_MUTEX _IOWR(WINESYNC_IOC_BASE, 9, \ ++ struct winesync_mutex_args) + + #endif +-- +2.36.0 + +From e897f7ec5164d6d5d3d9881756be9a538c533487 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 11:50:49 -0600 +Subject: [PATCH 12/34] docs: winesync: Add documentation for the winesync + uAPI. + +--- + Documentation/userspace-api/index.rst | 1 + + Documentation/userspace-api/winesync.rst | 324 +++++++++++++++++++++++ + 2 files changed, 325 insertions(+) + create mode 100644 Documentation/userspace-api/winesync.rst + +diff --git a/Documentation/userspace-api/index.rst b/Documentation/userspace-api/index.rst +index a61eac0c73f8..0bf697ddcb09 100644 +--- a/Documentation/userspace-api/index.rst ++++ b/Documentation/userspace-api/index.rst +@@ -29,6 +29,7 @@ place where this information is gathered. + sysfs-platform_profile + vduse + futex2 ++ winesync + + .. only:: subproject and html + +diff --git a/Documentation/userspace-api/winesync.rst b/Documentation/userspace-api/winesync.rst +new file mode 100644 +index 000000000000..34e54be229cf +--- /dev/null ++++ b/Documentation/userspace-api/winesync.rst +@@ -0,0 +1,324 @@ ++===================================== ++Wine synchronization primitive driver ++===================================== ++ ++This page documents the user-space API for the winesync driver. ++ ++winesync is a support driver for emulation of NT synchronization ++primitives by the Wine project or other NT emulators. It exists ++because implementation in user-space, using existing tools, cannot ++simultaneously satisfy performance, correctness, and security ++constraints. It is implemented entirely in software, and does not ++drive any hardware device. ++ ++This interface is meant as a compatibility tool only, and should not ++be used for general synchronization. Instead use generic, versatile ++interfaces such as futex(2) and poll(2). ++ ++Synchronization primitives ++========================== ++ ++The winesync driver exposes two types of synchronization primitives, ++semaphores and mutexes. ++ ++A semaphore holds a single volatile 32-bit counter, and a static ++32-bit integer denoting the maximum value. It is considered signaled ++when the counter is nonzero. The counter is decremented by one when a ++wait is satisfied. Both the initial and maximum count are established ++when the semaphore is created. ++ ++A mutex holds a volatile 32-bit recursion count, and a volatile 32-bit ++identifier denoting its owner. A mutex is considered signaled when its ++owner is zero (indicating that it is not owned). The recursion count ++is incremented when a wait is satisfied, and ownership is set to the ++given identifier. ++ ++A mutex also holds an internal flag denoting whether its previous ++owner has died; such a mutex is said to be inconsistent. Owner death ++is not tracked automatically based on thread death, but rather must be ++communicated using ``WINESYNC_IOC_KILL_OWNER``. An inconsistent mutex ++is inherently considered unowned. ++ ++Except for the "unowned" semantics of zero, the actual value of the ++owner identifier is not interpreted by the winesync driver at all. The ++intended use is to store a thread identifier; however, the winesync ++driver does not actually validate that a calling thread provides ++consistent or unique identifiers. ++ ++Unless specified otherwise, all operations on an object are atomic and ++totally ordered with respect to other operations on the same object. ++ ++Objects are represented by unsigned 32-bit integers. ++ ++Char device ++=========== ++ ++The winesync driver creates a single char device /dev/winesync. Each ++file description opened on the device represents a unique namespace. ++That is, objects created on one open file description are shared ++across all its individual descriptors, but are not shared with other ++open() calls on the same device. The same file description may be ++shared across multiple processes. ++ ++ioctl reference ++=============== ++ ++All operations on the device are done through ioctls. There are three ++structures used in ioctl calls:: ++ ++ struct winesync_sem_args { ++ __u32 sem; ++ __u32 count; ++ __u32 max; ++ }; ++ ++ struct winesync_mutex_args { ++ __u32 mutex; ++ __u32 owner; ++ __u32 count; ++ }; ++ ++ struct winesync_wait_args { ++ __u64 timeout; ++ __u64 objs; ++ __u32 count; ++ __u32 owner; ++ __u32 index; ++ __u32 pad; ++ }; ++ ++Depending on the ioctl, members of the structure may be used as input, ++output, or not at all. All ioctls return 0 on success. ++ ++The ioctls are as follows: ++ ++.. c:macro:: WINESYNC_IOC_CREATE_SEM ++ ++ Create a semaphore object. Takes a pointer to struct ++ :c:type:`winesync_sem_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``sem`` ++ - On output, contains the identifier of the created semaphore. ++ * - ``count`` ++ - Initial count of the semaphore. ++ * - ``max`` ++ - Maximum count of the semaphore. ++ ++ Fails with ``EINVAL`` if ``count`` is greater than ``max``. ++ ++.. c:macro:: WINESYNC_IOC_CREATE_MUTEX ++ ++ Create a mutex object. Takes a pointer to struct ++ :c:type:`winesync_mutex_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``mutex`` ++ - On output, contains the identifier of the created mutex. ++ * - ``count`` ++ - Initial recursion count of the mutex. ++ * - ``owner`` ++ - Initial owner of the mutex. ++ ++ If ``owner`` is nonzero and ``count`` is zero, or if ``owner`` is ++ zero and ``count`` is nonzero, the function fails with ``EINVAL``. ++ ++.. c:macro:: WINESYNC_IOC_DELETE ++ ++ Delete an object of any type. Takes an input-only pointer to a ++ 32-bit integer denoting the object to delete. ++ ++ Wait ioctls currently in progress are not interrupted, and behave as ++ if the object remains valid. ++ ++.. c:macro:: WINESYNC_IOC_PUT_SEM ++ ++ Post to a semaphore object. Takes a pointer to struct ++ :c:type:`winesync_sem_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``sem`` ++ - Semaphore object to post to. ++ * - ``count`` ++ - Count to add to the semaphore. On output, contains the ++ previous count of the semaphore. ++ * - ``max`` ++ - Not used. ++ ++ If adding ``count`` to the semaphore's current count would raise the ++ latter past the semaphore's maximum count, the ioctl fails with ++ ``EOVERFLOW`` and the semaphore is not affected. If raising the ++ semaphore's count causes it to become signaled, eligible threads ++ waiting on this semaphore will be woken and the semaphore's count ++ decremented appropriately. ++ ++.. c:macro:: WINESYNC_IOC_PUT_MUTEX ++ ++ Release a mutex object. Takes a pointer to struct ++ :c:type:`winesync_mutex_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``mutex`` ++ - Mutex object to release. ++ * - ``owner`` ++ - Mutex owner identifier. ++ * - ``count`` ++ - On output, contains the previous recursion count. ++ ++ If ``owner`` is zero, the ioctl fails with ``EINVAL``. If ``owner`` ++ is not the current owner of the mutex, the ioctl fails with ++ ``EPERM``. ++ ++ The mutex's count will be decremented by one. If decrementing the ++ mutex's count causes it to become zero, the mutex is marked as ++ unowned and signaled, and eligible threads waiting on it will be ++ woken as appropriate. ++ ++.. c:macro:: WINESYNC_IOC_READ_SEM ++ ++ Read the current state of a semaphore object. Takes a pointer to ++ struct :c:type:`winesync_sem_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``sem`` ++ - Semaphore object to read. ++ * - ``count`` ++ - On output, contains the current count of the semaphore. ++ * - ``max`` ++ - On output, contains the maximum count of the semaphore. ++ ++.. c:macro:: WINESYNC_IOC_READ_MUTEX ++ ++ Read the current state of a mutex object. Takes a pointer to struct ++ :c:type:`winesync_mutex_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``mutex`` ++ - Mutex object to read. ++ * - ``owner`` ++ - On output, contains the current owner of the mutex, or zero ++ if the mutex is not currently owned. ++ * - ``count`` ++ - On output, contains the current recursion count of the mutex. ++ ++ If the mutex is marked as inconsistent, the function fails with ++ ``EOWNERDEAD``. In this case, ``count`` and ``owner`` are set to ++ zero. ++ ++.. c:macro:: WINESYNC_IOC_KILL_OWNER ++ ++ Mark any mutexes owned by the given owner as unowned and ++ inconsistent. Takes an input-only pointer to a 32-bit integer ++ denoting the owner. If the owner is zero, the ioctl fails with ++ ``EINVAL``. ++ ++ For each mutex currently owned by the given owner, eligible threads ++ waiting on said mutex will be woken as appropriate (and such waits ++ will fail with ``EOWNERDEAD``, as described below). ++ ++ The operation as a whole is not atomic; however, the modification of ++ each mutex is atomic and totally ordered with respect to other ++ operations on the same mutex. ++ ++.. c:macro:: WINESYNC_IOC_WAIT_ANY ++ ++ Poll on any of a list of objects, atomically acquiring at most one. ++ Takes a pointer to struct :c:type:`winesync_wait_args`, which is ++ used as follows: ++ ++ .. list-table:: ++ ++ * - ``timeout`` ++ - Optional pointer to a 64-bit struct :c:type:`timespec` ++ (specified as an integer so that the structure has the same ++ size regardless of architecture). The timeout is specified in ++ absolute format, as measured against the MONOTONIC clock. If ++ the timeout is equal to or earlier than the current time, the ++ function returns immediately without sleeping. If ``timeout`` ++ is zero, i.e. NULL, the function will sleep until an object ++ is signaled, and will not fail with ``ETIMEDOUT``. ++ * - ``objs`` ++ - Pointer to an array of ``count`` 32-bit object identifiers ++ (specified as an integer so that the structure has the same ++ size regardless of architecture). If any identifier is ++ invalid, the function fails with ``EINVAL``. ++ * - ``count`` ++ - Number of object identifiers specified in the ``objs`` array. ++ * - ``owner`` ++ - Mutex owner identifier. If any object in ``objs`` is a mutex, ++ the ioctl will attempt to acquire that mutex on behalf of ++ ``owner``. If ``owner`` is zero, the ioctl fails with ++ ``EINVAL``. ++ * - ``index`` ++ - On success, contains the index (into ``objs``) of the object ++ which was signaled. ++ * - ``pad`` ++ - This field is not used and must be set to zero. ++ ++ This function attempts to acquire one of the given objects. If ++ unable to do so, it sleeps until an object becomes signaled, ++ subsequently acquiring it, or the timeout expires. In the latter ++ case the ioctl fails with ``ETIMEDOUT``. The function only acquires ++ one object, even if multiple objects are signaled. ++ ++ A semaphore is considered to be signaled if its count is nonzero, ++ and is acquired by decrementing its count by one. A mutex is ++ considered to be signaled if it is unowned or if its owner matches ++ the ``owner`` argument, and is acquired by incrementing its ++ recursion count by one and setting its owner to the ``owner`` ++ argument. ++ ++ Acquisition is atomic and totally ordered with respect to other ++ operations on the same object. If two wait operations (with ++ different ``owner`` identifiers) are queued on the same mutex, only ++ one is signaled. If two wait operations are queued on the same ++ semaphore, and a value of one is posted to it, only one is signaled. ++ The order in which threads are signaled is not specified. ++ ++ If an inconsistent mutex is acquired, the ioctl fails with ++ ``EOWNERDEAD``. Although this is a failure return, the function may ++ otherwise be considered successful. The mutex is marked as owned by ++ the given owner (with a recursion count of 1) and as no longer ++ inconsistent, and ``index`` is still set to the index of the mutex. ++ ++ It is valid to pass the same object more than once. If a wakeup ++ occurs due to that object being signaled, ``index`` is set to the ++ lowest index corresponding to that object. ++ ++ The function may fail with ``EINTR`` if a signal is received. ++ ++.. c:macro:: WINESYNC_IOC_WAIT_ALL ++ ++ Poll on a list of objects, atomically acquiring all of them. Takes a ++ pointer to struct :c:type:`winesync_wait_args`, which is used ++ identically to ``WINESYNC_IOC_WAIT_ANY``, except that ``index`` is ++ always filled with zero on success. ++ ++ This function attempts to simultaneously acquire all of the given ++ objects. If unable to do so, it sleeps until all objects become ++ simultaneously signaled, subsequently acquiring them, or the timeout ++ expires. In the latter case the ioctl fails with ``ETIMEDOUT`` and ++ no objects are modified. ++ ++ Objects may become signaled and subsequently designaled (through ++ acquisition by other threads) while this thread is sleeping. Only ++ once all objects are simultaneously signaled does the ioctl acquire ++ them and return. The entire acquisition is atomic and totally ++ ordered with respect to other operations on any of the given ++ objects. ++ ++ If an inconsistent mutex is acquired, the ioctl fails with ++ ``EOWNERDEAD``. Similarly to ``WINESYNC_IOC_WAIT_ANY``, all objects ++ are nevertheless marked as acquired. Note that if multiple mutex ++ objects are specified, there is no way to know which were marked as ++ inconsistent. ++ ++ Unlike ``WINESYNC_IOC_WAIT_ANY``, it is not valid to pass the same ++ object more than once. If this is attempted, the function fails with ++ ``EINVAL``. +-- +2.36.0 + +From 622699b7dd8d5390dccdd9be1159e93dee6815ac Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:06:23 -0600 +Subject: [PATCH 13/34] selftests: winesync: Add some tests for semaphore + state. + +--- + tools/testing/selftests/Makefile | 1 + + .../selftests/drivers/winesync/Makefile | 8 + + .../testing/selftests/drivers/winesync/config | 1 + + .../selftests/drivers/winesync/winesync.c | 153 ++++++++++++++++++ + 4 files changed, 163 insertions(+) + create mode 100644 tools/testing/selftests/drivers/winesync/Makefile + create mode 100644 tools/testing/selftests/drivers/winesync/config + create mode 100644 tools/testing/selftests/drivers/winesync/winesync.c + +diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile +index c852eb40c4f7..a366016d6254 100644 +--- a/tools/testing/selftests/Makefile ++++ b/tools/testing/selftests/Makefile +@@ -18,6 +18,7 @@ + TARGETS += drivers/s390x/uvdevice + TARGETS += drivers/net/bonding + TARGETS += drivers/net/team ++TARGETS += drivers/winesync + TARGETS += efivarfs + TARGETS += exec + TARGETS += fchmodat2 +new file mode 100644 +index 000000000000..43b39fdeea10 +--- /dev/null ++++ b/tools/testing/selftests/drivers/winesync/Makefile +@@ -0,0 +1,8 @@ ++# SPDX-LICENSE-IDENTIFIER: GPL-2.0-only ++TEST_GEN_PROGS := winesync ++ ++top_srcdir =../../../../.. ++CFLAGS += -I$(top_srcdir)/usr/include ++LDLIBS += -lpthread ++ ++include ../../lib.mk +diff --git a/tools/testing/selftests/drivers/winesync/config b/tools/testing/selftests/drivers/winesync/config +new file mode 100644 +index 000000000000..60539c826d06 +--- /dev/null ++++ b/tools/testing/selftests/drivers/winesync/config +@@ -0,0 +1 @@ ++CONFIG_WINESYNC=y +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +new file mode 100644 +index 000000000000..58ade297fef9 +--- /dev/null ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -0,0 +1,153 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later ++/* ++ * Various unit tests for the "winesync" synchronization primitive driver. ++ * ++ * Copyright (C) 2021 Zebediah Figura ++ */ ++ ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++#include ++#include ++#include "../../kselftest_harness.h" ++ ++static int read_sem_state(int fd, __u32 sem, __u32 *count, __u32 *max) ++{ ++ struct winesync_sem_args args; ++ int ret; ++ ++ args.sem = sem; ++ args.count = 0xdeadbeef; ++ args.max = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_SEM, &args); ++ *count = args.count; ++ *max = args.max; ++ return ret; ++} ++ ++#define check_sem_state(fd, sem, count, max) \ ++ ({ \ ++ __u32 __count, __max; \ ++ int ret = read_sem_state((fd), (sem), &__count, &__max); \ ++ EXPECT_EQ(0, ret); \ ++ EXPECT_EQ((count), __count); \ ++ EXPECT_EQ((max), __max); \ ++ }) ++ ++static int put_sem(int fd, __u32 sem, __u32 *count) ++{ ++ struct winesync_sem_args args; ++ int ret; ++ ++ args.sem = sem; ++ args.count = *count; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &args); ++ *count = args.count; ++ return ret; ++} ++ ++static int wait_any(int fd, __u32 count, const __u32 *objs, __u32 owner, ++ __u32 *index) ++{ ++ struct winesync_wait_args args = {0}; ++ struct timespec timeout; ++ int ret; ++ ++ clock_gettime(CLOCK_MONOTONIC, &timeout); ++ ++ args.timeout = (uintptr_t)&timeout; ++ args.count = count; ++ args.objs = (uintptr_t)objs; ++ args.owner = owner; ++ args.index = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &args); ++ *index = args.index; ++ return ret; ++} ++ ++TEST(semaphore_state) ++{ ++ struct winesync_sem_args sem_args; ++ struct timespec timeout; ++ __u32 sem, count, index; ++ int fd, ret; ++ ++ clock_gettime(CLOCK_MONOTONIC, &timeout); ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 3; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ sem_args.count = 2; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ check_sem_state(fd, sem, 2, 2); ++ ++ count = 0; ++ ret = put_sem(fd, sem, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, count); ++ check_sem_state(fd, sem, 2, 2); ++ ++ count = 1; ++ ret = put_sem(fd, sem, &count); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOVERFLOW, errno); ++ check_sem_state(fd, sem, 2, 2); ++ ++ ret = wait_any(fd, 1, &sem, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem, 1, 2); ++ ++ ret = wait_any(fd, 1, &sem, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem, 0, 2); ++ ++ ret = wait_any(fd, 1, &sem, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ count = 3; ++ ret = put_sem(fd, sem, &count); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOVERFLOW, errno); ++ check_sem_state(fd, sem, 0, 2); ++ ++ count = 2; ++ ret = put_sem(fd, sem, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, count); ++ check_sem_state(fd, sem, 2, 2); ++ ++ ret = wait_any(fd, 1, &sem, 123, &index); ++ EXPECT_EQ(0, ret); ++ ret = wait_any(fd, 1, &sem, 123, &index); ++ EXPECT_EQ(0, ret); ++ ++ count = 1; ++ ret = put_sem(fd, sem, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, count); ++ check_sem_state(fd, sem, 1, 2); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ ++TEST_HARNESS_MAIN +-- +2.36.0 + +From c62acefda29b36849abde8134bf2a3fe8d893520 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:07:04 -0600 +Subject: [PATCH 14/34] selftests: winesync: Add some tests for mutex state. + +--- + .../selftests/drivers/winesync/winesync.c | 188 ++++++++++++++++++ + 1 file changed, 188 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 58ade297fef9..801b776da5aa 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -49,6 +49,42 @@ static int put_sem(int fd, __u32 sem, __u32 *count) + return ret; + } + ++static int read_mutex_state(int fd, __u32 mutex, __u32 *count, __u32 *owner) ++{ ++ struct winesync_mutex_args args; ++ int ret; ++ ++ args.mutex = mutex; ++ args.count = 0xdeadbeef; ++ args.owner = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &args); ++ *count = args.count; ++ *owner = args.owner; ++ return ret; ++} ++ ++#define check_mutex_state(fd, mutex, count, owner) \ ++ ({ \ ++ __u32 __count, __owner; \ ++ int ret = read_mutex_state((fd), (mutex), &__count, &__owner); \ ++ EXPECT_EQ(0, ret); \ ++ EXPECT_EQ((count), __count); \ ++ EXPECT_EQ((owner), __owner); \ ++ }) ++ ++static int put_mutex(int fd, __u32 mutex, __u32 owner, __u32 *count) ++{ ++ struct winesync_mutex_args args; ++ int ret; ++ ++ args.mutex = mutex; ++ args.owner = owner; ++ args.count = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_MUTEX, &args); ++ *count = args.count; ++ return ret; ++} ++ + static int wait_any(int fd, __u32 count, const __u32 *objs, __u32 owner, + __u32 *index) + { +@@ -150,4 +186,156 @@ TEST(semaphore_state) + close(fd); + } + ++TEST(mutex_state) ++{ ++ struct winesync_mutex_args mutex_args; ++ __u32 mutex, owner, count, index; ++ struct timespec timeout; ++ int fd, ret; ++ ++ clock_gettime(CLOCK_MONOTONIC, &timeout); ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ mutex_args.owner = 123; ++ mutex_args.count = 0; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ mutex_args.owner = 0; ++ mutex_args.count = 2; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ mutex_args.owner = 123; ++ mutex_args.count = 2; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ mutex = mutex_args.mutex; ++ check_mutex_state(fd, mutex, 2, 123); ++ ++ ret = put_mutex(fd, mutex, 0, &count); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = put_mutex(fd, mutex, 456, &count); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EPERM, errno); ++ check_mutex_state(fd, mutex, 2, 123); ++ ++ ret = put_mutex(fd, mutex, 123, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, count); ++ check_mutex_state(fd, mutex, 1, 123); ++ ++ ret = put_mutex(fd, mutex, 123, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, count); ++ check_mutex_state(fd, mutex, 0, 0); ++ ++ ret = put_mutex(fd, mutex, 123, &count); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EPERM, errno); ++ ++ ret = wait_any(fd, 1, &mutex, 456, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_mutex_state(fd, mutex, 1, 456); ++ ++ ret = wait_any(fd, 1, &mutex, 456, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_mutex_state(fd, mutex, 2, 456); ++ ++ ret = put_mutex(fd, mutex, 456, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, count); ++ check_mutex_state(fd, mutex, 1, 456); ++ ++ ret = wait_any(fd, 1, &mutex, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ owner = 0; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ owner = 123; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(0, ret); ++ check_mutex_state(fd, mutex, 1, 456); ++ ++ owner = 456; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(0, ret); ++ ++ mutex_args.count = 0xdeadbeef; ++ mutex_args.owner = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(0, mutex_args.count); ++ EXPECT_EQ(0, mutex_args.owner); ++ ++ mutex_args.count = 0xdeadbeef; ++ mutex_args.owner = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(0, mutex_args.count); ++ EXPECT_EQ(0, mutex_args.owner); ++ ++ ret = wait_any(fd, 1, &mutex, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(0, index); ++ check_mutex_state(fd, mutex, 1, 123); ++ ++ owner = 123; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(0, ret); ++ ++ mutex_args.count = 0xdeadbeef; ++ mutex_args.owner = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(0, mutex_args.count); ++ EXPECT_EQ(0, mutex_args.owner); ++ ++ ret = wait_any(fd, 1, &mutex, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(0, index); ++ check_mutex_state(fd, mutex, 1, 123); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex); ++ EXPECT_EQ(0, ret); ++ ++ mutex_args.owner = 0; ++ mutex_args.count = 0; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ mutex = mutex_args.mutex; ++ check_mutex_state(fd, mutex, 0, 0); ++ ++ ret = wait_any(fd, 1, &mutex, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_mutex_state(fd, mutex, 1, 123); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From 540cefcfe255d0b4c7208ae57a43fe0f16ce2531 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:07:45 -0600 +Subject: [PATCH 15/34] selftests: winesync: Add some tests for + WINESYNC_IOC_WAIT_ANY. + +--- + .../selftests/drivers/winesync/winesync.c | 107 ++++++++++++++++++ + 1 file changed, 107 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 801b776da5aa..5903061d38b6 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -338,4 +338,111 @@ TEST(mutex_state) + close(fd); + } + ++TEST(test_wait_any) ++{ ++ struct winesync_mutex_args mutex_args = {0}; ++ struct winesync_wait_args wait_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ __u32 objs[2], owner, index; ++ struct timespec timeout; ++ int fd, ret; ++ ++ clock_gettime(CLOCK_MONOTONIC, &timeout); ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 2; ++ sem_args.max = 3; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ ++ mutex_args.owner = 0; ++ mutex_args.count = 0; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ ++ objs[0] = sem_args.sem; ++ objs[1] = mutex_args.mutex; ++ ++ ret = wait_any(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ check_mutex_state(fd, mutex_args.mutex, 0, 0); ++ ++ ret = wait_any(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 0, 0); ++ ++ ret = wait_any(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 123); ++ ++ sem_args.count = 1; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ ++ ret = wait_any(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 123); ++ ++ ret = wait_any(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 2, 123); ++ ++ ret = wait_any(fd, 2, objs, 456, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ owner = 123; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_any(fd, 2, objs, 456, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ EXPECT_EQ(1, index); ++ ++ ret = wait_any(fd, 2, objs, 456, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, index); ++ ++ /* test waiting on the same object twice */ ++ sem_args.count = 2; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ ++ objs[0] = objs[1] = sem_args.sem; ++ ret = wait_any(fd, 2, objs, 456, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, wait_args.index); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ ++ ret = wait_any(fd, 0, NULL, 456, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem_args.sem); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From 17f55215ea56e925369e2eec7eaead604a273e34 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:08:25 -0600 +Subject: [PATCH 16/34] selftests: winesync: Add some tests for + WINESYNC_IOC_WAIT_ALL. + +--- + .../selftests/drivers/winesync/winesync.c | 104 +++++++++++++++++- + 1 file changed, 101 insertions(+), 3 deletions(-) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 5903061d38b6..0718219f54bf 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -85,8 +85,8 @@ static int put_mutex(int fd, __u32 mutex, __u32 owner, __u32 *count) + return ret; + } + +-static int wait_any(int fd, __u32 count, const __u32 *objs, __u32 owner, +- __u32 *index) ++static int wait_objs(int fd, unsigned long request, __u32 count, ++ const __u32 *objs, __u32 owner, __u32 *index) + { + struct winesync_wait_args args = {0}; + struct timespec timeout; +@@ -99,11 +99,23 @@ static int wait_any(int fd, __u32 count, const __u32 *objs, __u32 owner, + args.objs = (uintptr_t)objs; + args.owner = owner; + args.index = 0xdeadbeef; +- ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &args); ++ ret = ioctl(fd, request, &args); + *index = args.index; + return ret; + } + ++static int wait_any(int fd, __u32 count, const __u32 *objs, ++ __u32 owner, __u32 *index) ++{ ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ANY, count, objs, owner, index); ++} ++ ++static int wait_all(int fd, __u32 count, const __u32 *objs, ++ __u32 owner, __u32 *index) ++{ ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ALL, count, objs, owner, index); ++} ++ + TEST(semaphore_state) + { + struct winesync_sem_args sem_args; +@@ -445,4 +457,90 @@ TEST(test_wait_any) + close(fd); + } + ++TEST(test_wait_all) ++{ ++ struct winesync_mutex_args mutex_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ __u32 objs[2], owner, index; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 2; ++ sem_args.max = 3; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ ++ mutex_args.owner = 0; ++ mutex_args.count = 0; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ ++ objs[0] = sem_args.sem; ++ objs[1] = mutex_args.mutex; ++ ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 123); ++ ++ ret = wait_all(fd, 2, objs, 456, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 123); ++ ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 2, 123); ++ ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_mutex_state(fd, mutex_args.mutex, 2, 123); ++ ++ sem_args.count = 3; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 2, 3); ++ check_mutex_state(fd, mutex_args.mutex, 3, 123); ++ ++ owner = 123; ++ ret = ioctl(fd, WINESYNC_IOC_KILL_OWNER, &owner); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EOWNERDEAD, errno); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 123); ++ ++ /* test waiting on the same object twice */ ++ objs[0] = objs[1] = sem_args.sem; ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem_args.sem); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From 6d07a2265d06d3f0af6fe2d9874762fb2e922488 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:08:54 -0600 +Subject: [PATCH 17/34] selftests: winesync: Add some tests for invalid object + handling. + +--- + .../selftests/drivers/winesync/winesync.c | 93 +++++++++++++++++++ + 1 file changed, 93 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 0718219f54bf..8a9fb496f5e0 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -543,4 +543,97 @@ TEST(test_wait_all) + close(fd); + } + ++TEST(invalid_objects) ++{ ++ struct winesync_mutex_args mutex_args = {0}; ++ struct winesync_wait_args wait_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ __u32 objs[2] = {0}; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_SEM, &sem_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PUT_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ wait_args.objs = (uintptr_t)objs; ++ wait_args.count = 1; ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ALL, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &objs[0]); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ sem_args.max = 1; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ ++ mutex_args.mutex = sem_args.sem; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_MUTEX, &mutex_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ objs[0] = sem_args.sem; ++ objs[1] = sem_args.sem + 1; ++ wait_args.count = 2; ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ALL, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ objs[0] = sem_args.sem + 1; ++ objs[1] = sem_args.sem; ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ret = ioctl(fd, WINESYNC_IOC_WAIT_ALL, &wait_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem_args.sem); ++ EXPECT_EQ(0, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ ++ sem_args.sem = mutex_args.mutex; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_SEM, &sem_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From fafaf63d58b1f8ae3644ec5850c170bce6f6b5d2 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:09:32 -0600 +Subject: [PATCH 18/34] selftests: winesync: Add some tests for wakeup + signaling with WINESYNC_IOC_WAIT_ANY. + +--- + .../selftests/drivers/winesync/winesync.c | 154 ++++++++++++++++++ + 1 file changed, 154 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 8a9fb496f5e0..04855df00894 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -636,4 +636,158 @@ TEST(invalid_objects) + close(fd); + } + ++struct wake_args ++{ ++ int fd; ++ __u32 obj; ++}; ++ ++struct wait_args ++{ ++ int fd; ++ unsigned long request; ++ struct winesync_wait_args *args; ++ int ret; ++ int err; ++}; ++ ++static void *wait_thread(void *arg) ++{ ++ struct wait_args *args = arg; ++ ++ args->ret = ioctl(args->fd, args->request, args->args); ++ args->err = errno; ++ return NULL; ++} ++ ++static void get_abs_timeout(struct timespec *timeout, clockid_t clock, ++ unsigned int ms) ++{ ++ clock_gettime(clock, timeout); ++ timeout->tv_nsec += ms * 1000000; ++ timeout->tv_sec += (timeout->tv_nsec / 1000000000); ++ timeout->tv_nsec %= 1000000000; ++} ++ ++static int wait_for_thread(pthread_t thread, unsigned int ms) ++{ ++ struct timespec timeout; ++ get_abs_timeout(&timeout, CLOCK_REALTIME, ms); ++ return pthread_timedjoin_np(thread, NULL, &timeout); ++} ++ ++TEST(wake_any) ++{ ++ struct winesync_mutex_args mutex_args = {0}; ++ struct winesync_wait_args wait_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ struct wait_args thread_args; ++ __u32 objs[2], count, index; ++ struct timespec timeout; ++ pthread_t thread; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 0; ++ sem_args.max = 3; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ ++ mutex_args.owner = 123; ++ mutex_args.count = 1; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ ++ objs[0] = sem_args.sem; ++ objs[1] = mutex_args.mutex; ++ ++ /* test waking the semaphore */ ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ wait_args.timeout = (uintptr_t)&timeout; ++ wait_args.objs = (uintptr_t)objs; ++ wait_args.count = 2; ++ wait_args.owner = 456; ++ wait_args.index = 0xdeadbeef; ++ thread_args.fd = fd; ++ thread_args.args = &wait_args; ++ thread_args.request = WINESYNC_IOC_WAIT_ANY; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ sem_args.count = 1; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(0, wait_args.index); ++ ++ /* test waking the mutex */ ++ ++ /* first grab it again for owner 123 */ ++ ret = wait_any(fd, 1, &mutex_args.mutex, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ wait_args.owner = 456; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = put_mutex(fd, mutex_args.mutex, 123, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, count); ++ ++ ret = pthread_tryjoin_np(thread, NULL); ++ EXPECT_EQ(EBUSY, ret); ++ ++ ret = put_mutex(fd, mutex_args.mutex, 123, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, mutex_args.count); ++ check_mutex_state(fd, mutex_args.mutex, 1, 456); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(1, wait_args.index); ++ ++ /* delete an object while it's being waited on */ ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 200); ++ wait_args.owner = 123; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem_args.sem); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 200); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(-1, thread_args.ret); ++ EXPECT_EQ(ETIMEDOUT, thread_args.err); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From c1916abd720dc30c3dc1972fd9a4d69844e8ffbd Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Fri, 5 Mar 2021 12:09:36 -0600 +Subject: [PATCH 19/34] selftests: winesync: Add some tests for wakeup + signaling with WINESYNC_IOC_WAIT_ALL. + +--- + .../selftests/drivers/winesync/winesync.c | 102 ++++++++++++++++++ + 1 file changed, 102 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 04855df00894..ad6d0f9a2a35 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -790,4 +790,106 @@ TEST(wake_any) + close(fd); + } + ++TEST(wake_all) ++{ ++ struct winesync_mutex_args mutex_args = {0}; ++ struct winesync_wait_args wait_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ struct wait_args thread_args; ++ __u32 objs[2], count, index; ++ struct timespec timeout; ++ pthread_t thread; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 0; ++ sem_args.max = 3; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ ++ mutex_args.owner = 123; ++ mutex_args.count = 1; ++ mutex_args.mutex = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_MUTEX, &mutex_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, mutex_args.mutex); ++ ++ objs[0] = sem_args.sem; ++ objs[1] = mutex_args.mutex; ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ wait_args.timeout = (uintptr_t)&timeout; ++ wait_args.objs = (uintptr_t)objs; ++ wait_args.count = 2; ++ wait_args.owner = 456; ++ thread_args.fd = fd; ++ thread_args.args = &wait_args; ++ thread_args.request = WINESYNC_IOC_WAIT_ALL; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ sem_args.count = 1; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ ++ ret = pthread_tryjoin_np(thread, NULL); ++ EXPECT_EQ(EBUSY, ret); ++ ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ ++ ret = wait_any(fd, 1, &sem_args.sem, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ ret = put_mutex(fd, mutex_args.mutex, 123, &count); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, count); ++ ++ ret = pthread_tryjoin_np(thread, NULL); ++ EXPECT_EQ(EBUSY, ret); ++ ++ check_mutex_state(fd, mutex_args.mutex, 0, 0); ++ ++ sem_args.count = 2; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, sem_args.count); ++ check_sem_state(fd, sem_args.sem, 1, 3); ++ check_mutex_state(fd, mutex_args.mutex, 1, 456); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ ++ /* delete an object while it's being waited on */ ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 200); ++ wait_args.owner = 123; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &sem_args.sem); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 200); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(-1, thread_args.ret); ++ EXPECT_EQ(ETIMEDOUT, thread_args.err); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From 4e6e34339182f13972e7b906c0bd0dde74eda3d7 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 18:21:03 -0600 +Subject: [PATCH 21/34] winesync: Introduce WINESYNC_IOC_CREATE_EVENT. + +--- + drivers/misc/winesync.c | 65 +++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 8 +++++ + 2 files changed, 73 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index eae272663abe..eaba41510784 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -17,6 +17,7 @@ + enum winesync_type { + WINESYNC_TYPE_SEM, + WINESYNC_TYPE_MUTEX, ++ WINESYNC_TYPE_EVENT, + }; + + struct winesync_obj { +@@ -66,6 +67,10 @@ struct winesync_obj { + __u32 owner; + bool ownerdead; + } mutex; ++ struct { ++ bool manual; ++ bool signaled; ++ } event; + } u; + }; + +@@ -199,6 +204,8 @@ static bool is_signaled(struct winesync_obj *obj, __u32 owner) + if (obj->u.mutex.owner && obj->u.mutex.owner != owner) + return false; + return obj->u.mutex.count < UINT_MAX; ++ case WINESYNC_TYPE_EVENT: ++ return obj->u.event.signaled; + } + + WARN(1, "bad object type %#x\n", obj->type); +@@ -248,6 +255,10 @@ static void try_wake_all(struct winesync_device *dev, struct winesync_q *q, + obj->u.mutex.count++; + obj->u.mutex.owner = q->owner; + break; ++ case WINESYNC_TYPE_EVENT: ++ if (!obj->u.event.manual) ++ obj->u.event.signaled = false; ++ break; + } + } + wake_up_process(q->task); +@@ -315,6 +326,26 @@ static void try_wake_any_mutex(struct winesync_obj *mutex) + } + } + ++static void try_wake_any_event(struct winesync_obj *event) ++{ ++ struct winesync_q_entry *entry; ++ ++ lockdep_assert_held(&event->lock); ++ ++ list_for_each_entry(entry, &event->any_waiters, node) { ++ struct winesync_q *q = entry->q; ++ ++ if (!event->u.event.signaled) ++ break; ++ ++ if (atomic_cmpxchg(&q->signaled, -1, entry->index) == -1) { ++ if (!event->u.event.manual) ++ event->u.event.signaled = false; ++ wake_up_process(q->task); ++ } ++ } ++} ++ + static int winesync_create_sem(struct winesync_device *dev, void __user *argp) + { + struct winesync_sem_args __user *user_args = argp; +@@ -379,6 +410,35 @@ static int winesync_create_mutex(struct winesync_device *dev, void __user *argp) + return put_user(id, &user_args->mutex); + } + ++static int winesync_create_event(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_event_args __user *user_args = argp; ++ struct winesync_event_args args; ++ struct winesync_obj *event; ++ __u32 id; ++ int ret; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ event = kzalloc(sizeof(*event), GFP_KERNEL); ++ if (!event) ++ return -ENOMEM; ++ ++ init_obj(event); ++ event->type = WINESYNC_TYPE_EVENT; ++ event->u.event.manual = args.manual; ++ event->u.event.signaled = args.signaled; ++ ++ ret = xa_alloc(&dev->objects, &id, event, xa_limit_32b, GFP_KERNEL); ++ if (ret < 0) { ++ kfree(event); ++ return ret; ++ } ++ ++ return put_user(id, &user_args->event); ++} ++ + static int winesync_delete(struct winesync_device *dev, void __user *argp) + { + struct winesync_obj *obj; +@@ -760,6 +820,9 @@ static void try_wake_any_obj(struct winesync_obj *obj) + case WINESYNC_TYPE_MUTEX: + try_wake_any_mutex(obj); + break; ++ case WINESYNC_TYPE_EVENT: ++ try_wake_any_event(obj); ++ break; + } + } + +@@ -925,6 +988,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + void __user *argp = (void __user *)parm; + + switch (cmd) { ++ case WINESYNC_IOC_CREATE_EVENT: ++ return winesync_create_event(dev, argp); + case WINESYNC_IOC_CREATE_MUTEX: + return winesync_create_mutex(dev, argp); + case WINESYNC_IOC_CREATE_SEM: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 3371a303a927..3999407534e0 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -22,6 +22,12 @@ struct winesync_mutex_args { + __u32 count; + }; + ++struct winesync_event_args { ++ __u32 event; ++ __u32 manual; ++ __u32 signaled; ++}; ++ + struct winesync_wait_args { + __u64 timeout; + __u64 objs; +@@ -51,5 +57,7 @@ struct winesync_wait_args { + struct winesync_sem_args) + #define WINESYNC_IOC_READ_MUTEX _IOWR(WINESYNC_IOC_BASE, 9, \ + struct winesync_mutex_args) ++#define WINESYNC_IOC_CREATE_EVENT _IOWR(WINESYNC_IOC_BASE, 10, \ ++ struct winesync_event_args) + + #endif +-- +2.36.0 + +From 92a843a6d77099e638d5513fb4093e42ba84a3a3 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 18:43:30 -0600 +Subject: [PATCH 22/34] winesync: Introduce WINESYNC_IOC_SET_EVENT. + +--- + drivers/misc/winesync.c | 45 +++++++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 47 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index eaba41510784..658ad7b80c29 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -704,6 +704,49 @@ static int winesync_kill_owner(struct winesync_device *dev, void __user *argp) + return 0; + } + ++static int winesync_set_event(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_event_args __user *user_args = argp; ++ struct winesync_event_args args; ++ struct winesync_obj *event; ++ bool prev_state; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ event = get_obj_typed(dev, args.event, WINESYNC_TYPE_EVENT); ++ if (!event) ++ return -EINVAL; ++ ++ if (atomic_read(&event->all_hint) > 0) { ++ spin_lock(&dev->wait_all_lock); ++ spin_lock(&event->lock); ++ ++ prev_state = event->u.event.signaled; ++ event->u.event.signaled = true; ++ try_wake_all_obj(dev, event); ++ try_wake_any_event(event); ++ ++ spin_unlock(&event->lock); ++ spin_unlock(&dev->wait_all_lock); ++ } else { ++ spin_lock(&event->lock); ++ ++ prev_state = event->u.event.signaled; ++ event->u.event.signaled = true; ++ try_wake_any_event(event); ++ ++ spin_unlock(&event->lock); ++ } ++ ++ put_obj(event); ++ ++ if (put_user(prev_state, &user_args->signaled)) ++ return -EFAULT; ++ ++ return 0; ++} ++ + static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) + { + int ret = 0; +@@ -1006,6 +1049,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_read_mutex(dev, argp); + case WINESYNC_IOC_READ_SEM: + return winesync_read_sem(dev, argp); ++ case WINESYNC_IOC_SET_EVENT: ++ return winesync_set_event(dev, argp); + case WINESYNC_IOC_WAIT_ALL: + return winesync_wait_all(dev, argp); + case WINESYNC_IOC_WAIT_ANY: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 3999407534e0..34cd65d879a8 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -59,5 +59,7 @@ struct winesync_wait_args { + struct winesync_mutex_args) + #define WINESYNC_IOC_CREATE_EVENT _IOWR(WINESYNC_IOC_BASE, 10, \ + struct winesync_event_args) ++#define WINESYNC_IOC_SET_EVENT _IOWR(WINESYNC_IOC_BASE, 11, \ ++ struct winesync_event_args) + + #endif +-- +2.36.0 + +From 7abe646cd9c913b78156186e3a2d98715a0f3513 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 19:00:25 -0600 +Subject: [PATCH 23/34] winesync: Introduce WINESYNC_IOC_RESET_EVENT. + +--- + drivers/misc/winesync.c | 31 +++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 33 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 658ad7b80c29..a93f173127f4 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -747,6 +747,35 @@ static int winesync_set_event(struct winesync_device *dev, void __user *argp) + return 0; + } + ++static int winesync_reset_event(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_event_args __user *user_args = argp; ++ struct winesync_event_args args; ++ struct winesync_obj *event; ++ bool prev_state; ++ ++ if (copy_from_user(&args, argp, sizeof(args))) ++ return -EFAULT; ++ ++ event = get_obj_typed(dev, args.event, WINESYNC_TYPE_EVENT); ++ if (!event) ++ return -EINVAL; ++ ++ spin_lock(&event->lock); ++ ++ prev_state = event->u.event.signaled; ++ event->u.event.signaled = false; ++ ++ spin_unlock(&event->lock); ++ ++ put_obj(event); ++ ++ if (put_user(prev_state, &user_args->signaled)) ++ return -EFAULT; ++ ++ return 0; ++} ++ + static int winesync_schedule(const struct winesync_q *q, ktime_t *timeout) + { + int ret = 0; +@@ -1049,6 +1078,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_read_mutex(dev, argp); + case WINESYNC_IOC_READ_SEM: + return winesync_read_sem(dev, argp); ++ case WINESYNC_IOC_RESET_EVENT: ++ return winesync_reset_event(dev, argp); + case WINESYNC_IOC_SET_EVENT: + return winesync_set_event(dev, argp); + case WINESYNC_IOC_WAIT_ALL: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 34cd65d879a8..e71271fc44ba 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -61,5 +61,7 @@ struct winesync_wait_args { + struct winesync_event_args) + #define WINESYNC_IOC_SET_EVENT _IOWR(WINESYNC_IOC_BASE, 11, \ + struct winesync_event_args) ++#define WINESYNC_IOC_RESET_EVENT _IOWR(WINESYNC_IOC_BASE, 12, \ ++ struct winesync_event_args) + + #endif +-- +2.36.0 + +From 3ea6a631230c7b17d345e2249f5f72ad24c46a79 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 19:10:12 -0600 +Subject: [PATCH 24/34] winesync: Introduce WINESYNC_IOC_PULSE_EVENT. + +--- + drivers/misc/winesync.c | 11 +++++++++-- + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index a93f173127f4..27d5baa457df 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -704,7 +704,8 @@ static int winesync_kill_owner(struct winesync_device *dev, void __user *argp) + return 0; + } + +-static int winesync_set_event(struct winesync_device *dev, void __user *argp) ++static int winesync_set_event(struct winesync_device *dev, void __user *argp, ++ bool pulse) + { + struct winesync_event_args __user *user_args = argp; + struct winesync_event_args args; +@@ -726,6 +727,8 @@ static int winesync_set_event(struct winesync_device *dev, void __user *argp) + event->u.event.signaled = true; + try_wake_all_obj(dev, event); + try_wake_any_event(event); ++ if (pulse) ++ event->u.event.signaled = false; + + spin_unlock(&event->lock); + spin_unlock(&dev->wait_all_lock); +@@ -735,6 +738,8 @@ static int winesync_set_event(struct winesync_device *dev, void __user *argp) + prev_state = event->u.event.signaled; + event->u.event.signaled = true; + try_wake_any_event(event); ++ if (pulse) ++ event->u.event.signaled = false; + + spin_unlock(&event->lock); + } +@@ -1070,6 +1075,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_delete(dev, argp); + case WINESYNC_IOC_KILL_OWNER: + return winesync_kill_owner(dev, argp); ++ case WINESYNC_IOC_PULSE_EVENT: ++ return winesync_set_event(dev, argp, true); + case WINESYNC_IOC_PUT_MUTEX: + return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: +@@ -1081,7 +1088,7 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + case WINESYNC_IOC_RESET_EVENT: + return winesync_reset_event(dev, argp); + case WINESYNC_IOC_SET_EVENT: +- return winesync_set_event(dev, argp); ++ return winesync_set_event(dev, argp, false); + case WINESYNC_IOC_WAIT_ALL: + return winesync_wait_all(dev, argp); + case WINESYNC_IOC_WAIT_ANY: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index e71271fc44ba..7c09d0e9733c 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -63,5 +63,7 @@ struct winesync_wait_args { + struct winesync_event_args) + #define WINESYNC_IOC_RESET_EVENT _IOWR(WINESYNC_IOC_BASE, 12, \ + struct winesync_event_args) ++#define WINESYNC_IOC_PULSE_EVENT _IOWR(WINESYNC_IOC_BASE, 13, \ ++ struct winesync_event_args) + + #endif +-- +2.36.0 + +From 0fb972bb73385f9140f81a5f976b95ba750b73dd Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 19:14:00 -0600 +Subject: [PATCH 25/34] winesync: Introduce WINESYNC_IOC_READ_EVENT. + +--- + drivers/misc/winesync.c | 30 ++++++++++++++++++++++++++++++ + include/uapi/linux/winesync.h | 2 ++ + 2 files changed, 32 insertions(+) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 27d5baa457df..0f8a8a94eef8 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -639,6 +639,33 @@ static int winesync_read_mutex(struct winesync_device *dev, void __user *argp) + return ret; + } + ++static int winesync_read_event(struct winesync_device *dev, void __user *argp) ++{ ++ struct winesync_event_args __user *user_args = argp; ++ struct winesync_event_args args; ++ struct winesync_obj *event; ++ __u32 id; ++ ++ if (get_user(id, &user_args->event)) ++ return -EFAULT; ++ ++ event = get_obj_typed(dev, id, WINESYNC_TYPE_EVENT); ++ if (!event) ++ return -EINVAL; ++ ++ args.event = id; ++ spin_lock(&event->lock); ++ args.manual = event->u.event.manual; ++ args.signaled = event->u.event.signaled; ++ spin_unlock(&event->lock); ++ ++ put_obj(event); ++ ++ if (copy_to_user(user_args, &args, sizeof(args))) ++ return -EFAULT; ++ return 0; ++} ++ + /* + * Actually change the mutex state to mark its owner as dead. + */ +@@ -1081,6 +1109,8 @@ static long winesync_char_ioctl(struct file *file, unsigned int cmd, + return winesync_put_mutex(dev, argp); + case WINESYNC_IOC_PUT_SEM: + return winesync_put_sem(dev, argp); ++ case WINESYNC_IOC_READ_EVENT: ++ return winesync_read_event(dev, argp); + case WINESYNC_IOC_READ_MUTEX: + return winesync_read_mutex(dev, argp); + case WINESYNC_IOC_READ_SEM: +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index 7c09d0e9733c..fb3788339ffe 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -65,5 +65,7 @@ struct winesync_wait_args { + struct winesync_event_args) + #define WINESYNC_IOC_PULSE_EVENT _IOWR(WINESYNC_IOC_BASE, 13, \ + struct winesync_event_args) ++#define WINESYNC_IOC_READ_EVENT _IOWR(WINESYNC_IOC_BASE, 14, \ ++ struct winesync_event_args) + + #endif +-- +2.36.0 + +From ae7648556c522595d288bc169bde503140a59db0 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 19:34:47 -0600 +Subject: [PATCH 26/34] selftests: winesync: Add some tests for manual-reset + event state. + +--- + .../selftests/drivers/winesync/winesync.c | 92 +++++++++++++++++++ + 1 file changed, 92 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index ad6d0f9a2a35..7e99f09b113b 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -85,6 +85,30 @@ static int put_mutex(int fd, __u32 mutex, __u32 owner, __u32 *count) + return ret; + } + ++static int read_event_state(int fd, __u32 event, __u32 *signaled, __u32 *manual) ++{ ++ struct winesync_event_args args; ++ int ret; ++ ++ args.event = event; ++ args.signaled = 0xdeadbeef; ++ args.manual = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_READ_EVENT, &args); ++ *signaled = args.signaled; ++ *manual = args.manual; ++ return ret; ++} ++ ++#define check_event_state(fd, event, signaled, manual) \ ++ ({ \ ++ __u32 __signaled, __manual; \ ++ int ret = read_event_state((fd), (event), \ ++ &__signaled, &__manual); \ ++ EXPECT_EQ(0, ret); \ ++ EXPECT_EQ((signaled), __signaled); \ ++ EXPECT_EQ((manual), __manual); \ ++ }) ++ + static int wait_objs(int fd, unsigned long request, __u32 count, + const __u32 *objs, __u32 owner, __u32 *index) + { +@@ -350,6 +374,74 @@ TEST(mutex_state) + close(fd); + } + ++TEST(manual_event_state) ++{ ++ struct winesync_event_args event_args; ++ __u32 index; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ event_args.manual = 1; ++ event_args.signaled = 0; ++ event_args.event = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, event_args.event); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ event_args.signaled = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 1, 1); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ check_event_state(fd, event_args.event, 1, 1); ++ ++ ret = wait_any(fd, 1, &event_args.event, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_event_state(fd, event_args.event, 1, 1); ++ ++ event_args.signaled = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ ret = wait_any(fd, 1, &event_args.event, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST(test_wait_any) + { + struct winesync_mutex_args mutex_args = {0}; +-- +2.36.0 + +From 5eeeb415ccc7e046fc71f20345bf8be20edfc1c4 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 19:45:39 -0600 +Subject: [PATCH 27/34] selftests: winesync: Add some tests for auto-reset + event state. + +--- + .../selftests/drivers/winesync/winesync.c | 59 +++++++++++++++++++ + 1 file changed, 59 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 7e99f09b113b..3a9ac69308af 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -442,6 +442,65 @@ TEST(manual_event_state) + close(fd); + } + ++TEST(auto_event_state) ++{ ++ struct winesync_event_args event_args; ++ __u32 index; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ event_args.manual = 0; ++ event_args.signaled = 1; ++ event_args.event = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, event_args.event); ++ ++ check_event_state(fd, event_args.event, 1, 0); ++ ++ event_args.signaled = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ check_event_state(fd, event_args.event, 1, 0); ++ ++ ret = wait_any(fd, 1, &event_args.event, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ event_args.signaled = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ ret = wait_any(fd, 1, &event_args.event, 123, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST(test_wait_any) + { + struct winesync_mutex_args mutex_args = {0}; +-- +2.36.0 + +From 6857a39cd264169494908abf8564ac7161773203 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 21:00:50 -0600 +Subject: [PATCH 28/34] selftests: winesync: Add some tests for wakeup + signaling with events. + +--- + .../selftests/drivers/winesync/winesync.c | 152 +++++++++++++++++- + 1 file changed, 150 insertions(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 3a9ac69308af..2ccc51510230 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -610,6 +610,7 @@ TEST(test_wait_any) + + TEST(test_wait_all) + { ++ struct winesync_event_args event_args = {0}; + struct winesync_mutex_args mutex_args = {0}; + struct winesync_sem_args sem_args = {0}; + __u32 objs[2], owner, index; +@@ -632,6 +633,11 @@ TEST(test_wait_all) + EXPECT_EQ(0, ret); + EXPECT_NE(0xdeadbeef, mutex_args.mutex); + ++ event_args.manual = true; ++ event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ + objs[0] = sem_args.sem; + objs[1] = mutex_args.mutex; + +@@ -680,6 +686,14 @@ TEST(test_wait_all) + check_sem_state(fd, sem_args.sem, 1, 3); + check_mutex_state(fd, mutex_args.mutex, 1, 123); + ++ objs[0] = sem_args.sem; ++ objs[1] = event_args.event; ++ ret = wait_all(fd, 2, objs, 123, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ check_sem_state(fd, sem_args.sem, 0, 3); ++ check_event_state(fd, event_args.event, 1, 1); ++ + /* test waiting on the same object twice */ + objs[0] = objs[1] = sem_args.sem; + ret = wait_all(fd, 2, objs, 123, &index); +@@ -690,6 +704,8 @@ TEST(test_wait_all) + EXPECT_EQ(0, ret); + ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); + EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); + + close(fd); + } +@@ -829,6 +845,7 @@ static int wait_for_thread(pthread_t thread, unsigned int ms) + + TEST(wake_any) + { ++ struct winesync_event_args event_args = {0}; + struct winesync_mutex_args mutex_args = {0}; + struct winesync_wait_args wait_args = {0}; + struct winesync_sem_args sem_args = {0}; +@@ -918,10 +935,103 @@ TEST(wake_any) + EXPECT_EQ(0, thread_args.ret); + EXPECT_EQ(1, wait_args.index); + ++ /* test waking events */ ++ ++ event_args.manual = false; ++ event_args.signaled = false; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ objs[1] = event_args.event; ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(1, wait_args.index); ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 0); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(1, wait_args.index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ event_args.manual = true; ++ event_args.signaled = false; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ objs[1] = event_args.event; ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 1, 1); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(1, wait_args.index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, event_args.signaled); ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, event_args.signaled); ++ check_event_state(fd, event_args.event, 0, 1); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(1, wait_args.index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ + /* delete an object while it's being waited on */ + + get_abs_timeout(&timeout, CLOCK_MONOTONIC, 200); + wait_args.owner = 123; ++ objs[1] = mutex_args.mutex; + ret = pthread_create(&thread, NULL, wait_thread, &thread_args); + EXPECT_EQ(0, ret); + +@@ -943,11 +1053,13 @@ TEST(wake_any) + + TEST(wake_all) + { ++ struct winesync_event_args manual_event_args = {0}; ++ struct winesync_event_args auto_event_args = {0}; + struct winesync_mutex_args mutex_args = {0}; + struct winesync_wait_args wait_args = {0}; + struct winesync_sem_args sem_args = {0}; + struct wait_args thread_args; +- __u32 objs[2], count, index; ++ __u32 objs[4], count, index; + struct timespec timeout; + pthread_t thread; + int fd, ret; +@@ -969,13 +1081,25 @@ TEST(wake_all) + EXPECT_EQ(0, ret); + EXPECT_NE(0xdeadbeef, mutex_args.mutex); + ++ manual_event_args.manual = true; ++ manual_event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &manual_event_args); ++ EXPECT_EQ(0, ret); ++ ++ auto_event_args.manual = false; ++ auto_event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &auto_event_args); ++ EXPECT_EQ(0, ret); ++ + objs[0] = sem_args.sem; + objs[1] = mutex_args.mutex; ++ objs[2] = manual_event_args.event; ++ objs[3] = auto_event_args.event; + + get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); + wait_args.timeout = (uintptr_t)&timeout; + wait_args.objs = (uintptr_t)objs; +- wait_args.count = 2; ++ wait_args.count = 4; + wait_args.owner = 456; + thread_args.fd = fd; + thread_args.args = &wait_args; +@@ -1009,12 +1133,32 @@ TEST(wake_all) + + check_mutex_state(fd, mutex_args.mutex, 0, 0); + ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &manual_event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, manual_event_args.signaled); ++ + sem_args.count = 2; + ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); + EXPECT_EQ(0, ret); + EXPECT_EQ(0, sem_args.count); ++ check_sem_state(fd, sem_args.sem, 2, 3); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &auto_event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, auto_event_args.signaled); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &manual_event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, manual_event_args.signaled); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &auto_event_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, auto_event_args.signaled); ++ + check_sem_state(fd, sem_args.sem, 1, 3); + check_mutex_state(fd, mutex_args.mutex, 1, 456); ++ check_event_state(fd, manual_event_args.event, 1, 1); ++ check_event_state(fd, auto_event_args.event, 0, 0); + + ret = wait_for_thread(thread, 100); + EXPECT_EQ(0, ret); +@@ -1034,6 +1178,10 @@ TEST(wake_all) + EXPECT_EQ(0, ret); + ret = ioctl(fd, WINESYNC_IOC_DELETE, &mutex_args.mutex); + EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &manual_event_args.event); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &auto_event_args.event); ++ EXPECT_EQ(0, ret); + + ret = wait_for_thread(thread, 200); + EXPECT_EQ(0, ret); +-- +2.36.0 + +From 8d2d3a310b90252903cc10e84e2bb1a06d7e8fac Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 21:06:22 -0600 +Subject: [PATCH 29/34] selftests: winesync: Add some tests for invalid object + handling with events. + +--- + .../selftests/drivers/winesync/winesync.c | 34 +++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index 2ccc51510230..f2e18836c733 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -712,6 +712,7 @@ TEST(test_wait_all) + + TEST(invalid_objects) + { ++ struct winesync_event_args event_args = {0}; + struct winesync_mutex_args mutex_args = {0}; + struct winesync_wait_args wait_args = {0}; + struct winesync_sem_args sem_args = {0}; +@@ -737,6 +738,22 @@ TEST(invalid_objects) + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ + wait_args.objs = (uintptr_t)objs; + wait_args.count = 1; + ret = ioctl(fd, WINESYNC_IOC_WAIT_ANY, &wait_args); +@@ -763,6 +780,23 @@ TEST(invalid_objects) + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + ++ event_args.event = sem_args.sem; ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_PULSE_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_READ_EVENT, &event_args); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(EINVAL, errno); ++ + objs[0] = sem_args.sem; + objs[1] = sem_args.sem + 1; + wait_args.count = 2; +-- +2.36.0 + +From 25270ec5877bcf2aa81fc4dd8326a4ee5af6e541 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 19 Jan 2022 22:01:46 -0600 +Subject: [PATCH 30/34] docs: winesync: Document event APIs. + +--- + Documentation/userspace-api/winesync.rst | 104 ++++++++++++++++++++++- + 1 file changed, 101 insertions(+), 3 deletions(-) + +diff --git a/Documentation/userspace-api/winesync.rst b/Documentation/userspace-api/winesync.rst +index 34e54be229cf..ffa2f8fbc7e3 100644 +--- a/Documentation/userspace-api/winesync.rst ++++ b/Documentation/userspace-api/winesync.rst +@@ -18,8 +18,8 @@ interfaces such as futex(2) and poll(2). + Synchronization primitives + ========================== + +-The winesync driver exposes two types of synchronization primitives, +-semaphores and mutexes. ++The winesync driver exposes three types of synchronization primitives: ++semaphores, mutexes, and events. + + A semaphore holds a single volatile 32-bit counter, and a static + 32-bit integer denoting the maximum value. It is considered signaled +@@ -45,6 +45,12 @@ intended use is to store a thread identifier; however, the winesync + driver does not actually validate that a calling thread provides + consistent or unique identifiers. + ++An event holds a volatile boolean state denoting whether it is ++signaled or not. There are two types of events, auto-reset and ++manual-reset. An auto-reset event is designaled when a wait is ++satisfied; a manual-reset event is not. The event type is specified ++when the event is created. ++ + Unless specified otherwise, all operations on an object are atomic and + totally ordered with respect to other operations on the same object. + +@@ -78,6 +84,12 @@ structures used in ioctl calls:: + __u32 count; + }; + ++ struct winesync_event_args { ++ __u32 event; ++ __u32 signaled; ++ __u32 manual; ++ }; ++ + struct winesync_wait_args { + __u64 timeout; + __u64 objs; +@@ -125,6 +137,22 @@ The ioctls are as follows: + If ``owner`` is nonzero and ``count`` is zero, or if ``owner`` is + zero and ``count`` is nonzero, the function fails with ``EINVAL``. + ++.. c:macro:: WINESYNC_IOC_CREATE_EVENT ++ ++ Create an event object. Takes a pointer to struct ++ :c:type:`winesync_event_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``event`` ++ - On output, contains the identifier of the created event. ++ * - ``signaled`` ++ - If nonzero, the event is initially signaled, otherwise ++ nonsignaled. ++ * - ``manual`` ++ - If nonzero, the event is a manual-reset event, otherwise ++ auto-reset. ++ + .. c:macro:: WINESYNC_IOC_DELETE + + Delete an object of any type. Takes an input-only pointer to a +@@ -178,6 +206,60 @@ The ioctls are as follows: + unowned and signaled, and eligible threads waiting on it will be + woken as appropriate. + ++.. c:macro:: WINESYNC_IOC_SET_EVENT ++ ++ Signal an event object. Takes a pointer to struct ++ :c:type:`winesync_event_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``event`` ++ - Event object to set. ++ * - ``signaled`` ++ - On output, contains the previous state of the event. ++ * - ``manual`` ++ - Unused. ++ ++ Eligible threads will be woken, and auto-reset events will be ++ designaled appropriately. ++ ++.. c:macro:: WINESYNC_IOC_RESET_EVENT ++ ++ Designal an event object. Takes a pointer to struct ++ :c:type:`winesync_event_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``event`` ++ - Event object to reset. ++ * - ``signaled`` ++ - On output, contains the previous state of the event. ++ * - ``manual`` ++ - Unused. ++ ++.. c:macro:: WINESYNC_IOC_PULSE_EVENT ++ ++ Wake threads waiting on an event object without leaving it in a ++ signaled state. Takes a pointer to struct ++ :c:type:`winesync_event_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``event`` ++ - Event object to pulse. ++ * - ``signaled`` ++ - On output, contains the previous state of the event. ++ * - ``manual`` ++ - Unused. ++ ++ A pulse operation can be thought of as a set followed by a reset, ++ performed as a single atomic operation. If two threads are waiting ++ on an auto-reset event which is pulsed, only one will be woken. If ++ two threads are waiting a manual-reset event which is pulsed, both ++ will be woken. However, in both cases, the event will be unsignaled ++ afterwards, and a simultaneous read operation will always report the ++ event as unsignaled. ++ + .. c:macro:: WINESYNC_IOC_READ_SEM + + Read the current state of a semaphore object. Takes a pointer to +@@ -211,6 +293,21 @@ The ioctls are as follows: + ``EOWNERDEAD``. In this case, ``count`` and ``owner`` are set to + zero. + ++.. c:macro:: WINESYNC_IOC_READ_EVENT ++ ++ Read the current state of an event object. Takes a pointer to struct ++ :c:type:`winesync_event_args`, which is used as follows: ++ ++ .. list-table:: ++ ++ * - ``event`` ++ - Event object. ++ * - ``signaled`` ++ - On output, contains the current state of the event. ++ * - ``manual`` ++ - On output, contains 1 if the event is a manual-reset event, ++ and 0 otherwise. ++ + .. c:macro:: WINESYNC_IOC_KILL_OWNER + + Mark any mutexes owned by the given owner as unowned and +@@ -272,7 +369,8 @@ The ioctls are as follows: + considered to be signaled if it is unowned or if its owner matches + the ``owner`` argument, and is acquired by incrementing its + recursion count by one and setting its owner to the ``owner`` +- argument. ++ argument. An auto-reset event is acquired by designaling it; a ++ manual-reset event is not affected by acquisition. + + Acquisition is atomic and totally ordered with respect to other + operations on the same object. If two wait operations (with +-- +2.36.0 + +From 80f5b4dfd947592ff89cb54a07ce9d1087c608d0 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 13 Apr 2022 20:02:39 -0500 +Subject: [PATCH 31/34] winesync: Introduce alertable waits. + +--- + drivers/misc/winesync.c | 68 ++++++++++++++++++++++++++++++----- + include/uapi/linux/winesync.h | 2 +- + 2 files changed, 60 insertions(+), 10 deletions(-) + +diff --git a/drivers/misc/winesync.c b/drivers/misc/winesync.c +index 4fbf231a7909..7a28f58dbbf2 100644 +--- a/drivers/misc/winesync.c ++++ b/drivers/misc/winesync.c +@@ -841,10 +841,11 @@ static int setup_wait(struct winesync_device *dev, + const __u32 count = args->count; + struct winesync_q *q; + ktime_t timeout = 0; ++ __u32 total_count; + __u32 *ids; + __u32 i, j; + +- if (!args->owner || args->pad) ++ if (!args->owner) + return -EINVAL; + + if (args->timeout) { +@@ -858,7 +859,11 @@ static int setup_wait(struct winesync_device *dev, + timeout = timespec64_to_ns(&to); + } + +- ids = kmalloc_array(count, sizeof(*ids), GFP_KERNEL); ++ total_count = count; ++ if (args->alert) ++ total_count++; ++ ++ ids = kmalloc_array(total_count, sizeof(*ids), GFP_KERNEL); + if (!ids) + return -ENOMEM; + if (copy_from_user(ids, u64_to_user_ptr(args->objs), +@@ -866,8 +871,10 @@ static int setup_wait(struct winesync_device *dev, + kfree(ids); + return -EFAULT; + } ++ if (args->alert) ++ ids[count] = args->alert; + +- q = kmalloc(struct_size(q, entries, count), GFP_KERNEL); ++ q = kmalloc(struct_size(q, entries, total_count), GFP_KERNEL); + if (!q) { + kfree(ids); + return -ENOMEM; +@@ -879,7 +886,7 @@ static int setup_wait(struct winesync_device *dev, + q->ownerdead = false; + q->count = count; + +- for (i = 0; i < count; i++) { ++ for (i = 0; i < total_count; i++) { + struct winesync_q_entry *entry = &q->entries[i]; + struct winesync_obj *obj = get_obj(dev, ids[i]); + +@@ -934,9 +941,9 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + { + struct winesync_wait_args args; + struct winesync_q *q; ++ __u32 i, total_count; + ktime_t timeout; + int signaled; +- __u32 i; + int ret; + + if (copy_from_user(&args, argp, sizeof(args))) +@@ -946,9 +953,13 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + if (ret < 0) + return ret; + ++ total_count = args.count; ++ if (args.alert) ++ total_count++; ++ + /* queue ourselves */ + +- for (i = 0; i < args.count; i++) { ++ for (i = 0; i < total_count; i++) { + struct winesync_q_entry *entry = &q->entries[i]; + struct winesync_obj *obj = entry->obj; + +@@ -957,9 +968,15 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + spin_unlock(&obj->lock); + } + +- /* check if we are already signaled */ ++ /* ++ * Check if we are already signaled. ++ * ++ * Note that the API requires that normal objects are checked before ++ * the alert event. Hence we queue the alert event last, and check ++ * objects in order. ++ */ + +- for (i = 0; i < args.count; i++) { ++ for (i = 0; i < total_count; i++) { + struct winesync_obj *obj = q->entries[i].obj; + + if (atomic_read(&q->signaled) != -1) +@@ -976,7 +993,7 @@ static int winesync_wait_any(struct winesync_device *dev, void __user *argp) + + /* and finally, unqueue */ + +- for (i = 0; i < args.count; i++) { ++ for (i = 0; i < total_count; i++) { + struct winesync_q_entry *entry = &q->entries[i]; + struct winesync_obj *obj = entry->obj; + +@@ -1036,6 +1053,14 @@ static int winesync_wait_all(struct winesync_device *dev, void __user *argp) + */ + list_add_tail(&entry->node, &obj->all_waiters); + } ++ if (args.alert) { ++ struct winesync_q_entry *entry = &q->entries[args.count]; ++ struct winesync_obj *obj = entry->obj; ++ ++ spin_lock(&obj->lock); ++ list_add_tail(&entry->node, &obj->any_waiters); ++ spin_unlock(&obj->lock); ++ } + + /* check if we are already signaled */ + +@@ -1043,6 +1068,21 @@ static int winesync_wait_all(struct winesync_device *dev, void __user *argp) + + spin_unlock(&dev->wait_all_lock); + ++ /* ++ * Check if the alert event is signaled, making sure to do so only ++ * after checking if the other objects are signaled. ++ */ ++ ++ if (args.alert) { ++ struct winesync_obj *obj = q->entries[args.count].obj; ++ ++ if (atomic_read(&q->signaled) == -1) { ++ spin_lock(&obj->lock); ++ try_wake_any_obj(obj); ++ spin_unlock(&obj->lock); ++ } ++ } ++ + /* sleep */ + + ret = winesync_schedule(q, args.timeout ? &timeout : NULL); +@@ -1065,6 +1105,16 @@ static int winesync_wait_all(struct winesync_device *dev, void __user *argp) + + put_obj(obj); + } ++ if (args.alert) { ++ struct winesync_q_entry *entry = &q->entries[args.count]; ++ struct winesync_obj *obj = entry->obj; ++ ++ spin_lock(&obj->lock); ++ list_del(&entry->node); ++ spin_unlock(&obj->lock); ++ ++ put_obj(obj); ++ } + + spin_unlock(&dev->wait_all_lock); + +diff --git a/include/uapi/linux/winesync.h b/include/uapi/linux/winesync.h +index fb3788339ffe..5b4e369f7469 100644 +--- a/include/uapi/linux/winesync.h ++++ b/include/uapi/linux/winesync.h +@@ -34,7 +34,7 @@ struct winesync_wait_args { + __u32 count; + __u32 owner; + __u32 index; +- __u32 pad; ++ __u32 alert; + }; + + #define WINESYNC_IOC_BASE 0xf7 +-- +2.37.3 + +From 127efad71a0702a68890097b114b3467c234259f Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 20 Apr 2022 18:08:37 -0500 +Subject: [PATCH 32/34] selftests: winesync: Add tests for alertable waits. + +--- + .../selftests/drivers/winesync/winesync.c | 191 +++++++++++++++++- + 1 file changed, 188 insertions(+), 3 deletions(-) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index f2e18836c733..a87e3c48709b 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -110,7 +110,7 @@ static int read_event_state(int fd, __u32 event, __u32 *signaled, __u32 *manual) + }) + + static int wait_objs(int fd, unsigned long request, __u32 count, +- const __u32 *objs, __u32 owner, __u32 *index) ++ const __u32 *objs, __u32 owner, __u32 alert, __u32 *index) + { + struct winesync_wait_args args = {0}; + struct timespec timeout; +@@ -123,6 +123,7 @@ static int wait_objs(int fd, unsigned long request, __u32 count, + args.objs = (uintptr_t)objs; + args.owner = owner; + args.index = 0xdeadbeef; ++ args.alert = alert; + ret = ioctl(fd, request, &args); + *index = args.index; + return ret; +@@ -131,13 +132,29 @@ static int wait_objs(int fd, unsigned long request, __u32 count, + static int wait_any(int fd, __u32 count, const __u32 *objs, + __u32 owner, __u32 *index) + { +- return wait_objs(fd, WINESYNC_IOC_WAIT_ANY, count, objs, owner, index); ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ANY, ++ count, objs, owner, 0, index); + } + + static int wait_all(int fd, __u32 count, const __u32 *objs, + __u32 owner, __u32 *index) + { +- return wait_objs(fd, WINESYNC_IOC_WAIT_ALL, count, objs, owner, index); ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ALL, ++ count, objs, owner, 0, index); ++} ++ ++static int wait_any_alert(int fd, __u32 count, const __u32 *objs, ++ __u32 owner, __u32 alert, __u32 *index) ++{ ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ANY, ++ count, objs, owner, alert, index); ++} ++ ++static int wait_all_alert(int fd, __u32 count, const __u32 *objs, ++ __u32 owner, __u32 alert, __u32 *index) ++{ ++ return wait_objs(fd, WINESYNC_IOC_WAIT_ALL, ++ count, objs, owner, alert, index); + } + + TEST(semaphore_state) +@@ -1225,4 +1242,172 @@ TEST(wake_all) + close(fd); + } + ++TEST(alert_any) ++{ ++ struct winesync_event_args event_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ __u32 objs[2], index; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 0; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ objs[0] = sem_args.sem; ++ ++ sem_args.count = 1; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ objs[1] = sem_args.sem; ++ ++ event_args.manual = true; ++ event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_any_alert(fd, 0, NULL, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_any_alert(fd, 0, NULL, 123, event_args.event, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_any_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(1, index); ++ ++ ret = wait_any_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ /* test with an auto-reset event */ ++ ++ event_args.manual = false; ++ event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ sem_args.sem = objs[0]; ++ sem_args.count = 1; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_any_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ ret = wait_any_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, index); ++ ++ ret = wait_any_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &objs[0]); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &objs[1]); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ ++TEST(alert_all) ++{ ++ struct winesync_event_args event_args = {0}; ++ struct winesync_sem_args sem_args = {0}; ++ __u32 objs[2], index; ++ int fd, ret; ++ ++ fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); ++ ASSERT_LE(0, fd); ++ ++ sem_args.count = 2; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ objs[0] = sem_args.sem; ++ ++ sem_args.count = 1; ++ sem_args.max = 2; ++ sem_args.sem = 0xdeadbeef; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ EXPECT_NE(0xdeadbeef, sem_args.sem); ++ objs[1] = sem_args.sem; ++ ++ event_args.manual = true; ++ event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_all_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ ret = wait_all_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, index); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ /* test with an auto-reset event */ ++ ++ event_args.manual = false; ++ event_args.signaled = true; ++ ret = ioctl(fd, WINESYNC_IOC_CREATE_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ sem_args.sem = objs[1]; ++ sem_args.count = 2; ++ ret = ioctl(fd, WINESYNC_IOC_PUT_SEM, &sem_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_all_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, index); ++ ++ ret = wait_all_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(2, index); ++ ++ ret = wait_all_alert(fd, 2, objs, 123, event_args.event, &index); ++ EXPECT_EQ(-1, ret); ++ EXPECT_EQ(ETIMEDOUT, errno); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); ++ EXPECT_EQ(0, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &objs[0]); ++ EXPECT_EQ(0, ret); ++ ret = ioctl(fd, WINESYNC_IOC_DELETE, &objs[1]); ++ EXPECT_EQ(0, ret); ++ ++ close(fd); ++} ++ + TEST_HARNESS_MAIN +-- +2.36.0 + +From e5ec8276fae40b6a2cdab3cb728160705c0f40ab Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 20 Apr 2022 18:24:43 -0500 +Subject: [PATCH 33/34] serftests: winesync: Add some tests for wakeup + signaling via alerts. + +--- + .../selftests/drivers/winesync/winesync.c | 66 +++++++++++++++++++ + 1 file changed, 66 insertions(+) + +diff --git a/tools/testing/selftests/drivers/winesync/winesync.c b/tools/testing/selftests/drivers/winesync/winesync.c +index a87e3c48709b..169e922484b0 100644 +--- a/tools/testing/selftests/drivers/winesync/winesync.c ++++ b/tools/testing/selftests/drivers/winesync/winesync.c +@@ -1245,8 +1245,12 @@ TEST(wake_all) + TEST(alert_any) + { + struct winesync_event_args event_args = {0}; ++ struct winesync_wait_args wait_args = {0}; + struct winesync_sem_args sem_args = {0}; ++ struct wait_args thread_args; ++ struct timespec timeout; + __u32 objs[2], index; ++ pthread_t thread; + int fd, ret; + + fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); +@@ -1295,6 +1299,35 @@ TEST(alert_any) + EXPECT_EQ(0, ret); + EXPECT_EQ(2, index); + ++ /* test wakeup via alert */ ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ wait_args.timeout = (uintptr_t)&timeout; ++ wait_args.objs = (uintptr_t)objs; ++ wait_args.count = 2; ++ wait_args.owner = 123; ++ wait_args.index = 0xdeadbeef; ++ wait_args.alert = event_args.event; ++ thread_args.fd = fd; ++ thread_args.args = &wait_args; ++ thread_args.request = WINESYNC_IOC_WAIT_ANY; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(2, wait_args.index); ++ + ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); + EXPECT_EQ(0, ret); + +@@ -1336,8 +1369,12 @@ TEST(alert_any) + TEST(alert_all) + { + struct winesync_event_args event_args = {0}; ++ struct winesync_wait_args wait_args = {0}; + struct winesync_sem_args sem_args = {0}; ++ struct wait_args thread_args; ++ struct timespec timeout; + __u32 objs[2], index; ++ pthread_t thread; + int fd, ret; + + fd = open("/dev/winesync", O_CLOEXEC | O_RDONLY); +@@ -1372,6 +1409,35 @@ TEST(alert_all) + EXPECT_EQ(0, ret); + EXPECT_EQ(2, index); + ++ /* test wakeup via alert */ ++ ++ ret = ioctl(fd, WINESYNC_IOC_RESET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ get_abs_timeout(&timeout, CLOCK_MONOTONIC, 1000); ++ wait_args.timeout = (uintptr_t)&timeout; ++ wait_args.objs = (uintptr_t)objs; ++ wait_args.count = 2; ++ wait_args.owner = 123; ++ wait_args.index = 0xdeadbeef; ++ wait_args.alert = event_args.event; ++ thread_args.fd = fd; ++ thread_args.args = &wait_args; ++ thread_args.request = WINESYNC_IOC_WAIT_ALL; ++ ret = pthread_create(&thread, NULL, wait_thread, &thread_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(ETIMEDOUT, ret); ++ ++ ret = ioctl(fd, WINESYNC_IOC_SET_EVENT, &event_args); ++ EXPECT_EQ(0, ret); ++ ++ ret = wait_for_thread(thread, 100); ++ EXPECT_EQ(0, ret); ++ EXPECT_EQ(0, thread_args.ret); ++ EXPECT_EQ(2, wait_args.index); ++ + ret = ioctl(fd, WINESYNC_IOC_DELETE, &event_args.event); + EXPECT_EQ(0, ret); + +-- +2.36.0 + +From 50ed00eef095c7799949b2523a5c21210b374f86 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 20 Apr 2022 18:58:17 -0500 +Subject: [PATCH 34/34] docs: winesync: Document alertable waits. + +--- + Documentation/userspace-api/winesync.rst | 40 ++++++++++++++++++------ + 1 file changed, 31 insertions(+), 9 deletions(-) + +diff --git a/Documentation/userspace-api/winesync.rst b/Documentation/userspace-api/winesync.rst +index ffa2f8fbc7e3..f0110d2744c7 100644 +--- a/Documentation/userspace-api/winesync.rst ++++ b/Documentation/userspace-api/winesync.rst +@@ -354,9 +354,13 @@ The ioctls are as follows: + ``EINVAL``. + * - ``index`` + - On success, contains the index (into ``objs``) of the object +- which was signaled. +- * - ``pad`` +- - This field is not used and must be set to zero. ++ which was signaled. If ``alert`` was signaled instead, ++ this contains ``count``. ++ * - ``alert`` ++ - Optional event object identifier. If nonzero, this specifies ++ an "alert" event object which, if signaled, will terminate ++ the wait. If nonzero, the identifier must point to a valid ++ event. + + This function attempts to acquire one of the given objects. If + unable to do so, it sleeps until an object becomes signaled, +@@ -385,9 +389,19 @@ The ioctls are as follows: + the given owner (with a recursion count of 1) and as no longer + inconsistent, and ``index`` is still set to the index of the mutex. + +- It is valid to pass the same object more than once. If a wakeup +- occurs due to that object being signaled, ``index`` is set to the +- lowest index corresponding to that object. ++ The ``alert`` argument is an "extra" event which can terminate the ++ wait, independently of all other objects. If members of ``objs`` and ++ ``alert`` are both simultaneously signaled, a member of ``objs`` ++ will always be given priority and acquired first. Aside from this, ++ for "any" waits, there is no difference between passing an event as ++ this parameter, and passing it as an additional object at the end of ++ the ``objs`` array. For "all" waits, there is an additional ++ difference, as described below. ++ ++ It is valid to pass the same object more than once, including by ++ passing the same event in the ``objs`` array and in ``alert``. If a ++ wakeup occurs due to that object being signaled, ``index`` is set to ++ the lowest index corresponding to that object. + + The function may fail with ``EINTR`` if a signal is received. + +@@ -396,7 +410,7 @@ The ioctls are as follows: + Poll on a list of objects, atomically acquiring all of them. Takes a + pointer to struct :c:type:`winesync_wait_args`, which is used + identically to ``WINESYNC_IOC_WAIT_ANY``, except that ``index`` is +- always filled with zero on success. ++ always filled with zero on success if not woken via alert. + + This function attempts to simultaneously acquire all of the given + objects. If unable to do so, it sleeps until all objects become +@@ -417,6 +431,14 @@ The ioctls are as follows: + objects are specified, there is no way to know which were marked as + inconsistent. + ++ As with "any" waits, the ``alert`` argument is an "extra" event ++ which can terminate the wait. Critically, however, an "all" wait ++ will succeed if all members in ``objs`` are signaled, *or* if ++ ``alert`` is signaled. In the latter case ``index`` will be set to ++ ``count``. As with "any" waits, if both conditions are filled, the ++ former takes priority, and objects in ``objs`` will be acquired. ++ + Unlike ``WINESYNC_IOC_WAIT_ANY``, it is not valid to pass the same +- object more than once. If this is attempted, the function fails with +- ``EINVAL``. ++ object more than once, nor is it valid to pass the same object in ++ ``objs`` and in ``alert`` If this is attempted, the function fails ++ with ``EINVAL``. +-- +2.36.0 + diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec index e022424..64821ef 100644 --- a/SPECS/kernel.spec +++ b/SPECS/kernel.spec @@ -160,18 +160,18 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 %define buildid .fsync -%define specrpmversion 6.5.12 -%define specversion 6.5.12 -%define patchversion 6.5 -%define pkgrelease 300 +%define specrpmversion 6.6.2 +%define specversion 6.6.2 +%define patchversion 6.6 +%define pkgrelease 201 %define kversion 6 -%define tarfile_release 6.5.12 +%define tarfile_release 6.6.2 # This is needed to do merge window version magic -%define patchlevel 5 +%define patchlevel 6 # This allows pkg_release to have configurable %%{?dist} tag -%define specrelease 301%{?buildid}%{?dist} +%define specrelease 202%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 6.5.12 +%define kabiversion 6.6.2 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -187,25 +187,30 @@ Summary: The Linux kernel # should not be exported to RPM provides %global __provides_exclude_from ^%{_libexecdir}/kselftests -# The following build options are enabled by default, but may become disabled -# by later architecture-specific checks. These can also be disabled by using -# --without in the rpmbuild command, or by forcing these values to 0. +# The following build options are (mostly) enabled by default, but may become +# enabled/disabled by later architecture-specific checks. +# Where disabled by default, they can be enabled by using --with in the +# rpmbuild command, or by forcing these values to 1. +# Where enabled by default, they can be disabled by using --without in +# the rpmbuild command, or by forcing these values to 0. # # standard kernel %define with_up %{?_without_up: 0} %{?!_without_up: 1} +# build the base variants +%define with_base %{?_without_base: 0} %{?!_without_base: 1} # build also debug variants %define with_debug %{?_without_debug: 0} %{?!_without_debug: 1} # kernel-zfcpdump (s390 specific kernel for zfcpdump) %define with_zfcpdump %{?_without_zfcpdump: 0} %{?!_without_zfcpdump: 1} # kernel-16k (aarch64 kernel with 16K page_size) -%define with_arm64_16k %{?_without_arm64_16k: 0} %{?!_without_arm64_16k: 1} +%define with_arm64_16k %{?_with_arm64_16k: 1} %{?!_with_arm64_16k: 0} # kernel-64k (aarch64 kernel with 64K page_size) %define with_arm64_64k %{?_without_arm64_64k: 0} %{?!_without_arm64_64k: 1} # kernel-rt (x86_64 and aarch64 only PREEMPT_RT enabled kernel) %define with_realtime %{?_with_realtime: 1} %{?!_with_realtime: 0} # Supported variants -# (base) with_debug with_gcov +# with_base with_debug with_gcov # up X X X # zfcpdump X X # arm64_16k X X X @@ -298,16 +303,11 @@ Summary: The Linux kernel %define with_perf 0 %define with_tools 0 %define with_bpftool 0 -# selftests turns on bpftool -%define with_selftests 0 # No realtime fedora variants %define with_realtime 0 %define with_arm64_64k 0 %endif -# No arm64-16k flavor for now -%define with_arm64_16k 0 - %if %{with_verbose} %define make_opts V=1 %else @@ -399,6 +399,7 @@ Summary: The Linux kernel # if requested, only build debug kernel %if %{with_dbgonly} +%define with_base 0 %define with_vdso_install 0 %define with_perf 0 %define with_tools 0 @@ -445,9 +446,9 @@ Summary: The Linux kernel %define use_vdso 1 %endif -# selftests require bpftool to be built -%if %{with_selftests} -%define with_bpftool 1 +# selftests require bpftool to be built. If bpftools is disabled, then disable selftests +%if %{with_bpftool} == 0 +%define with_selftests 0 %endif %ifnarch noarch @@ -469,6 +470,8 @@ Summary: The Linux kernel %endif %endif +%define all_configs %{name}-%{specrpmversion}-*.config + # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 @@ -480,7 +483,6 @@ Summary: The Linux kernel %define with_bpftool 0 %define with_selftests 0 %define with_debug 0 -%define all_arch_configs %{name}-%{specrpmversion}-*.config %endif # sparse blows up on ppc @@ -509,13 +511,11 @@ Summary: The Linux kernel %ifarch i686 %define asmarch x86 %define hdrarch i386 -%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 -%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config %define kernel_image arch/x86/boot/bzImage %endif @@ -526,19 +526,16 @@ Summary: The Linux kernel %define kernel_image vmlinux %define kernel_image_elf 1 %define use_vdso 0 -%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 -%define all_arch_configs %{name}-%{specrpmversion}-s390x.config %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/vmlinux %endif %ifarch aarch64 -%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config %define asmarch arm64 %define hdrarch arm64 %define make_target vmlinuz.efi @@ -606,22 +603,22 @@ Summary: The Linux kernel %endif # short-hand for "are we building base/non-debug variants of ...?" -%if %{with_up} && !%{with_dbgonly} +%if %{with_up} && %{with_base} %define with_up_base 1 %else %define with_up_base 0 %endif -%if %{with_realtime} && !%{with_dbgonly} +%if %{with_realtime} && %{with_base} %define with_realtime_base 1 %else %define with_realtime_base 0 %endif -%if %{with_arm64_16k} && !%{with_dbgonly} +%if %{with_arm64_16k} && %{with_base} %define with_arm64_16k_base 1 %else %define with_arm64_16k_base 0 %endif -%if %{with_arm64_64k} && !%{with_dbgonly} +%if %{with_arm64_64k} && %{with_base} %define with_arm64_64k_base 1 %else %define with_arm64_64k_base 0 @@ -636,7 +633,7 @@ Summary: The Linux kernel Name: %{package_name} -License: GPLv2 and Redistributable, no modification permitted +License: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-2-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-Clear AND GFDL-1.1-no-invariants-or-later AND GPL-1.0-or-later AND (GPL-1.0-or-later OR BSD-3-Clause) AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only OR Apache-2.0) AND (GPL-2.0-only OR BSD-2-Clause) AND (GPL-2.0-only OR BSD-3-Clause) AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR GFDL-1.1-no-invariants-or-later) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-only) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR BSD-2-Clause) AND (GPL-2.0-or-later OR BSD-3-Clause) AND (GPL-2.0-or-later OR CC-BY-4.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND ISC AND LGPL-2.0-or-later AND (LGPL-2.0-or-later OR BSD-2-Clause) AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND LGPL-2.1-only AND (LGPL-2.1-only OR BSD-2-Clause) AND (LGPL-2.1-only WITH Linux-syscall-note) AND LGPL-2.1-or-later AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND (Linux-OpenIB OR GPL-2.0-only) AND (Linux-OpenIB OR GPL-2.0-only OR BSD-2-Clause) AND Linux-man-pages-copyleft AND MIT AND (MIT OR Apache-2.0) AND (MIT OR GPL-2.0-only) AND (MIT OR GPL-2.0-or-later) AND (MIT OR LGPL-2.1-only) AND (MPL-1.1 OR GPL-2.0-only) AND (X11 OR GPL-2.0-only) AND (X11 OR GPL-2.0-or-later) AND Zlib AND (copyleft-next-0.3.1 OR GPL-2.0-or-later) URL: https://www.kernel.org/ Version: %{specrpmversion} Release: %{pkg_release} @@ -665,7 +662,6 @@ BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex, gcc-c++ BuildRequires: net-tools, hostname, bc, elfutils-devel BuildRequires: dwarves BuildRequires: python3-devel -BuildRequires: gcc-plugin-devel BuildRequires: kernel-rpm-macros # glibc-static is required for a consistent build environment (specifically # CONFIG_CC_CAN_LINK_STATIC=y). @@ -789,7 +785,7 @@ BuildRequires: binutils BuildRequires: lvm2 BuildRequires: systemd-boot-unsigned # For systemd-stub and systemd-pcrphase -BuildRequires: systemd-udev +BuildRequires: systemd-udev >= 252-1 # For TPM operations in UKI initramfs BuildRequires: tpm2-tools %endif @@ -912,7 +908,14 @@ Source65: filter-s390x.sh.fedora Source66: filter-modules.sh.fedora %endif -Source75: partial-kgcov-snip.config +Source70: partial-kgcov-snip.config +Source71: partial-kgcov-debug-snip.config +Source72: partial-clang-snip.config +Source73: partial-clang-debug-snip.config +Source74: partial-clang_lto-x86_64-snip.config +Source75: partial-clang_lto-x86_64-debug-snip.config +Source76: partial-clang_lto-aarch64-snip.config +Source77: partial-clang_lto-aarch64-debug-snip.config Source80: generate_all_configs.sh Source81: process_configs.sh @@ -940,8 +943,8 @@ Source211: Module.kabi_dup_ppc64le Source212: Module.kabi_dup_s390x Source213: Module.kabi_dup_x86_64 -Source300: kernel-abi-stablelists-%{kabiversion}.tar.bz2 -Source301: kernel-kabi-dw-%{kabiversion}.tar.bz2 +Source300: kernel-abi-stablelists-%{kabiversion}.tar.xz +Source301: kernel-kabi-dw-%{kabiversion}.tar.xz # RT specific virt module Source400: mod-kvm.list @@ -982,6 +985,7 @@ Patch202: fsync.patch Patch203: OpenRGB.patch Patch206: amdgpu-si-cik-default.patch Patch207: acso.patch +Patch208: winesync.patch # device specific patches Patch300: linux-surface.patch @@ -989,11 +993,10 @@ Patch301: steam-deck.patch Patch302: asus-linux.patch Patch303: lenovo-legion-laptop.patch Patch306: rog-ally-side-keys-fix.patch -Patch307: chimera-ALSA.patch Patch308: rog-ally-alsa.patch -# hdr: https://github.com/ChimeraOS/linux-chimeraos -Patch407: 0001-HDR.patch +# hdr: https://github.com/CachyOS/kernel-patches +Patch407: 0001-amd-hdr.patch # temporary patches Patch401: 0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.patch @@ -1002,6 +1005,10 @@ Patch408: 0001-acpi-proc-idle-skip-dummy-wait.patch # async flipping on PRIME systems can introduce problems Patch409: 0001-drm-i915-quirks-disable-async-flipping-on-specific-d.patch Patch410: 0002-drm-i915-add-kernel-parameter-to-disable-async-page-.patch +# Fixes the steam deck not coming back from hibernation +Patch411: 0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch +# Allows corectl to work out of the box +Patch412: 0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch # Allow to set custom USB pollrate for specific devices like so: # usbcore.interrupt_interval_override=045e:00db:16,1bcf:0005:1 @@ -1108,7 +1115,6 @@ Epoch: %{gemini} %endif Summary: Performance monitoring for the Linux kernel Requires: bzip2 -License: GPLv2 %description -n perf This package contains the perf tool, which enables performance monitoring of the Linux kernel. @@ -1158,7 +1164,6 @@ This package provides debug information for the perf python bindings. %if %{with_tools} %package -n %{package_name}-tools Summary: Assortment of tools for the Linux kernel -License: GPLv2 %ifarch %{cpupowerarchs} Provides: cpupowerutils = 1:009-0.6.p1 Obsoletes: cpupowerutils < 1:009-0.6.p1 @@ -1176,14 +1181,12 @@ and the supporting documentation. %package -n %{package_name}-tools-libs Summary: Libraries for the kernels-tools -License: GPLv2 %description -n %{package_name}-tools-libs This package contains the libraries built from the tools/ directory from the kernel source. %package -n %{package_name}-tools-libs-devel Summary: Assortment of tools for the Linux kernel -License: GPLv2 Requires: %{package_name}-tools = %{version}-%{release} %ifarch %{cpupowerarchs} Provides: cpupowerutils-devel = 1:009-0.6.p1 @@ -1222,7 +1225,6 @@ and root causes of unexpected results. %package -n rv Summary: RV: Runtime Verification -License: GPLv2 %description -n rv Runtime Verification (RV) is a lightweight (yet rigorous) method that complements classical exhaustive verification techniques (such as model @@ -1240,7 +1242,6 @@ analysing the logical and timing behavior of Linux. %package -n bpftool Summary: Inspection and simple manipulation of eBPF programs and maps -License: GPLv2 Version: %{bpftoolversion} %description -n bpftool This package contains the bpftool, which allows inspection and simple @@ -1268,7 +1269,6 @@ This package provides debug information for the bpftool package. %package selftests-internal Summary: Kernel samples and selftests -License: GPLv2 Requires: binutils, bpftool, iproute-tc, nmap-ncat, python3, fuse-libs %description selftests-internal Kernel sample programs and selftests. @@ -1551,7 +1551,7 @@ Provides: installonlypkg(kernel)\ Provides: kernel-%{?1:%{1}-}uname-r = %{KVERREL}%{uname_suffix %{?1:+%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:+%{1}}}\ Requires(pre): %{kernel_prereq}\ -Requires(pre): systemd\ +Requires(pre): systemd >= 254-1\ %endif\ %endif\ %if %{with_gcov}\ @@ -1773,27 +1773,30 @@ ApplyOptionalPatch fsync.patch ApplyOptionalPatch OpenRGB.patch ApplyOptionalPatch amdgpu-si-cik-default.patch ApplyOptionalPatch acso.patch +ApplyOptionalPatch winesync.patch # device specific patches -# issues with suspension? https://github.com/linux-surface/linux-surface/pull/1255 ApplyOptionalPatch linux-surface.patch ApplyOptionalPatch steam-deck.patch ApplyOptionalPatch asus-linux.patch ApplyOptionalPatch lenovo-legion-laptop.patch ApplyOptionalPatch rog-ally-side-keys-fix.patch -ApplyOptionalPatch chimera-ALSA.patch ApplyOptionalPatch rog-ally-alsa.patch -# hdr: https://github.com/ChimeraOS/linux-chimeraos -ApplyOptionalPatch 0001-HDR.patch +# hdr: https://github.com/CachyOS/kernel-patches +ApplyOptionalPatch 0001-amd-hdr.patch -# temporary patches +# temporary patche ApplyOptionalPatch 0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.patch ApplyOptionalPatch mt76:-mt7921:-Disable-powersave-features-by-default.patch ApplyOptionalPatch 0001-acpi-proc-idle-skip-dummy-wait.patch # async flipping on PRIME systems can introduce problems ApplyOptionalPatch 0001-drm-i915-quirks-disable-async-flipping-on-specific-d.patch ApplyOptionalPatch 0002-drm-i915-add-kernel-parameter-to-disable-async-page-.patch +# Fixes the steam deck not coming back from hibernation +ApplyOptionalPatch 0001-Revert-nvme-pci-drop-redundant-pci_enable_pcie_error.patch +# Allows corectl to work out of the box +ApplyOptionalPatch 0001-Set-amdgpu.ppfeaturemask-0xffffffff-as-default.patch # Allow to set custom USB pollrate for specific devices like so: # usbcore.interrupt_interval_override=045e:00db:16,1bcf:0005:1 @@ -1852,30 +1855,56 @@ cp $RPM_SOURCE_DIR/%{name}-*.config . cp %{SOURCE80} . # merge.py cp %{SOURCE3000} . -# kernel-local -cp %{SOURCE3001} . +# kernel-local - rename and copy for partial snippet config process +cp %{SOURCE3001} partial-kernel-local-snip.config +cp %{SOURCE3001} partial-kernel-local-debug-snip.config FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} SPECVERSION=%{specversion} SPECRPMVERSION=%{specrpmversion} ./generate_all_configs.sh %{debugbuildsenabled} -# Merge in any user-provided local config option changes -%ifnarch %nobuildarches -for i in %{all_arch_configs} -do - mv $i $i.tmp - ./merge.py %{SOURCE3001} $i.tmp > $i +# Collect custom defined config options +PARTIAL_CONFIGS="" %if %{with_gcov} - echo "Merging with gcov options" - cat %{SOURCE75} - mv $i $i.tmp - ./merge.py %{SOURCE75} $i.tmp > $i +PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE70} %{SOURCE71}" %endif - rm $i.tmp -done +%if %{with toolchain_clang} +PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE72} %{SOURCE73}" %endif - %if %{with clang_lto} -for i in *aarch64*.config *x86_64*.config; do - sed -i 's/# CONFIG_LTO_CLANG_THIN is not set/CONFIG_LTO_CLANG_THIN=y/' $i - sed -i 's/CONFIG_LTO_NONE=y/# CONFIG_LTO_NONE is not set/' $i +PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE74} %{SOURCE75} %{SOURCE76} %{SOURCE77}" +%endif +PARTIAL_CONFIGS="$PARTIAL_CONFIGS partial-kernel-local-snip.config partial-kernel-local-debug-snip.config" + +GetArch() +{ + case "$1" in + *aarch64*) echo "aarch64" ;; + *ppc64le*) echo "ppc64le" ;; + *s390x*) echo "s390x" ;; + *x86_64*) echo "x86_64" ;; + # no arch, apply everywhere + *) echo "" ;; + esac +} + +# Merge in any user-provided local config option changes +%ifnarch %nobuildarches +for i in %{all_configs} +do + kern_arch="$(GetArch $i)" + kern_debug="$(echo $i | grep -q debug && echo "debug" || echo "")" + + for j in $PARTIAL_CONFIGS + do + part_arch="$(GetArch $j)" + part_debug="$(echo $j | grep -q debug && echo "debug" || echo "")" + + # empty arch means apply to all arches + if [ "$part_arch" == "" -o "$part_arch" == "$kern_arch" ] && [ "$part_debug" == "$kern_debug" ] + then + mv $i $i.tmp + ./merge.py $j $i.tmp > $i + fi + done + rm -f $i.tmp done %endif @@ -2227,10 +2256,10 @@ BuildKernel() { # Don't build kabi base for debug kernels if [ "$Variant" != "zfcpdump" -a "$Variant" != "debug" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf - tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf + tar -xvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/stablelists - tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists + tar -xvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists echo "**** GENERATING DWARF-based kABI baseline dataset ****" chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh @@ -2246,10 +2275,10 @@ BuildKernel() { %if %{with_kabidwchk} if [ "$Variant" != "zfcpdump" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf - tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf + tar -xvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Variant:+.${Variant}}" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/stablelists - tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists + tar -xvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists echo "**** GENERATING DWARF-based kABI dataset ****" chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh @@ -2801,12 +2830,14 @@ if [ -f $DevelDir/vmlinux.h ]; then RPM_VMLINUX_H=$DevelDir/vmlinux.h fi +%if %{with_bpftool} %global bpftool_make \ %{__make} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" DESTDIR=$RPM_BUILD_ROOT %{?make_opts} VMLINUX_H="${RPM_VMLINUX_H}" V=1 -%if %{with_bpftool} pushd tools/bpf/bpftool %{bpftool_make} popd +%else +echo "bpftools disabled ... disabling selftests" %endif %if %{with_selftests} @@ -2874,33 +2905,16 @@ find Documentation -type d | xargs chmod u+w # # Don't sign modules for the zfcpdump variant as it is monolithic. -# TODO - this needs to be fixed in same way as we have it in c9s %define __modsign_install_post \ if [ "%{signmodules}" -eq "1" ]; then \ - if [ "%{with_up_base}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign certs/signing_key.x509.sign $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/ \ - fi \ - if [ "%{with_up}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \ - fi \ - if [ "%{with_realtime_base}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+rt certs/signing_key.x509.sign+rt $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt/ \ - fi \ - if [ "%{with_realtime}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+rt-debug certs/signing_key.x509.sign+rt-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt-debug/ \ - fi \ - if [ "%{with_arm64_16k_base}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+16k certs/signing_key.x509.sign+16k $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+16k/ \ - fi \ - if [ "%{with_arm64_16k}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+16k-debug certs/signing_key.x509.sign+16k-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+16k-debug/ \ - fi \ - if [ "%{with_arm64_64k_base}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+64k certs/signing_key.x509.sign+64k $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+64k/ \ - fi \ - if [ "%{with_arm64_64k}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ - %{modsign_cmd} certs/signing_key.pem.sign+64k-debug certs/signing_key.x509.sign+64k-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+64k-debug/ \ - fi \ + echo "Signing kernel modules ..." \ + modules_dirs="$(shopt -s nullglob; echo $RPM_BUILD_ROOT/lib/modules/%{KVERREL}*)" \ + for modules_dir in $modules_dirs; do \ + variant_suffix="${modules_dir#$RPM_BUILD_ROOT/lib/modules/%{KVERREL}}" \ + [ "$variant_suffix" == "+zfcpdump" ] && continue \ + echo "Signing modules for %{KVERREL}${variant_suffix}" \ + %{modsign_cmd} certs/signing_key.pem.sign${variant_suffix} certs/signing_key.x509.sign${variant_suffix} $modules_dir/ \ + done \ fi \ if [ "%{zipmodules}" -eq "1" ]; then \ echo "Compressing kernel modules ..." \ @@ -3009,7 +3023,7 @@ INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/ mkdir -p $INSTALL_KABI_PATH # install kabi releases directories -tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH +tar -xvf %{SOURCE300} -C $INSTALL_KABI_PATH # with_kernel_abi_stablelists %endif @@ -3548,7 +3562,7 @@ fi\ %ifarch %{cpupowerarchs} %files -n %{package_name}-tools-libs -%{_libdir}/libcpupower.so.0 +%{_libdir}/libcpupower.so.1 %{_libdir}/libcpupower.so.0.0.1 %files -n %{package_name}-tools-libs-devel @@ -3779,213 +3793,339 @@ fi\ # # %changelog -* Mon Nov 27 2023 Jan Drögehoff - 6.5.12-301.fsync -- kernel-fsync v6.5.12 - -* Mon Nov 20 2023 Augusto Caringi [6.5.12-0] +* Mon Nov 27 2023 Jan Drögehoff - 6.6.2-202.fsync +- kernel-fsync v6.6.2 + +* Wed Nov 22 2023 Justin M. Forbes [6.6.2-201] +- Turn on USB_DWC3 for Fedora (rhbz 2250955) (Justin M. Forbes) +- Revert "netfilter: nf_tables: remove catchall element in GC sync path" (Justin M. Forbes) +- More BugsFixed (Justin M. Forbes) +- netfilter: nf_tables: remove catchall element in GC sync path (Pablo Neira Ayuso) +- frop the build number back to 200 for fedora-srpm.sh (Justin M. Forbes) +- ACPI: video: Use acpi_device_fix_up_power_children() (Hans de Goede) +- ACPI: PM: Add acpi_device_fix_up_power_children() function (Hans de Goede) + +* Mon Nov 20 2023 Justin M. Forbes [6.6.2-0] - Add bug for AMD ACPI alarm (Justin M. Forbes) - rtc: cmos: Use ACPI alarm for non-Intel x86 systems too (Mario Limonciello) -- Linux v6.5.12 - -* Wed Nov 08 2023 Augusto Caringi [6.5.11-0] -- Linux v6.5.11 - -* Thu Nov 02 2023 Justin M. Forbes [6.5.10-0] -- Linux v6.5.10 +- Add bluetooth fixes to BugsFixed (Justin M. Forbes) +- Drop F37 from release targets as it will not rebase to 6.6 (Justin M. Forbes) +- Linux v6.6.2 -* Wed Oct 25 2023 Augusto Caringi [6.5.9-0] +* Wed Nov 08 2023 Justin M. Forbes [6.6.1-0] +- drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set (Javier Martinez Canillas) +- Added required files for rebase (Augusto Caringi) +- Reset RHEL_RELEASE for rebase (Justin M. Forbes) +- [Scheduled job] Catch config mismatches early during upstream merge (Don Zickus) +- redhat/self-test: Update data for KABI xz change (Prarit Bhargava) +- redhat/scripts: Switch KABI tarballs to xz (Prarit Bhargava) +- redhat/kernel.spec.template: Switch KABI compression to xz (Prarit Bhargava) +- redhat: self-test: Use a more complete SRPM file suffix (Andrew Halaney) +- redhat: makefile: remove stray rpmbuild --without (Eric Chanudet) +- Linux v6.6.1 + +* Mon Oct 30 2023 Fedora Kernel Team [6.6.0-61] +- Linux v6.6.0 + +* Sun Oct 29 2023 Fedora Kernel Team [6.6.0-0.rc7.2af9b20dbb39.60] +- Linux v6.6.0-0.rc7.2af9b20dbb39 + +* Sat Oct 28 2023 Fedora Kernel Team [6.6.0-0.rc7.56567a20b22b.59] +- Consolidate configs into common for 6.6 (Justin M. Forbes) +- Linux v6.6.0-0.rc7.56567a20b22b + +* Fri Oct 27 2023 Fedora Kernel Team [6.6.0-0.rc7.750b95887e56.58] +- Linux v6.6.0-0.rc7.750b95887e56 + +* Thu Oct 26 2023 Fedora Kernel Team [6.6.0-0.rc7.611da07b89fd.57] - Updated Fedora configs (Justin M. Forbes) -- Add UFSHCD bug to BugsFixed (Justin M. Forbes) - Turn on UFSHCD for Fedora x86 (Justin M. Forbes) +- Linux v6.6.0-0.rc7.611da07b89fd + +* Wed Oct 25 2023 Fedora Kernel Team [6.6.0-0.rc7.4f82870119a4.56] - redhat: configs: generic: x86: Disable CONFIG_VIDEO_OV01A10 for x86 platform (Hans de Goede) -- Linux v6.5.9 +- Linux v6.6.0-0.rc7.4f82870119a4 + +* Tue Oct 24 2023 Fedora Kernel Team [6.6.0-0.rc7.d88520ad73b7.55] +- redhat: remove pending-rhel CONFIG_XFS_ASSERT_FATAL file (Patrick Talbert) +- New configs in fs/xfs (Fedora Kernel Team) +- crypto: rng - Override drivers/char/random in FIPS mode (Herbert Xu) +- random: Add hook to override device reads and getrandom(2) (Herbert Xu) +- Linux v6.6.0-0.rc7.d88520ad73b7 + +* Mon Oct 23 2023 Fedora Kernel Team [6.6.0-0.rc7.54] +- Linux v6.6.0-0.rc7 + +* Sun Oct 22 2023 Fedora Kernel Team [6.6.0-0.rc6.1acfd2bd3f0d.53] +- Linux v6.6.0-0.rc6.1acfd2bd3f0d + +* Sat Oct 21 2023 Fedora Kernel Team [6.6.0-0.rc6.9c5d00cb7b6b.52] +- Linux v6.6.0-0.rc6.9c5d00cb7b6b + +* Fri Oct 20 2023 Fedora Kernel Team [6.6.0-0.rc6.ce55c22ec8b2.51] +- redhat/configs: share CONFIG_ARM64_ERRATUM_2966298 between rhel and fedora (Mark Salter) +- configs: Remove S390 IOMMU config options that no longer exist (Jerry Snitselaar) +- redhat: docs: clarify where bugs and issues are created (Scott Weaver) +- redhat/scripts/rh-dist-git.sh does not take any arguments: fix error message (Denys Vlasenko) +- Add target_branch for gen_config_patches.sh (Don Zickus) +- Linux v6.6.0-0.rc6.ce55c22ec8b2 + +* Thu Oct 19 2023 Fedora Kernel Team [6.6.0-0.rc6.dd72f9c7e512.50] +- Linux v6.6.0-0.rc6.dd72f9c7e512 + +* Wed Oct 18 2023 Fedora Kernel Team [6.6.0-0.rc6.06dc10eae55b.49] +- Linux v6.6.0-0.rc6.06dc10eae55b + +* Tue Oct 17 2023 Fedora Kernel Team [6.6.0-0.rc6.213f891525c2.48] +- redhat: disable kunit by default (Nico Pache) +- redhat/configs: enable the AMD_PMF driver for RHEL (David Arcari) +- Make CONFIG_ADDRESS_MASKING consistent between fedora and rhel (Chris von Recklinghausen) +- CI: add ark-latest baseline job to tag cki-gating for successful pipelines (Michael Hofmann) +- CI: provide child pipelines for CKI container image gating (Michael Hofmann) +- CI: allow to run as child pipeline (Michael Hofmann) +- CI: provide descriptive pipeline name for scheduled pipelines (Michael Hofmann) +- CI: use job templates for variant variables (Michael Hofmann) +- redhat/kernel.spec.template: simplify __modsign_install_post (Jan Stancek) +- Linux v6.6.0-0.rc6.213f891525c2 + +* Mon Oct 16 2023 Fedora Kernel Team [6.6.0-0.rc6.47] +- Linux v6.6.0-0.rc6 + +* Sun Oct 15 2023 Fedora Kernel Team [6.6.0-0.rc5.9a3dad63edbe.46] +- Fedora filter updates after configs (Justin M. Forbes) +- Fedora configs for 6.6 (Justin M. Forbes) +- Linux v6.6.0-0.rc5.9a3dad63edbe + +* Sat Oct 14 2023 Fedora Kernel Team [6.6.0-0.rc5.727fb8376504.45] +- Linux v6.6.0-0.rc5.727fb8376504 + +* Fri Oct 13 2023 Fedora Kernel Team [6.6.0-0.rc5.10a6e5feccb8.44] +- Linux v6.6.0-0.rc5.10a6e5feccb8 + +* Thu Oct 12 2023 Fedora Kernel Team [6.6.0-0.rc5.401644852d0b.43] +- Linux v6.6.0-0.rc5.401644852d0b + +* Wed Oct 11 2023 Fedora Kernel Team [6.6.0-0.rc5.1c8b86a3799f.42] +- Linux v6.6.0-0.rc5.1c8b86a3799f + +* Tue Oct 10 2023 Fedora Kernel Team [6.6.0-0.rc5.41] +- redhat/configs: Freescale Layerscape SoC family (Steve Best) +- Add clang MR/baseline pipelines (Michael Hofmann) + +* Mon Oct 09 2023 Fedora Kernel Team [6.6.0-0.rc5.40] +- CI: Remove unused kpet_tree_family (Nikolai Kondrashov) +- Linux v6.6.0-0.rc5 + +* Sun Oct 08 2023 Fedora Kernel Team [6.6.0-0.rc4.b9ddbb0cde2a.39] +- Linux v6.6.0-0.rc4.b9ddbb0cde2a + +* Sat Oct 07 2023 Fedora Kernel Team [6.6.0-0.rc4.82714078aee4.38] +- Linux v6.6.0-0.rc4.82714078aee4 + +* Fri Oct 06 2023 Fedora Kernel Team [6.6.0-0.rc4.b78b18fb8ee1.37] +- Add clang config framework (Don Zickus) +- Apply partial snippet configs to all configs (Don Zickus) +- Remove unpackaged kgcov config files (Don Zickus) +- redhat/configs: enable missing Kconfig options for Qualcomm RideSX4 (Brian Masney) +- enable CONFIG_ADDRESS_MASKING for x86_64 (Chris von Recklinghausen) +- Linux v6.6.0-0.rc4.b78b18fb8ee1 -* Fri Oct 20 2023 Augusto Caringi [6.5.8-0] -- Linux v6.5.8 +* Thu Oct 05 2023 Fedora Kernel Team [6.6.0-0.rc4.3006adf3be79.36] +- Linux v6.6.0-0.rc4.3006adf3be79 -* Tue Oct 10 2023 Augusto Caringi [6.5.7-0] -- common: aarch64: enable CONFIG_ARM64_ERRATUM_2966298 (Augusto Caringi) -- Linux v6.5.7 +* Wed Oct 04 2023 Fedora Kernel Team [6.6.0-0.rc4.cbf3a2cb156a.35] +- Linux v6.6.0-0.rc4.cbf3a2cb156a -* Fri Oct 06 2023 Augusto Caringi [6.5.6-0] -- power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint (Kai-Heng Feng) -- Revert "Add linux-next specific files for 20231004" (Justin M. Forbes) -- redhat/configs: enable missing Kconfig options for Qualcomm RideSX4 (Brian Masney) -- add a couple of CVEs to BugsFixed (Justin M. Forbes) -- Add another F39 FE bug to BugsFixed (Justin M. Forbes) -- Add linux-next specific files for 20231004 (Stephen Rothwell) +* Tue Oct 03 2023 Fedora Kernel Team [6.6.0-0.rc4.ce36c8b14987.34] - common: aarch64: enable NXP Flex SPI (Peter Robinson) +- Linux v6.6.0-0.rc4.ce36c8b14987 + +* Mon Oct 02 2023 Fedora Kernel Team [6.6.0-0.rc4.33] +- Linux v6.6.0-0.rc4 + +* Sun Oct 01 2023 Fedora Kernel Team [6.6.0-0.rc3.e402b08634b3.32] +- Linux v6.6.0-0.rc3.e402b08634b3 + +* Sat Sep 30 2023 Fedora Kernel Team [6.6.0-0.rc3.9f3ebbef746f.31] - fedora: Switch TI_SCI_CLK and TI_SCI_PM_DOMAINS symbols to built-in (Javier Martinez Canillas) -- Add bug for amdgpu to BugsFixed for 6.5.6 (Justin M. Forbes) -- drm/amdgpu: set completion status as preempted for the resubmission (Jiadong Zhu) -- Add CVE-2023-42756 to BugsFixed for 6.5.6 (Justin M. Forbes) -- Linux v6.5.6 - -* Sat Sep 23 2023 Justin M. Forbes [6.5.5-0] -- iommu/apple-dart: Handle DMA_FQ domains in attach_dev() (Hector Martin) -- Note fix for atomic locking in BugsFixed (Justin M. Forbes) -- locking/atomic: scripts: fix fallback ifdeffery (Mark Rutland) +- Linux v6.6.0-0.rc3.9f3ebbef746f + +* Fri Sep 29 2023 Fedora Kernel Team [6.6.0-0.rc3.9ed22ae6be81.30] +- Linux v6.6.0-0.rc3.9ed22ae6be81 + +* Thu Sep 28 2023 Fedora Kernel Team [6.6.0-0.rc3.633b47cb009d.29] +- Linux v6.6.0-0.rc3.633b47cb009d + +* Wed Sep 27 2023 Fedora Kernel Team [6.6.0-0.rc3.0e945134b680.28] +- kernel.spec: adjust build option comment (Michael Hofmann) +- kernel.spec: allow to enable arm64_16k variant (Michael Hofmann) +- gitlab-ci: enable build-only pipelines for Rawhide/16k/aarch64 (Michael Hofmann) +- kernel.spec.template: Fix --without bpftool (Prarit Bhargava) +- redhat/configs: NXP BBNSM Power Key Driver (Steve Best) +- redhat/self-test: Update data for cross compile fields (Prarit Bhargava) +- redhat/Makefile.cross: Add message for disabled subpackages (Prarit Bhargava) +- redhat/Makefile.cross: Update cross targets with disabled subpackages (Prarit Bhargava) +- Linux v6.6.0-0.rc3.0e945134b680 + +* Tue Sep 26 2023 Fedora Kernel Team [6.6.0-0.rc3.27] +- Remove XFS_ASSERT_FATAL from pending-fedora (Justin M. Forbes) + +* Mon Sep 25 2023 Fedora Kernel Team [6.6.0-0.rc3.26] +- Change default pending for XFS_ONLINE_SCRUB_STATSas it now selects XFS_DEBUG (Justin M. Forbes) +- Linux v6.6.0-0.rc3 + +* Sun Sep 24 2023 Fedora Kernel Team [6.6.0-0.rc2.3aba70aed91f.25] +- Linux v6.6.0-0.rc2.3aba70aed91f + +* Sat Sep 23 2023 Fedora Kernel Team [6.6.0-0.rc2.d90b0276af8f.24] +- Linux v6.6.0-0.rc2.d90b0276af8f + +* Fri Sep 22 2023 Fedora Kernel Team [6.6.0-0.rc2.27bbf45eae9c.23] +- gitlab-ci: use --with debug/base to select kernel variants (Michael Hofmann) +- kernel.spec: add rpmbuild --without base option (Michael Hofmann) +- Linux v6.6.0-0.rc2.27bbf45eae9c + +* Thu Sep 21 2023 Fedora Kernel Team [6.6.0-0.rc2.42dc814987c1.22] - redhat: spec: Fix typo for kernel_variant_preun for 16k-debug flavor (Neal Gompa) -- Fix installreq for UKI (Justin M. Forbes) -- Add btrfs bug to BugsFixed for 6.5.5 (Justin M. Forbes) -- btrfs: adjust overcommit logic when very close to full (Josef Bacik) -- btrfs: properly report 0 avail for very full file systems (Josef Bacik) -- Linux v6.5.5 - -* Tue Sep 19 2023 Justin M. Forbes [6.5.4-0] -- Add F38 and F37 as release targets (Justin M. Forbes) -- Add NFS bug fix for 6.5.4 (Justin M. Forbes) -- selinux: fix handling of empty opts in selinux_fs_context_submount() (Ondrej Mosnacek) +- Linux v6.6.0-0.rc2.42dc814987c1 + +* Tue Sep 19 2023 Fedora Kernel Team [6.6.0-0.rc2.2cf0f7156238.21] +- Linux v6.6.0-0.rc2.2cf0f7156238 + +* Mon Sep 18 2023 Fedora Kernel Team [6.6.0-0.rc2.20] +- Linux v6.6.0-0.rc2 + +* Sun Sep 17 2023 Fedora Kernel Team [6.6.0-0.rc1.f0b0d403eabb.19] +- Linux v6.6.0-0.rc1.f0b0d403eabb + +* Sat Sep 16 2023 Fedora Kernel Team [6.6.0-0.rc1.57d88e8a5974.18] +- Linux v6.6.0-0.rc1.57d88e8a5974 + +* Fri Sep 15 2023 Fedora Kernel Team [6.6.0-0.rc1.9fdfb15a3dbf.17] - Turn off appletalk for fedora (Justin M. Forbes) -- Linux v6.5.4 +- Linux v6.6.0-0.rc1.9fdfb15a3dbf -* Wed Sep 13 2023 Justin M. Forbes [6.5.3-0] -- Revert "misc: rtsx: judge ASPM Mode to set PETXCFG Reg" (Justin M. Forbes) -- Config updates for 6.5.3 (Justin M. Forbes) -- Fix up buildReqs for UKI (Justin M. Forbes) -- Linux v6.5.3 +* Thu Sep 14 2023 Fedora Kernel Team [6.6.0-0.rc1.aed8aee11130.16] +- Linux v6.6.0-0.rc1.aed8aee11130 -* Wed Sep 06 2023 Justin M. Forbes [6.5.2-0] -- Move squashfs to kernel-modules-core (Justin M. Forbes) -- Add TPM bug to BugsFixed (Justin M. Forbes) -- tpm: Enable hwrng only for Pluton on AMD CPUs (Jarkko Sakkinen) -- Linux v6.5.2 +* Wed Sep 13 2023 Fedora Kernel Team [6.6.0-0.rc1.3669558bdf35.15] +- Linux v6.6.0-0.rc1.3669558bdf35 -* Sat Sep 02 2023 Justin M. Forbes [6.5.1-0] -- erofs: ensure that the post-EOF tails are all zeroed (Gao Xiang) -- Add bug to BugsFixed (Justin M. Forbes) +* Tue Sep 12 2023 Fedora Kernel Team [6.6.0-0.rc1.14] +- New configs in drivers/media (Fedora Kernel Team) +- redhat/docs: Add a mention of bugzilla for bugs (Prarit Bhargava) +- Fix the fixup of Fedora release (Don Zickus) + +* Mon Sep 11 2023 Fedora Kernel Team [6.6.0-0.rc1.13] +- Linux v6.6.0-0.rc1 + +* Sun Sep 10 2023 Fedora Kernel Team [6.6.0-0.rc0.535a265d7f0d.12] +- Linux v6.6.0-0.rc0.535a265d7f0d + +* Sat Sep 09 2023 Fedora Kernel Team [6.6.0-0.rc0.6099776f9f26.11] +- Linux v6.6.0-0.rc0.6099776f9f26 + +* Fri Sep 08 2023 Fedora Kernel Team [6.6.0-0.rc0.a48fa7efaf11.10] +- Linux v6.6.0-0.rc0.a48fa7efaf11 + +* Thu Sep 07 2023 Fedora Kernel Team [6.6.0-0.rc0.7ba2090ca64e.9] +- Fix Fedora release scheduled job (Don Zickus) +- Move squashfs to kernel-modules-core (Justin M. Forbes) +- redhat: Explicitly disable CONFIG_COPS (Vitaly Kuznetsov) +- redhat: Add dist-check-licenses target (Vitaly Kuznetsov) +- redhat: Introduce "Verify SPDX-License-Identifier tags" selftest (Vitaly Kuznetsov) +- redhat: Use kspdx-tool output for the License: field (Vitaly Kuznetsov) +- Linux v6.6.0-0.rc0.7ba2090ca64e + +* Wed Sep 06 2023 Fedora Kernel Team [6.6.0-0.rc0.65d6e954e378.8] +- Rename pipeline repo branch and DW tree names (Michael Hofmann) +- Adjust comments that refer to ARK in a Rawhide context (Michael Hofmann) +- Rename variable names starting with ark- to rawhide- (Michael Hofmann) +- Rename trigger-ark to trigger-rawhide (Michael Hofmann) +- Fix up config mismatches for Fedora (Justin M. Forbes) +- Linux v6.6.0-0.rc0.65d6e954e378 + +* Tue Sep 05 2023 Fedora Kernel Team [6.6.0-0.rc0.3f86ed6ec0b3.7] +- redhat/configs: Texas Instruments Inc. K3 multicore SoC architecture (Steve Best) +- Linux v6.6.0-0.rc0.3f86ed6ec0b3 + +* Mon Sep 04 2023 Fedora Kernel Team [6.6.0-0.rc0.708283abf896.6] +- Linux v6.6.0-0.rc0.708283abf896 + +* Sun Sep 03 2023 Fedora Kernel Team [6.6.0-0.rc0.92901222f83d.5] +- Flip CONFIG_VIDEO_V4L2_SUBDEV_API in pending RHEL due to mismatch (Justin M. Forbes) +- Linux v6.6.0-0.rc0.92901222f83d + +* Sat Sep 02 2023 Fedora Kernel Team [6.6.0-0.rc0.0468be89b3fa.4] +- CONFIG_HW_RANDOM_HISI: move to common and set to m (Scott Weaver) - Turn off CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE for Fedora s390x (Justin M. Forbes) -- drm/msm/a690: Switch to a660_gmu.bin (Rob Clark) -- drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set (Javier Martinez Canillas) -- Turn E1000 back on (Justin M. Forbes) -- Set up variables and scripts for Fedora stable (Justin M. Forbes) -- Update self-test data (Justin M. Forbes) +- Linux v6.6.0-0.rc0.0468be89b3fa + +* Fri Sep 01 2023 Fedora Kernel Team [6.6.0-0.rc0.99d99825fc07.3.eln130] +- Disable tests for ELN realtime pipelines (Michael Hofmann) +- New configs in mm/Kconfig (Fedora Kernel Team) +- Flip CONFIG_SND_SOC_CS35L56_SDW to m and clean up (Justin M. Forbes) +- Add drm_exec_test to mod-internal.list (Thorsten Leemhuis) +- Add new pending entry for CONFIG_SND_SOC_CS35L56_SDW to fix mismatch (Justin M. Forbes) +- Linux v6.6.0-0.rc0.99d99825fc07 + +* Thu Aug 31 2023 Fedora Kernel Team [6.6.0-0.rc0.b97d64c72259.2.eln130] +- Fix tarball creation logic (Don Zickus) +- redhat: bump libcpupower soname to match upstream (Patrick Talbert) +- Turn on MEMFD_CREATE in pending as it is selected by CONFIG_TMPFS (Justin M. Forbes) +- Linux v6.6.0-0.rc0.b97d64c72259 + +* Wed Aug 30 2023 Fedora Kernel Team [6.6.0-0.rc0.6c1b980a7e79.1.eln130] +- redhat: drop unneeded build-time dependency gcc-plugin-devel (Coiby Xu) +- Reset RHEL release and trim changelog after rebase (Justin M. Forbes) +- Linux v6.6.0-0.rc0.6c1b980a7e79 + +* Tue Aug 29 2023 Fedora Kernel Team [6.6.0-0.rc0.1c59d383390f.59.eln130] - all: x86: move wayward x86 specific config home (Peter Robinson) - all: de-dupe non standard config options (Peter Robinson) - all: x86: clean up microcode loading options (Peter Robinson) - common: remove unnessary CONFIG_SND_MESON_AXG* (Peter Robinson) -- Linux v6.5.1 - -* Mon Aug 28 2023 Fedora Kernel Team [6.5.0-58.eln130] - redhat: Fix UKI install with systemd >= 254 (Vitaly Kuznetsov) - redhat: Use named parameters for kernel_variant_posttrans()/kernel_variant_preun() (Vitaly Kuznetsov) - -* Mon Aug 28 2023 Fedora Kernel Team [6.5.0-57.eln130] -- Linux v6.5.0 - -* Sun Aug 27 2023 Fedora Kernel Team [6.5.0-0.rc7.28f20a19294d.56.eln130] -- Linux v6.5.0-0.rc7.28f20a19294d - -* Sat Aug 26 2023 Fedora Kernel Team [6.5.0-0.rc7.7d2f353b2682.55.eln130] - redhat/kernel.spec.template: update compression variables to support zstd (Brian Masney) -- Linux v6.5.0-0.rc7.7d2f353b2682 - -* Fri Aug 25 2023 Fedora Kernel Team [6.5.0-0.rc7.4f9e7fabf864.54.eln130] -- Linux v6.5.0-0.rc7.4f9e7fabf864 - -* Thu Aug 24 2023 Fedora Kernel Team [6.5.0-0.rc7.93f5de5f648d.53.eln130] - Consolidate configs to common for 6.5 (Justin M. Forbes) - Remove unused config entry for Fedora (Justin M. Forbes) -- Linux v6.5.0-0.rc7.93f5de5f648d - -* Wed Aug 23 2023 Fedora Kernel Team [6.5.0-0.rc7.89bf6209cad6.52.eln130] - redhat/self-test: Remove rpmlint test (Prarit Bhargava) - Remove the armv7 config directory from Fedora again (Justin M. Forbes) - Enable CONFIG_EXPERT for both RHEL and Fedora (Justin M. Forbes) -- Linux v6.5.0-0.rc7.89bf6209cad6 - -* Tue Aug 22 2023 Fedora Kernel Team [6.5.0-0.rc7.f7757129e3de.51.eln130] - redhat/configs: Enable CONFIG_DEVICE_PRIVATE on aarch64 (David Hildenbrand) [2231407] - redhat/configs: disable CONFIG_ROCKCHIP_ERRATUM_3588001 for RHEL (Mark Salter) - redhat: shellcheck fixes (Prarit Bhargava) - -* Mon Aug 21 2023 Fedora Kernel Team [6.5.0-0.rc7.f7757129e3de.50.el130] -- Linux v6.5.0-0.rc7.f7757129e3de - -* Sun Aug 20 2023 Fedora Kernel Team [6.5.0-0.rc6.b320441c04c9.49.el130] -- Linux v6.5.0-0.rc6.b320441c04c9 - -* Sat Aug 19 2023 Fedora Kernel Team [6.5.0-0.rc6.4e7ffde6984a.48.el130] -- Linux v6.5.0-0.rc6.4e7ffde6984a - -* Fri Aug 18 2023 Fedora Kernel Team [6.5.0-0.rc6.0e8860d2125f.47.el130] - redhat/configs: enable tegra114 SPI (Mark Salter) -- Linux v6.5.0-0.rc6.0e8860d2125f - -* Thu Aug 17 2023 Fedora Kernel Team [6.5.0-0.rc6.4853c74bd7ab.46.el130] - all: properly cleanup firewire once and for all (Peter Robinson) - Fix up filters for Fedora (Justin M. Forbes) - -* Wed Aug 16 2023 Fedora Kernel Team [6.5.0-0.rc6.4853c74bd7ab.45.el130] - New configs in arch/x86 (Fedora Kernel Team) - Add an armv7 directory back for the Fedora configs (Justin M. Forbes) - Fedora 6.5 config updates (Justin M. Forbes) - Turn off DMABUF_SYSFS_STATS (Justin M. Forbes) -- Linux v6.5.0-0.rc6.4853c74bd7ab - -* Tue Aug 15 2023 Fedora Kernel Team [6.5.0-0.rc6.91aa6c412d7f.44.el130] - CI: rawhide_release: switch to using script to push (Don Zickus) - redhat/self-test: Update self-test data (Prarit Bhargava) - redhat/scripts/cross-compile: Update download_cross.sh (Prarit Bhargava) - redhat/Makefile.cross: Remove ARCH selection code (Prarit Bhargava) - redhat/Makefile.cross: Update script (Prarit Bhargava) - Fix interruptible non MR jobs (Michael Hofmann) -- Linux v6.5.0-0.rc6.91aa6c412d7f - -* Mon Aug 14 2023 Fedora Kernel Team [6.5.0-0.rc6.43.el127] -- Linux v6.5.0-0.rc6 - -* Sun Aug 13 2023 Fedora Kernel Team [6.5.0-0.rc5.a785fd28d31f.42.el127] - all: run evaluate_configs to de-dupe merged aarch64 (Peter Robinson) - all: arm: merge the arm and arm/aarch64 (Peter Robinson) - fedora: remove ARMv7 AKA armhfp configurations (Peter Robinson) - fedora: remove ARMv7 AKA armhfp support (Peter Robinson) -- Linux v6.5.0-0.rc5.a785fd28d31f - -* Sat Aug 12 2023 Fedora Kernel Team [6.5.0-0.rc5.f8de32cc060b.41.el127] -- Linux v6.5.0-0.rc5.f8de32cc060b - -* Fri Aug 11 2023 Fedora Kernel Team [6.5.0-0.rc5.25aa0bebba72.40.el127] - redhat/configs: enable CONFIG_VIRTIO_MEM on aarch64 (David Hildenbrand) [2044155] - redhat/configs: enable CONFIG_MEMORY_HOTREMOVE aarch64 (David Hildenbrand) [2062054] - redhat: Add arm64-16k kernel flavor scaffold for 16K page-size'd AArch64 (Neal Gompa) - fedora: enable i3c on aarch64 (Peter Robinson) -- Linux v6.5.0-0.rc5.25aa0bebba72 - -* Thu Aug 10 2023 Fedora Kernel Team [6.5.0-0.rc5.374a7f47bf40.39.el127] - redhat/configs: Remove `CONFIG_HZ_1000 is not set` for aarch64 (Enric Balletbo i Serra) -- Linux v6.5.0-0.rc5.374a7f47bf40 - -* Wed Aug 09 2023 Fedora Kernel Team [6.5.0-0.rc5.13b937206866.38.el127] - redhat/configs: turn on the framework for SPI NOR for ARM (Steve Best) - configs: add new ChromeOS UART driver (Mark Langsdorf) - configs: add new ChromeOS Human Presence Sensor (Mark Langsdorf) - redhat/configs: Enable CONFIG_NVIDIA_WMI_EC_BACKLIGHT for both Fedora and RHEL (Kate Hsuan) -- Linux v6.5.0-0.rc5.13b937206866 - -* Tue Aug 08 2023 Fedora Kernel Team [6.5.0-0.rc5.14f9643dc90a.37.el127] - redhat/configs: Texas Instruments INA3221 driver (Steve Best) -- Linux v6.5.0-0.rc5.14f9643dc90a - -* Mon Aug 07 2023 Fedora Kernel Team [6.5.0-0.rc5.36.el127] -- Linux v6.5.0-0.rc5 - -* Sun Aug 06 2023 Fedora Kernel Team [6.5.0-0.rc4.f0ab9f34e59e.35.el127] -- Linux v6.5.0-0.rc4.f0ab9f34e59e - -* Sat Aug 05 2023 Fedora Kernel Team [6.5.0-0.rc4.024ff300db33.34.el127] - arm: i.MX: Some minor NXP i.MX cleanups (Peter Robinson) -- Linux v6.5.0-0.rc4.024ff300db33 - -* Fri Aug 04 2023 Fedora Kernel Team [6.5.0-0.rc4.c1a515d3c027.33.el127] -- Linux v6.5.0-0.rc4.c1a515d3c027 - -* Thu Aug 03 2023 Fedora Kernel Team [6.5.0-0.rc4.ec351c8f2e62.32.el127] - Description: Set config for Tegra234 pinctrl driver (Joel Slebodnick) - Update RPM Scriptlet for kernel-install Changes (Jonathan Steffan) -- Linux v6.5.0-0.rc4.ec351c8f2e62 - -* Wed Aug 02 2023 Fedora Kernel Team [6.5.0-0.rc4.31.el127] - [CI] add exit 0 to the end of CI scripts (Don Zickus) - redhat: configs: Disable CONFIG_CRYPTO_STATS since performance issue for storage (Kate Hsuan) [2227793] - Remove obsolete variable from gitlab-ci.yml (Ondrej Kinst) @@ -3997,89 +4137,33 @@ fi\ - CI: ark-create-release: Add a robust check if nothing changed (Don Zickus) - CI: Remove legacy tag check cruft (Don Zickus) - CI: Introduce simple environment script (Don Zickus) - -* Mon Jul 31 2023 Fedora Kernel Team [6.5.0-0.rc4.30.el127] -- Linux v6.5.0-0.rc4 - -* Sun Jul 30 2023 Fedora Kernel Team [6.5.0-0.rc3.d31e3792919e.29.el127] -- Linux v6.5.0-0.rc3.d31e3792919e - -* Sat Jul 29 2023 Fedora Kernel Team [6.5.0-0.rc3.ffabf7c73176.28.el127] -- Linux v6.5.0-0.rc3.ffabf7c73176 - -* Fri Jul 28 2023 Fedora Kernel Team [6.5.0-0.rc3.57012c57536f.27.el127] -- Linux v6.5.0-0.rc3.57012c57536f - -* Thu Jul 27 2023 Fedora Kernel Team [6.5.0-0.rc3.0a8db05b571a.26.el127] - redhat/configs: Disable FIREWIRE for RHEL (Prarit Bhargava) -- Linux v6.5.0-0.rc3.0a8db05b571a - -* Wed Jul 26 2023 Fedora Kernel Team [6.5.0-0.rc3.18b44bc5a672.25.el127] - redhat/scripts/rh-dist-git.sh: print list of uploaded files (Denys Vlasenko) - redhat/scripts/expand_srpm.sh: add missing function, robustify (Denys Vlasenko) - redhat: Enable HSR and PRP (Felix Maurer) -- Linux v6.5.0-0.rc3.18b44bc5a672 - -* Tue Jul 25 2023 Fedora Kernel Team [6.5.0-0.rc3.0b5547c51827.24.el127] - redhat/scripts/rh-dist-git.sh: fix outdated message and comment (Denys Vlasenko) - redhat/configs: Disable CONFIG_I8K (Prarit Bhargava) - Make sure posttrans script doesn't fail if restorecon is not installed (Daan De Meyer) -- Linux v6.5.0-0.rc3.0b5547c51827 - -* Mon Jul 24 2023 Fedora Kernel Team [6.5.0-0.rc3.23.el127] -- Linux v6.5.0-0.rc3 - -* Sun Jul 23 2023 Fedora Kernel Team [6.5.0-0.rc2.c2782531397f.22.el127] -- Linux v6.5.0-0.rc2.c2782531397f - -* Sat Jul 22 2023 Fedora Kernel Team [6.5.0-0.rc2.d192f5382581.21.el127] - Update filters for new config items (Justin M. Forbes) - More Fedora 6.5 configs (Justin M. Forbes) -- Linux v6.5.0-0.rc2.d192f5382581 - -* Fri Jul 21 2023 Fedora Kernel Team [6.5.0-0.rc2.f7e3a1bafdea.20.el127] - redhat/configs: disable pre-UVC cameras for RHEL on aarch64 (Dean Nelson) - redhat/configs: enable CONFIG_MEDIA_SUPPORT for RHEL on aarch64 (Dean Nelson) -- Linux v6.5.0-0.rc2.f7e3a1bafdea - -* Thu Jul 20 2023 Fedora Kernel Team [6.5.0-0.rc2.bfa3037d8280.19.el127] - move ownership of /lib/modules// to kernel-core (Thorsten Leemhuis) - Let kernel-modules-core own the files depmod generates. (Thorsten Leemhuis) - redhat: configs: Enable CONFIG_TYPEC_STUSB160X for rhel on aarch64 (Desnes Nunes) - Add filters for ptp_dfl_tod on Fedora (Justin M. Forbes) -- Linux v6.5.0-0.rc2.bfa3037d8280 - -* Wed Jul 19 2023 Fedora Kernel Team [6.5.0-0.rc2.ccff6d117d8d.18.el127] - Fedora 6.5 configs part 1 (Justin M. Forbes) - fedora: enable CONFIG_ZYNQMP_IPI_MBOX as a builtin in pending-fedora (Patrick Talbert) - fedora: arm: some minor updates (Peter Robinson) - fedora: bluetooth: enable AOSP extensions (Peter Robinson) -- Linux v6.5.0-0.rc2.ccff6d117d8d - -* Mon Jul 17 2023 Fedora Kernel Team [6.5.0-0.rc2.17.el127] -- Linux v6.5.0-0.rc2 - -* Sun Jul 16 2023 Fedora Kernel Team [6.5.0-0.rc1.831fe284d827.16.el127] - fedora: wifi: tweak ZYDAS WiFI config options (Peter Robinson) -- Linux v6.5.0-0.rc1.831fe284d827 - -* Sat Jul 15 2023 Fedora Kernel Team [6.5.0-0.rc1.b6e6cc1f78c7.15.el127] - scsi: sd: Add "probe_type" module parameter to allow synchronous probing (Ewan D. Milne) [2140017] - redhat/configs: allow IMA to use MOK keys (Coiby Xu) -- Linux v6.5.0-0.rc1.b6e6cc1f78c7 - -* Fri Jul 14 2023 Fedora Kernel Team [6.5.0-0.rc1.4b810bf037e5.14.el127] -- Linux v6.5.0-0.rc1.4b810bf037e5 - -* Thu Jul 13 2023 Fedora Kernel Team [6.5.0-0.rc1.eb26cbb1a754.13.el127] - Simplify documentation jobs (Michael Hofmann) - Auto-cancel pipelines only on MRs (Michael Hofmann) - CI: Call script directly (Don Zickus) - CI: Remove stale TAG and Makefile cruft (Don Zickus) - CI: Move os-build tracking to common area (Don Zickus) -- Linux v6.5.0-0.rc1.eb26cbb1a754 - -* Tue Jul 11 2023 Fedora Kernel Team [6.5.0-0.rc1.3f01e9fed845.12.el127] - redhat: use the eln builder for daily jobs (Patrick Talbert) - redhat: set CONFIG_XILINX_WINDOW_WATCHDOG as disabled in pending (Patrick Talbert) - Add baseline ARK/ELN pipelines (Michael Hofmann) @@ -4096,22 +4180,10 @@ fi\ - Change pathfix.py to %%py3_shebang_fix (Justin M. Forbes) - Turn on NET_VENDOR_QUALCOMM for Fedora to enable rmnet (Justin M. Forbes) - redhat: add intel-m10-bmc-hwmon to filter-modules singlemods list (Patrick Talbert) -- Linux v6.5.0-0.rc1.3f01e9fed845 - -* Thu Jul 06 2023 Fedora Kernel Team [6.5.0-0.rc0.c17414a273b8.11] - fedira: enable pending-fedora CONFIG_CPUFREQ_DT_PLATDEV as a module (Patrick Talbert) -- Linux v6.5.0-0.rc0.c17414a273b8 - -* Wed Jul 05 2023 Fedora Kernel Team [6.5.0-0.rc0.d528014517f2.10] - redhat: fix the 'eln BUILD_TARGET' self-test (Patrick Talbert) - redhat: update the self-test-data (Patrick Talbert) - redhat: remove trailing space in dist-dump-variables output (Patrick Talbert) -- Linux v6.5.0-0.rc0.d528014517f2 - -* Tue Jul 04 2023 Fedora Kernel Team [6.5.0-0.rc0.24be4d0b46bb.9] -- Linux v6.5.0-0.rc0.24be4d0b46bb - -* Mon Jul 03 2023 Fedora Kernel Team [6.5.0-0.rc0.a901a3568fd2.8] - Allow ELN pipelines failures (Michael Hofmann) - Enable cs-like CI (Michael Hofmann) - Allow to auto-cancel redundant pipelines (Michael Hofmann) @@ -4121,20 +4193,8 @@ fi\ - redhat: allow dbgonly cross builds (Jan Stancek) - redhat/configs: Clean up x86-64 call depth tracking configs (Waiman Long) - redhat: move SND configs from pending-rhel to rhel (Patrick Talbert) -- Linux v6.5.0-0.rc0.a901a3568fd2 - -* Sun Jul 02 2023 Fedora Kernel Team [6.5.0-0.rc0.995b406c7e97.7] -- Linux v6.5.0-0.rc0.995b406c7e97 - -* Sat Jul 01 2023 Fedora Kernel Team [6.5.0-0.rc0.a507db1d8fdc.6] - Fix up armv7 configs for Fedora (Justin M. Forbes) - redhat: Set pending-rhel x86 values for various SND configs (Patrick Talbert) -- Linux v6.5.0-0.rc0.a507db1d8fdc - -* Fri Jun 30 2023 Fedora Kernel Team [6.5.0-0.rc0.e55e5df193d2.5] -- Linux v6.5.0-0.rc0.e55e5df193d2 - -* Fri Jun 30 2023 Fedora Kernel Team [6.5.0-0.rc0.3a8a670eeeaa.4] - redhat: update self-test data (Patrick Talbert) - redhat: ignore SPECBPFTOOLVERSION/bpftoolversion in self-test create-data.sh (Patrick Talbert) - fedora/rhel: Move I2C_DESIGNWARE_PLATFORM, I2C_SLAVE, & GPIOLIB from pending (Patrick Talbert) @@ -4142,25 +4202,15 @@ fi\ - fedora: Enable CONFIG_SPI_SLAVE (Patrick Talbert) - fedora/rhel: enable I2C_DESIGNWARE_PLATFORM, I2C_SLAVE, and GPIOLIB (Patrick Talbert) - fedora: Enable CONFIG_SPI_SLAVE in fedora-pending (Patrick Talbert) - -* Thu Jun 29 2023 Fedora Kernel Team [6.5.0-0.rc0.3a8a670eeeaa.3] - redhat: remove extra + (plus) from meta package Requires definitions (Patrick Talbert) -- Linux v6.5.0-0.rc0.3a8a670eeeaa - -* Wed Jun 28 2023 Fedora Kernel Team [6.5.0-0.rc0.6aeadf7896bf.2] - Add intel-m10-bmc-hwmon to singlemods (Thorsten Leemhuis) - Add hid-uclogic-test to mod-internal.list (Thorsten Leemhuis) - Add checksum_kunit.ko to mod-internal.list (Thorsten Leemhuis) - Add strcat_kunit to mod-internal.list (Thorsten Leemhuis) - Add input_test to mod-intenal.list (Thorsten Leemhuis) -- Linux v6.5.0-0.rc0.6aeadf7896bf - -* Wed Jun 28 2023 Fedora Kernel Team [6.5.0-0.rc0.1ef6663a587b.1] - Revert "Remove EXPERT from ARCH_FORCE_MAX_ORDER for aarch64" (Justin M. Forbes) - Reset the release number and dedup the changelog after rebase (Justin M. Forbes) - Fix up rebase issue with CONFIG_ARCH_FORCE_MAX_ORDER (Justin M. Forbes) - -* Tue Jun 27 2023 Fedora Kernel Team [6.5.0-0.rc0.1ef6663a587b.60] - redhat/kernel.spec.template: Disable 'extracting debug info' messages (Prarit Bhargava) - kernel/rh_messages.c: Another gcc12 warning on redundant NULL test (Florian Weimer) [2216678] - redhat: fix signing for realtime and arm64_64k non-debug variants (Jan Stancek) @@ -4194,7 +4244,6 @@ fi\ - redhat: do not package *.mod.c generated files (Denys Vlasenko) - ALSA configuration changes for ARK/RHEL 9.3 (Jaroslav Kysela) - spec: remove resolve_btfids from kernel-devel (Viktor Malik) -- tools/resolve_btfids: Fix setting HOSTCFLAGS (Viktor Malik) - Fix typo in filter-modules (Justin M. Forbes) - redhat/configs: Enable CONFIG_INIT_STACK_ALL_ZERO for RHEL (Josh Poimboeuf) - Remove CONFIG_ARCH_FORCE_MAX_ORDER for aarch64 (Justin M. Forbes) @@ -6052,8 +6101,7 @@ fi\ - [initial commit] Add scripts (Laura Abbott) - [initial commit] Add configs (Laura Abbott) - [initial commit] Add Makefiles (Laura Abbott) -- Linux v6.5.0-0.rc0.1ef6663a587b - +- Linux v6.6.0-0.rc0.1c59d383390f ### # The following Emacs magic makes C-c C-e use UTC dates. diff --git a/TOOLS/patch_configs.py b/TOOLS/patch_configs.py index 722a756..01ab97d 100755 --- a/TOOLS/patch_configs.py +++ b/TOOLS/patch_configs.py @@ -17,6 +17,7 @@ GENERIC_PATCHES = [ ["FB_EFI", UNSET, ENABLE], ["FB_VESA", UNSET, ENABLE], ["ACPI_EC_DEBUGFS", UNSET, MODULE], + ["WINESYNC", None, ENABLE], # device specific config # Microsoft Surface @@ -43,6 +44,7 @@ ARCH_PATCHES = { ["USB_DWC3_DUAL_ROLE", None, ENABLE], ["USB_DWC3_PCI", None, MODULE], ["USB_DWC3_HAPS", None, MODULE], + ["USB_DWC3_HOST", ENABLE, UNSET, "fedora"], ["USB_DWC2", None, MODULE], ["USB_DWC2_DUAL_ROLE", None, ENABLE], ["USB_DWC2_PCI", None, MODULE], @@ -100,7 +102,6 @@ def apply_patches(data: str, patches, flags = None) -> str: u = f"# {c} " if len(val) == 3 and val[2] not in flags: - print(f" Skipping {name}") continue if any(x in data for x in [s, u]): @@ -173,6 +174,8 @@ for file in CONFIG_FILES: arch = namesegs.pop(0) flavor = namesegs.pop(-1) flags = namesegs + + flags.append(flavor) if "debug" not in flags: flags.append("release") -- cgit v1.2.3