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 - jsl...@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 - jsl...@suse.cz
+
+- drm/amd/display: Take Synaptics Cascaded Topology into Account
+  (bsc#1228093 #3495).
+- commit a4c3703
+
+-------------------------------------------------------------------
+Thu Jul 25 07:07:22 CEST 2024 - jsl...@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 - jsl...@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 - mkube...@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 - mkube...@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 - svarba...@suse.de
+
+- config: update and reenable armv6hl configs
+  Option values mirrored from armv7hl
+- commit c5191d9
+
+-------------------------------------------------------------------
+Tue Jul  9 09:19:59 CEST 2024 - svarba...@suse.de
+
+- config: update and reenable armv7hl configs
+  Option values from arm64 and x86.
+- commit 3e8ca13
+
+-------------------------------------------------------------------
+Mon Jul  8 13:52:23 CEST 2024 - svarba...@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 - mkube...@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 - mkube...@suse.cz
+
+- update to 6.10-rc6
+- commit 3c2a141
+
+-------------------------------------------------------------------
@@ -1201,0 +1336,7 @@
+Sun Jun 23 23:37:17 CEST 2024 - mkube...@suse.cz
+
+- update to 6.10-rc5
+- refresh configs
+- commit 0c5f39a
+
+-------------------------------------------------------------------
@@ -2029,0 +2171,8 @@
+Sun Jun 16 22:59:28 CEST 2024 - mkube...@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 - mkube...@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 - mkube...@suse.cz
+
+- update to 6.10-rc2
+- commit 068a181
+
+-------------------------------------------------------------------
+Thu May 30 22:53:36 CEST 2024 - mkube...@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 <ti...@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-ti...@suse.de
-Signed-off-by: Takashi Iwai <ti...@suse.de>
-Signed-off-by: Jiri Slaby <jsl...@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_bqi...@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_bqi...@quicinc.com>
-Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org>
-Reviewed-by: Jeff Johnson <quic_jjohn...@quicinc.com>
-Link: https://lore.kernel.org/r/20240305021320.3367-2-quic_bqi...@quicinc.com
-[mani: reworded the commit message and subject]
-Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org>
-Acked-by: Takashi Iwai <ti...@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 <javi...@redhat.com>
 Acked-by: Thomas Zimmermann <tzimmerm...@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....@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....@amd.com>
+Signed-off-by: Jiri Slaby <jsl...@suse.cz>
+
+---
+[v2] call is_synaptics_cascaded_panamera() unconditionally
+
+Signed-off-by: Jiri Slaby <jsl...@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_bqi...@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_bqi...@quicinc.com>
-Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org>
-Reviewed-by: Jeff Johnson <quic_jjohn...@quicinc.com>
-Signed-off-by: Kalle Valo <quic_kv...@quicinc.com>
-Link: https://msgid.link/20240305021320.3367-3-quic_bqi...@quicinc.com
-Acked-by: Takashi Iwai <ti...@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.wi...@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-5b34f81d4...@oracle.com/
-[2] 
https://lore.kernel.org/all/CAGtn9r=kicnTDE2o7Gt5Y=yoidhyd7tg8xdmhebjtbraveo...@mail.gmail.com/
-
-Co-developed-by: Rajashekhar M A <r...@netapp.com>
-Co-developed-by: Hannes Reinecke <h...@suse.de>
-Signed-off-by: Hannes Reinecke <h...@suse.de>
-Signed-off-by: Martin Wilck <martin.wi...@suse.com>
-Link: https://lore.kernel.org/r/20240514140344.19538-1-mwi...@suse.com
-Reviewed-by: Damien Le Moal <dlem...@kernel.org>
-Reviewed-by: Christoph Hellwig <h...@lst.de>
-Reviewed-by: Mike Christie <michael.chris...@oracle.com>
-Signed-off-by: Martin K. Petersen <martin.peter...@oracle.com>
-Acked-by: Martin Wilck <mwi...@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_bqi...@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 <ti...@suse.de>
-Signed-off-by: Baochen Qiang <quic_bqi...@quicinc.com>
-Acked-by: Jeff Johnson <quic_jjohn...@quicinc.com>
-Signed-off-by: Kalle Valo <quic_kv...@quicinc.com>
-Link: https://msgid.link/20240305021320.3367-4-quic_bqi...@quicinc.com
-Acked-by: Takashi Iwai <ti...@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
 

Reply via email to