Compare commits

...
Author SHA1 Message Date
rmux 56922cf9af config: enable Android binder for waydroid (#33) 2026-08-09 20:04:10 +02:00
Andy Nguyen 792ef83846 config: update to 7.1.7 2026-08-08 11:22:43 +02:00
Dan Kluser daa2e49608 Increase timeout for builds 2026-07-29 08:41:46 +02:00
Andy Nguyen b18c595597 config: update to 7.1.4 2026-07-21 21:48:01 +02:00
rmux be4fdf3fe9 PS5: Buzzer: fix crash in snd_event (#31) 2026-07-21 21:09:50 +02:00
John Törnblom 5a1171fb6d readme: document a couple of unsupported hdmi features (#30)
* readme: document lack of monitor swap support

* readme: document lack of hdmi cec support
2026-07-16 19:51:06 +02:00
rmux dc1a568126 x86/cpu/amd: set Oberon CPU model name (family 0x17, model 0x46) (#29) 2026-07-08 13:15:00 +02:00
Andy Nguyen c363690546 config: enable some more options 2026-07-05 17:25:30 +02:00
mia26MAjFm 5236127a9e build-kernel: kill double-build + wipe stale outputs (#28)
* build-kernel: call rpm packager container directly, skip second full build

* build-kernel: sudo-wipe image/ before checkout to drop stale root-owned outputs
2026-07-05 17:15:33 +02:00
masterzorag c404a24cbf Update .config: Include NFS client support (#27)
* Update .config: Include NFS client support

Enable NFSv3 + ACLs support;
The libnfs implementation (gvfs*) it's limited and lacks features; We could have to use the kernel modules and use `mount -t nfs`.

* Update .config: include nfs support as modules
2026-07-05 14:34:13 +02:00
4 changed files with 182 additions and 79 deletions
+92 -22
View File
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 7.1.3 Kernel Configuration
# Linux/x86 7.1.7 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0"
CONFIG_CC_IS_GCC=y
@@ -361,7 +361,12 @@ CONFIG_CRASH_MAX_MEMORY_RANGES=8192
#
# Live Update and Kexec HandOver
#
# CONFIG_KEXEC_HANDOVER is not set
CONFIG_KEXEC_HANDOVER=y
# CONFIG_KEXEC_HANDOVER_DEBUG is not set
CONFIG_KEXEC_HANDOVER_DEBUGFS=y
CONFIG_KEXEC_HANDOVER_ENABLE_DEFAULT=y
CONFIG_LIVEUPDATE=y
CONFIG_LIVEUPDATE_MEMFD=y
# end of Live Update and Kexec HandOver
# end of General setup
@@ -429,12 +434,12 @@ CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_PROCESSOR_SELECT=y
CONFIG_BROADCAST_TLB_FLUSH=y
# CONFIG_CPU_SUP_INTEL is not set
CONFIG_CPU_SUP_AMD=y
# CONFIG_CPU_SUP_HYGON is not set
# CONFIG_CPU_SUP_CENTAUR is not set
# CONFIG_CPU_SUP_ZHAOXIN is not set
CONFIG_BROADCAST_TLB_FLUSH=y
CONFIG_HPET_TIMER=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
@@ -540,8 +545,9 @@ CONFIG_LEGACY_VSYSCALL_XONLY=y
CONFIG_MODIFY_LDT_SYSCALL=y
# CONFIG_STRICT_SIGALTSTACK_SIZE is not set
CONFIG_HAVE_LIVEPATCH=y
# CONFIG_LIVEPATCH is not set
CONFIG_LIVEPATCH=y
CONFIG_HAVE_KLP_BUILD=y
CONFIG_KLP_BUILD=y
CONFIG_X86_BUS_LOCK_DETECT=y
# end of Processor type and features
@@ -969,7 +975,12 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODVERSIONS=y
# CONFIG_GENKSYMS is not set
CONFIG_GENDWARFKSYMS=y
CONFIG_ASM_MODVERSIONS=y
CONFIG_EXTENDED_MODVERSIONS=y
CONFIG_BASIC_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
CONFIG_MODULE_COMPRESS=y
@@ -989,8 +1000,8 @@ CONFIG_BLK_CGROUP_RWSTAT=y
CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_ICQ=y
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_WRITE_MOUNTED=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
@@ -1000,8 +1011,9 @@ CONFIG_BLK_WBT_MQ=y
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOPRIO=y
CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
# CONFIG_BLK_INLINE_ENCRYPTION is not set
CONFIG_BLK_SED_OPAL=y
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
#
# Partition Types
@@ -1106,6 +1118,7 @@ CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
CONFIG_ARCH_WANT_HUGETLB_VMEMMAP_PREINIT=y
CONFIG_HAVE_GUP_FAST=y
CONFIG_MEMBLOCK_KHO_SCRATCH=y
CONFIG_NUMA_KEEP_MEMINFO=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
@@ -1263,6 +1276,7 @@ CONFIG_XFRM_ESPINTCP=y
# CONFIG_DIBS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_NET_HANDSHAKE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
@@ -1810,7 +1824,7 @@ CONFIG_SOCK_VALIDATE_XMIT=y
CONFIG_NET_SELFTESTS=y
CONFIG_NET_SOCK_MSG=y
CONFIG_PAGE_POOL=y
# CONFIG_PAGE_POOL_STATS is not set
CONFIG_PAGE_POOL_STATS=y
CONFIG_FAILOVER=y
CONFIG_ETHTOOL_NETLINK=y
@@ -2338,7 +2352,7 @@ CONFIG_VXLAN=m
# CONFIG_AMT is not set
# CONFIG_MACSEC is not set
CONFIG_NETCONSOLE=m
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETCONSOLE_DYNAMIC=y
# CONFIG_NETCONSOLE_EXTENDED_LOG is not set
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
@@ -2511,6 +2525,7 @@ CONFIG_ACPI_MDIO=y
# CONFIG_MDIO_BITBANG is not set
# CONFIG_MDIO_BCM_UNIMAC is not set
# CONFIG_MDIO_MVUSB is not set
# CONFIG_MDIO_MSCC_MIIM is not set
# CONFIG_MDIO_THUNDER is not set
#
@@ -3023,7 +3038,6 @@ 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
#
@@ -4112,7 +4126,7 @@ CONFIG_USB_DYNAMIC_MINORS=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_PRODUCTLIST is not set
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1
CONFIG_USB_MON=m
@@ -4801,7 +4815,9 @@ CONFIG_AMD_ATL=m
#
# Android
#
# CONFIG_ANDROID_BINDER_IPC is not set
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# end of Android
# CONFIG_LIBNVDIMM is not set
@@ -4873,9 +4889,11 @@ CONFIG_ZONEFS_FS=m
# CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_EXPORTFS_BLOCK_OPS=y
CONFIG_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=y
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
# CONFIG_FS_VERITY is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -5018,8 +5036,52 @@ CONFIG_RESCTRL_FS_PSEUDO_LOCK=y
# CONFIG_UFS_FS is not set
# CONFIG_EROFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_0=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_NFS_V4_SECURITY_LABEL=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFSD=m
# CONFIG_NFSD_V2 is not set
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_NFSD_V4_2_INTER_SSC=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
# CONFIG_NFSD_V4_POSIX_ACLS is not set
CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
# CONFIG_NFS_LOCALIO is not set
CONFIG_NFS_V4_2_SSC_HELPER=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS2 is not set
@@ -5454,14 +5516,18 @@ CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
CONFIG_CRC16=y
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
CONFIG_CRC_T10DIF_ARCH=y
CONFIG_CRC32=y
CONFIG_CRC32_ARCH=y
CONFIG_CRC64=y
CONFIG_CRC64_ARCH=y
CONFIG_CRC_OPTIMIZATIONS=y
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_AES_CBC_MACS=y
CONFIG_CRYPTO_LIB_ARC4=m
CONFIG_CRYPTO_LIB_GF128MUL=m
CONFIG_CRYPTO_LIB_BLAKE2B=m
@@ -5563,6 +5629,7 @@ CONFIG_CLZ_TAB=y
CONFIG_IRQ_POLL=y
CONFIG_MPILIB=y
CONFIG_DIMLIB=y
CONFIG_LIBFDT=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_HAVE_GENERIC_VDSO=y
@@ -5609,6 +5676,7 @@ CONFIG_UNION_FIND=y
#
CONFIG_PRINTK_TIME=y
# CONFIG_PRINTK_CALLER is not set
CONFIG_PRINTK_EXECUTION_CTX=y
# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
@@ -5918,7 +5986,7 @@ CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_FTRACE_MCOUNT_USE_CC=y
CONFIG_TRACING_MAP=y
CONFIG_SYNTH_EVENTS=y
# CONFIG_USER_EVENTS is not set
CONFIG_USER_EVENTS=y
CONFIG_HIST_TRIGGERS=y
CONFIG_TRACE_EVENT_INJECT=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
@@ -5957,8 +6025,8 @@ CONFIG_EARLY_PRINTK_DBGP=y
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_0X80 is not set
CONFIG_IO_DELAY_0XED=y
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
# CONFIG_DEBUG_BOOT_PARAMS is not set
@@ -6010,6 +6078,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_SYSCTL is not set
# CONFIG_CONTEXT_ANALYSIS_TEST is not set
# CONFIG_LIVEUPDATE_TEST is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_DYNAMIC_DEBUG is not set
@@ -6022,6 +6091,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_FPU is not set
# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set
# CONFIG_TEST_OBJPOOL is not set
# CONFIG_TEST_KEXEC_HANDOVER is not set
CONFIG_ARCH_USE_MEMTEST=y
CONFIG_MEMTEST=y
# end of Kernel Testing and Coverage
+14 -11
View File
@@ -21,7 +21,7 @@ on:
jobs:
build:
runs-on: self-hosted
timeout-minutes: 120
timeout-minutes: 720
permissions:
contents: write
@@ -29,6 +29,11 @@ jobs:
CCACHE_DIR: /home/opc/ccache
steps:
- name: Clean image workspace
# Docker containers write to image/linux-bin/ as root; actions/checkout's
# git clean runs as the runner user and skips root-owned files, so stale
# .deb / .pkg.tar.zst from prior kernel versions leak into the release.
run: sudo rm -rf image
- name: Checkout image builder
uses: actions/checkout@v6
with:
@@ -43,17 +48,15 @@ jobs:
bash image/build_image.sh --kernel-only \
--distro "$FORMAT" \
--patches-ref "$PATCHES_REF"
# build_image.sh's --distro all skips the rpm packager, and each
# kernel-build call wipes image/linux-bin/. Stash the deb + pkg.tar.zst
# from the "all" run before firing the rpm-producing "fedora" run,
# then restore so the release ships all three formats.
# --distro all skips the rpm packager. Call the packager container
# directly against the already-staged kernel (image/linux-bin/staging/)
# instead of re-running build_image.sh, which wipes outputs and
# rebuilds the kernel — that doubled CI time. This step is ~1 minute.
if [ "$FORMAT" = "all" ]; then
mkdir -p /tmp/kernel-stash
cp image/linux-bin/*.deb image/linux-bin/*.pkg.tar.zst /tmp/kernel-stash/
bash image/build_image.sh --kernel-only \
--distro fedora \
--patches-ref "$PATCHES_REF"
cp /tmp/kernel-stash/*.deb /tmp/kernel-stash/*.pkg.tar.zst image/linux-bin/
docker build -t ps5-kernel-packager-rpm \
-f image/docker/kernel-builder-rpm/Dockerfile image/
docker run --rm -v "$PWD/image/linux-bin":/out \
ps5-kernel-packager-rpm
fi
- name: Read kernel and patches version
+2
View File
@@ -31,3 +31,5 @@ sudo make install
- screen save does not work properly
- hdmi audio output does not work on some monitors
- hdmi 1440p and 2160p video output does not work on some monitors
- monitor swap is not supported
- hdmi cec is not supported
+74 -46
View File
@@ -106,6 +106,21 @@ index dafbf581c515..791687363cbf 100644
X86_NR_SUBARCHS,
};
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 31f01e9c7114..ec3c32893cca 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -1163,6 +1163,10 @@ static void init_amd(struct cpuinfo_x86 *c)
/* AMD CPUs don't need fencing after x2APIC/TSC_DEADLINE MSR writes. */
clear_cpu_cap(c, X86_FEATURE_APIC_MSRS_FENCE);
+ if (c->x86 == 0x17 && c->x86_model == 0x46)
+ strscpy(c->x86_model_id, "AMD Custom Zen 2 (Oberon)",
+ sizeof(c->x86_model_id));
+
/* Enable Translation Cache Extension */
if (cpu_has(c, X86_FEATURE_TCE))
msr_set_bit(MSR_EFER, _EFER_TCE);
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index fd28b53dbac5..569fc764d267 100644
--- a/arch/x86/kernel/head64.c
@@ -139,7 +154,7 @@ index cb9852ad6098..83bb0cf9e40b 100644
return true;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0550359ed798..297ac533e017 100644
index 88f0e3fd8919..970eb7dad09c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -114,7 +114,11 @@ EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_host);
@@ -1093,7 +1108,7 @@ index 000000000000..39cc76f39e06
+
+#endif
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 830fefb342c6..380bc421583d 100644
index 7f66e7c6e77a..b1b37fe6826c 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -67,6 +67,10 @@ static struct usb_driver btusb_driver;
@@ -1134,7 +1149,7 @@ index 830fefb342c6..380bc421583d 100644
/* Intel Bluetooth devices */
{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED },
@@ -4055,6 +4072,10 @@ static int btusb_probe(struct usb_interface *intf,
@@ -4069,6 +4086,10 @@ static int btusb_probe(struct usb_interface *intf,
(intf->cur_altsetting->desc.bInterfaceNumber != 2))
return -ENODEV;
@@ -1145,7 +1160,7 @@ index 830fefb342c6..380bc421583d 100644
ifnum_base = intf->cur_altsetting->desc.bInterfaceNumber;
if (!id->driver_info) {
@@ -4344,6 +4365,12 @@ static int btusb_probe(struct usb_interface *intf,
@@ -4357,6 +4378,12 @@ static int btusb_probe(struct usb_interface *intf,
if (id->driver_info & BTUSB_INVALID_LE_STATES)
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_LE_STATES);
@@ -1158,7 +1173,7 @@ index 830fefb342c6..380bc421583d 100644
if (id->driver_info & BTUSB_DIGIANSWER) {
data->cmdreq_type = USB_TYPE_VENDOR;
hci_set_quirk(hdev, HCI_QUIRK_RESET_ON_CLOSE);
@@ -4400,7 +4427,7 @@ static int btusb_probe(struct usb_interface *intf,
@@ -4413,7 +4440,7 @@ static int btusb_probe(struct usb_interface *intf,
data->diag = NULL;
}
@@ -1223,7 +1238,7 @@ index fd50da4c7b18..caf9cce37100 100644
#define AMDGPU_SG_THRESHOLD (256*1024*1024)
#define AMDGPU_WAIT_IDLE_TIMEOUT_IN_MS 3000
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
index 35d04e69aec0..314ceaaaab9f 100644
index af88cab07413..2ee1d77ae379 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
@@ -221,8 +221,14 @@ static bool amdgpu_read_bios_from_rom(struct amdgpu_device *adev)
@@ -1241,7 +1256,7 @@ index 35d04e69aec0..314ceaaaab9f 100644
void __iomem *bios;
adev->bios = NULL;
@@ -436,6 +442,7 @@ static inline bool amdgpu_acpi_vfct_bios(struct amdgpu_device *adev)
@@ -476,6 +482,7 @@ static inline bool amdgpu_acpi_vfct_bios(struct amdgpu_device *adev)
static bool amdgpu_get_bios_apu(struct amdgpu_device *adev)
{
@@ -1249,7 +1264,7 @@ index 35d04e69aec0..314ceaaaab9f 100644
if (amdgpu_acpi_vfct_bios(adev)) {
dev_info(adev->dev, "Fetched VBIOS from VFCT\n");
goto success;
@@ -450,6 +457,7 @@ static bool amdgpu_get_bios_apu(struct amdgpu_device *adev)
@@ -490,6 +497,7 @@ static bool amdgpu_get_bios_apu(struct amdgpu_device *adev)
dev_info(adev->dev, "Fetched VBIOS from ROM BAR\n");
goto success;
}
@@ -1258,10 +1273,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 feab90e3efd1..4ebde822fca2 100644
index 3fad14824d1e..44b7916cef43 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1814,6 +1814,26 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
@@ -1824,6 +1824,26 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
case CHIP_CYAN_SKILLFISH:
if (adev->discovery.bin)
return 0;
@@ -1351,7 +1366,7 @@ index 60debd543e44..3af3b36f4b60 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 b8ca876694ff..02c04136f293 100644
index 839bc93a941a..5a4c806b9f0c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -2434,6 +2434,11 @@ void amdgpu_gfx_profile_ring_begin_use(struct amdgpu_ring *ring)
@@ -1405,7 +1420,7 @@ index 321310ba2c08..764da52902ac 100644
header = (const struct common_firmware_header *)
adev->sdma.instance[instance].fw->data;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
index 8b60299b73ef..7ecf928cae8e 100644
index 8454edaf0225..b9a4f7b15d52 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -4202,6 +4202,14 @@ static void gfx_v10_0_check_gfxoff_flag(struct amdgpu_device *adev)
@@ -1483,7 +1498,7 @@ index 8b60299b73ef..7ecf928cae8e 100644
amdgpu_gfx_cp_init_microcode(adev, AMDGPU_UCODE_ID_CP_MEC2);
amdgpu_gfx_cp_init_microcode(adev, AMDGPU_UCODE_ID_CP_MEC2_JT);
} else {
@@ -10104,6 +10130,21 @@ static u32 gfx_v10_0_get_cu_active_bitmap_per_sh(struct amdgpu_device *adev)
@@ -10110,6 +10136,21 @@ static u32 gfx_v10_0_get_cu_active_bitmap_per_sh(struct amdgpu_device *adev)
return cu_active_bitmap;
}
@@ -1505,7 +1520,7 @@ index 8b60299b73ef..7ecf928cae8e 100644
static int gfx_v10_0_get_cu_info(struct amdgpu_device *adev,
struct amdgpu_cu_info *cu_info)
{
@@ -10117,6 +10158,43 @@ static int gfx_v10_0_get_cu_info(struct amdgpu_device *adev,
@@ -10123,6 +10164,43 @@ static int gfx_v10_0_get_cu_info(struct amdgpu_device *adev,
amdgpu_gfx_parse_disable_cu(adev, disable_masks, 4, 2);
mutex_lock(&adev->grbm_idx_mutex);
@@ -1565,7 +1580,7 @@ index 7ce1a1b95606..0bef516616ee 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 52f4e9e099cb..6e4ff7444536 100644
index 00b51fae2d8d..1b193bfaffbb 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
@@ -1368,6 +1368,12 @@ static int sdma_v5_0_early_init(struct amdgpu_ip_block *ip_block)
@@ -1582,7 +1597,7 @@ index 52f4e9e099cb..6e4ff7444536 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 f8c13bad4ac2..1a9cccc5fa5c 100644
index 93cd70183c18..628843d84ebb 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 @@
@@ -1596,7 +1611,7 @@ index f8c13bad4ac2..1a9cccc5fa5c 100644
#include <drm/drm_privacy_screen_consumer.h>
#include <drm/display/drm_dp_mst_helper.h>
#include <drm/display/drm_hdmi_helper.h>
@@ -3093,7 +3097,10 @@ static int dm_hw_init(struct amdgpu_ip_block *ip_block)
@@ -3137,7 +3141,10 @@ static int dm_hw_init(struct amdgpu_ip_block *ip_block)
r = amdgpu_dm_init(adev);
if (r)
return r;
@@ -1607,7 +1622,7 @@ index f8c13bad4ac2..1a9cccc5fa5c 100644
r = dm_oem_i2c_hw_init(adev);
if (r)
@@ -3114,7 +3121,10 @@ static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
@@ -3158,7 +3165,10 @@ static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
{
struct amdgpu_device *adev = ip_block->adev;
@@ -1618,7 +1633,7 @@ index f8c13bad4ac2..1a9cccc5fa5c 100644
amdgpu_dm_irq_fini(adev);
amdgpu_dm_fini(adev);
@@ -6880,6 +6890,12 @@ static void fill_stream_properties_from_drm_display_mode(
@@ -6884,6 +6894,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);
@@ -1631,7 +1646,7 @@ index f8c13bad4ac2..1a9cccc5fa5c 100644
}
static void fill_audio_info(struct audio_info *audio_info,
@@ -8269,6 +8285,11 @@ enum drm_mode_status amdgpu_dm_connector_mode_valid(struct drm_connector *connec
@@ -8273,6 +8289,11 @@ enum drm_mode_status amdgpu_dm_connector_mode_valid(struct drm_connector *connec
*/
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
@@ -1643,7 +1658,7 @@ index f8c13bad4ac2..1a9cccc5fa5c 100644
if ((mode->flags & DRM_MODE_FLAG_INTERLACE) ||
(mode->flags & DRM_MODE_FLAG_DBLSCAN))
return result;
@@ -10957,12 +10978,64 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
@@ -10993,12 +11014,64 @@ 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);
@@ -1795,10 +1810,10 @@ index 9459e8f28338..063e4a4eefdd 100644
.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/link/protocols/link_dp_capability.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
index 782a45caa13d..444259795140 100644
index fe8420b803ee..f09f90f0155e 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
@@ -1018,6 +1018,12 @@ bool link_decide_link_settings(struct dc_stream_state *stream,
@@ -1020,6 +1020,12 @@ bool link_decide_link_settings(struct dc_stream_state *stream,
decide_dp_link_settings(link, link_setting, req_bw);
}
@@ -1811,7 +1826,7 @@ index 782a45caa13d..444259795140 100644
return link_setting->lane_count != LANE_COUNT_UNKNOWN &&
link_setting->link_rate != LINK_RATE_UNKNOWN;
}
@@ -1458,6 +1464,8 @@ void dpcd_set_source_specific_data(struct dc_link *link)
@@ -1460,6 +1466,8 @@ void dpcd_set_source_specific_data(struct dc_link *link)
(uint8_t *)(&amd_device_id),
sizeof(amd_device_id));
@@ -1820,7 +1835,7 @@ index 782a45caa13d..444259795140 100644
if (link->ctx->dce_version >= DCN_VERSION_2_0 &&
link->dc->caps.min_horizontal_blanking_period != 0) {
@@ -1467,6 +1475,7 @@ void dpcd_set_source_specific_data(struct dc_link *link)
@@ -1469,6 +1477,7 @@ void dpcd_set_source_specific_data(struct dc_link *link)
DP_SOURCE_MINIMUM_HBLANK_SUPPORTED, (uint8_t *)(&hblank_size),
sizeof(hblank_size));
}
@@ -1841,7 +1856,7 @@ index 92510af1bd65..85c9e587834d 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 404208bf23a6..85718d593c42 100644
index df3c25bac761..8b0b85931945 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -2242,6 +2242,10 @@ static void connector_bad_edid(struct drm_connector *connector,
@@ -1880,10 +1895,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 3bdb380d23e9..e25db11bb1e5 100644
index 0df711c082cb..17892213f622 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -3107,6 +3107,8 @@ static void __init free_iommu_resources(void)
@@ -3106,6 +3106,8 @@ static void __init free_iommu_resources(void)
free_pci_segments();
}
@@ -1892,7 +1907,7 @@ index 3bdb380d23e9..e25db11bb1e5 100644
/* SB IOAPIC is always on this device in AMD systems */
#define IOAPIC_SB_DEVID ((0x00 << 8) | PCI_DEVFN(0x14, 0))
@@ -3159,6 +3161,8 @@ static bool __init check_ioapic_information(void)
@@ -3158,6 +3160,8 @@ static bool __init check_ioapic_information(void)
return ret;
}
@@ -1901,7 +1916,7 @@ index 3bdb380d23e9..e25db11bb1e5 100644
static void __init free_dma_resources(void)
{
amd_iommu_pdom_id_destroy();
@@ -3283,8 +3287,11 @@ static int __init early_amd_iommu_init(void)
@@ -3282,8 +3286,11 @@ static int __init early_amd_iommu_init(void)
if (!is_kdump_kernel() || amd_iommu_disabled)
disable_iommus();
@@ -5329,10 +5344,10 @@ index 000000000000..612aee5b273a
+#endif /* _AUTOSERVO_PARAM_H */
diff --git a/drivers/ps5/buzzer.c b/drivers/ps5/buzzer.c
new file mode 100644
index 000000000000..f48ad6f92534
index 000000000000..5a53c5f719bc
--- /dev/null
+++ b/drivers/ps5/buzzer.c
@@ -0,0 +1,291 @@
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -5349,6 +5364,8 @@ index 000000000000..f48ad6f92534
+#include <linux/kthread.h>
+#include <linux/mutex.h>
+#include <linux/device.h>
+#include <linux/workqueue.h>
+#include <linux/atomic.h>
+#include <linux/ps5.h>
+
+#define BUZZER_IOC_MAGIC 'B'
@@ -5531,11 +5548,21 @@ index 000000000000..f48ad6f92534
+ .mode = 0660,
+};
+
+static atomic_t bell_state = ATOMIC_INIT(PS5_BUZZ_SILENT);
+
+static void bell_work_fn(struct work_struct *w)
+{
+ ps5_buzz_raw(atomic_read(&bell_state));
+}
+static DECLARE_WORK(bell_work, bell_work_fn);
+
+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);
+ if (type == EV_SND && code == SND_BELL) {
+ atomic_set(&bell_state, value ? PS5_BUZZ_SHORT : PS5_BUZZ_SILENT);
+ schedule_work(&bell_work);
+ }
+ return 0;
+}
+
@@ -5614,6 +5641,7 @@ index 000000000000..f48ad6f92534
+ play_stop();
+ if (snd_idev)
+ input_unregister_device(snd_idev);
+ cancel_work_sync(&bell_work);
+ sysfs_remove_group(&buzz_misc.this_device->kobj, &buzz_attr_group);
+ misc_deregister(&buzz_misc);
+}
@@ -9832,7 +9860,7 @@ index a07e7ba9cd53..4c020957b7a7 100644
obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o
obj-$(CONFIG_USB_XHCI_HISTB) += xhci-histb.o
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 585b2f3117b0..16d5e2178ae0 100644
index b0377701a940..0685bc57e489 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -18,6 +18,7 @@
@@ -9853,7 +9881,7 @@ index 585b2f3117b0..16d5e2178ae0 100644
static const char hcd_name[] = "xhci_hcd";
static struct hc_driver __read_mostly xhci_pci_hc_driver;
@@ -511,6 +515,13 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
@@ -512,6 +516,13 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (xhci->hci_version >= 0x120)
xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
@@ -9867,7 +9895,7 @@ index 585b2f3117b0..16d5e2178ae0 100644
if (xhci->quirks & XHCI_RESET_ON_RESUME)
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
"QUIRK: Resetting on resume");
@@ -575,6 +586,13 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
@@ -576,6 +587,13 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
/* imod_interval is the interrupt moderation value in nanoseconds. */
xhci->imod_interval = 40000;
@@ -9881,7 +9909,7 @@ index 585b2f3117b0..16d5e2178ae0 100644
retval = xhci_gen_setup(hcd, xhci_pci_quirks);
if (retval)
return retval;
@@ -713,6 +731,11 @@ void xhci_pci_remove(struct pci_dev *dev)
@@ -714,6 +732,11 @@ void xhci_pci_remove(struct pci_dev *dev)
xhci = hcd_to_xhci(pci_get_drvdata(dev));
set_power_d3 = xhci->quirks & XHCI_SPURIOUS_WAKEUP;
@@ -9893,7 +9921,7 @@ index 585b2f3117b0..16d5e2178ae0 100644
xhci->xhc_state |= XHCI_STATE_REMOVING;
if (pci_choose_state(dev, PMSG_SUSPEND) == PCI_D0)
@@ -945,6 +968,7 @@ static const struct pci_device_id pci_ids[] = {
@@ -946,6 +969,7 @@ static const struct pci_device_id pci_ids[] = {
/* handle any USB 3.0 xHCI controller */
{ PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_XHCI, ~0),
},
@@ -10507,7 +10535,7 @@ index 000000000000..193ac03a3074
+dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment *seg, union xhci_trb *trb);
+int xhci_handle_events(struct xhci_hcd *xhci, struct xhci_interrupter *ir, bool skip_events);
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index a54f5b57f205..0d99186ec967 100644
index 5b15eae233d3..5849be668eec 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -26,6 +26,7 @@
@@ -10541,10 +10569,10 @@ index a54f5b57f205..0d99186ec967 100644
}
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index aeecd301f207..e202fbdd2f41 100644
index d0f14fc23245..589862f5ead6 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1645,6 +1645,7 @@ struct xhci_hcd {
@@ -1646,6 +1646,7 @@ struct xhci_hcd {
#define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
#define XHCI_ETRON_HOST BIT_ULL(49)
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
@@ -10670,7 +10698,7 @@ index 000000000000..75a2d6dace5d
+
+#endif /* _LINUX_PS5_H */
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 572b1c620c5d..b776491a1241 100644
index f5cf13b44342..454abda37952 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -309,6 +309,22 @@ enum {
@@ -10697,10 +10725,10 @@ index 572b1c620c5d..b776491a1241 100644
* When this quirk is set, the HCI_OP_LE_EXT_CREATE_CONN command is
* disabled. This is required for the Actions Semiconductor ATS2851
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index df23245d6ccd..1248c3735900 100644
index 42bbffba2172..ccd77bf3fa04 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -3787,6 +3787,9 @@ static int hci_read_dev_class_sync(struct hci_dev *hdev)
@@ -3832,6 +3832,9 @@ static int hci_read_dev_class_sync(struct hci_dev *hdev)
/* Read Local Name */
static int hci_read_local_name_sync(struct hci_dev *hdev)
{
@@ -10710,7 +10738,7 @@ index df23245d6ccd..1248c3735900 100644
return __hci_cmd_sync_status(hdev, HCI_OP_READ_LOCAL_NAME,
0, NULL, HCI_CMD_TIMEOUT);
}
@@ -4874,6 +4877,12 @@ static int hci_le_set_default_phy_sync(struct hci_dev *hdev)
@@ -4919,6 +4922,12 @@ static int hci_le_set_default_phy_sync(struct hci_dev *hdev)
{
struct hci_cp_le_set_default_phy cp;