mirror of
https://github.com/ps5-linux/ps5-linux-patches.git
synced 2026-07-16 18:30:41 +00:00
Compare commits
5 Commits
v1.3
...
kernel-7.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
76db3a464b | ||
|
|
9fec3c7729 | ||
|
|
e00c8a7d38 | ||
|
|
45c3a2ec19 | ||
|
|
61eb7c0f71 |
78
.config
78
.config
@@ -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
|
||||
|
||||
524
linux.patch
524
linux.patch
@@ -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..1ca2bcd7755d 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..1ca2bcd7755d 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..1ca2bcd7755d 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..1ca2bcd7755d 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..1ca2bcd7755d 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,33 +1566,44 @@ index 0aee65503642..1ca2bcd7755d 100644
|
||||
if ((mode->flags & DRM_MODE_FLAG_INTERLACE) ||
|
||||
(mode->flags & DRM_MODE_FLAG_DBLSCAN))
|
||||
return result;
|
||||
@@ -10458,6 +10479,9 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
|
||||
new_crtc_state, i) {
|
||||
struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
|
||||
@@ -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);
|
||||
|
||||
+#ifdef CONFIG_X86_PS5
|
||||
+ for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
|
||||
+ new_crtc_state, i) {
|
||||
+ dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);
|
||||
+#endif
|
||||
dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);
|
||||
|
||||
if (old_crtc_state->active &&
|
||||
@@ -10465,6 +10489,11 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
|
||||
drm_atomic_crtc_needs_modeset(new_crtc_state))) {
|
||||
manage_dm_interrupts(adev, acrtc, NULL);
|
||||
dc_stream_release(dm_old_crtc_state->stream);
|
||||
+#ifdef CONFIG_X86_PS5
|
||||
+ dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);
|
||||
+
|
||||
+ if ((new_crtc_state->active &&
|
||||
+ (!old_crtc_state->active ||
|
||||
+ drm_atomic_crtc_needs_modeset(new_crtc_state))) ||
|
||||
+ (old_crtc_state->active &&
|
||||
+ (!new_crtc_state->active ||
|
||||
+ drm_atomic_crtc_needs_modeset(new_crtc_state)))) {
|
||||
+ if (dm_new_crtc_state->stream && dc_is_dp_signal(dm_new_crtc_state->stream->signal)) {
|
||||
+ sceHdmiInitVideoConfig();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
+
|
||||
dm_state = dm_atomic_get_new_state(state);
|
||||
if (dm_state && dm_state->context) {
|
||||
dc_state = dm_state->context;
|
||||
amdgpu_dm_commit_streams(state, dc_state);
|
||||
}
|
||||
|
||||
@@ -11035,6 +11064,22 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
|
||||
dc_stream_retain(dm_new_crtc_state->stream);
|
||||
acrtc->dm_irq_params.stream = dm_new_crtc_state->stream;
|
||||
manage_dm_interrupts(adev, acrtc, dm_new_crtc_state);
|
||||
+#ifdef CONFIG_X86_PS5
|
||||
+ for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
|
||||
+ new_crtc_state, i) {
|
||||
+ dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);
|
||||
+ dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);
|
||||
+
|
||||
+ if (new_crtc_state->active &&
|
||||
+ (!old_crtc_state->active ||
|
||||
+ drm_atomic_crtc_needs_modeset(new_crtc_state))) {
|
||||
+ if (dm_new_crtc_state->stream && dc_is_dp_signal(dm_new_crtc_state->stream->signal)) {
|
||||
+ struct dc_stream_state *stream = dm_new_crtc_state->stream;
|
||||
+ int channels = 0;
|
||||
@@ -1607,15 +1618,31 @@ index 0aee65503642..1ca2bcd7755d 100644
|
||||
+ sceHdmiSetAudioConfig(channels);
|
||||
+ sceHdmiSetAudioMute(0);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
/* Handle vrr on->off / off->on transitions */
|
||||
amdgpu_dm_handle_vrr_transition(dm_old_crtc_state, dm_new_crtc_state);
|
||||
+
|
||||
amdgpu_dm_update_hdcp(state);
|
||||
|
||||
/* Handle connector state changes */
|
||||
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 ||
|
||||
@@ -1668,10 +1695,10 @@ index 13e14aad3daa..edc4b9ccfea4 100644
|
||||
/* 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
|
||||
index f0abbb7c2cb2..bd90d174ba24 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)
|
||||
@@ -1821,6 +1821,11 @@ static void power_down_clock_sources(struct dc *dc)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -1684,10 +1711,10 @@ index 699a756bbc40..4a9d4ba6abf4 100644
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1700,7 +1727,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));
|
||||
|
||||
@@ -1709,7 +1736,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));
|
||||
}
|
||||
@@ -1718,7 +1745,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 {
|
||||
@@ -1730,10 +1757,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);
|
||||
}
|
||||
|
||||
@@ -1744,7 +1771,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);
|
||||
|
||||
@@ -1769,10 +1796,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();
|
||||
}
|
||||
|
||||
@@ -1781,7 +1808,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;
|
||||
}
|
||||
|
||||
@@ -1790,7 +1817,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();
|
||||
|
||||
@@ -1803,16 +1830,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
|
||||
@@ -1850,10 +1877,10 @@ 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,181 @@
|
||||
@@ -0,0 +1,186 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only
|
||||
+/*
|
||||
+ * PlayStation 5 Gigabit Ethernet driver
|
||||
@@ -1925,6 +1952,11 @@ index 000000000000..e846b6b0edbc
|
||||
+
|
||||
+#define GBE_COAL_VAL 0x10001388
|
||||
+
|
||||
+/* this chip has no intx pin and its msi sometimes never fires (cold boot). when
|
||||
+ * we detect that, the link_poll work becomes the only way to service the rings,
|
||||
+ * so it polls this often (ms) instead of once a second to stay responsive. */
|
||||
+#define GBE_POLL_FALLBACK_MS 10
|
||||
+
|
||||
+/* excludes bit2 (LINK) - polling link state avoids IRQ storm from autoneg pulses */
|
||||
+#define GBE_IER_MASK 0x5014fa
|
||||
+
|
||||
@@ -2037,10 +2069,10 @@ 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,810 @@
|
||||
@@ -0,0 +1,823 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only
|
||||
+/*
|
||||
+ * PlayStation 5 Gigabit Ethernet driver
|
||||
@@ -2515,26 +2547,32 @@ index 000000000000..4250a25d7260
|
||||
+{
|
||||
+ struct gbe_priv *p = container_of(to_delayed_work(work),
|
||||
+ struct gbe_priv, link_poll);
|
||||
+ unsigned long delay = HZ;
|
||||
+
|
||||
+ gbe_link_change(p);
|
||||
+
|
||||
+ /*
|
||||
+ * on a cold boot the chip sometimes just never fires its first irq and
|
||||
+ * napi sits there doing nothing. if the irq count hasnt moved since last tick,
|
||||
+ * we kick it by hand and re-arm the mask.
|
||||
+ * napi sits there doing nothing. if the irq count hasnt moved since last
|
||||
+ * tick the msi is dead -- kick napi by hand and re-arm the mask. msi is the
|
||||
+ * only irq source (no intx pin), so while it stays dead we keep polling fast
|
||||
+ * (GBE_POLL_FALLBACK_MS) instead of once a second, or interactive rx lags by
|
||||
+ * up to a second. as soon as real irqs start arriving we drop back to HZ.
|
||||
+ */
|
||||
+ if (netif_running(p->netdev) && p->cnt_irq == p->irq_watchdog) {
|
||||
+ napi_schedule(&p->napi);
|
||||
+ gbe_wr(p, GBE_REG_IER, GBE_IER_MASK);
|
||||
+ delay = max_t(unsigned long, 1, msecs_to_jiffies(GBE_POLL_FALLBACK_MS));
|
||||
+ }
|
||||
+ p->irq_watchdog = p->cnt_irq;
|
||||
+
|
||||
+ if (++p->poll_tick >= 10) {
|
||||
+ /* dump stats roughly every 10s regardless of the current poll cadence */
|
||||
+ if (++p->poll_tick >= 10 * HZ / delay) {
|
||||
+ gbe_dump_stats(p);
|
||||
+ p->poll_tick = 0;
|
||||
+ }
|
||||
+
|
||||
+ schedule_delayed_work(&p->link_poll, HZ);
|
||||
+ schedule_delayed_work(&p->link_poll, delay);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
@@ -2582,11 +2620,18 @@ index 000000000000..4250a25d7260
|
||||
+ rx_done = gbe_rx_poll(p, budget);
|
||||
+
|
||||
+ if (rx_done < budget) {
|
||||
+ u32 isr;
|
||||
+
|
||||
+ napi_complete_done(napi, rx_done);
|
||||
+ gbe_wr(p, GBE_REG_IER, GBE_IER_MASK);
|
||||
+ /* chip wont send a fresh msi for stuff that landed while ier was
|
||||
+ off, so re-check isr and re-kick or interrupts just freeze */
|
||||
+ if (gbe_rd(p, GBE_REG_ISR) & GBE_IER_MASK) {
|
||||
+ off, so re-check isr and re-kick or interrupts just freeze.
|
||||
+ ACK the causes (W1C) first: otherwise a latched/undelivered
|
||||
+ cause (the msi-silent cold-boot case) keeps this condition
|
||||
+ permanently true and spins napi at ~30k polls/s, pinning a cpu. */
|
||||
+ isr = gbe_rd(p, GBE_REG_ISR) & GBE_IER_MASK;
|
||||
+ if (isr) {
|
||||
+ gbe_wr(p, GBE_REG_ISR, isr);
|
||||
+ if (napi_schedule_prep(&p->napi)) {
|
||||
+ gbe_wr(p, GBE_REG_IER, 0);
|
||||
+ __napi_schedule(&p->napi);
|
||||
@@ -3262,10 +3307,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;
|
||||
|
||||
@@ -3282,11 +3327,11 @@ index b4707640e102..7b854e5bb8ff 100644
|
||||
|
||||
diff --git a/drivers/ps5/Makefile b/drivers/ps5/Makefile
|
||||
new file mode 100644
|
||||
index 000000000000..7acb030a4976
|
||||
index 000000000000..ff1bbbbf219c
|
||||
--- /dev/null
|
||||
+++ b/drivers/ps5/Makefile
|
||||
@@ -0,0 +1 @@
|
||||
+obj-y += spcie.o tpcie.o hdmi.o mp1.o
|
||||
+obj-y += spcie.o tpcie.o hdmi.o mp1.o buzzer.o
|
||||
diff --git a/drivers/ps5/autoservo_param.h b/drivers/ps5/autoservo_param.h
|
||||
new file mode 100644
|
||||
index 000000000000..d2c25e461bf7
|
||||
@@ -5195,6 +5240,303 @@ index 000000000000..d2c25e461bf7
|
||||
+};
|
||||
+
|
||||
+#endif /* _AUTOSERVO_PARAM_H */
|
||||
diff --git a/drivers/ps5/buzzer.c b/drivers/ps5/buzzer.c
|
||||
new file mode 100644
|
||||
index 000000000000..f48ad6f92534
|
||||
--- /dev/null
|
||||
+++ b/drivers/ps5/buzzer.c
|
||||
@@ -0,0 +1,291 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only
|
||||
+
|
||||
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/miscdevice.h>
|
||||
+#include <linux/fs.h>
|
||||
+#include <linux/slab.h>
|
||||
+#include <linux/uaccess.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/kthread.h>
|
||||
+#include <linux/mutex.h>
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/ps5.h>
|
||||
+
|
||||
+#define BUZZER_IOC_MAGIC 'B'
|
||||
+
|
||||
+#define PS5_BUZZ_SILENT 0
|
||||
+#define PS5_BUZZ_SHORT 1
|
||||
+#define PS5_BUZZ_ERROR 2
|
||||
+#define PS5_BUZZ_LONG 3
|
||||
+
|
||||
+struct ps5_buzzer_step {
|
||||
+ __u8 value;
|
||||
+ __u16 hold_ms;
|
||||
+} __attribute__((packed));
|
||||
+
|
||||
+struct ps5_buzzer_pattern {
|
||||
+ __u32 nsteps;
|
||||
+ struct ps5_buzzer_step steps[];
|
||||
+};
|
||||
+
|
||||
+#define PS5_BUZZER_BEEP _IOW(BUZZER_IOC_MAGIC, 1, __u8)
|
||||
+#define PS5_BUZZER_PLAY _IOW(BUZZER_IOC_MAGIC, 2, struct ps5_buzzer_pattern)
|
||||
+#define PS5_BUZZER_STOP _IO(BUZZER_IOC_MAGIC, 3)
|
||||
+
|
||||
+#define MAX_PATTERN_STEPS 1024
|
||||
+
|
||||
+static struct input_dev *snd_idev;
|
||||
+static struct task_struct *play_thread;
|
||||
+static DEFINE_MUTEX(play_lock);
|
||||
+
|
||||
+static int ps5_buzz_raw(u8 level)
|
||||
+{
|
||||
+ u8 buf[ICC_MSG_MAX_SIZE] = {};
|
||||
+ struct icc_msg *msg = (struct icc_msg *)buf;
|
||||
+
|
||||
+ if (level > PS5_BUZZ_LONG)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ msg->service_id = ICC_SERVICE_ID_INDICATOR;
|
||||
+ msg->msg_type = 0x00;
|
||||
+ msg->length = 0x20;
|
||||
+ msg->data[0] = level;
|
||||
+
|
||||
+ return icc_query(buf, buf);
|
||||
+}
|
||||
+
|
||||
+struct play_ctx {
|
||||
+ struct ps5_buzzer_step *steps;
|
||||
+ u32 nsteps;
|
||||
+};
|
||||
+
|
||||
+static int play_fn(void *data)
|
||||
+{
|
||||
+ struct play_ctx *ctx = data;
|
||||
+ u32 i;
|
||||
+
|
||||
+ for (i = 0; i < ctx->nsteps && !kthread_should_stop(); i++) {
|
||||
+ ps5_buzz_raw(ctx->steps[i].value);
|
||||
+ if (ctx->steps[i].hold_ms)
|
||||
+ msleep_interruptible(ctx->steps[i].hold_ms);
|
||||
+ }
|
||||
+
|
||||
+ kfree(ctx->steps);
|
||||
+ kfree(ctx);
|
||||
+
|
||||
+ mutex_lock(&play_lock);
|
||||
+ play_thread = NULL;
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int play_start(struct ps5_buzzer_step *steps, u32 nsteps)
|
||||
+{
|
||||
+ struct play_ctx *ctx;
|
||||
+ struct task_struct *t;
|
||||
+
|
||||
+ mutex_lock(&play_lock);
|
||||
+ if (play_thread) {
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return -EBUSY;
|
||||
+ }
|
||||
+
|
||||
+ ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
|
||||
+ if (!ctx) {
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+ ctx->steps = steps;
|
||||
+ ctx->nsteps = nsteps;
|
||||
+
|
||||
+ t = kthread_run(play_fn, ctx, "ps5_buzz_play");
|
||||
+ if (IS_ERR(t)) {
|
||||
+ kfree(ctx);
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return PTR_ERR(t);
|
||||
+ }
|
||||
+ play_thread = t;
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int play_stop(void)
|
||||
+{
|
||||
+ mutex_lock(&play_lock);
|
||||
+ if (play_thread) {
|
||||
+ kthread_stop(play_thread);
|
||||
+ play_thread = NULL;
|
||||
+ }
|
||||
+ mutex_unlock(&play_lock);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static ssize_t buzz_write(struct file *f, const char __user *ubuf,
|
||||
+ size_t n, loff_t *pos)
|
||||
+{
|
||||
+ char c;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (n < 1)
|
||||
+ return -EINVAL;
|
||||
+ if (get_user(c, ubuf))
|
||||
+ return -EFAULT;
|
||||
+ if (c < '0' || c > '3')
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ ret = ps5_buzz_raw(c - '0');
|
||||
+ return ret ? ret : n;
|
||||
+}
|
||||
+
|
||||
+static long buzz_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
|
||||
+{
|
||||
+ switch (cmd) {
|
||||
+ case PS5_BUZZER_BEEP: {
|
||||
+ u8 level;
|
||||
+ if (get_user(level, (u8 __user *)arg))
|
||||
+ return -EFAULT;
|
||||
+ return ps5_buzz_raw(level);
|
||||
+ }
|
||||
+ case PS5_BUZZER_PLAY: {
|
||||
+ struct ps5_buzzer_pattern hdr;
|
||||
+ struct ps5_buzzer_step *steps;
|
||||
+ size_t bytes;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (copy_from_user(&hdr, (void __user *)arg, sizeof(hdr)))
|
||||
+ return -EFAULT;
|
||||
+ if (!hdr.nsteps || hdr.nsteps > MAX_PATTERN_STEPS)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ bytes = hdr.nsteps * sizeof(struct ps5_buzzer_step);
|
||||
+ steps = kmalloc(bytes, GFP_KERNEL);
|
||||
+ if (!steps)
|
||||
+ return -ENOMEM;
|
||||
+ if (copy_from_user(steps,
|
||||
+ (void __user *)(arg + sizeof(hdr)), bytes)) {
|
||||
+ kfree(steps);
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+ ret = play_start(steps, hdr.nsteps);
|
||||
+ if (ret)
|
||||
+ kfree(steps);
|
||||
+ return ret;
|
||||
+ }
|
||||
+ case PS5_BUZZER_STOP:
|
||||
+ return play_stop();
|
||||
+ }
|
||||
+ return -ENOTTY;
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations buzz_fops = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .write = buzz_write,
|
||||
+ .unlocked_ioctl = buzz_ioctl,
|
||||
+ .llseek = noop_llseek,
|
||||
+};
|
||||
+
|
||||
+static struct miscdevice buzz_misc = {
|
||||
+ .minor = MISC_DYNAMIC_MINOR,
|
||||
+ .name = "ps5_buzzer",
|
||||
+ .fops = &buzz_fops,
|
||||
+ .mode = 0660,
|
||||
+};
|
||||
+
|
||||
+static int snd_event(struct input_dev *dev, unsigned int type,
|
||||
+ unsigned int code, int value)
|
||||
+{
|
||||
+ if (type == EV_SND && code == SND_BELL)
|
||||
+ ps5_buzz_raw(value ? PS5_BUZZ_SHORT : PS5_BUZZ_SILENT);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static ssize_t beep_store(struct device *d, struct device_attribute *a,
|
||||
+ const char *buf, size_t n)
|
||||
+{
|
||||
+ u8 level;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (kstrtou8(buf, 0, &level))
|
||||
+ return -EINVAL;
|
||||
+ ret = ps5_buzz_raw(level);
|
||||
+ return ret ? ret : n;
|
||||
+}
|
||||
+static DEVICE_ATTR_WO(beep);
|
||||
+
|
||||
+static ssize_t stop_store(struct device *d, struct device_attribute *a,
|
||||
+ const char *buf, size_t n)
|
||||
+{
|
||||
+ play_stop();
|
||||
+ return n;
|
||||
+}
|
||||
+static DEVICE_ATTR_WO(stop);
|
||||
+
|
||||
+static struct attribute *buzz_attrs[] = {
|
||||
+ &dev_attr_beep.attr,
|
||||
+ &dev_attr_stop.attr,
|
||||
+ NULL,
|
||||
+};
|
||||
+
|
||||
+static const struct attribute_group buzz_attr_group = {
|
||||
+ .attrs = buzz_attrs,
|
||||
+};
|
||||
+
|
||||
+static int __init ps5_buzzer_init(void)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = misc_register(&buzz_misc);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ ret = sysfs_create_group(&buzz_misc.this_device->kobj, &buzz_attr_group);
|
||||
+ if (ret)
|
||||
+ goto err_misc;
|
||||
+
|
||||
+ snd_idev = input_allocate_device();
|
||||
+ if (!snd_idev) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_sysfs;
|
||||
+ }
|
||||
+ snd_idev->name = "PS5 Chassis Buzzer";
|
||||
+ snd_idev->phys = "ps5_buzzer/input0";
|
||||
+ snd_idev->id.bustype = BUS_VIRTUAL;
|
||||
+ snd_idev->event = snd_event;
|
||||
+ input_set_capability(snd_idev, EV_SND, SND_BELL);
|
||||
+
|
||||
+ ret = input_register_device(snd_idev);
|
||||
+ if (ret)
|
||||
+ goto err_input;
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+err_input:
|
||||
+ input_free_device(snd_idev);
|
||||
+ snd_idev = NULL;
|
||||
+err_sysfs:
|
||||
+ sysfs_remove_group(&buzz_misc.this_device->kobj, &buzz_attr_group);
|
||||
+err_misc:
|
||||
+ misc_deregister(&buzz_misc);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static void __exit ps5_buzzer_exit(void)
|
||||
+{
|
||||
+ play_stop();
|
||||
+ if (snd_idev)
|
||||
+ input_unregister_device(snd_idev);
|
||||
+ sysfs_remove_group(&buzz_misc.this_device->kobj, &buzz_attr_group);
|
||||
+ misc_deregister(&buzz_misc);
|
||||
+}
|
||||
+
|
||||
+module_init(ps5_buzzer_init);
|
||||
+module_exit(ps5_buzzer_exit);
|
||||
+
|
||||
+MODULE_AUTHOR("Armandas Kvietkus");
|
||||
+MODULE_DESCRIPTION("PlayStation 5 chassis piezo buzzer");
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/drivers/ps5/hdmi.c b/drivers/ps5/hdmi.c
|
||||
new file mode 100644
|
||||
index 000000000000..8f094490d677
|
||||
@@ -8397,10 +8739,10 @@ index 000000000000..23de43ea4b00
|
||||
+MODULE_DESCRIPTION("PlayStation 5 Titania PCI Express glue driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
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);
|
||||
@@ -8524,10 +8866,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 },
|
||||
|
||||
Reference in New Issue
Block a user