Compare commits

..

3 Commits

Author SHA1 Message Date
Andy Nguyen
2ee68463af linux: add svm implementation and run transmitter_control in guest mode 2026-06-20 17:31:51 +02:00
Andy Nguyen
76db3a464b linux: add bc250 audio patch by essdee 2026-06-19 17:19:34 +02:00
Andy Nguyen
9fec3c7729 config: update to 7.1.1 2026-06-19 17:17:46 +02:00
2 changed files with 378 additions and 143 deletions

78
.config
View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 7.0.10 Kernel Configuration
# Linux/x86 7.1.1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0"
CONFIG_CC_IS_GCC=y
@@ -13,6 +13,7 @@ CONFIG_LD_VERSION=24600
CONFIG_LLD_VERSION=0
CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_RUSTC_LLVM_MAJOR_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
@@ -86,12 +87,16 @@ CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_INIT=y
CONFIG_ARCH_WANTS_CLOCKSOURCE_READ_INLINE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED_INLINE=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_HRTIMER_REARM_DEFERRED=y
CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_CONTEXT_TRACKING=y
@@ -109,7 +114,6 @@ CONFIG_CONTEXT_TRACKING_USER=y
# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100
CONFIG_POSIX_AUX_CLOCKS=y
# end of Timers subsystem
@@ -209,6 +213,7 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_CC_HAS_INT128=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
CONFIG_CC_MS_EXTENSIONS="-fms-extensions"
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
@@ -231,6 +236,7 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_EXT_GROUP_SCHED=y
CONFIG_EXT_SUB_SCHED=y
CONFIG_SCHED_MM_CID=y
CONFIG_UCLAMP_TASK_GROUP=y
CONFIG_CGROUP_PIDS=y
@@ -250,6 +256,7 @@ CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_TIME_NS_VDSO=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
@@ -597,6 +604,7 @@ CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=y
CONFIG_ACPI_CUSTOM_DSDT_FILE=""
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
@@ -947,6 +955,7 @@ CONFIG_FUNCTION_ALIGNMENT=16
CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y
CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
CONFIG_ARCH_HAS_CPU_ATTACK_VECTORS=y
CONFIG_HAVE_ARCH_GET_SECUREBOOT=y
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=y
@@ -1098,7 +1107,6 @@ CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_MEMORY_HOTPLUG=y
# CONFIG_MHP_DEFAULT_ONLINE_TYPE_OFFLINE is not set
CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_AUTO=y
@@ -1113,6 +1121,7 @@ CONFIG_SPLIT_PMD_PTLOCKS=y
CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_NUMA_MIGRATION=y
CONFIG_MIGRATION=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
@@ -1377,7 +1386,6 @@ CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
# CONFIG_NF_CONNTRACK_FTP is not set
# CONFIG_NF_CONNTRACK_H323 is not set
@@ -1710,7 +1718,6 @@ CONFIG_NET_FLOW_LIMIT=y
# end of Network testing
# end of Networking options
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
CONFIG_BT=m
CONFIG_BT_BREDR=y
@@ -1787,7 +1794,6 @@ CONFIG_NET_9P=m
CONFIG_NET_9P_FD=m
# CONFIG_NET_9P_VIRTIO is not set
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
# CONFIG_PSAMPLE is not set
@@ -1888,7 +1894,7 @@ CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_PCI_SW_SWITCHTEC is not set
# end of PCI switch controller drivers
# CONFIG_PCI_PWRCTRL_SLOT is not set
# CONFIG_PCI_PWRCTRL_GENERIC is not set
# CONFIG_PCI_PWRCTRL_TC9563 is not set
# CONFIG_CXL_BUS is not set
# CONFIG_PCCARD is not set
@@ -1904,6 +1910,7 @@ CONFIG_UEVENT_HELPER_PATH=""
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DEVTMPFS_SAFE=y
CONFIG_DRIVER_DEFERRED_PROBE_TIMEOUT=10
# CONFIG_STANDALONE is not set
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -2070,7 +2077,6 @@ CONFIG_NVME_HWMON=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_RPMB is not set
# CONFIG_TI_FPC202 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
@@ -2348,7 +2354,6 @@ CONFIG_MDIO=m
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_NET_VENDOR_AMAZON is not set
# CONFIG_NET_VENDOR_AMD is not set
@@ -2405,7 +2410,6 @@ CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_BROCADE is not set
@@ -2432,7 +2436,6 @@ CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
# CONFIG_FDDI is not set
CONFIG_MDIO_BUS=y
CONFIG_PHYLINK=m
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
@@ -2717,7 +2720,6 @@ CONFIG_RTW89_8852CU=m
# CONFIG_FUJITSU_ES is not set
# CONFIG_NETDEVSIM is not set
CONFIG_NET_FAILOVER=y
# CONFIG_ISDN is not set
#
# Input device support
@@ -2821,7 +2823,6 @@ CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
# CONFIG_SERIO_I8042 is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
# CONFIG_SERIO_RAW is not set
@@ -3018,6 +3019,7 @@ CONFIG_PINCTRL=y
# CONFIG_PINCTRL_AMD is not set
# CONFIG_PINCTRL_CY8C95X0 is not set
# CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SX150X is not set
#
@@ -3067,6 +3069,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SAMSUNG_SDI is not set
# CONFIG_BATTERY_S2MU005 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_CHARGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
@@ -3147,6 +3150,7 @@ CONFIG_SENSORS_K10TEMP=m
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWERZ is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LATTEPANDA_SIGMA_EC is not set
# CONFIG_SENSORS_LENOVO_EC is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
@@ -3176,6 +3180,7 @@ CONFIG_SENSORS_K10TEMP=m
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MC34VR500 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_MCP9982 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
@@ -3260,6 +3265,7 @@ CONFIG_SENSORS_K10TEMP=m
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_XGENE is not set
# CONFIG_SENSORS_YOGAFAN is not set
#
# ACPI drivers
@@ -3496,6 +3502,7 @@ CONFIG_AGP_AMD64=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_VGA_SWITCHEROO is not set
CONFIG_GPU_BUDDY=y
CONFIG_DRM=y
#
@@ -3512,6 +3519,7 @@ CONFIG_DRM_PANIC_FOREGROUND_COLOR=0xffffff
CONFIG_DRM_PANIC_BACKGROUND_COLOR=0x5e2750
# CONFIG_DRM_PANIC_DEBUG is not set
CONFIG_DRM_PANIC_SCREEN="user"
# CONFIG_DRM_RAS is not set
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
CONFIG_DRM_CLIENT=y
@@ -3966,6 +3974,8 @@ CONFIG_HID_JABRA=m
# CONFIG_HID_LCPOWER is not set
CONFIG_HID_LED=m
# CONFIG_HID_LENOVO is not set
# CONFIG_HID_LENOVO_GO is not set
# CONFIG_HID_LENOVO_GO_S is not set
# CONFIG_HID_LETSKETCH is not set
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
@@ -4034,6 +4044,7 @@ CONFIG_HID_SENSOR_HUB=m
CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
CONFIG_HID_ALPS=m
# CONFIG_HID_MCP2221 is not set
# CONFIG_HID_HUAWEI is not set
# end of Special HID drivers
#
@@ -4405,6 +4416,7 @@ CONFIG_DMA_ACPI=y
# CONFIG_INTEL_IDXD_COMPAT is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_PLX_DMA is not set
# CONFIG_SWITCHTEC_DMA is not set
# CONFIG_XILINX_DMA is not set
# CONFIG_XILINX_XDMA is not set
# CONFIG_AMD_PTDMA is not set
@@ -4429,7 +4441,6 @@ CONFIG_DMA_ACPI=y
CONFIG_SYNC_FILE=y
CONFIG_SW_SYNC=y
CONFIG_UDMABUF=y
CONFIG_DMABUF_MOVE_NOTIFY=y
# CONFIG_DMABUF_DEBUG is not set
# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMABUF_HEAPS=y
@@ -4505,6 +4516,7 @@ CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_XIAOMI_WMI is not set
# CONFIG_REDMI_WMI is not set
# CONFIG_GIGABYTE_WMI is not set
# CONFIG_BITLAND_MIFS_WMI is not set
# CONFIG_ACER_WIRELESS is not set
#
@@ -4629,6 +4641,7 @@ CONFIG_GENERIC_PT=y
CONFIG_IOMMU_PT=y
CONFIG_IOMMU_PT_AMDV1=y
# CONFIG_IOMMU_PT_VTDSS is not set
# CONFIG_IOMMU_PT_RISCV64 is not set
CONFIG_IOMMU_PT_X86_64=y
#
@@ -4752,8 +4765,8 @@ CONFIG_IRQ_MSI_LIB=y
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
# CONFIG_USB_LGM_PHY is not set
# CONFIG_PHY_CAN_TRANSCEIVER is not set
# CONFIG_USB_LGM_PHY is not set
#
# PHY drivers for Broadcom platforms
@@ -4761,9 +4774,9 @@ CONFIG_IRQ_MSI_LIB=y
# CONFIG_BCM_KONA_USB2_PHY is not set
# end of PHY drivers for Broadcom platforms
# CONFIG_PHY_INTEL_LGM_EMMC is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_INTEL_LGM_EMMC is not set
# end of PHY Subsystem
# CONFIG_POWERCAP is not set
@@ -4803,6 +4816,7 @@ CONFIG_NVMEM_SYSFS=y
# CONFIG_FPGA is not set
# CONFIG_TEE is not set
# CONFIG_MUX_CORE is not set
CONFIG_PM_OPP=y
# CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set
@@ -4919,11 +4933,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_EXFAT_FS=m
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_FS_POSIX_ACL is not set
CONFIG_NTFS3_FS=m
# CONFIG_NTFS3_64BIT_CLUSTER is not set
CONFIG_NTFS3_LZX_XPRESS=y
CONFIG_NTFS3_FS_POSIX_ACL=y
CONFIG_NTFS_FS=m
# end of DOS/FAT/EXFAT/NT Filesystems
#
@@ -5187,7 +5203,6 @@ CONFIG_RANDSTRUCT_NONE=y
# end of Kernel hardening options
# end of Security options
CONFIG_XOR_BLOCKS=m
CONFIG_CRYPTO=y
#
@@ -5205,7 +5220,6 @@ CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_KPP2=y
@@ -5286,17 +5300,15 @@ CONFIG_CRYPTO_ESSIV=m
#
CONFIG_CRYPTO_BLAKE2B=m
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=y
# CONFIG_CRYPTO_SM3_GENERIC is not set
# CONFIG_CRYPTO_SM3 is not set
CONFIG_CRYPTO_STREEBOG=m
# CONFIG_CRYPTO_WP512 is not set
CONFIG_CRYPTO_XCBC=m
@@ -5358,7 +5370,6 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
@@ -5371,8 +5382,6 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
CONFIG_CRYPTO_SM3_AVX_X86_64=m
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
# end of Accelerated Cryptographic Algorithms for CPU (x86)
CONFIG_CRYPTO_HW=y
@@ -5444,16 +5453,13 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC32_ARCH=y
CONFIG_CRC_OPTIMIZATIONS=y
#
# Crypto library routines
#
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_AES_ARCH=y
CONFIG_CRYPTO_LIB_AES_CBC_MACS=m
CONFIG_CRYPTO_LIB_ARC4=m
CONFIG_CRYPTO_LIB_GF128MUL=y
CONFIG_CRYPTO_LIB_GF128MUL=m
CONFIG_CRYPTO_LIB_BLAKE2B=m
CONFIG_CRYPTO_LIB_BLAKE2S_ARCH=y
CONFIG_CRYPTO_LIB_CHACHA=m
@@ -5462,6 +5468,8 @@ CONFIG_CRYPTO_LIB_CURVE25519=m
CONFIG_CRYPTO_LIB_CURVE25519_ARCH=y
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y
CONFIG_CRYPTO_LIB_DES=m
CONFIG_CRYPTO_LIB_GF128HASH=y
CONFIG_CRYPTO_LIB_GF128HASH_ARCH=y
CONFIG_CRYPTO_LIB_MD5=y
CONFIG_CRYPTO_LIB_NH=m
CONFIG_CRYPTO_LIB_NH_ARCH=y
@@ -5469,8 +5477,6 @@ CONFIG_CRYPTO_LIB_POLY1305=m
CONFIG_CRYPTO_LIB_POLY1305_ARCH=y
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
CONFIG_CRYPTO_LIB_POLYVAL=m
CONFIG_CRYPTO_LIB_POLYVAL_ARCH=y
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA1_ARCH=y
@@ -5479,9 +5485,8 @@ CONFIG_CRYPTO_LIB_SHA256_ARCH=y
CONFIG_CRYPTO_LIB_SHA512=y
CONFIG_CRYPTO_LIB_SHA512_ARCH=y
CONFIG_CRYPTO_LIB_SHA3=y
CONFIG_CRYPTO_LIB_SM3=m
# end of Crypto library routines
CONFIG_XOR_BLOCKS=m
CONFIG_XOR_BLOCKS_ARCH=y
CONFIG_XXHASH=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_842_COMPRESS=m
@@ -5927,6 +5932,7 @@ CONFIG_TRACE_EVENT_INJECT=y
# CONFIG_KPROBE_EVENT_GEN_TEST is not set
# CONFIG_HIST_TRIGGERS_DEBUG is not set
# CONFIG_RV is not set
# CONFIG_TRACE_REMOTE_TEST is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
@@ -5994,6 +6000,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_BITOPS is not set
# CONFIG_TEST_VMALLOC is not set
# CONFIG_TEST_WORKQUEUE is not set
# CONFIG_TEST_BPF is not set
# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_TEST_FIRMWARE is not set
@@ -6023,3 +6030,4 @@ CONFIG_MEMTEST=y
CONFIG_IO_URING_ZCRX=y
CONFIG_IO_URING_BPF=y
CONFIG_IO_URING_BPF_OPS=y

