diff --git a/Patchlist.changelog b/Patchlist.changelog index 55bc793bc..86d9649e4 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,15 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/fa2776a85804c480dd9427a042e799849f060e2d + fa2776a85804c480dd9427a042e799849f060e2d media: ov08x40: Extend sleep after reset to 5 ms + +https://gitlab.com/cki-project/kernel-ark/-/commit/6b680e517ceb2830d460ea67145070748f726be3 + 6b680e517ceb2830d460ea67145070748f726be3 media: ov08x40: Log chip ID when identifying the chip + +https://gitlab.com/cki-project/kernel-ark/-/commit/54b19247d77afbda6c90d7ad6204e6c757a9645b + 54b19247d77afbda6c90d7ad6204e6c757a9645b media: ov08x40: Fix value of reset GPIO when requesting it + +https://gitlab.com/cki-project/kernel-ark/-/commit/9b79932890f97f0226f6c41b3cd05aee537d2561 + 9b79932890f97f0226f6c41b3cd05aee537d2561 ASoC: rt712-sdca: Add FU05 playback switch control + https://gitlab.com/cki-project/kernel-ark/-/commit/993f8a0404b0a8ee5b210f2d5e1b43a9236ea1a9 993f8a0404b0a8ee5b210f2d5e1b43a9236ea1a9 fuse: revert back to __readahead_folio() for readahead diff --git a/kernel-aarch64-64k-debug-rhel.config b/kernel-aarch64-64k-debug-rhel.config index eebd520e4..899c9287b 100644 --- a/kernel-aarch64-64k-debug-rhel.config +++ b/kernel-aarch64-64k-debug-rhel.config @@ -2179,7 +2179,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-64k-rhel.config b/kernel-aarch64-64k-rhel.config index 76e529c51..b5084a4ec 100644 --- a/kernel-aarch64-64k-rhel.config +++ b/kernel-aarch64-64k-rhel.config @@ -2163,7 +2163,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-automotive-debug-rhel.config b/kernel-aarch64-automotive-debug-rhel.config index 7ea292cd5..5b9397650 100644 --- a/kernel-aarch64-automotive-debug-rhel.config +++ b/kernel-aarch64-automotive-debug-rhel.config @@ -2330,7 +2330,7 @@ CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_SPI is not set CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=m # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-automotive-rhel.config b/kernel-aarch64-automotive-rhel.config index f93c07208..28610e25b 100644 --- a/kernel-aarch64-automotive-rhel.config +++ b/kernel-aarch64-automotive-rhel.config @@ -2314,7 +2314,7 @@ CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_SPI is not set CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=m # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config index d41c2db65..39ca36e28 100644 --- a/kernel-aarch64-debug-rhel.config +++ b/kernel-aarch64-debug-rhel.config @@ -2177,7 +2177,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config index 59b2fd490..187d0789f 100644 --- a/kernel-aarch64-rhel.config +++ b/kernel-aarch64-rhel.config @@ -2161,7 +2161,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-rt-debug-rhel.config b/kernel-aarch64-rt-debug-rhel.config index c396c98e3..e240a9b0a 100644 --- a/kernel-aarch64-rt-debug-rhel.config +++ b/kernel-aarch64-rt-debug-rhel.config @@ -2216,7 +2216,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-aarch64-rt-rhel.config b/kernel-aarch64-rt-rhel.config index 781b45ae9..aa13239c9 100644 --- a/kernel-aarch64-rt-rhel.config +++ b/kernel-aarch64-rt-rhel.config @@ -2200,7 +2200,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-ppc64le-debug-rhel.config b/kernel-ppc64le-debug-rhel.config index eaccc1629..94c9c62b5 100644 --- a/kernel-ppc64le-debug-rhel.config +++ b/kernel-ppc64le-debug-rhel.config @@ -1902,7 +1902,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-ppc64le-rhel.config b/kernel-ppc64le-rhel.config index 6921333ca..120e259d6 100644 --- a/kernel-ppc64le-rhel.config +++ b/kernel-ppc64le-rhel.config @@ -1886,7 +1886,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-s390x-debug-rhel.config b/kernel-s390x-debug-rhel.config index 859288fb4..06937e9f9 100644 --- a/kernel-s390x-debug-rhel.config +++ b/kernel-s390x-debug-rhel.config @@ -1904,7 +1904,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-s390x-rhel.config b/kernel-s390x-rhel.config index f9341fa5d..2752f2f9b 100644 --- a/kernel-s390x-rhel.config +++ b/kernel-s390x-rhel.config @@ -1888,7 +1888,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-s390x-zfcpdump-rhel.config b/kernel-s390x-zfcpdump-rhel.config index 41f2e52eb..c9dfe843a 100644 --- a/kernel-s390x-zfcpdump-rhel.config +++ b/kernel-s390x-zfcpdump-rhel.config @@ -1891,7 +1891,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-automotive-debug-rhel.config b/kernel-x86_64-automotive-debug-rhel.config index 58ea766fa..95eb75865 100644 --- a/kernel-x86_64-automotive-debug-rhel.config +++ b/kernel-x86_64-automotive-debug-rhel.config @@ -2113,7 +2113,7 @@ CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_SPI is not set CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=m # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-automotive-rhel.config b/kernel-x86_64-automotive-rhel.config index 7e865ba28..5916179db 100644 --- a/kernel-x86_64-automotive-rhel.config +++ b/kernel-x86_64-automotive-rhel.config @@ -2097,7 +2097,7 @@ CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_SPI is not set CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=m # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-debug-rhel.config b/kernel-x86_64-debug-rhel.config index 147d41910..7de1f7d5b 100644 --- a/kernel-x86_64-debug-rhel.config +++ b/kernel-x86_64-debug-rhel.config @@ -2039,7 +2039,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-rhel.config b/kernel-x86_64-rhel.config index f6ace4461..e179db70c 100644 --- a/kernel-x86_64-rhel.config +++ b/kernel-x86_64-rhel.config @@ -2023,7 +2023,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-rt-debug-rhel.config b/kernel-x86_64-rt-debug-rhel.config index 8f4907139..88b4df3f7 100644 --- a/kernel-x86_64-rt-debug-rhel.config +++ b/kernel-x86_64-rt-debug-rhel.config @@ -2078,7 +2078,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel-x86_64-rt-rhel.config b/kernel-x86_64-rt-rhel.config index 3f4404eb1..59eb6eb40 100644 --- a/kernel-x86_64-rt-rhel.config +++ b/kernel-x86_64-rt-rhel.config @@ -2062,7 +2062,7 @@ CONFIG_FUSION_SAS=m CONFIG_FUSION_SPI=m CONFIG_FUSION=y CONFIG_FUTEX=y -# CONFIG_FW_CACHE is not set +CONFIG_FW_CACHE=y # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_FW_CFG_SYSFS=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set diff --git a/kernel.changelog b/kernel.changelog index b5ad6183d..c5aa01e91 100644 --- a/kernel.changelog +++ b/kernel.changelog @@ -1,3 +1,12 @@ +* Thu Mar 13 2025 Augusto Caringi [6.13.7-0] +- Set CONFIG_FW_CACHE=y for rhel to avoid config mismatch issues (Augusto Caringi) +- media: ov08x40: Extend sleep after reset to 5 ms (Hans de Goede) +- media: ov08x40: Log chip ID when identifying the chip (Hans de Goede) +- media: ov08x40: Fix value of reset GPIO when requesting it (Hans de Goede) +- ASoC: rt712-sdca: Add FU05 playback switch control (Shuming Fan) [2350689] +- Linux v6.13.7 +Resolves: rhbz#2350689 + * Fri Mar 07 2025 Augusto Caringi [6.13.6-0] - Fix up some debug module loading issues due to BTF mismatch (Justin M. Forbes) - Linux v6.13.6 diff --git a/kernel.spec b/kernel.spec index 2bd4e30f1..ed0e5bc48 100644 --- a/kernel.spec +++ b/kernel.spec @@ -159,18 +159,18 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local -%define specrpmversion 6.13.6 -%define specversion 6.13.6 +%define specrpmversion 6.13.7 +%define specversion 6.13.7 %define patchversion 6.13 %define pkgrelease 200 %define kversion 6 -%define tarfile_release 6.13.6 +%define tarfile_release 6.13.7 # This is needed to do merge window version magic %define patchlevel 13 # This allows pkg_release to have configurable %%{?dist} tag %define specrelease 200%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 6.13.6 +%define kabiversion 6.13.7 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -4166,6 +4166,14 @@ fi\ # # %changelog +* Thu Mar 13 2025 Augusto Caringi [6.13.7-0] +- Set CONFIG_FW_CACHE=y for rhel to avoid config mismatch issues (Augusto Caringi) +- media: ov08x40: Extend sleep after reset to 5 ms (Hans de Goede) +- media: ov08x40: Log chip ID when identifying the chip (Hans de Goede) +- media: ov08x40: Fix value of reset GPIO when requesting it (Hans de Goede) +- ASoC: rt712-sdca: Add FU05 playback switch control (Shuming Fan) [2350689] +- Linux v6.13.7 + * Fri Mar 07 2025 Augusto Caringi [6.13.6-0] - Fix up some debug module loading issues due to BTF mismatch (Justin M. Forbes) - Linux v6.13.6 diff --git a/patch-6.13-redhat.patch b/patch-6.13-redhat.patch index 40afd8daf..4dea94acc 100644 --- a/patch-6.13-redhat.patch +++ b/patch-6.13-redhat.patch @@ -47,8 +47,7 @@ drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + drivers/input/rmi4/rmi_driver.c | 124 +- drivers/iommu/iommu.c | 22 + - drivers/media/i2c/ov08x40.c | 167 ++- - drivers/misc/mei/vsc-tp.c | 2 +- + drivers/media/i2c/ov08x40.c | 170 ++- drivers/nvme/host/core.c | 22 +- drivers/nvme/host/multipath.c | 19 +- drivers/nvme/host/nvme.h | 4 + @@ -68,7 +67,9 @@ security/integrity/platform_certs/load_uefi.c | 6 +- security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 11 + - 70 files changed, 9164 insertions(+), 277 deletions(-) + sound/soc/codecs/rt712-sdca.c | 80 +- + sound/soc/codecs/rt712-sdca.h | 3 + + 71 files changed, 9231 insertions(+), 294 deletions(-) diff --git a/Documentation/hid/index.rst b/Documentation/hid/index.rst index af02cf7cfa820..baf156b44b58a 100644 @@ -672,7 +673,7 @@ index 0fa7c5728f1e6..e404279c86107 100644 M: Srinivas Pandruvada L: platform-driver-x86@vger.kernel.org diff --git a/Makefile b/Makefile -index f49182f3bae14..1a1d23c1b2938 100644 +index 3363645fa6242..ba71e36c832be 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -712,7 +713,7 @@ index f49182f3bae14..1a1d23c1b2938 100644 ifdef mixed-build # =========================================================================== # We're called with mixed targets (*config and build targets). -@@ -1905,6 +1928,23 @@ endif +@@ -1910,6 +1933,23 @@ endif ifdef CONFIG_MODULES @@ -9002,7 +9003,7 @@ index 599030e1e890b..74dd17d516c0b 100644 * iommu_setup_default_domain - Set the default_domain for the group * @group: Group to change diff --git a/drivers/media/i2c/ov08x40.c b/drivers/media/i2c/ov08x40.c -index b9682264e2f53..c2a399e3bb414 100644 +index b9682264e2f53..54575eea3c490 100644 --- a/drivers/media/i2c/ov08x40.c +++ b/drivers/media/i2c/ov08x40.c @@ -1322,9 +1322,6 @@ static int ov08x40_power_on(struct device *dev) @@ -9015,6 +9016,15 @@ index b9682264e2f53..c2a399e3bb414 100644 ret = clk_prepare_enable(ov08x->xvclk); if (ret < 0) { dev_err(dev, "failed to enable xvclk\n"); +@@ -1344,7 +1341,7 @@ static int ov08x40_power_on(struct device *dev) + } + + gpiod_set_value_cansleep(ov08x->reset_gpio, 0); +- usleep_range(1500, 1800); ++ usleep_range(5000, 5500); + + return 0; + @@ -1360,9 +1357,6 @@ static int ov08x40_power_off(struct device *dev) struct v4l2_subdev *sd = dev_get_drvdata(dev); struct ov08x40 *ov08x = to_ov08x40(sd); @@ -9055,7 +9065,7 @@ index b9682264e2f53..c2a399e3bb414 100644 return 0; } -@@ -1937,6 +1932,34 @@ static int ov08x40_stop_streaming(struct ov08x40 *ov08x) +@@ -1937,6 +1932,35 @@ static int ov08x40_stop_streaming(struct ov08x40 *ov08x) OV08X40_REG_VALUE_08BIT, OV08X40_MODE_STANDBY); } @@ -9082,6 +9092,7 @@ index b9682264e2f53..c2a399e3bb414 100644 + return -ENXIO; + } + ++ dev_dbg(&client->dev, "chip id 0x%x\n", val); + ov08x->identified = true; + + return 0; @@ -9090,7 +9101,7 @@ index b9682264e2f53..c2a399e3bb414 100644 static int ov08x40_set_stream(struct v4l2_subdev *sd, int enable) { struct ov08x40 *ov08x = to_ov08x40(sd); -@@ -1950,6 +1973,10 @@ static int ov08x40_set_stream(struct v4l2_subdev *sd, int enable) +@@ -1950,6 +1974,10 @@ static int ov08x40_set_stream(struct v4l2_subdev *sd, int enable) if (ret < 0) goto err_unlock; @@ -9101,7 +9112,7 @@ index b9682264e2f53..c2a399e3bb414 100644 /* * Apply default & customized values * and then start streaming. -@@ -1974,32 +2001,6 @@ static int ov08x40_set_stream(struct v4l2_subdev *sd, int enable) +@@ -1974,32 +2002,6 @@ static int ov08x40_set_stream(struct v4l2_subdev *sd, int enable) return ret; } @@ -9134,7 +9145,7 @@ index b9682264e2f53..c2a399e3bb414 100644 static const struct v4l2_subdev_video_ops ov08x40_video_ops = { .s_stream = ov08x40_set_stream, }; -@@ -2151,65 +2152,69 @@ static int ov08x40_check_hwcfg(struct ov08x40 *ov08x, struct device *dev) +@@ -2151,65 +2153,69 @@ static int ov08x40_check_hwcfg(struct ov08x40 *ov08x, struct device *dev) int ret; u32 xvclk_rate; @@ -9163,7 +9174,7 @@ index b9682264e2f53..c2a399e3bb414 100644 - xvclk_rate = clk_get_rate(ov08x->xvclk); + ov08x->reset_gpio = devm_gpiod_get_optional(dev, "reset", -+ GPIOD_OUT_LOW); ++ GPIOD_OUT_HIGH); + if (IS_ERR(ov08x->reset_gpio)) { + ret = dev_err_probe(dev, PTR_ERR(ov08x->reset_gpio), + "getting reset GPIO\n"); @@ -9240,7 +9251,7 @@ index b9682264e2f53..c2a399e3bb414 100644 ret = -EINVAL; goto out_err; } -@@ -2222,7 +2227,7 @@ static int ov08x40_check_hwcfg(struct ov08x40 *ov08x, struct device *dev) +@@ -2222,7 +2228,7 @@ static int ov08x40_check_hwcfg(struct ov08x40 *ov08x, struct device *dev) } if (j == bus_cfg.nr_of_link_frequencies) { @@ -9249,7 +9260,7 @@ index b9682264e2f53..c2a399e3bb414 100644 link_freq_menu_items[i]); ret = -EINVAL; goto out_err; -@@ -2246,10 +2251,8 @@ static int ov08x40_probe(struct i2c_client *client) +@@ -2246,10 +2252,8 @@ static int ov08x40_probe(struct i2c_client *client) /* Check HW config */ ret = ov08x40_check_hwcfg(ov08x, &client->dev); @@ -9261,7 +9272,7 @@ index b9682264e2f53..c2a399e3bb414 100644 /* Initialize subdev */ v4l2_i2c_subdev_init(&ov08x->sd, client, &ov08x40_subdev_ops); -@@ -2264,10 +2267,8 @@ static int ov08x40_probe(struct i2c_client *client) +@@ -2264,10 +2268,8 @@ static int ov08x40_probe(struct i2c_client *client) /* Check module identity */ ret = ov08x40_identify_module(ov08x); @@ -9273,7 +9284,7 @@ index b9682264e2f53..c2a399e3bb414 100644 } /* Set default mode to max resolution */ -@@ -2324,11 +2325,14 @@ static void ov08x40_remove(struct i2c_client *client) +@@ -2324,11 +2326,14 @@ static void ov08x40_remove(struct i2c_client *client) ov08x40_free_controls(ov08x); pm_runtime_disable(&client->dev); @@ -9290,7 +9301,7 @@ index b9682264e2f53..c2a399e3bb414 100644 #ifdef CONFIG_ACPI static const struct acpi_device_id ov08x40_acpi_ids[] = { {"OVTI08F4"}, -@@ -2349,6 +2353,7 @@ static struct i2c_driver ov08x40_i2c_driver = { +@@ -2349,6 +2354,7 @@ static struct i2c_driver ov08x40_i2c_driver = { .name = "ov08x40", .acpi_match_table = ACPI_PTR(ov08x40_acpi_ids), .of_match_table = ov08x40_of_match, @@ -9298,19 +9309,6 @@ index b9682264e2f53..c2a399e3bb414 100644 }, .probe = ov08x40_probe, .remove = ov08x40_remove, -diff --git a/drivers/misc/mei/vsc-tp.c b/drivers/misc/mei/vsc-tp.c -index 35d349fee7698..7be1649b19725 100644 ---- a/drivers/misc/mei/vsc-tp.c -+++ b/drivers/misc/mei/vsc-tp.c -@@ -502,7 +502,7 @@ static int vsc_tp_probe(struct spi_device *spi) - if (ret) - return ret; - -- tp->wakeuphost = devm_gpiod_get(dev, "wakeuphost", GPIOD_IN); -+ tp->wakeuphost = devm_gpiod_get(dev, "wakeuphostint", GPIOD_IN); - if (IS_ERR(tp->wakeuphost)) - return PTR_ERR(tp->wakeuphost); - diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 46e04b30f6425..063ffbe57ba94 100644 --- a/drivers/nvme/host/core.c @@ -9514,7 +9512,7 @@ index af62a8ed86200..bf275aac44e19 100644 if (err) goto err_out_driver; diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 906daf423cb02..5e69805e10162 100644 +index 145787c424e0c..85f92b85237cb 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -5856,6 +5856,13 @@ static void hub_event(struct work_struct *work) @@ -10591,3 +10589,134 @@ index f2bdbd55aa2bc..b37a79c4a6af7 100644 static struct security_hook_list lockdown_hooks[] __ro_after_init = { LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), }; +diff --git a/sound/soc/codecs/rt712-sdca.c b/sound/soc/codecs/rt712-sdca.c +index 78dbf9eed494b..19d99b9d4ab26 100644 +--- a/sound/soc/codecs/rt712-sdca.c ++++ b/sound/soc/codecs/rt712-sdca.c +@@ -652,6 +652,61 @@ static int rt712_sdca_fu0f_capture_put(struct snd_kcontrol *kcontrol, + return 1; + } + ++static int rt712_sdca_set_fu05_playback_ctl(struct rt712_sdca_priv *rt712) ++{ ++ int err; ++ unsigned int ch_01, ch_02; ++ ++ ch_01 = (rt712->fu05_dapm_mute || rt712->fu05_mixer_l_mute) ? 0x01 : 0x00; ++ ch_02 = (rt712->fu05_dapm_mute || rt712->fu05_mixer_r_mute) ? 0x01 : 0x00; ++ ++ err = regmap_write(rt712->regmap, ++ SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, ++ RT712_SDCA_CTL_FU_MUTE, CH_01), ch_01); ++ if (err < 0) ++ return err; ++ ++ err = regmap_write(rt712->regmap, ++ SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, ++ RT712_SDCA_CTL_FU_MUTE, CH_02), ch_02); ++ if (err < 0) ++ return err; ++ ++ return 0; ++} ++ ++static int rt712_sdca_fu05_playback_get(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_value *ucontrol) ++{ ++ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); ++ struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component); ++ ++ ucontrol->value.integer.value[0] = !rt712->fu05_mixer_l_mute; ++ ucontrol->value.integer.value[1] = !rt712->fu05_mixer_r_mute; ++ return 0; ++} ++ ++static int rt712_sdca_fu05_playback_put(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_value *ucontrol) ++{ ++ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); ++ struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component); ++ int err; ++ ++ if (rt712->fu05_mixer_l_mute == !ucontrol->value.integer.value[0] && ++ rt712->fu05_mixer_r_mute == !ucontrol->value.integer.value[1]) ++ return 0; ++ ++ rt712->fu05_mixer_l_mute = !ucontrol->value.integer.value[0]; ++ rt712->fu05_mixer_r_mute = !ucontrol->value.integer.value[1]; ++ ++ err = rt712_sdca_set_fu05_playback_ctl(rt712); ++ if (err < 0) ++ return err; ++ ++ return 1; ++} ++ + static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0); + static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0); + static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0); +@@ -674,6 +729,8 @@ static const struct snd_kcontrol_new rt712_sdca_controls[] = { + SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_PLATFORM_FU44, RT712_SDCA_CTL_FU_CH_GAIN, CH_02), + 8, 3, 0, + rt712_sdca_set_gain_get, rt712_sdca_set_gain_put, boost_vol_tlv), ++ SOC_DOUBLE_EXT("FU05 Playback Switch", SND_SOC_NOPM, 0, 1, 1, 0, ++ rt712_sdca_fu05_playback_get, rt712_sdca_fu05_playback_put), + }; + + static const struct snd_kcontrol_new rt712_sdca_spk_controls[] = { +@@ -766,28 +823,15 @@ static int rt712_sdca_fu05_event(struct snd_soc_dapm_widget *w, + struct snd_soc_component *component = + snd_soc_dapm_to_component(w->dapm); + struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component); +- unsigned char unmute = 0x0, mute = 0x1; + + switch (event) { + case SND_SOC_DAPM_POST_PMU: +- regmap_write(rt712->regmap, +- SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, +- RT712_SDCA_CTL_FU_MUTE, CH_01), +- unmute); +- regmap_write(rt712->regmap, +- SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, +- RT712_SDCA_CTL_FU_MUTE, CH_02), +- unmute); ++ rt712->fu05_dapm_mute = false; ++ rt712_sdca_set_fu05_playback_ctl(rt712); + break; + case SND_SOC_DAPM_PRE_PMD: +- regmap_write(rt712->regmap, +- SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, +- RT712_SDCA_CTL_FU_MUTE, CH_01), +- mute); +- regmap_write(rt712->regmap, +- SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_USER_FU05, +- RT712_SDCA_CTL_FU_MUTE, CH_02), +- mute); ++ rt712->fu05_dapm_mute = true; ++ rt712_sdca_set_fu05_playback_ctl(rt712); + break; + } + return 0; +@@ -1640,6 +1684,8 @@ int rt712_sdca_init(struct device *dev, struct regmap *regmap, + rt712->fu1e_dapm_mute = true; + rt712->fu1e_mixer_mute[0] = rt712->fu1e_mixer_mute[1] = + rt712->fu1e_mixer_mute[2] = rt712->fu1e_mixer_mute[3] = true; ++ rt712->fu05_dapm_mute = true; ++ rt712->fu05_mixer_l_mute = rt712->fu05_mixer_r_mute = false; + + /* JD source uses JD1 in default */ + rt712->jd_src = RT712_JD1; +diff --git a/sound/soc/codecs/rt712-sdca.h b/sound/soc/codecs/rt712-sdca.h +index a08491496d901..7ab7d5feb50a2 100644 +--- a/sound/soc/codecs/rt712-sdca.h ++++ b/sound/soc/codecs/rt712-sdca.h +@@ -42,6 +42,9 @@ struct rt712_sdca_priv { + bool fu0f_mixer_r_mute; + bool fu1e_dapm_mute; + bool fu1e_mixer_mute[4]; ++ bool fu05_dapm_mute; ++ bool fu05_mixer_l_mute; ++ bool fu05_mixer_r_mute; + }; + + struct rt712_dmic_kctrl_priv { diff --git a/sources b/sources index ba08d43bb..b4e064a72 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-6.13.6.tar.xz) = 2290e45305ff3f022da435081af4a568cb1fb3f8d37696318f93ce9adc198afc9a40ef310021eeb9912e21db63e3968681b2ca67caa0b5cf329887fb19f6e942 -SHA512 (kernel-abi-stablelists-6.13.6.tar.xz) = 92c1fd5b1c415f1cd576caba8353024bea2b1f431873594a9aa474abc7771e9058c790c37bf65e6f72fc1c7ac9241fbba16877df2f3cffaa554f838c0565e730 -SHA512 (kernel-kabi-dw-6.13.6.tar.xz) = 024cbd41540195018dbc5eabb1bf53fef8584a69c176a143b01bc5ee2650ac151263a417d227535a3ddb908d54a615d4b19ae9892fb3d57e3f482f71f195ac64 +SHA512 (linux-6.13.7.tar.xz) = dd98bd427f6b0c4fdf85882a6e8fb9a378f491255dcaba8854343b2e261875f96b82bdacd2a556f58751dc3b452c86ef8da02827a51e0e4e5eb1e67376e259a2 +SHA512 (kernel-abi-stablelists-6.13.7.tar.xz) = 93973b5bac6f6cdb99edc6df1ebeef254b598c6c23c96e705fbe264ba5300b3fe2b706749d1f9fe62a0b25caeca6568fea5d028ad20ee2d21aebd4c25c8f7aff +SHA512 (kernel-kabi-dw-6.13.7.tar.xz) = 11be634ecf8318ddf681a40510844eb0683e32245ab4e76e0983768f59cd3d393d0f67306594d6b2ff7c85a4bc257c0149bd9c70b762cb43704e8515ff853276