commit kernel-source for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2024-07-28 17:19:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new.1882 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "kernel-source" Sun Jul 28 17:19:05 2024 rev:740 rq:1189731 version:6.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2024-07-14 08:49:07.989440880 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new.1882/dtb-aarch64.changes 2024-07-28 17:19:21.815601410 +0200 @@ -1,0 +2,51 @@ +Thu Jul 25 12:37:14 CEST 2024 - jslaby@suse.cz + +- Revert "rpm/kernel-obs-build.spec.in: drop algif_hash from KERNEL_MODULES (bsc#1226463)" + This reverts commit c9c2e244cf9031882276be043b882ccf33835a4f. Openssl + was fixed: + https://build.opensuse.org/request/show/1189541 +- commit 178f0b6 + +------------------------------------------------------------------- +Thu Jul 25 09:08:41 CEST 2024 - jslaby@suse.cz + +- drm/amd/display: Take Synaptics Cascaded Topology into Account + (bsc#1228093 #3495). +- commit a4c3703 + +------------------------------------------------------------------- +Thu Jul 25 07:07:22 CEST 2024 - jslaby@suse.cz + +- Linux 6.10.1 (bsc#1012628). +- thermal: core: Allow thermal zones to tell the core to ignore + them (bsc#1012628). +- io_uring: fix error pbuf checking (bsc#1012628). +- ASoC: cs35l56: Limit Speaker Volume to +12dB maximum + (bsc#1012628). +- ASoC: cs35l56: Use header defines for Speaker Volume control + definition (bsc#1012628). +- tpm: Use auth only after NULL check in + tpm_buf_check_hmac_response() (bsc#1012628). +- cifs: Fix setting of zero_point after DIO write (bsc#1012628). +- cifs: Fix server re-repick on subrequest retry (bsc#1012628). +- cifs: fix noisy message on copy_file_range (bsc#1012628). +- cifs: Fix missing fscache invalidation (bsc#1012628). +- cifs: Fix missing error code set (bsc#1012628). +- ext4: use memtostr_pad() for s_volume_name (bsc#1012628). +- commit a57275a + +------------------------------------------------------------------- +Thu Jul 18 09:12:31 CEST 2024 - jslaby@suse.cz + +- Revert "drm/amd/display: FEC overhead should be checked once + for mst slot nums" (bsc#1228093 #3495). +- commit cee765e + +------------------------------------------------------------------- +Mon Jul 15 07:47:10 CEST 2024 - mkubecek@suse.cz + +- update to 6.10 final +- refresh configs (headers only) +- commit b8b0277 + +------------------------------------------------------------------- @@ -343,0 +395,8 @@ +Wed Jul 10 16:15:11 CEST 2024 - mkubecek@suse.cz + +- config: update arm configs +- arm64 and armv7hl + - DRM_MSM_VALIDATE_XML=n ("unsure") +- commit 92abc10 + +------------------------------------------------------------------- @@ -349,0 +409,69 @@ +Tue Jul 9 09:26:53 CEST 2024 - svarbanov@suse.de + +- config: update and reenable armv6hl configs + Option values mirrored from armv7hl +- commit c5191d9 + +------------------------------------------------------------------- +Tue Jul 9 09:19:59 CEST 2024 - svarbanov@suse.de + +- config: update and reenable armv7hl configs + Option values from arm64 and x86. +- commit 3e8ca13 + +------------------------------------------------------------------- +Mon Jul 8 13:52:23 CEST 2024 - svarbanov@suse.de + +- config: update and reenable arm64 configs + Options mirrored from x86_64, except: + +CONFIG_SCHED_HW_PRESSURE=y + +CONFIG_ARCH_AIROHA=y + +CONFIG_ARM64_WORKAROUND_SPECULATIVE_SSBS=y + +CONFIG_ARM64_ERRATUM_3194386=y + +CONFIG_ARM64_ERRATUM_3312417=y + +CONFIG_ARCH_WANTS_EXECMEM_LATE=y + +CONFIG_STM32_FIREWALL=y + +CONFIG_SPI_AIROHA_SNFI=m + +CONFIG_PINCTRL_SCMI=m + +CONFIG_GPIO_SWNODE_UNDEFINED=y + +CONFIG_GPIO_EN7523=m + +CONFIG_REGULATOR_SUN20I=m + +CONFIG_VIDEO_BCM2835_UNICAM=m + +CONFIG_DRM_DISPLAY_DP_AUX_BUS=m + +CONFIG_DRM_PANEL_LG_SW43408=m + +CONFIG_DRM_PANEL_RAYDIUM_RM69380=m + +CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7=m + +CONFIG_DRM_PANTHOR=m + +CONFIG_SND_SOC_MT8186_MT6366=m + +CONFIG_SND_SOC_RK3308=m + +CONFIG_USB_ONBOARD_DEV=m + +CONFIG_ARM64_PLATFORM_DEVICES=y + +CONFIG_EC_ACER_ASPIRE1=m + +CONFIG_COMMON_CLK_EN7523=y + +CONFIG_CLK_IMX95_BLK_CTL=m + +CONFIG_COMMON_CLK_MESON_VCLK=y + +CONFIG_COMMON_CLK_STM32MP257=y + +CONFIG_ARM_MHU_V3=m + +CONFIG_ARCH_R9A09G057=y + +CONFIG_AD7173=m + +CONFIG_AD7944=m + +CONFIG_AD9739A=m + +CONFIG_ADI_AXI_DAC=m + +CONFIG_APDS9306=m + +CONFIG_STM32_EXTI=y + +CONFIG_PHY_FSL_SAMSUNG_HDMI_PHY=m + +CONFIG_PHY_ROCKCHIP_USBDP=m + +CONFIG_ARM_TSTEE=m + +CONFIG_TRUSTED_KEYS_DCP=y + +CONFIG_CRYPTO_DEV_TEGRA=m +- commit aacb786 + +------------------------------------------------------------------- +Mon Jul 8 01:15:49 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc7 +- refresh + - patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch +- commit 45f4681 + +------------------------------------------------------------------- @@ -737,0 +866,6 @@ +Mon Jul 1 08:32:44 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc6 +- commit 3c2a141 + +------------------------------------------------------------------- @@ -1201,0 +1336,7 @@ +Sun Jun 23 23:37:17 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc5 +- refresh configs +- commit 0c5f39a + +------------------------------------------------------------------- @@ -2029,0 +2171,8 @@ +Sun Jun 16 22:59:28 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc4 +- update configs + - SERIAL_SC16IS7XX_CORE renamed to SERIAL_SC16IS7XX +- commit 3306b36 + +------------------------------------------------------------------- @@ -2737,0 +2887,129 @@ +Sun Jun 9 23:35:03 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc3 +- drop 1 mainline patch + - patches.suse/scsi-core-alua-I-O-errors-for-ALUA-state-transitions.patch +- commit 751e4fb + +------------------------------------------------------------------- +Mon Jun 3 02:33:33 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc2 +- commit 068a181 + +------------------------------------------------------------------- +Thu May 30 22:53:36 CEST 2024 - mkubecek@suse.cz + +- update to 6.10-rc1 +- drop 11 patches (5 mainline, 6 stable) + - patches.kernel.org/* + - patches.suse/ACPI-video-Add-backlight-native-quirk-for-Lenovo-Sli.patch + - patches.suse/btrfs-re-introduce-norecovery-mount-option.patch + - patches.suse/bus-mhi-host-add-mhi_power_down_no_destroy.patch + - patches.suse/net-qrtr-support-suspend-hibernation.patch + - patches.suse/wifi-ath11k-support-hibernation.patch +- refresh + - patches.rpmify/Add-ksym-provides-tool.patch + - patches.suse/btrfs-provide-super_operations-get_inode_dev +- disable ARM architectures (need config update) +- new config options + - General setup + - BASE_SMALL=n + - Processor type and features + - X86_POSTED_MSI=n + - Virtualization + - KVM_INTEL_PROVE_VE=n + - Networking support + - SMC_LO=n + - BT_INTEL_PCIE=m + - File systems + - EROFS_FS_ZIP_ZSTD=y + - Security options + - INIT_MLOCKED_ON_FREE_DEFAULT_ON=n + - Kernel hacking + - FTRACE_VALIDATE_RCU_IS_WATCHING=n + - Network device support + - PFCP=m + - AIR_EN8811H_PHY=m + - PSE_PD692X0=m + - PSE_TPS23881=m + - RTW88_8723CS=m + - RTW89_8922AE=m + - Hardware Monitoring support + - SENSORS_LENOVO_EC=m + - SENSORS_ADP1050=m + - SENSORS_XDP710=m + - SENSORS_PWM_FAN=m + - Graphics support + - DRM_DISPLAY_DP_AUX_CEC=y + - DRM_DISPLAY_DP_AUX_CHARDEV=y + - DRM_WERROR=n + - Sound card support + - SND_SOC_AMD_ACP63_TOPLEVEL=m + - SND_SOC_PCM6240=n + - X86 Platform Specific Device Drivers + - YT2_1380=m + - AMD_MP2_STB=y + - DELL_UART_BACKLIGHT=m + - ACPI_QUICKSTART=m + - MEEGOPAD_ANX7428=m + - MSI_WMI_PLATFORM=m + - LENOVO_WMI_CAMERA=m + - Industrial I/O support + - AD7173=n + - AD7944=n + - AD9739A=n + - ADI_AXI_DAC=n + - APDS9306=n + - Misc drivers + - TCG_TPM2_HMAC=y + - I2C_ZHAOXIN=m + - GPIO_GRANITERAPIDS=m + - LENOVO_SE10_WDT=m + - VIDEO_INTEL_IPU6=m + - HID_WINWING=m + - RTC_DRV_RX8111=m + - QAT_VFIO_PCI=m + - VIRTIO_DEBUG=n + - FPGA_MGR_XILINX_SELECTMAP=m + - OF dependent (i386, ppc64le, riscv64) + - DRM_PANEL_LG_SW43408=n + - DRM_PANEL_RAYDIUM_RM69380=n + - DRM_PANEL_SAMSUNG_S6E3FA7=n + - USB_ONBOARD_DEV=m + - i386 + - ARM_MHU_V3=m + - i386/default + - NET_SB1000=n + - CAN_SJA1000_ISA=n + - ppc64le + - CRASH_HOTPLUG=y + - CRASH_MAX_MEMORY_RANGES=8192 (default) + - SERIAL_SC16IS7XX_CORE=n + - VMGENID=y + - SOFTLOCKUP_DETECTOR_INTR_STORM=y + - TEST_FPU=n + - s390x + - KERNEL_IMAGE_BASE=0x3FFE0000000 (default) + - AP=y + - AP_DEBUG=n + - HAMRADIO=n + - SERIAL_SC16IS7XX_CORE=n + - VMGENID=y + - s390x/zfcpdump + - BPF_JIT=n + - KPROBES=n + - MEM_ALLOC_PROFILING=n + - TEST_BITOPS=n + - riscv64 + - KERNEL_GZIP=y + - ARCH_MICROCHIP=y + - I2C_CADENCE=m + - REGULATOR_SUN20I=m + - DRM_AMD_SECURE_DISPLAY=n + - CLK_SOPHGO_CV1800=m + - ARM_MHU_V3=m + - TEST_FPU=n +- commit 6be9abf + +------------------------------------------------------------------- @@ -3474 +3752 @@ -- commit 7b500d2 +- commit b14bc87 @@ -3557,0 +3836 @@ +- drm/nouveau/disp: Fix missing backlight control on Macbook 5,1 (bsc#1223838). @@ -3560 +3839 @@ -- commit 2045ec5 +- commit db10868 dtb-armv6l.changes: same change dtb-armv7l.changes: same change dtb-riscv64.changes: same change kernel-64kb.changes: same change kernel-debug.changes: same change kernel-default.changes: same change kernel-docs.changes: same change kernel-kvmsmall.changes: same change kernel-lpae.changes: same change kernel-obs-build.changes: same change kernel-obs-qa.changes: same change kernel-pae.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-vanilla.changes: same change kernel-zfcpdump.changes: same change Old: ---- linux-6.9.tar.sign linux-6.9.tar.xz New: ---- linux-6.10.tar.sign linux-6.10.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtb-aarch64.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.188135924 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.192136084 +0200 @@ -16,8 +16,8 @@ # -%define srcversion 6.9 -%define patchversion 6.9.9 +%define srcversion 6.10 +%define patchversion 6.10.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -25,9 +25,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: dtb-aarch64 -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif dtb-armv6l.spec: same change dtb-armv7l.spec: same change dtb-riscv64.spec: same change ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.340142000 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.344142159 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -36,9 +36,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-64kb -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif kernel-debug.spec: same change kernel-default.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.456146636 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.460146797 +0200 @@ -16,9 +16,9 @@ # -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %define build_html 1 %define build_pdf 0 @@ -28,9 +28,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-docs -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif ++++++ kernel-kvmsmall.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.500148395 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.504148555 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -36,9 +36,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-kvmsmall -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif kernel-lpae.spec: same change ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.576151433 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.580151593 +0200 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 6.9.9 +%define patchversion 6.10.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -38,16 +38,16 @@ %endif %endif %endif -%global kernel_package kernel%kernel_flavor-srchash-8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%global kernel_package kernel%kernel_flavor-srchash-178f0b6b0edb584f81ff83551bd7fd141a077216 %endif %if 0%{?rhel_version} %global kernel_package kernel %endif Name: kernel-obs-build -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif @@ -127,7 +127,7 @@ loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg - aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter + algif_hash aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter iso9660" # manually load all modules to make sure they're available ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.616153032 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.620153192 +0200 @@ -17,15 +17,15 @@ # needsrootforbuild -%define patchversion 6.9.9 +%define patchversion 6.10.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros Name: kernel-obs-qa -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.672155270 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.676155431 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -36,9 +36,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-pae -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.720157189 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.720157189 +0200 @@ -16,9 +16,9 @@ # -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -26,9 +26,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-source -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.772159268 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.776159427 +0200 @@ -16,16 +16,16 @@ # -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %include %_sourcedir/kernel-spec-macros Name: kernel-syms -Version: 6.9.9 +Version: 6.10.1 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:35.816161027 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:35.820161187 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.9 -%define patchversion 6.9.9 -%define git_commit 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +%define srcversion 6.10 +%define patchversion 6.10.1 +%define git_commit 178f0b6b0edb584f81ff83551bd7fd141a077216 %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -36,9 +36,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-vanilla -Version: 6.9.9 +Version: 6.10.1 %if 0%{?is_kotd} -Release: <RELEASE>.g8c0f797 +Release: <RELEASE>.g178f0b6 %else Release: 0 %endif kernel-zfcpdump.spec: same change ++++++ config.sh ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:36.108172699 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:36.112172859 +0200 @@ -1,5 +1,5 @@ # The version of the main tarball to use -SRCVERSION=6.9 +SRCVERSION=6.10 # variant of the kernel-source package, either empty or "-rt" VARIANT= # enable kernel module compression ++++++ config.tar.bz2 ++++++ ++++ 5090 lines of diff (skipped) ++++++ kernel-obs-build.spec.in ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:36.568191086 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:36.572191246 +0200 @@ -127,7 +127,7 @@ loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg - aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter + algif_hash aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter iso9660" # manually load all modules to make sure they're available ++++++ linux-6.9.tar.xz -> linux-6.10.tar.xz ++++++ /work/SRC/openSUSE:Factory/kernel-source/linux-6.9.tar.xz /work/SRC/openSUSE:Factory/.kernel-source.new.1882/linux-6.10.tar.xz differ: char 15, line 1 ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 170959 lines of diff (skipped) ++++++ patches.rpmify.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/Add-ksym-provides-tool.patch new/patches.rpmify/Add-ksym-provides-tool.patch --- old/patches.rpmify/Add-ksym-provides-tool.patch 2024-01-26 07:08:43.000000000 +0100 +++ new/patches.rpmify/Add-ksym-provides-tool.patch 2024-05-30 22:53:36.000000000 +0200 @@ -13,8 +13,8 @@ --- a/scripts/mod/Makefile +++ b/scripts/mod/Makefile -@@ -2,11 +2,15 @@ - OBJECT_FILES_NON_STANDARD := y +@@ -1,11 +1,15 @@ + # SPDX-License-Identifier: GPL-2.0 CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO) -hostprogs-always-y += modpost mk_elfconfig ++++++ patches.suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/ALSA-hda-realtek-Fix-conflicting-quirk-for-PCI-SSID-.patch new/patches.suse/ALSA-hda-realtek-Fix-conflicting-quirk-for-PCI-SSID-.patch --- old/patches.suse/ALSA-hda-realtek-Fix-conflicting-quirk-for-PCI-SSID-.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/ALSA-hda-realtek-Fix-conflicting-quirk-for-PCI-SSID-.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,77 +0,0 @@ -From: Takashi Iwai <tiwai@suse.de> -Date: Tue, 25 Jun 2024 17:52:12 +0200 -Subject: ALSA: hda/realtek: Fix conflicting quirk for PCI SSID 17aa:3820 -Git-commit: d3710853fd4a7020904a16686986cf5541ad1c38 -Patch-mainline: v6.10-rc6 -References: git-fixes - -The recent fix for Lenovo IdeaPad 330-17IKB replaced the quirk entry, -and this eventually breaks the existing quirk for Lenovo Yoga Duet 7 -13ITL6 equipped with the same PCI SSID 17aa:3820. - -For applying a proper quirk for each model, check the codec SSID -additionally. Fortunately Yoga Duet has a different codec SSID, -0x17aa3802. - -(Interestingly, 17aa:3802 has another conflict of SSID between another -Yoga model vs 14IRP8 which we had to work around similarly.) - -Fixes: b1fd0d1285b1 ("ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM") -Link: https://patch.msgid.link/20240625155217.18767-1-tiwai@suse.de -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Jiri Slaby <jslaby@suse.cz> ---- - sound/pci/hda/patch_realtek.c | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -7515,6 +7515,7 @@ enum { - ALC285_FIXUP_ASUS_GU605_SPI_2_HEADSET_MIC, - ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1, - ALC287_FIXUP_LENOVO_THKPAD_WH_ALC1318, -+ ALC287_FIXUP_LENOVO_SSID_17AA3820, - }; - - /* A special fixup for Lenovo C940 and Yoga Duet 7; -@@ -7571,6 +7572,20 @@ static void alc287_fixup_lenovo_legion_7 - __snd_hda_apply_fixup(codec, id, action, 0); - } - -+/* Yet more conflicting PCI SSID (17aa:3820) on two Lenovo models */ -+static void alc287_fixup_lenovo_ssid_17aa3820(struct hda_codec *codec, -+ const struct hda_fixup *fix, -+ int action) -+{ -+ int id; -+ -+ if (codec->core.subsystem_id == 0x17aa3820) -+ id = ALC269_FIXUP_ASPIRE_HEADSET_MIC; /* IdeaPad 330-17IKB 81DM */ -+ else /* 0x17aa3802 */ -+ id = ALC287_FIXUP_YOGA7_14ITL_SPEAKERS; /* "Yoga Duet 7 13ITL6 */ -+ __snd_hda_apply_fixup(codec, id, action, 0); -+} -+ - static const struct hda_fixup alc269_fixups[] = { - [ALC269_FIXUP_GPIO2] = { - .type = HDA_FIXUP_FUNC, -@@ -9797,6 +9812,10 @@ static const struct hda_fixup alc269_fix - .chained = true, - .chain_id = ALC269_FIXUP_THINKPAD_ACPI - }, -+ [ALC287_FIXUP_LENOVO_SSID_17AA3820] = { -+ .type = HDA_FIXUP_FUNC, -+ .v.func = alc287_fixup_lenovo_ssid_17aa3820, -+ }, - }; - - static const struct snd_pci_quirk alc269_fixup_tbl[] = { -@@ -10494,7 +10513,7 @@ static const struct snd_pci_quirk alc269 - SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS), - SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), - SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS), -- SND_PCI_QUIRK(0x17aa, 0x3820, "IdeaPad 330-17IKB 81DM", ALC269_FIXUP_ASPIRE_HEADSET_MIC), -+ SND_PCI_QUIRK(0x17aa, 0x3820, "IdeaPad 330 / Yoga Duet 7", ALC287_FIXUP_LENOVO_SSID_17AA3820), - SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS), - SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF), - SND_PCI_QUIRK(0x17aa, 0x3834, "Lenovo IdeaPad Slim 9i 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-provide-super_operations-get_inode_dev new/patches.suse/btrfs-provide-super_operations-get_inode_dev --- old/patches.suse/btrfs-provide-super_operations-get_inode_dev 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/btrfs-provide-super_operations-get_inode_dev 2024-07-25 09:08:55.000000000 +0200 @@ -14,8 +14,8 @@ --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c -@@ -2365,6 +2365,11 @@ static int btrfs_show_devname(struct seq_file *m, struct dentry *root) - return 0; +@@ -2397,6 +2397,11 @@ static long btrfs_free_cached_objects(struct super_block *sb, struct shrink_cont + return btrfs_free_extent_maps(fs_info, nr_to_scan); } +static dev_t btrfs_get_inode_dev(const struct inode *inode) @@ -26,10 +26,10 @@ static const struct super_operations btrfs_super_ops = { .drop_inode = btrfs_drop_inode, .evict_inode = btrfs_evict_inode, -@@ -2378,6 +2383,7 @@ static const struct super_operations btrfs_super_ops = { - .statfs = btrfs_statfs, - .freeze_fs = btrfs_freeze, +@@ -2412,6 +2417,7 @@ static const struct super_operations btrfs_super_ops = { .unfreeze_fs = btrfs_unfreeze, + .nr_cached_objects = btrfs_nr_cached_objects, + .free_cached_objects = btrfs_free_cached_objects, + .get_inode_dev = btrfs_get_inode_dev, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/bus-mhi-host-add-mhi_power_down_no_destroy.patch new/patches.suse/bus-mhi-host-add-mhi_power_down_no_destroy.patch --- old/patches.suse/bus-mhi-host-add-mhi_power_down_no_destroy.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/bus-mhi-host-add-mhi_power_down_no_destroy.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,208 +0,0 @@ -From: Baochen Qiang <quic_bqiang@quicinc.com> -Date: Tue, 5 Mar 2024 10:13:18 +0800 -Subject: bus: mhi: host: Add mhi_power_down_keep_dev() API to support system - suspend/hibernation -Git-commit: 813e0ae613d6ee1b3e11f1c41f8b9e9df8ef0493 -Patch-mainline: v6.10-rc1 -References: bsc#1207948 - -Currently, ath11k fails to resume from system suspend/hibernation on some -the x86 host machines with below error message: - -``` -ath11k_pci 0000:06:00.0: timeout while waiting for restart complete -``` - -This happens because, ath11k powers down the MHI stack during suspend and -that leads to destruction of the struct device associated with the MHI -channels. And during resume, ath11k calls calling mhi_sync_power_up() to -power up the MHI subsystem and that eventually calls the driver framework's -device_add() API from mhi_create_devices(). But the PM framework blocks the -struct device creation during device_add() and this leads to probe deferral -as below: - -``` -mhi mhi0_IPCR: Driver qcom_mhi_qrtr force probe deferral -``` - -The reason for deferring device creation during resume is explained in -dpm_prepare(): - - /* - * It is unsafe if probing of devices will happen during suspend or - * hibernation and system behavior will be unpredictable in this - * case. So, let's prohibit device's probing here and defer their - * probes instead. The normal behavior will be restored in - * dpm_complete(). - */ - -Due to the device probe deferral, qcom_mhi_qrtr_probe() API is not getting -called during resume and thus MHI channels are not prepared. So this blocks -the QMI messages from being transferred between ath11k and firmware, -resulting in a firmware initialization failure. - -After consulting with Rafael, it was decided to not destroy the struct -device for the MHI channels during system suspend/hibernation because the -device is bound to appear again during resume. - -So to achieve this, a new API called mhi_power_down_keep_dev() is -introduced for MHI controllers to keep the struct device when required. -This API is similar to the existing mhi_power_down() API, except that it -keeps the struct device associated with MHI channels instead of destroying -them. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 - -Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> -Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> -Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com> -Link: https://lore.kernel.org/r/20240305021320.3367-2-quic_bqiang@quicinc.com -[mani: reworded the commit message and subject] -Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> -Acked-by: Takashi Iwai <tiwai@suse.de> ---- - drivers/bus/mhi/host/internal.h | 4 ++- - drivers/bus/mhi/host/pm.c | 42 ++++++++++++++++++++++++++++++++++------ - include/linux/mhi.h | 18 ++++++++++++++++- - 3 files changed, 56 insertions(+), 8 deletions(-) - ---- a/drivers/bus/mhi/host/internal.h -+++ b/drivers/bus/mhi/host/internal.h -@@ -80,6 +80,7 @@ enum dev_st_transition { - DEV_ST_TRANSITION_FP, - DEV_ST_TRANSITION_SYS_ERR, - DEV_ST_TRANSITION_DISABLE, -+ DEV_ST_TRANSITION_DISABLE_DESTROY_DEVICE, - DEV_ST_TRANSITION_MAX, - }; - -@@ -90,7 +91,8 @@ enum dev_st_transition { - dev_st_trans(MISSION_MODE, "MISSION MODE") \ - dev_st_trans(FP, "FLASH PROGRAMMER") \ - dev_st_trans(SYS_ERR, "SYS ERROR") \ -- dev_st_trans_end(DISABLE, "DISABLE") -+ dev_st_trans(DISABLE, "DISABLE") \ -+ dev_st_trans_end(DISABLE_DESTROY_DEVICE, "DISABLE (DESTROY DEVICE)") - - extern const char * const dev_state_tran_str[DEV_ST_TRANSITION_MAX]; - #define TO_DEV_STATE_TRANS_STR(state) (((state) >= DEV_ST_TRANSITION_MAX) ? \ ---- a/drivers/bus/mhi/host/pm.c -+++ b/drivers/bus/mhi/host/pm.c -@@ -468,7 +468,8 @@ error_mission_mode: - } - - /* Handle shutdown transitions */ --static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl) -+static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl, -+ bool destroy_device) - { - enum mhi_pm_state cur_state; - struct mhi_event *mhi_event; -@@ -530,8 +531,16 @@ skip_mhi_reset: - dev_dbg(dev, "Waiting for all pending threads to complete\n"); - wake_up_all(&mhi_cntrl->state_event); - -- dev_dbg(dev, "Reset all active channels and remove MHI devices\n"); -- device_for_each_child(&mhi_cntrl->mhi_dev->dev, NULL, mhi_destroy_device); -+ /* -+ * Only destroy the 'struct device' for channels if indicated by the -+ * 'destroy_device' flag. Because, during system suspend or hibernation -+ * state, there is no need to destroy the 'struct device' as the endpoint -+ * device would still be physically attached to the machine. -+ */ -+ if (destroy_device) { -+ dev_dbg(dev, "Reset all active channels and remove MHI devices\n"); -+ device_for_each_child(&mhi_cntrl->mhi_dev->dev, NULL, mhi_destroy_device); -+ } - - mutex_lock(&mhi_cntrl->pm_mutex); - -@@ -821,7 +830,10 @@ void mhi_pm_st_worker(struct work_struct - mhi_pm_sys_error_transition(mhi_cntrl); - break; - case DEV_ST_TRANSITION_DISABLE: -- mhi_pm_disable_transition(mhi_cntrl); -+ mhi_pm_disable_transition(mhi_cntrl, false); -+ break; -+ case DEV_ST_TRANSITION_DISABLE_DESTROY_DEVICE: -+ mhi_pm_disable_transition(mhi_cntrl, true); - break; - default: - break; -@@ -1175,7 +1187,8 @@ error_exit: - } - EXPORT_SYMBOL_GPL(mhi_async_power_up); - --void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful) -+static void __mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful, -+ bool destroy_device) - { - enum mhi_pm_state cur_state, transition_state; - struct device *dev = &mhi_cntrl->mhi_dev->dev; -@@ -1211,15 +1224,32 @@ void mhi_power_down(struct mhi_controlle - write_unlock_irq(&mhi_cntrl->pm_lock); - mutex_unlock(&mhi_cntrl->pm_mutex); - -- mhi_queue_state_transition(mhi_cntrl, DEV_ST_TRANSITION_DISABLE); -+ if (destroy_device) -+ mhi_queue_state_transition(mhi_cntrl, -+ DEV_ST_TRANSITION_DISABLE_DESTROY_DEVICE); -+ else -+ mhi_queue_state_transition(mhi_cntrl, -+ DEV_ST_TRANSITION_DISABLE); - - /* Wait for shutdown to complete */ - flush_work(&mhi_cntrl->st_worker); - - disable_irq(mhi_cntrl->irq[0]); - } -+ -+void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful) -+{ -+ __mhi_power_down(mhi_cntrl, graceful, true); -+} - EXPORT_SYMBOL_GPL(mhi_power_down); - -+void mhi_power_down_keep_dev(struct mhi_controller *mhi_cntrl, -+ bool graceful) -+{ -+ __mhi_power_down(mhi_cntrl, graceful, false); -+} -+EXPORT_SYMBOL_GPL(mhi_power_down_keep_dev); -+ - int mhi_sync_power_up(struct mhi_controller *mhi_cntrl) - { - int ret = mhi_async_power_up(mhi_cntrl); ---- a/include/linux/mhi.h -+++ b/include/linux/mhi.h -@@ -630,13 +630,29 @@ int mhi_async_power_up(struct mhi_contro - int mhi_sync_power_up(struct mhi_controller *mhi_cntrl); - - /** -- * mhi_power_down - Start MHI power down sequence -+ * mhi_power_down - Power down the MHI device and also destroy the -+ * 'struct device' for the channels associated with it. -+ * See also mhi_power_down_keep_dev() which is a variant -+ * of this API that keeps the 'struct device' for channels -+ * (useful during suspend/hibernation). - * @mhi_cntrl: MHI controller - * @graceful: Link is still accessible, so do a graceful shutdown process - */ - void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful); - - /** -+ * mhi_power_down_keep_dev - Power down the MHI device but keep the 'struct -+ * device' for the channels associated with it. -+ * This is a variant of 'mhi_power_down()' and -+ * useful in scenarios such as suspend/hibernation -+ * where destroying of the 'struct device' is not -+ * needed. -+ * @mhi_cntrl: MHI controller -+ * @graceful: Link is still accessible, so do a graceful shutdown process -+ */ -+void mhi_power_down_keep_dev(struct mhi_controller *mhi_cntrl, bool graceful); -+ -+/** - * mhi_unprepare_after_power_down - Free any allocated memory after power down - * @mhi_cntrl: MHI controller - */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch new/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch --- old/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch 2024-07-25 09:08:55.000000000 +0200 @@ -46,12 +46,12 @@ Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> --- - drivers/firmware/sysfb.c | 18 +++++++++++++++++- + drivers/firmware/sysfb.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) --- a/drivers/firmware/sysfb.c +++ b/drivers/firmware/sysfb.c -@@ -111,6 +111,22 @@ static __init struct device *sysfb_paren +@@ -111,6 +111,22 @@ static __init struct device *sysfb_parent_dev(const struct screen_info *si) return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/drm-amd-display-Take-Synaptics-Cascaded-Topology-int.patch new/patches.suse/drm-amd-display-Take-Synaptics-Cascaded-Topology-int.patch --- old/patches.suse/drm-amd-display-Take-Synaptics-Cascaded-Topology-int.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/drm-amd-display-Take-Synaptics-Cascaded-Topology-int.patch 2024-07-25 09:08:55.000000000 +0200 @@ -0,0 +1,140 @@ +From: Fangzhi Zuo <Jerry.Zuo@amd.com> +Date: Tue, 23 Jul 2024 17:14:13 -0400 +Subject: drm/amd/display: Take Synaptics Cascaded Topology into Account +Patch-mainline: submitted https://gitlab.freedesktop.org/drm/amd/-/issues/3495#note_2501831 +References: bsc#1228093 #3495 + +Synaptics Cascaded MST hub has chained MST branch device which +requires additional bw overhead. + +Signed-off-by: Fangzhi Zuo <Jerry.Zuo@amd.com> +Signed-off-by: Jiri Slaby <jslaby@suse.cz> + +--- +[v2] call is_synaptics_cascaded_panamera() unconditionally + +Signed-off-by: Jiri Slaby <jslaby@suse.cz> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 1 + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 25 +++++++----- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 3 + + 3 files changed, 19 insertions(+), 10 deletions(-) + +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +@@ -662,6 +662,7 @@ struct amdgpu_dm_connector { + struct amdgpu_dm_connector *mst_root; + struct drm_dp_aux *dsc_aux; + struct mutex handle_mst_msg_ready; ++ bool is_synaptics_cascaded; + + /* TODO see if we can merge with ddc_bus or make a dm_connector */ + struct amdgpu_i2c_adapter *i2c; +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +@@ -248,8 +248,9 @@ static bool validate_dsc_caps_on_connect + needs_dsc_aux_workaround(aconnector->dc_link)) + aconnector->dsc_aux = &aconnector->mst_root->dm_dp_aux.aux; + ++ aconnector->is_synaptics_cascaded = is_synaptics_cascaded_panamera(aconnector->dc_link, port); + /* synaptics cascaded MST hub case */ +- if (!aconnector->dsc_aux && is_synaptics_cascaded_panamera(aconnector->dc_link, port)) ++ if (!aconnector->dsc_aux && aconnector->is_synaptics_cascaded) + aconnector->dsc_aux = port->mgr->aux; + + if (!aconnector->dsc_aux) +@@ -794,12 +795,17 @@ struct dsc_mst_fairness_params { + struct amdgpu_dm_connector *aconnector; + }; + +-static int kbps_to_peak_pbn(int kbps) ++static int kbps_to_peak_pbn(int kbps, struct amdgpu_dm_connector *aconnector) + { + u64 peak_kbps = kbps; + + peak_kbps *= 1006; + peak_kbps = div_u64(peak_kbps, 1000); ++ if (aconnector->is_synaptics_cascaded) { ++ printk("Synaptics Cascaded Overhead Adjustment.\n"); ++ peak_kbps *= PBN_FEC_OVERHEAD_MULTIPLIER_8B_10B; ++ peak_kbps = div_u64(peak_kbps, 1000); ++ } + return (int) DIV64_U64_ROUND_UP(peak_kbps * 64, (54 * 8 * 1000)); + } + +@@ -904,7 +910,7 @@ static int increase_dsc_bpp(struct drm_a + for (i = 0; i < count; i++) { + if (vars[i + k].dsc_enabled) { + initial_slack[i] = +- kbps_to_peak_pbn(params[i].bw_range.max_kbps) - vars[i + k].pbn; ++ kbps_to_peak_pbn(params[i].bw_range.max_kbps, params[i].aconnector) - vars[i + k].pbn; + bpp_increased[i] = false; + remaining_to_increase += 1; + } else { +@@ -1029,7 +1035,7 @@ static int try_disable_dsc(struct drm_at + if (next_index == -1) + break; + +- vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.stream_kbps); ++ vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.stream_kbps, params[i].aconnector); + ret = drm_dp_atomic_find_time_slots(state, + params[next_index].port->mgr, + params[next_index].port, +@@ -1043,7 +1049,7 @@ static int try_disable_dsc(struct drm_at + vars[next_index].bpp_x16 = 0; + } else { + vars[next_index].pbn = kbps_to_peak_pbn( +- params[next_index].bw_range.max_kbps); ++ params[next_index].bw_range.max_kbps, params[i].aconnector); + ret = drm_dp_atomic_find_time_slots(state, + params[next_index].port->mgr, + params[next_index].port, +@@ -1135,8 +1141,7 @@ static int compute_mst_dsc_configs_for_l + + /* Try no compression */ + for (i = 0; i < count; i++) { +- vars[i + k].aconnector = params[i].aconnector; +- vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps); ++ vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps, params[i].aconnector); + vars[i + k].dsc_enabled = false; + vars[i + k].bpp_x16 = 0; + ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, params[i].port, +@@ -1155,7 +1160,7 @@ static int compute_mst_dsc_configs_for_l + /* Try max compression */ + for (i = 0; i < count; i++) { + if (params[i].compression_possible && params[i].clock_force_enable != DSC_CLK_FORCE_DISABLE) { +- vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.min_kbps); ++ vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.min_kbps, params[i].aconnector); + vars[i + k].dsc_enabled = true; + vars[i + k].bpp_x16 = params[i].bw_range.min_target_bpp_x16; + ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, +@@ -1163,7 +1168,7 @@ static int compute_mst_dsc_configs_for_l + if (ret < 0) + return ret; + } else { +- vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps); ++ vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps, params[i].aconnector); + vars[i + k].dsc_enabled = false; + vars[i + k].bpp_x16 = 0; + ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, +@@ -1658,7 +1663,7 @@ enum dc_status dm_dp_mst_is_port_support + dc_bandwidth_in_kbps_from_timing(&stream->timing, + dc_link_get_highest_encoding_format(stream->link)); + +- pbn = kbps_to_peak_pbn(stream_kbps); ++ pbn = kbps_to_peak_pbn(stream_kbps, aconnector); + pbn_div = dm_mst_get_pbn_divider(stream->link); + slot_num = DIV_ROUND_UP(pbn, pbn_div); + +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h +@@ -46,6 +46,9 @@ + #define SYNAPTICS_CASCADED_HUB_ID 0x5A + #define IS_SYNAPTICS_CASCADED_PANAMERA(devName, data) ((IS_SYNAPTICS_PANAMERA(devName) && ((int)data[2] == SYNAPTICS_CASCADED_HUB_ID)) ? 1 : 0) + ++#define PBN_FEC_OVERHEAD_MULTIPLIER_8B_10B 1031 ++#define PBN_FEC_OVERHEAD_MULTIPLIER_128B_132B 1000 ++ + enum mst_msg_ready_type { + NONE_MSG_RDY_EVENT = 0, + DOWN_REP_MSG_RDY_EVENT = 1, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/net-qrtr-support-suspend-hibernation.patch new/patches.suse/net-qrtr-support-suspend-hibernation.patch --- old/patches.suse/net-qrtr-support-suspend-hibernation.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/net-qrtr-support-suspend-hibernation.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,95 +0,0 @@ -From: Baochen Qiang <quic_bqiang@quicinc.com> -Date: Mon, 8 Apr 2024 17:41:50 +0300 -Subject: net: qrtr: support suspend/hibernation -Git-commit: e0cd1185900e638d41d9cccb4c259051e05f69e9 -Patch-mainline: v6.10-rc1 -References: bsc#1207948 - -MHI devices may not be destroyed during suspend/hibernation, so need -to unprepare/prepare MHI channels throughout the transition, this is -done by adding suspend/resume callbacks. - -The suspend callback is called in the late suspend stage, this means -MHI channels are still alive at suspend stage, and that makes it -possible for an MHI controller driver to communicate with others over -those channels at suspend stage. While the resume callback is called -in the early resume stage, for a similar reason. - -Also note that we won't do unprepare/prepare when MHI device is in -suspend state because it's pointless if MHI is only meant to go through -a suspend/resume transition, instead of a complete power cycle. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 - -Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> -Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> -Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com> -Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> -Link: https://msgid.link/20240305021320.3367-3-quic_bqiang@quicinc.com -Acked-by: Takashi Iwai <tiwai@suse.de> ---- - net/qrtr/mhi.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 46 insertions(+) - ---- a/net/qrtr/mhi.c -+++ b/net/qrtr/mhi.c -@@ -118,6 +118,51 @@ static const struct mhi_device_id qcom_m - }; - MODULE_DEVICE_TABLE(mhi, qcom_mhi_qrtr_id_table); - -+static int __maybe_unused qcom_mhi_qrtr_pm_suspend_late(struct device *dev) -+{ -+ struct mhi_device *mhi_dev = container_of(dev, struct mhi_device, dev); -+ enum mhi_state state; -+ -+ state = mhi_get_mhi_state(mhi_dev->mhi_cntrl); -+ /* -+ * If the device is in suspend state, then no need for the -+ * client driver to unprepare the channels. -+ */ -+ if (state == MHI_STATE_M3) -+ return 0; -+ -+ mhi_unprepare_from_transfer(mhi_dev); -+ -+ return 0; -+} -+ -+static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev) -+{ -+ struct mhi_device *mhi_dev = container_of(dev, struct mhi_device, dev); -+ enum mhi_state state; -+ int rc; -+ -+ state = mhi_get_mhi_state(mhi_dev->mhi_cntrl); -+ /* -+ * If the device is in suspend state, we won't unprepare channels -+ * in suspend callback, therefore no need to prepare channels when -+ * resume. -+ */ -+ if (state == MHI_STATE_M3) -+ return 0; -+ -+ rc = mhi_prepare_for_transfer_autoqueue(mhi_dev); -+ if (rc) -+ dev_err(dev, "failed to prepare for autoqueue transfer %d\n", rc); -+ -+ return rc; -+} -+ -+static const struct dev_pm_ops qcom_mhi_qrtr_pm_ops = { -+ SET_LATE_SYSTEM_SLEEP_PM_OPS(qcom_mhi_qrtr_pm_suspend_late, -+ qcom_mhi_qrtr_pm_resume_early) -+}; -+ - static struct mhi_driver qcom_mhi_qrtr_driver = { - .probe = qcom_mhi_qrtr_probe, - .remove = qcom_mhi_qrtr_remove, -@@ -126,6 +171,7 @@ static struct mhi_driver qcom_mhi_qrtr_d - .id_table = qcom_mhi_qrtr_id_table, - .driver = { - .name = "qcom_mhi_qrtr", -+ .pm = &qcom_mhi_qrtr_pm_ops, - }, - }; - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/scsi-core-alua-I-O-errors-for-ALUA-state-transitions.patch new/patches.suse/scsi-core-alua-I-O-errors-for-ALUA-state-transitions.patch --- old/patches.suse/scsi-core-alua-I-O-errors-for-ALUA-state-transitions.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/scsi-core-alua-I-O-errors-for-ALUA-state-transitions.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,108 +0,0 @@ -From: Martin Wilck <martin.wilck@suse.com> -Date: Tue, 14 May 2024 16:03:44 +0200 -Subject: scsi: core: alua: I/O errors for ALUA state transitions -Patch-mainline: v6.10-rc3 -Git-commit: 10157b1fc1a762293381e9145041253420dfc6ad -References: bsc#1189970 - -When a host is configured with a few LUNs and I/O is running, injecting FC -faults repeatedly leads to path recovery problems. The LUNs have 4 paths -each and 3 of them come back active after say an FC fault which makes 2 of -the paths go down, instead of all 4. This happens after several iterations -of continuous FC faults. - -Reason here is that we're returning an I/O error whenever we're -encountering sense code 06/04/0a (LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC -ACCESS STATE TRANSITION) instead of retrying. - -[mwilck: The original patch was developed by Rajashekhar M A and Hannes -Reinecke. I moved the code to alua_check_sense() as suggested by Mike -Christie [1]. Evan Milne had raised the question whether pg->state should -be set to transitioning in the UA case [2]. I believe that doing this is -correct. SCSI_ACCESS_STATE_TRANSITIONING by itself doesn't cause I/O -errors. Our handler schedules an RTPG, which will only result in an I/O -error condition if the transitioning timeout expires.] - -[1] https://lore.kernel.org/all/0bc96e82-fdda-4187-148d-5b34f81d4942@oracle.com/ -[2] https://lore.kernel.org/all/CAGtn9r=kicnTDE2o7Gt5Y=yoidHYD7tG8XdMHEBJTBraVEo... - -Co-developed-by: Rajashekhar M A <rajs@netapp.com> -Co-developed-by: Hannes Reinecke <hare@suse.de> -Signed-off-by: Hannes Reinecke <hare@suse.de> -Signed-off-by: Martin Wilck <martin.wilck@suse.com> -Link: https://lore.kernel.org/r/20240514140344.19538-1-mwilck@suse.com -Reviewed-by: Damien Le Moal <dlemoal@kernel.org> -Reviewed-by: Christoph Hellwig <hch@lst.de> -Reviewed-by: Mike Christie <michael.christie@oracle.com> -Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> -Acked-by: Martin Wilck <mwilck@suse.com> ---- - drivers/scsi/device_handler/scsi_dh_alua.c | 31 +++++++++++++++------- - 1 file changed, 22 insertions(+), 9 deletions(-) - -diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c -index a226dc1b65d7..4eb0837298d4 100644 ---- a/drivers/scsi/device_handler/scsi_dh_alua.c -+++ b/drivers/scsi/device_handler/scsi_dh_alua.c -@@ -414,28 +414,40 @@ static char print_alua_state(unsigned char state) - } - } - --static enum scsi_disposition alua_check_sense(struct scsi_device *sdev, -- struct scsi_sense_hdr *sense_hdr) -+static void alua_handle_state_transition(struct scsi_device *sdev) - { - struct alua_dh_data *h = sdev->handler_data; - struct alua_port_group *pg; - -+ rcu_read_lock(); -+ pg = rcu_dereference(h->pg); -+ if (pg) -+ pg->state = SCSI_ACCESS_STATE_TRANSITIONING; -+ rcu_read_unlock(); -+ alua_check(sdev, false); -+} -+ -+static enum scsi_disposition alua_check_sense(struct scsi_device *sdev, -+ struct scsi_sense_hdr *sense_hdr) -+{ - switch (sense_hdr->sense_key) { - case NOT_READY: - if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0a) { - /* - * LUN Not Accessible - ALUA state transition - */ -- rcu_read_lock(); -- pg = rcu_dereference(h->pg); -- if (pg) -- pg->state = SCSI_ACCESS_STATE_TRANSITIONING; -- rcu_read_unlock(); -- alua_check(sdev, false); -+ alua_handle_state_transition(sdev); - return NEEDS_RETRY; - } - break; - case UNIT_ATTENTION: -+ if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0a) { -+ /* -+ * LUN Not Accessible - ALUA state transition -+ */ -+ alua_handle_state_transition(sdev); -+ return NEEDS_RETRY; -+ } - if (sense_hdr->asc == 0x29 && sense_hdr->ascq == 0x00) { - /* - * Power On, Reset, or Bus Device Reset. -@@ -502,7 +514,8 @@ static int alua_tur(struct scsi_device *sdev) - - retval = scsi_test_unit_ready(sdev, ALUA_FAILOVER_TIMEOUT * HZ, - ALUA_FAILOVER_RETRIES, &sense_hdr); -- if (sense_hdr.sense_key == NOT_READY && -+ if ((sense_hdr.sense_key == NOT_READY || -+ sense_hdr.sense_key == UNIT_ATTENTION) && - sense_hdr.asc == 0x04 && sense_hdr.ascq == 0x0a) - return SCSI_DH_RETRY; - else if (retval) --- -2.45.1 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/wifi-ath11k-support-hibernation.patch new/patches.suse/wifi-ath11k-support-hibernation.patch --- old/patches.suse/wifi-ath11k-support-hibernation.patch 2024-07-11 13:31:54.000000000 +0200 +++ new/patches.suse/wifi-ath11k-support-hibernation.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,479 +0,0 @@ -From: Baochen Qiang <quic_bqiang@quicinc.com> -Date: Mon, 8 Apr 2024 17:41:50 +0300 -Subject: wifi: ath11k: support hibernation -Git-commit: 166a490f59ac10340ee5330e51c15188ce2a7f8f -Patch-mainline: v6.10-rc1 -References: bsc#1207948 - -Now that all infrastructure is in place and ath11k is fixed to handle all the -corner cases, power down the ath11k firmware during suspend and power it back -up during resume. This fixes the problem when using hibernation with ath11k PCI -devices. - -For suspend, two conditions needs to be satisfied: - 1. since MHI channel unprepare would be done in late suspend stage, - ath11k needs to get all QMI-dependent things done before that stage. - 2. and because unprepare MHI channels requires a working MHI stack, - ath11k is not allowed to call mhi_power_down() until that finishes. -So the original suspend callback is separated into two parts: the first part -handles all QMI-dependent things in suspend callback; while the second part -powers down MHI in suspend_late callback. This is valid because kernel calls -ath11k's suspend callback before all suspend_late callbacks, making the first -condition happy. And because MHI devices are children of ath11k device -(ab->dev), kernel guarantees that ath11k's suspend_late callback is called -after QRTR's suspend_late callback, this satisfies the second condition. - -Above analysis also applies to resume process. so the original resume -callback is separated into two parts: the first part powers up MHI stack -in resume_early callback, this guarantees MHI stack is working when -QRTR tries to prepare MHI channels (kernel calls QRTR's resume_early callback -after ath11k's resume_early callback, due to the child-father relationship); -the second part waits for the completion of restart, which won't fail now -since MHI channels are ready for use by QMI. - -Another notable change is in power down path, we tell mhi_power_down() to not -to destroy MHI devices, making it possible for QRTR to help unprepare/prepare -MHI channels, and finally get us rid of the probe-defer issue when resume. - -Also change related code due to interface changes. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 - -Tested-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> -Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> -Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> -Link: https://msgid.link/20240305021320.3367-4-quic_bqiang@quicinc.com -Acked-by: Takashi Iwai <tiwai@suse.de> ---- - drivers/net/wireless/ath/ath11k/ahb.c | 6 - - drivers/net/wireless/ath/ath11k/core.c | 107 +++++++++++++++++++++++---------- - drivers/net/wireless/ath/ath11k/core.h | 6 + - drivers/net/wireless/ath/ath11k/hif.h | 14 +++- - drivers/net/wireless/ath/ath11k/mhi.c | 12 +++ - drivers/net/wireless/ath/ath11k/mhi.h | 5 - - drivers/net/wireless/ath/ath11k/pci.c | 44 +++++++++++-- - drivers/net/wireless/ath/ath11k/qmi.c | 2 - 8 files changed, 143 insertions(+), 53 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/ahb.c -+++ b/drivers/net/wireless/ath/ath11k/ahb.c -@@ -1,7 +1,7 @@ - // SPDX-License-Identifier: BSD-3-Clause-Clear - /* - * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. -- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. - */ - - #include <linux/module.h> -@@ -413,7 +413,7 @@ static int ath11k_ahb_power_up(struct at - return ret; - } - --static void ath11k_ahb_power_down(struct ath11k_base *ab) -+static void ath11k_ahb_power_down(struct ath11k_base *ab, bool is_suspend) - { - struct ath11k_ahb *ab_ahb = ath11k_ahb_priv(ab); - -@@ -1256,7 +1256,7 @@ static void ath11k_ahb_remove(struct pla - struct ath11k_base *ab = platform_get_drvdata(pdev); - - if (test_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags)) { -- ath11k_ahb_power_down(ab); -+ ath11k_ahb_power_down(ab, false); - ath11k_debugfs_soc_destroy(ab); - ath11k_qmi_deinit_service(ab); - goto qmi_fail; ---- a/drivers/net/wireless/ath/ath11k/core.c -+++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -894,12 +894,6 @@ int ath11k_core_suspend(struct ath11k_ba - return ret; - } - -- ret = ath11k_wow_enable(ab); -- if (ret) { -- ath11k_warn(ab, "failed to enable wow during suspend: %d\n", ret); -- return ret; -- } -- - ret = ath11k_dp_rx_pktlog_stop(ab, false); - if (ret) { - ath11k_warn(ab, "failed to stop dp rx pktlog during suspend: %d\n", -@@ -910,29 +904,85 @@ int ath11k_core_suspend(struct ath11k_ba - ath11k_ce_stop_shadow_timers(ab); - ath11k_dp_stop_shadow_timers(ab); - -+ /* PM framework skips suspend_late/resume_early callbacks -+ * if other devices report errors in their suspend callbacks. -+ * However ath11k_core_resume() would still be called because -+ * here we return success thus kernel put us on dpm_suspended_list. -+ * Since we won't go through a power down/up cycle, there is -+ * no chance to call complete(&ab->restart_completed) in -+ * ath11k_core_restart(), making ath11k_core_resume() timeout. -+ * So call it here to avoid this issue. This also works in case -+ * no error happens thus suspend_late/resume_early get called, -+ * because it will be reinitialized in ath11k_core_resume_early(). -+ */ -+ complete(&ab->restart_completed); -+ -+ return 0; -+} -+EXPORT_SYMBOL(ath11k_core_suspend); -+ -+int ath11k_core_suspend_late(struct ath11k_base *ab) -+{ -+ struct ath11k_pdev *pdev; -+ struct ath11k *ar; -+ -+ if (!ab->hw_params.supports_suspend) -+ return -EOPNOTSUPP; -+ -+ /* so far single_pdev_only chips have supports_suspend as true -+ * and only the first pdev is valid. -+ */ -+ pdev = ath11k_core_get_single_pdev(ab); -+ ar = pdev->ar; -+ if (!ar || ar->state != ATH11K_STATE_OFF) -+ return 0; -+ - ath11k_hif_irq_disable(ab); - ath11k_hif_ce_irq_disable(ab); - -- ret = ath11k_hif_suspend(ab); -- if (ret) { -- ath11k_warn(ab, "failed to suspend hif: %d\n", ret); -- return ret; -- } -+ ath11k_hif_power_down(ab, true); - - return 0; - } --EXPORT_SYMBOL(ath11k_core_suspend); -+EXPORT_SYMBOL(ath11k_core_suspend_late); -+ -+int ath11k_core_resume_early(struct ath11k_base *ab) -+{ -+ int ret; -+ struct ath11k_pdev *pdev; -+ struct ath11k *ar; -+ -+ if (!ab->hw_params.supports_suspend) -+ return -EOPNOTSUPP; -+ -+ /* so far single_pdev_only chips have supports_suspend as true -+ * and only the first pdev is valid. -+ */ -+ pdev = ath11k_core_get_single_pdev(ab); -+ ar = pdev->ar; -+ if (!ar || ar->state != ATH11K_STATE_OFF) -+ return 0; -+ -+ reinit_completion(&ab->restart_completed); -+ ret = ath11k_hif_power_up(ab); -+ if (ret) -+ ath11k_warn(ab, "failed to power up hif during resume: %d\n", ret); -+ -+ return ret; -+} -+EXPORT_SYMBOL(ath11k_core_resume_early); - - int ath11k_core_resume(struct ath11k_base *ab) - { - int ret; - struct ath11k_pdev *pdev; - struct ath11k *ar; -+ long time_left; - - if (!ab->hw_params.supports_suspend) - return -EOPNOTSUPP; - -- /* so far signle_pdev_only chips have supports_suspend as true -+ /* so far single_pdev_only chips have supports_suspend as true - * and only the first pdev is valid. - */ - pdev = ath11k_core_get_single_pdev(ab); -@@ -940,29 +990,19 @@ int ath11k_core_resume(struct ath11k_bas - if (!ar || ar->state != ATH11K_STATE_OFF) - return 0; - -- ret = ath11k_hif_resume(ab); -- if (ret) { -- ath11k_warn(ab, "failed to resume hif during resume: %d\n", ret); -- return ret; -+ time_left = wait_for_completion_timeout(&ab->restart_completed, -+ ATH11K_RESET_TIMEOUT_HZ); -+ if (time_left == 0) { -+ ath11k_warn(ab, "timeout while waiting for restart complete"); -+ return -ETIMEDOUT; - } - -- ath11k_hif_ce_irq_enable(ab); -- ath11k_hif_irq_enable(ab); -- - ret = ath11k_dp_rx_pktlog_start(ab); -- if (ret) { -+ if (ret) - ath11k_warn(ab, "failed to start rx pktlog during resume: %d\n", - ret); -- return ret; -- } -- -- ret = ath11k_wow_wakeup(ab); -- if (ret) { -- ath11k_warn(ab, "failed to wakeup wow during resume: %d\n", ret); -- return ret; -- } - -- return 0; -+ return ret; - } - EXPORT_SYMBOL(ath11k_core_resume); - -@@ -2060,6 +2100,8 @@ static void ath11k_core_restart(struct w - - if (!ab->is_reset) - ath11k_core_post_reconfigure_recovery(ab); -+ -+ complete(&ab->restart_completed); - } - - static void ath11k_core_reset(struct work_struct *work) -@@ -2129,7 +2171,7 @@ static void ath11k_core_reset(struct wor - ath11k_hif_irq_disable(ab); - ath11k_hif_ce_irq_disable(ab); - -- ath11k_hif_power_down(ab); -+ ath11k_hif_power_down(ab, false); - ath11k_hif_power_up(ab); - - ath11k_dbg(ab, ATH11K_DBG_BOOT, "reset started\n"); -@@ -2202,7 +2244,7 @@ void ath11k_core_deinit(struct ath11k_ba - - mutex_unlock(&ab->core_lock); - -- ath11k_hif_power_down(ab); -+ ath11k_hif_power_down(ab, false); - ath11k_mac_destroy(ab); - ath11k_core_soc_destroy(ab); - ath11k_fw_destroy(ab); -@@ -2255,6 +2297,7 @@ struct ath11k_base *ath11k_core_alloc(st - timer_setup(&ab->rx_replenish_retry, ath11k_ce_rx_replenish_retry, 0); - init_completion(&ab->htc_suspend); - init_completion(&ab->wow.wakeup_completed); -+ init_completion(&ab->restart_completed); - - ab->dev = dev; - ab->hif.bus = bus; ---- a/drivers/net/wireless/ath/ath11k/core.h -+++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -1,7 +1,7 @@ - /* SPDX-License-Identifier: BSD-3-Clause-Clear */ - /* - * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. -- * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. - */ - - #ifndef ATH11K_CORE_H -@@ -1033,6 +1033,8 @@ struct ath11k_base { - DECLARE_BITMAP(fw_features, ATH11K_FW_FEATURE_COUNT); - } fw; - -+ struct completion restart_completed; -+ - #ifdef CONFIG_NL80211_TESTMODE - struct { - u32 data_pos; -@@ -1232,8 +1234,10 @@ void ath11k_core_free_bdf(struct ath11k_ - int ath11k_core_check_dt(struct ath11k_base *ath11k); - int ath11k_core_check_smbios(struct ath11k_base *ab); - void ath11k_core_halt(struct ath11k *ar); -+int ath11k_core_resume_early(struct ath11k_base *ab); - int ath11k_core_resume(struct ath11k_base *ab); - int ath11k_core_suspend(struct ath11k_base *ab); -+int ath11k_core_suspend_late(struct ath11k_base *ab); - void ath11k_core_pre_reconfigure_recovery(struct ath11k_base *ab); - bool ath11k_core_coldboot_cal_support(struct ath11k_base *ab); - ---- a/drivers/net/wireless/ath/ath11k/hif.h -+++ b/drivers/net/wireless/ath/ath11k/hif.h -@@ -1,7 +1,7 @@ - /* SPDX-License-Identifier: BSD-3-Clause-Clear */ - /* - * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. -- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. - */ - - #ifndef _HIF_H_ -@@ -18,7 +18,7 @@ struct ath11k_hif_ops { - int (*start)(struct ath11k_base *ab); - void (*stop)(struct ath11k_base *ab); - int (*power_up)(struct ath11k_base *ab); -- void (*power_down)(struct ath11k_base *ab); -+ void (*power_down)(struct ath11k_base *ab, bool is_suspend); - int (*suspend)(struct ath11k_base *ab); - int (*resume)(struct ath11k_base *ab); - int (*map_service_to_pipe)(struct ath11k_base *ab, u16 service_id, -@@ -67,12 +67,18 @@ static inline void ath11k_hif_irq_disabl - - static inline int ath11k_hif_power_up(struct ath11k_base *ab) - { -+ if (!ab->hif.ops->power_up) -+ return -EOPNOTSUPP; -+ - return ab->hif.ops->power_up(ab); - } - --static inline void ath11k_hif_power_down(struct ath11k_base *ab) -+static inline void ath11k_hif_power_down(struct ath11k_base *ab, bool is_suspend) - { -- ab->hif.ops->power_down(ab); -+ if (!ab->hif.ops->power_down) -+ return; -+ -+ ab->hif.ops->power_down(ab, is_suspend); - } - - static inline int ath11k_hif_suspend(struct ath11k_base *ab) ---- a/drivers/net/wireless/ath/ath11k/mhi.c -+++ b/drivers/net/wireless/ath/ath11k/mhi.c -@@ -442,9 +442,17 @@ int ath11k_mhi_start(struct ath11k_pci * - return 0; - } - --void ath11k_mhi_stop(struct ath11k_pci *ab_pci) -+void ath11k_mhi_stop(struct ath11k_pci *ab_pci, bool is_suspend) - { -- mhi_power_down(ab_pci->mhi_ctrl, true); -+ /* During suspend we need to use mhi_power_down_keep_dev() -+ * workaround, otherwise ath11k_core_resume() will timeout -+ * during resume. -+ */ -+ if (is_suspend) -+ mhi_power_down_keep_dev(ab_pci->mhi_ctrl, true); -+ else -+ mhi_power_down(ab_pci->mhi_ctrl, true); -+ - mhi_unprepare_after_power_down(ab_pci->mhi_ctrl); - } - ---- a/drivers/net/wireless/ath/ath11k/mhi.h -+++ b/drivers/net/wireless/ath/ath11k/mhi.h -@@ -1,7 +1,7 @@ - /* SPDX-License-Identifier: BSD-3-Clause-Clear */ - /* - * Copyright (c) 2020 The Linux Foundation. All rights reserved. -- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * Copyright (c) 2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved. - */ - #ifndef _ATH11K_MHI_H - #define _ATH11K_MHI_H -@@ -18,7 +18,7 @@ - #define MHICTRL_RESET_MASK 0x2 - - int ath11k_mhi_start(struct ath11k_pci *ar_pci); --void ath11k_mhi_stop(struct ath11k_pci *ar_pci); -+void ath11k_mhi_stop(struct ath11k_pci *ar_pci, bool is_suspend); - int ath11k_mhi_register(struct ath11k_pci *ar_pci); - void ath11k_mhi_unregister(struct ath11k_pci *ar_pci); - void ath11k_mhi_set_mhictrl_reset(struct ath11k_base *ab); -@@ -26,5 +26,4 @@ void ath11k_mhi_clear_vector(struct ath1 - - int ath11k_mhi_suspend(struct ath11k_pci *ar_pci); - int ath11k_mhi_resume(struct ath11k_pci *ar_pci); -- - #endif ---- a/drivers/net/wireless/ath/ath11k/pci.c -+++ b/drivers/net/wireless/ath/ath11k/pci.c -@@ -638,7 +638,7 @@ static int ath11k_pci_power_up(struct at - return 0; - } - --static void ath11k_pci_power_down(struct ath11k_base *ab) -+static void ath11k_pci_power_down(struct ath11k_base *ab, bool is_suspend) - { - struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); - -@@ -649,7 +649,7 @@ static void ath11k_pci_power_down(struct - - ath11k_pci_msi_disable(ab_pci); - -- ath11k_mhi_stop(ab_pci); -+ ath11k_mhi_stop(ab_pci, is_suspend); - clear_bit(ATH11K_FLAG_DEVICE_INIT_DONE, &ab->dev_flags); - ath11k_pci_sw_reset(ab_pci->ab, false); - } -@@ -970,7 +970,7 @@ static void ath11k_pci_remove(struct pci - ath11k_pci_set_irq_affinity_hint(ab_pci, NULL); - - if (test_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags)) { -- ath11k_pci_power_down(ab); -+ ath11k_pci_power_down(ab, false); - ath11k_debugfs_soc_destroy(ab); - ath11k_qmi_deinit_service(ab); - goto qmi_fail; -@@ -998,7 +998,7 @@ static void ath11k_pci_shutdown(struct p - struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); - - ath11k_pci_set_irq_affinity_hint(ab_pci, NULL); -- ath11k_pci_power_down(ab); -+ ath11k_pci_power_down(ab, false); - } - - static __maybe_unused int ath11k_pci_pm_suspend(struct device *dev) -@@ -1035,9 +1035,39 @@ static __maybe_unused int ath11k_pci_pm_ - return ret; - } - --static SIMPLE_DEV_PM_OPS(ath11k_pci_pm_ops, -- ath11k_pci_pm_suspend, -- ath11k_pci_pm_resume); -+static __maybe_unused int ath11k_pci_pm_suspend_late(struct device *dev) -+{ -+ struct ath11k_base *ab = dev_get_drvdata(dev); -+ int ret; -+ -+ ret = ath11k_core_suspend_late(ab); -+ if (ret) -+ ath11k_warn(ab, "failed to late suspend core: %d\n", ret); -+ -+ /* Similar to ath11k_pci_pm_suspend(), we return success here -+ * even error happens, to allow system suspend/hibernation survive. -+ */ -+ return 0; -+} -+ -+static __maybe_unused int ath11k_pci_pm_resume_early(struct device *dev) -+{ -+ struct ath11k_base *ab = dev_get_drvdata(dev); -+ int ret; -+ -+ ret = ath11k_core_resume_early(ab); -+ if (ret) -+ ath11k_warn(ab, "failed to early resume core: %d\n", ret); -+ -+ return ret; -+} -+ -+static const struct dev_pm_ops __maybe_unused ath11k_pci_pm_ops = { -+ SET_SYSTEM_SLEEP_PM_OPS(ath11k_pci_pm_suspend, -+ ath11k_pci_pm_resume) -+ SET_LATE_SYSTEM_SLEEP_PM_OPS(ath11k_pci_pm_suspend_late, -+ ath11k_pci_pm_resume_early) -+}; - - static struct pci_driver ath11k_pci_driver = { - .name = "ath11k_pci", ---- a/drivers/net/wireless/ath/ath11k/qmi.c -+++ b/drivers/net/wireless/ath/ath11k/qmi.c -@@ -2877,7 +2877,7 @@ int ath11k_qmi_fwreset_from_cold_boot(st - } - - /* reset the firmware */ -- ath11k_hif_power_down(ab); -+ ath11k_hif_power_down(ab, false); - ath11k_hif_power_up(ab); - ath11k_dbg(ab, ATH11K_DBG_QMI, "exit wait for cold boot done\n"); - return 0; ++++++ series.conf ++++++ ++++ 1980 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/kernel-source/series.conf ++++ and /work/SRC/openSUSE:Factory/.kernel-source.new.1882/series.conf ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.GA4qTv/_old 2024-07-28 17:19:37.616232977 +0200 +++ /var/tmp/diff_new_pack.GA4qTv/_new 2024-07-28 17:19:37.620233137 +0200 @@ -1,4 +1,4 @@ -2024-07-11 11:31:54 +0000 -GIT Revision: 8c0f7974077bd42f9bfec8b1e3de8b5dfa20bb1b +2024-07-25 10:37:14 +0000 +GIT Revision: 178f0b6b0edb584f81ff83551bd7fd141a077216 GIT Branch: stable
participants (1)
-
Source-Sync