View File

@@ -1,8 +1,8 @@
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index fe106da41ae5..6fd78cbfe1d6 100644
index f3f7cb01d69d..15d2e0de3bf6 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -605,6 +605,14 @@ config X86_NUMACHIP
@@ -601,6 +601,14 @@ config X86_NUMACHIP
enable more than ~168 cores.
If you don't have one of these, you should say N here.
@@ -18,7 +18,7 @@ index fe106da41ae5..6fd78cbfe1d6 100644
bool "ScaleMP vSMP"
select HYPERVISOR_GUEST
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 4efbbf9d117b..403d5ff74ef0 100644
index 86554de9a3f5..70b0eb8e32c9 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -26,6 +26,7 @@
@@ -139,10 +139,10 @@ index cb9852ad6098..83bb0cf9e40b 100644
return true;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ccc7b2e34a11..7d941c4d30f6 100644
index 0550359ed798..297ac533e017 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -112,7 +112,11 @@ EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_host);
@@ -114,7 +114,11 @@ EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_host);
*/
#ifdef CONFIG_X86_64
static
@@ -392,7 +392,7 @@ index 000000000000..731fed163a83
+ legacy_pic = &null_legacy_pic;
+}
diff --git a/block/partitions/efi.c b/block/partitions/efi.c
index 75474fb3848e..44a0744533a0 100644
index 9865d59093fa..5ffe7fefeae6 100644
--- a/block/partitions/efi.c
+++ b/block/partitions/efi.c
@@ -90,6 +90,9 @@
@@ -459,20 +459,20 @@ index 75474fb3848e..44a0744533a0 100644
&pgpt, &pptes);
if (good_pgpt)
diff --git a/drivers/Makefile b/drivers/Makefile
index 53fbd2e0acdd..d36c1909e0e6 100644
index 0841ea851847..02052a6cb226 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -199,3 +199,5 @@ obj-y += resctrl/
@@ -198,3 +198,5 @@ obj-y += resctrl/
obj-$(CONFIG_DIBS) += dibs/
obj-$(CONFIG_S390) += s390/
+
+obj-$(CONFIG_X86_PS5) += ps5/
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 2349bca136e0..3efbb88fdc32 100644
index fff305ec1e78..eb91eacbe159 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -299,6 +299,18 @@ config AHCI_QORIQ
@@ -298,6 +298,18 @@ config AHCI_QORIQ
If unsure, say N.
@@ -1112,10 +1112,10 @@ index 477a37e2ef80..e1af70946c89 100644
dmi_id_init_attr_table();
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 70d39adf50dc..5d283649817e 100644
index a3f7dabd4955..77f616a11b1c 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -953,6 +953,14 @@ const char *dmi_get_system_info(int field)
@@ -957,6 +957,14 @@ const char *dmi_get_system_info(int field)
}
EXPORT_SYMBOL(dmi_get_system_info);
@@ -1131,10 +1131,10 @@ index 70d39adf50dc..5d283649817e 100644
* dmi_name_in_serial - Check if string is in the DMI product serial information
* @str: string to check for
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 447e734c362b..c52c81e084a7 100644
index fd50da4c7b18..caf9cce37100 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -271,6 +271,10 @@ extern int amdgpu_user_queue;
@@ -270,6 +270,10 @@ extern int amdgpu_user_queue;
extern uint amdgpu_hdmi_hpd_debounce_delay_ms;
@@ -1181,10 +1181,10 @@ index 35d04e69aec0..314ceaaaab9f 100644
if (amdgpu_read_platform_bios(adev)) {
dev_info(adev->dev, "Fetched VBIOS from platform\n");
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 2ec69fa05cb1..502b878373e0 100644
index feab90e3efd1..4ebde822fca2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2512,6 +2512,26 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
@@ -1814,6 +1814,26 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
case CHIP_CYAN_SKILLFISH:
if (adev->discovery.bin)
return 0;
@@ -1212,10 +1212,10 @@ index 2ec69fa05cb1..502b878373e0 100644
break;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index 3459d356151e..f09233c05e04 100644
index 80efeca0ab73..e0683340ff12 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -2914,6 +2914,9 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
@@ -3018,6 +3018,9 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
adev->ip_versions[SMUIO_HWIP][0] = IP_VERSION(11, 0, 8);
adev->ip_versions[GC_HWIP][0] = IP_VERSION(10, 1, 3);
adev->ip_versions[UVD_HWIP][0] = IP_VERSION(2, 0, 3);
@@ -1226,7 +1226,7 @@ index 3459d356151e..f09233c05e04 100644
break;
default:
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index c91638e65174..00618809031f 100644
index 60debd543e44..3af3b36f4b60 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -41,6 +41,10 @@
@@ -1240,7 +1240,7 @@ index c91638e65174..00618809031f 100644
#include "amdgpu.h"
#include "amdgpu_amdkfd.h"
#include "amdgpu_dma_buf.h"
@@ -1134,6 +1138,12 @@ module_param_named(user_queue, amdgpu_user_queue, int, 0444);
@@ -1112,6 +1116,12 @@ module_param_named(user_queue, amdgpu_user_queue, int, 0444);
MODULE_PARM_DESC(hdmi_hpd_debounce_delay_ms, "HDMI HPD disconnect debounce delay in milliseconds (0 to disable (by default), 1500 is common)");
module_param_named(hdmi_hpd_debounce_delay_ms, amdgpu_hdmi_hpd_debounce_delay_ms, uint, 0644);
@@ -1253,7 +1253,7 @@ index c91638e65174..00618809031f 100644
/* These devices are not supported by amdgpu.
* They are supported by the mach64, r128, radeon drivers
*/
@@ -2179,6 +2189,7 @@ static const struct pci_device_id pciidlist[] = {
@@ -2157,6 +2167,7 @@ static const struct pci_device_id pciidlist[] = {
{0x1002, 0x7410, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ALDEBARAN},
/* CYAN_SKILLFISH */
@@ -1261,7 +1261,7 @@ index c91638e65174..00618809031f 100644
{0x1002, 0x13DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},
{0x1002, 0x13F9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},
{0x1002, 0x13FA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},
@@ -2393,6 +2404,11 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
@@ -2370,6 +2381,11 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
int ret, retry = 0, i;
bool supports_atomic = false;
@@ -1274,10 +1274,10 @@ index c91638e65174..00618809031f 100644
(pdev->class >> 8) == PCI_CLASS_DISPLAY_OTHER) {
if (drm_firmware_drivers_only() && amdgpu_modeset == -1)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index 77578ecc6782..b037a6f57a6d 100644
index b8ca876694ff..02c04136f293 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -2344,6 +2344,11 @@ void amdgpu_gfx_profile_ring_begin_use(struct amdgpu_ring *ring)
@@ -2434,6 +2434,11 @@ void amdgpu_gfx_profile_ring_begin_use(struct amdgpu_ring *ring)
enum PP_SMC_POWER_PROFILE profile;
int r;
@@ -1289,7 +1289,7 @@ index 77578ecc6782..b037a6f57a6d 100644
if (amdgpu_dpm_is_overdrive_enabled(adev))
return;
@@ -2379,6 +2384,11 @@ void amdgpu_gfx_profile_ring_end_use(struct amdgpu_ring *ring)
@@ -2469,6 +2474,11 @@ void amdgpu_gfx_profile_ring_end_use(struct amdgpu_ring *ring)
{
struct amdgpu_device *adev = ring->adev;
@@ -1473,10 +1473,10 @@ index 8b60299b73ef..7ecf928cae8e 100644
for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) {
bitmap = i * adev->gfx.config.max_sh_per_se + j;
diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c
index f17c3839aea1..a561038f3f79 100644
index 7ce1a1b95606..0bef516616ee 100644
--- a/drivers/gpu/drm/amd/amdgpu/nv.c
+++ b/drivers/gpu/drm/amd/amdgpu/nv.c
@@ -868,6 +868,10 @@ static int nv_common_early_init(struct amdgpu_ip_block *ip_block)
@@ -862,6 +862,10 @@ static int nv_common_early_init(struct amdgpu_ip_block *ip_block)
adev->cg_flags = 0;
adev->pg_flags = 0;
adev->external_rev_id = adev->rev_id + 0x82;
@@ -1488,10 +1488,10 @@ index f17c3839aea1..a561038f3f79 100644
case IP_VERSION(10, 3, 6):
adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
index e3a035c9fece..6eb67dd7b52c 100644
index 52f4e9e099cb..6e4ff7444536 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
@@ -1362,6 +1362,12 @@ static int sdma_v5_0_early_init(struct amdgpu_ip_block *ip_block)
@@ -1368,6 +1368,12 @@ static int sdma_v5_0_early_init(struct amdgpu_ip_block *ip_block)
struct amdgpu_device *adev = ip_block->adev;
int r;
@@ -1505,7 +1505,7 @@ index e3a035c9fece..6eb67dd7b52c 100644
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 0aee65503642..3ae712111a93 100644
index f8c13bad4ac2..e2e6a2605f2a 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -80,6 +80,10 @@
@@ -1519,7 +1519,7 @@ index 0aee65503642..3ae712111a93 100644
#include <drm/drm_privacy_screen_consumer.h>
#include <drm/display/drm_dp_mst_helper.h>
#include <drm/display/drm_hdmi_helper.h>
@@ -3007,7 +3011,10 @@ static int dm_hw_init(struct amdgpu_ip_block *ip_block)
@@ -3093,7 +3097,10 @@ static int dm_hw_init(struct amdgpu_ip_block *ip_block)
r = amdgpu_dm_init(adev);
if (r)
return r;
@@ -1530,7 +1530,7 @@ index 0aee65503642..3ae712111a93 100644
r = dm_oem_i2c_hw_init(adev);
if (r)
@@ -3028,7 +3035,10 @@ static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
@@ -3114,7 +3121,10 @@ static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
{
struct amdgpu_device *adev = ip_block->adev;
@@ -1541,7 +1541,7 @@ index 0aee65503642..3ae712111a93 100644
amdgpu_dm_irq_fini(adev);
amdgpu_dm_fini(adev);
@@ -6809,6 +6819,12 @@ static void fill_stream_properties_from_drm_display_mode(
@@ -6880,6 +6890,12 @@ static void fill_stream_properties_from_drm_display_mode(
stream->output_color_space = get_output_color_space(timing_out, connector_state);
stream->content_type = get_output_content_type(connector_state);
@@ -1554,7 +1554,7 @@ index 0aee65503642..3ae712111a93 100644
}
static void fill_audio_info(struct audio_info *audio_info,
@@ -8198,6 +8214,11 @@ enum drm_mode_status amdgpu_dm_connector_mode_valid(struct drm_connector *connec
@@ -8269,6 +8285,11 @@ enum drm_mode_status amdgpu_dm_connector_mode_valid(struct drm_connector *connec
*/
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
@@ -1566,7 +1566,7 @@ index 0aee65503642..3ae712111a93 100644
if ((mode->flags & DRM_MODE_FLAG_INTERLACE) ||
(mode->flags & DRM_MODE_FLAG_DBLSCAN))
return result;
@@ -10889,12 +10910,58 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
@@ -10957,12 +10978,58 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
drm_atomic_helper_update_legacy_modeset_state(dev, state);
drm_dp_mst_atomic_wait_for_dependencies(state);
@@ -1625,11 +1625,69 @@ index 0aee65503642..3ae712111a93 100644
amdgpu_dm_update_hdcp(state);
/* Handle connector state changes */
diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c
index 17ef515c6c69..8b9c1f6509fd 100644
--- a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c
+++ b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c
@@ -40,6 +40,10 @@
#include "dc_dmub_srv.h"
#include "dc.h"
+#ifdef CONFIG_X86_PS5
+#include <linux/ps5.h>
+#endif
+
#define DC_LOGGER \
bp->base.ctx->logger
@@ -222,6 +226,17 @@ static enum bp_result transmitter_control_fallback(
struct bios_parser *bp,
struct bp_transmitter_control *cntl);
+#ifdef CONFIG_X86_PS5
+
+static enum bp_result svm_transmitter_control_v1_6(
+ struct bios_parser *bp,
+ struct bp_transmitter_control *cntl)
+{
+ return svm_execute_guest((void *)transmitter_control_v1_6, (u64)bp, (u64)cntl, 0, 0);
+}
+
+#endif
+
static void init_transmitter_control(struct bios_parser *bp)
{
uint8_t frev;
@@ -232,7 +247,11 @@ static void init_transmitter_control(struct bios_parser *bp)
switch (crev) {
case 6:
+#ifdef CONFIG_X86_PS5
+ bp->cmd_tbl.transmitter_control = svm_transmitter_control_v1_6;
+#else
bp->cmd_tbl.transmitter_control = transmitter_control_v1_6;
+#endif
break;
case 7:
bp->cmd_tbl.transmitter_control = transmitter_control_v1_7;
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c
index 76c612ecfe3c..953cd538402b 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c
@@ -214,4 +214,8 @@ void dcn201_clk_mgr_construct(struct dc_context *ctx,
clk_mgr->dfs_bypass_enabled = true;
dce_clock_read_ss_info(clk_mgr);
+#ifdef CONFIG_X86_PS5
+ clk_mgr->ss_on_dprefclk = false;
+ clk_mgr->dprefclk_ss_percentage = 0;
+#endif
}
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
index 896f4719cf7b..0eb818421a50 100644
index 05991a10f8bf..777593dddd56 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
@@ -204,6 +204,7 @@ enum dce_version resource_parse_asic_id(struct hw_asic_id asic_id)
@@ -205,6 +205,7 @@ enum dce_version resource_parse_asic_id(struct hw_asic_id asic_id)
asic_id.chip_id == DEVICE_ID_NV_13FA ||
asic_id.chip_id == DEVICE_ID_NV_13FB ||
asic_id.chip_id == DEVICE_ID_NV_13FC ||
@@ -1653,55 +1711,11 @@ index 9459e8f28338..063e4a4eefdd 100644
.get_dig_frontend = dcn10_get_dig_frontend,
.fec_is_active = enc2_fec_is_active,
.is_in_alt_mode = dcn201_link_encoder_is_in_alt_mode,
diff --git a/drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_link_encoder.c
index 13e14aad3daa..edc4b9ccfea4 100644
--- a/drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_link_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_link_encoder.c
@@ -986,6 +986,11 @@ void dcn10_link_encoder_enable_dp_output(
struct bp_transmitter_control cntl = { 0 };
enum bp_result result;
+#ifdef CONFIG_X86_PS5
+ /* Ignore this to prevent link training failure. */
+ return;
+#endif
+
/* Enable the PHY */
/* number_of_lanes is used for pixel clock adjust,
@@ -1065,6 +1070,11 @@ void dcn10_link_encoder_disable_output(
struct bp_transmitter_control cntl = { 0 };
enum bp_result result;
+#ifdef CONFIG_X86_PS5
+ /* Ignore this to prevent link training failure. */
+ return;
+#endif
+
if (enc->funcs->is_dig_enabled && !enc->funcs->is_dig_enabled(enc)) {
/* OF_SKIP_POWER_DOWN_INACTIVE_ENCODER */
/*in DP_Alt_No_Connect case, we turn off the dig already,
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
index 699a756bbc40..4a9d4ba6abf4 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
@@ -1753,6 +1753,11 @@ static void power_down_clock_sources(struct dc *dc)
{
int i;
+#ifdef CONFIG_X86_PS5
+ /* Ignore this to prevent blackscreen. */
+ return;
+#endif
+
if (dc->res_pool->dp_clock_source->funcs->cs_power_down(
dc->res_pool->dp_clock_source) == false)
dm_error("Failed to power down pll! (dp clk src)\n");
diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
index cdc7587cf0b6..7a7b17fe5a89 100644
index 782a45caa13d..444259795140 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
@@ -1015,6 +1015,12 @@ bool link_decide_link_settings(struct dc_stream_state *stream,
@@ -1018,6 +1018,12 @@ bool link_decide_link_settings(struct dc_stream_state *stream,
decide_dp_link_settings(link, link_setting, req_bw);
}
@@ -1714,7 +1728,7 @@ index cdc7587cf0b6..7a7b17fe5a89 100644
return link_setting->lane_count != LANE_COUNT_UNKNOWN &&
link_setting->link_rate != LINK_RATE_UNKNOWN;
}
@@ -1455,6 +1461,8 @@ void dpcd_set_source_specific_data(struct dc_link *link)
@@ -1458,6 +1464,8 @@ void dpcd_set_source_specific_data(struct dc_link *link)
(uint8_t *)(&amd_device_id),
sizeof(amd_device_id));
@@ -1723,7 +1737,7 @@ index cdc7587cf0b6..7a7b17fe5a89 100644
if (link->ctx->dce_version >= DCN_VERSION_2_0 &&
link->dc->caps.min_horizontal_blanking_period != 0) {
@@ -1464,6 +1472,7 @@ void dpcd_set_source_specific_data(struct dc_link *link)
@@ -1467,6 +1475,7 @@ void dpcd_set_source_specific_data(struct dc_link *link)
DP_SOURCE_MINIMUM_HBLANK_SUPPORTED, (uint8_t *)(&hblank_size),
sizeof(hblank_size));
}
@@ -1732,7 +1746,7 @@ index cdc7587cf0b6..7a7b17fe5a89 100644
WPP_BIT_FLAG_DC_DETECTION_DP_CAPS,
"result=%u link_index=%u enum dce_version=%d DPCD=0x%04X min_hblank=%u branch_dev_id=0x%x branch_dev_name='%c%c%c%c%c%c'",
diff --git a/drivers/gpu/drm/amd/display/include/dal_asic_id.h b/drivers/gpu/drm/amd/display/include/dal_asic_id.h
index 8aea50aa9533..8b647bd95691 100644
index 92510af1bd65..85c9e587834d 100644
--- a/drivers/gpu/drm/amd/display/include/dal_asic_id.h
+++ b/drivers/gpu/drm/amd/display/include/dal_asic_id.h
@@ -217,6 +217,7 @@ enum {
@@ -1744,10 +1758,10 @@ index 8aea50aa9533..8b647bd95691 100644
#define FAMILY_VGH 144
#define DEVICE_ID_VGH_163F 0x163F
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index ff432ac6b569..2efeaec03ea1 100644
index 404208bf23a6..85718d593c42 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -2219,6 +2219,10 @@ static void connector_bad_edid(struct drm_connector *connector,
@@ -2242,6 +2242,10 @@ static void connector_bad_edid(struct drm_connector *connector,
edid_block_dump(KERN_DEBUG, edid + i, i);
}
@@ -1758,7 +1772,7 @@ index ff432ac6b569..2efeaec03ea1 100644
/* Get override or firmware EDID */
static const struct drm_edid *drm_edid_override_get(struct drm_connector *connector)
{
@@ -2234,6 +2238,11 @@ static const struct drm_edid *drm_edid_override_get(struct drm_connector *connec
@@ -2257,6 +2261,11 @@ static const struct drm_edid *drm_edid_override_get(struct drm_connector *connec
if (!override)
override = drm_edid_load_firmware(connector);
@@ -1783,10 +1797,10 @@ index a5d8f45b7881..3c7b76af13e4 100644
case 0x68: /* Lucienne */
case 0x71: /* Zen2 */
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index f3fd7f39efb4..7dd1b138ae78 100644
index 3bdb380d23e9..e25db11bb1e5 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -3093,6 +3093,8 @@ static void __init free_iommu_resources(void)
@@ -3107,6 +3107,8 @@ static void __init free_iommu_resources(void)
free_pci_segments();
}
@@ -1795,7 +1809,7 @@ index f3fd7f39efb4..7dd1b138ae78 100644
/* SB IOAPIC is always on this device in AMD systems */
#define IOAPIC_SB_DEVID ((0x00 << 8) | PCI_DEVFN(0x14, 0))
@@ -3145,6 +3147,8 @@ static bool __init check_ioapic_information(void)
@@ -3159,6 +3161,8 @@ static bool __init check_ioapic_information(void)
return ret;
}
@@ -1804,7 +1818,7 @@ index f3fd7f39efb4..7dd1b138ae78 100644
static void __init free_dma_resources(void)
{
amd_iommu_pdom_id_destroy();
@@ -3269,8 +3273,11 @@ static int __init early_amd_iommu_init(void)
@@ -3283,8 +3287,11 @@ static int __init early_amd_iommu_init(void)
if (!is_kdump_kernel() || amd_iommu_disabled)
disable_iommus();
@@ -1817,16 +1831,16 @@ index f3fd7f39efb4..7dd1b138ae78 100644
if (amd_iommu_irq_remap) {
struct amd_iommu_pci_seg *pci_seg;
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 7b73332a13d9..b92217f5ef0e 100644
index b5ee338b620d..5e3b12332ef0 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -471,3 +471,4 @@ config XILINX_GMII2RGMII
@@ -465,3 +465,4 @@ config XILINX_GMII2RGMII
Ethernet physical media devices and the Gigabit Ethernet controller.
endif # PHYLIB
+source "drivers/net/phy/mts/Kconfig"
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index 3a34917adea7..2f0ec5e17d90 100644
index 05e4878af27a..3a61917ba549 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -71,6 +71,7 @@ obj-$(CONFIG_MARVELL_88X2222_PHY) += marvell-88x2222.o
@@ -1864,7 +1878,7 @@ index 000000000000..e01771be845b
+mts-y := mts_main.o mts_phy.o
diff --git a/drivers/net/phy/mts/mts.h b/drivers/net/phy/mts/mts.h
new file mode 100644
index 000000000000..e846b6b0edbc
index 000000000000..a0e41029aea2
--- /dev/null
+++ b/drivers/net/phy/mts/mts.h
@@ -0,0 +1,186 @@
@@ -2056,7 +2070,7 @@ index 000000000000..e846b6b0edbc
+#endif /* _MTS_H */
diff --git a/drivers/net/phy/mts/mts_main.c b/drivers/net/phy/mts/mts_main.c
new file mode 100644
index 000000000000..4250a25d7260
index 000000000000..c193cb2d1bd4
--- /dev/null
+++ b/drivers/net/phy/mts/mts_main.c
@@ -0,0 +1,823 @@
@@ -3294,10 +3308,10 @@ index 000000000000..91fedcca4589
+ return 0;
+}
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index b4707640e102..7b854e5bb8ff 100644
index b63cd0c310bc..495b2714838b 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2801,6 +2801,14 @@ static int next_ari_fn(struct pci_bus *bus, struct pci_dev *dev, int fn)
@@ -2806,6 +2806,14 @@ static int next_ari_fn(struct pci_bus *bus, struct pci_dev *dev, int fn)
u16 cap = 0;
unsigned int next_fn;
@@ -3314,11 +3328,11 @@ index b4707640e102..7b854e5bb8ff 100644
diff --git a/drivers/ps5/Makefile b/drivers/ps5/Makefile
new file mode 100644
index 000000000000..ff1bbbbf219c
index 000000000000..36a3f5261a26
--- /dev/null
+++ b/drivers/ps5/Makefile
@@ -0,0 +1 @@
+obj-y += spcie.o tpcie.o hdmi.o mp1.o buzzer.o
+obj-y += spcie.o tpcie.o hdmi.o mp1.o buzzer.o svm.o vmenter.o
diff --git a/drivers/ps5/autoservo_param.h b/drivers/ps5/autoservo_param.h
new file mode 100644
index 000000000000..d2c25e461bf7
@@ -8416,6 +8430,181 @@ index 000000000000..e02c074ee0b1
+MODULE_AUTHOR("Andy Nguyen");
+MODULE_DESCRIPTION("PlayStation 5 Salina PCI Express glue driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/ps5/svm.c b/drivers/ps5/svm.c
new file mode 100644
index 000000000000..3fd58e9a6609
--- /dev/null
+++ b/drivers/ps5/svm.c
@@ -0,0 +1,169 @@
+#include <linux/module.h>
+#include <linux/ps5.h>
+
+#include <asm/svm.h>
+#include <asm/desc.h>
+#include <asm/io.h>
+#include <asm/debugreg.h>
+
+void svm_run_guest(u64 a0, u64 a1, u64 a2, u64 a3, u64 vmcb_phys);
+
+static DEFINE_SPINLOCK(svm_execute_lock);
+
+static void svm_set_vmcb_seg(struct vmcb_seg *s, u16 selector, u64 base, u32 limit,
+ struct desc_struct *d)
+{
+ s->base = base;
+ s->limit = limit;
+ s->selector = selector;
+ s->attrib = 0;
+
+ if (d) {
+ if (d->g)
+ s->limit = (limit << 12) | 0xfff;
+
+ s->attrib |= (d->type & SVM_SELECTOR_TYPE_MASK);
+ s->attrib |= (d->s & 1) << SVM_SELECTOR_S_SHIFT;
+ s->attrib |= (d->dpl & 3) << SVM_SELECTOR_DPL_SHIFT;
+ s->attrib |= (d->p & 1) << SVM_SELECTOR_P_SHIFT;
+ s->attrib |= (d->avl & 1) << SVM_SELECTOR_AVL_SHIFT;
+ s->attrib |= (d->l & 1) << SVM_SELECTOR_L_SHIFT;
+ s->attrib |= (d->d & 1) << SVM_SELECTOR_DB_SHIFT;
+ s->attrib |= (d->g & 1) << SVM_SELECTOR_G_SHIFT;
+ }
+}
+
+static void svm_set_segment(struct vmcb_seg *seg, u16 selector, struct desc_ptr *desc)
+{
+ struct desc_struct *d = NULL;
+ u64 base = 0;
+ u32 limit = 0;
+
+ if (selector) {
+ d = &((struct desc_struct *)desc->address)[selector >> 3];
+ base = get_desc_base(d);
+ limit = get_desc_limit(d);
+ }
+
+ svm_set_vmcb_seg(seg, selector, base, limit, d);
+}
+
+static void svm_guest_entry(void)
+{
+ asm volatile(
+ ANNOTATE_RETPOLINE_SAFE "\n\t"
+ "call *%%rax\n\t"
+ "vmmcall\n\t"
+ : ASM_CALL_CONSTRAINT
+ :
+ : "memory"
+ );
+}
+
+static void svm_init_vmcb(struct vmcb *vmcb, void *guest_func, void *guest_stack)
+{
+ struct vmcb_save_area *save = &vmcb->save;
+ struct vmcb_control_area *ctrl = &vmcb->control;
+ u64 vmcb_phys = virt_to_phys(vmcb);
+ struct desc_ptr gdt_ptr, idt_ptr;
+ u16 sel;
+ unsigned long dr6, dr7;
+
+ memset(vmcb, 0, PAGE_SIZE);
+
+ asm volatile("vmsave %0" : : "a"(vmcb_phys) : "memory");
+
+ native_store_gdt(&gdt_ptr);
+ store_idt(&idt_ptr);
+
+ savesegment(es, sel); svm_set_segment(&save->es, sel, &gdt_ptr);
+ savesegment(cs, sel); svm_set_segment(&save->cs, sel, &gdt_ptr);
+ savesegment(ss, sel); svm_set_segment(&save->ss, sel, &gdt_ptr);
+ savesegment(ds, sel); svm_set_segment(&save->ds, sel, &gdt_ptr);
+
+ svm_set_vmcb_seg(&save->gdtr, 0, gdt_ptr.address, gdt_ptr.size, NULL);
+ svm_set_vmcb_seg(&save->idtr, 0, idt_ptr.address, idt_ptr.size, NULL);
+
+ save->cr0 = read_cr0();
+ save->cr2 = read_cr2();
+ save->cr3 = __read_cr3();
+ save->cr4 = __read_cr4();
+
+ get_debugreg(dr6, 6);
+ get_debugreg(dr7, 7);
+ save->dr6 = dr6;
+ save->dr7 = dr7;
+
+ save->rflags = native_save_fl();
+
+ save->rip = (u64)svm_guest_entry;
+ save->rax = (u64)guest_func;
+ save->rsp = (u64)guest_stack + PAGE_SIZE;
+
+ rdmsrl(MSR_EFER, save->efer);
+ rdmsrl(MSR_IA32_CR_PAT, save->g_pat);
+
+ __set_bit(INTERCEPT_VMRUN, (unsigned long *)ctrl->intercepts);
+ __set_bit(INTERCEPT_VMMCALL, (unsigned long *)ctrl->intercepts);
+
+ ctrl->asid = 1;
+ ctrl->tlb_ctl = TLB_CONTROL_FLUSH_ASID;
+}
+
+u64 svm_execute_guest(void *guest_func, u64 a0, u64 a1, u64 a2, u64 a3)
+{
+ unsigned long flags;
+ u64 efer, hsave_pa;
+ u64 exit_code;
+ u64 ret = -1;
+ struct vmcb *vmcb = NULL;
+ void *hsave_area = NULL;
+ void *guest_stack = NULL;
+
+ vmcb = (struct vmcb *)get_zeroed_page(GFP_KERNEL);
+ if (!vmcb)
+ goto err_free;
+
+ hsave_area = (void *)get_zeroed_page(GFP_KERNEL);
+ if (!hsave_area)
+ goto err_free;
+
+ guest_stack = (void *)get_zeroed_page(GFP_KERNEL);
+ if (!guest_stack)
+ goto err_free;
+
+ spin_lock_irqsave(&svm_execute_lock, flags);
+
+ rdmsrl(MSR_EFER, efer);
+ wrmsrl(MSR_EFER, efer | EFER_SVME);
+
+ rdmsrl(MSR_VM_HSAVE_PA, hsave_pa);
+ wrmsrl(MSR_VM_HSAVE_PA, virt_to_phys(hsave_area));
+
+ svm_init_vmcb(vmcb, guest_func, guest_stack);
+
+ svm_run_guest(a0, a1, a2, a3, virt_to_phys(vmcb));
+
+ exit_code = vmcb->control.exit_code;
+ if (exit_code == SVM_EXIT_VMMCALL) {
+ ret = vmcb->save.rax;
+ } else {
+ pr_warn("svm: unexpected exit code 0x%llx\n", exit_code);
+ }
+
+ wrmsrl(MSR_VM_HSAVE_PA, hsave_pa);
+ wrmsrl(MSR_EFER, efer);
+
+ spin_unlock_irqrestore(&svm_execute_lock, flags);
+
+err_free:
+ if (guest_stack)
+ free_page((unsigned long)guest_stack);
+ if (hsave_area)
+ free_page((unsigned long)hsave_area);
+ if (vmcb)
+ free_page((unsigned long)vmcb);
+
+ return ret;
+}
+EXPORT_SYMBOL(svm_execute_guest);
diff --git a/drivers/ps5/tpcie.c b/drivers/ps5/tpcie.c
new file mode 100644
index 000000000000..23de43ea4b00
@@ -8725,11 +8914,47 @@ index 000000000000..23de43ea4b00
+MODULE_AUTHOR("Andy Nguyen");
+MODULE_DESCRIPTION("PlayStation 5 Titania PCI Express glue driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/ps5/vmenter.S b/drivers/ps5/vmenter.S
new file mode 100644
index 000000000000..f5348c0d7e82
--- /dev/null
+++ b/drivers/ps5/vmenter.S
@@ -0,0 +1,30 @@
+#include <linux/linkage.h>
+#include <asm/asm.h>
+
+.section .noinstr.text, "ax"
+
+SYM_FUNC_START(svm_run_guest)
+ push %_ASM_BP
+ mov %_ASM_SP, %_ASM_BP
+ push %r15
+ push %r14
+ push %r13
+ push %r12
+ push %_ASM_BX
+
+ mov %r8, %_ASM_AX
+
+ clgi
+ vmload %_ASM_AX
+ vmrun %_ASM_AX
+ vmsave %_ASM_AX
+ stgi
+
+ pop %_ASM_BX
+ pop %r12
+ pop %r13
+ pop %r14
+ pop %r15
+ pop %_ASM_BP
+ RET
+SYM_FUNC_END(svm_run_guest)
diff --git a/include/linux/dmi.h b/include/linux/dmi.h
index 2eedf44e6801..2785a47665be 100644
index c8700e6a694d..7d0afd378c4e 100644
--- a/include/linux/dmi.h
+++ b/include/linux/dmi.h
@@ -105,6 +105,9 @@ extern struct kobject *dmi_kobj;
@@ -120,6 +120,9 @@ extern struct kobject *dmi_kobj;
extern int dmi_check_system(const struct dmi_system_id *list);
const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list);
extern const char * dmi_get_system_info(int field);
@@ -8741,10 +8966,10 @@ index 2eedf44e6801..2785a47665be 100644
extern void dmi_setup(void);
diff --git a/include/linux/ps5.h b/include/linux/ps5.h
new file mode 100644
index 000000000000..4020a0b0c61c
index 000000000000..24adcd953ab3
--- /dev/null
+++ b/include/linux/ps5.h
@@ -0,0 +1,93 @@
@@ -0,0 +1,95 @@
+#ifndef _LINUX_PS5_H
+#define _LINUX_PS5_H
+
@@ -8837,6 +9062,8 @@ index 000000000000..4020a0b0c61c
+void mp1_set_pm1_addr(u64 addr);
+int mp1_set_sleep_entry(void);
+
+u64 svm_execute_guest(void *guest_func, u64 a0, u64 a1, u64 a2, u64 a3);
+
+#endif /* _LINUX_PS5_H */
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 28169d7e143b..44f516daa21d 100755
@@ -8853,10 +9080,10 @@ index 28169d7e143b..44f516daa21d 100755
do
case "$1" in
diff --git a/sound/hda/controllers/intel.c b/sound/hda/controllers/intel.c
index a4104376523a..befee7ef6c94 100644
index 4b03c64e72ab..4cb7d285ccd6 100644
--- a/sound/hda/controllers/intel.c
+++ b/sound/hda/controllers/intel.c
@@ -2640,6 +2640,8 @@ static const struct pci_device_id azx_ids[] = {
@@ -2643,6 +2643,8 @@ static const struct pci_device_id azx_ids[] = {
AZX_DCAPS_PM_RUNTIME },
{ PCI_VDEVICE(ATI, 0x1308),
.driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },