| -rw-r--r-- | Jenkinsfile | 54 | ||||
| -rw-r--r-- | README.md | 45 | ||||
| -rw-r--r-- | config/base-aarch64.config | 270 | ||||
| -rw-r--r-- | config/foreign-socs.config | 68 | ||||
| -rw-r--r-- | fixups/0012-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-add-camera-support.patch.sed | 1 | ||||
| -rw-r--r-- | kernel-sp12in.repo | 2 | ||||
| -rw-r--r-- | kernel-surface.spec | 57 | ||||
| -rwxr-xr-x | make-sources.sh | 49 | ||||
| m--------- | overlay | 0 | ||||
| -rw-r--r-- | patch-order.txt | 18 | ||||
| -rw-r--r-- | patches/camera/0027-media-i2c-ov13858-fix-bayer-order-when-mirrored.patch | 142 | ||||
| -rw-r--r-- | patches/surface/0016-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-iris-firmware-name.patch | 32 |
12 files changed, 612 insertions, 126 deletions
diff --git a/Jenkinsfile b/Jenkinsfile index 74f942c..1ab3e47 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -71,7 +71,7 @@ spec: memory: 5Gi ephemeral-storage: 40Gi limits: - memory: 7Gi + memory: 5Gi ephemeral-storage: 100Gi """ } @@ -118,22 +118,31 @@ spec: rpmdev-setuptree - # The published file name is whatever the spec + # The published file names are whatever the spec # resolves to under the tag's versions, so the two - # cannot drift. A kernel build is expensive; if this - # exact NEVRA is already in the bucket, skip - # straight to the metadata. - rpm_file=$(rpmspec -q \\ + # cannot drift. Note the plural: kernel-surface-dtb + # is a separate package because the main one is + # installonly and cannot own a path that carries no + # kernel version. Publishing only the first would + # leave the kernel unresolvable. + prefix="s3://${RPM_BUCKET}/fedora/${fedora_version}/aarch64" + rpm_files=$(rpmspec -q \\ --define "upstream_ver ${UPSTREAM_VER}" \\ --define "patchset_ver ${PATCHSET_VER}" \\ --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\\n' \\ - kernel-surface.spec | head -n1) - dest="s3://${RPM_BUCKET}/fedora/${fedora_version}/aarch64/${rpm_file}" + kernel-surface.spec) - skip_build=false - if aws s3 ls --endpoint-url "${B2_ENDPOINT}" "${dest}"; then - echo "${rpm_file} already published, skipping build" - skip_build=true + # A kernel build is expensive; skip it only when + # every one of those is already in the bucket. + skip_build=true + for rpm_name in ${rpm_files}; do + if ! aws s3 ls --endpoint-url "${B2_ENDPOINT}" \\ + "${prefix}/${rpm_name}"; then + skip_build=false + fi + done + if [ "${skip_build}" = true ]; then + echo "${TAG_NAME} is already published in full, skipping build" fi if [ "${skip_build}" = false ]; then @@ -146,29 +155,34 @@ spec: --define '_smp_mflags -j4' \\ kernel-surface.spec - built="${HOME}/rpmbuild/RPMS/aarch64/${rpm_file}" - test -f "${built}" + # kernel-surface-dtb is noarch, so it lands + # in RPMS/noarch rather than RPMS/aarch64; ask + # where each one actually is. + for rpm_name in ${rpm_files}; do + built=$(find "${HOME}/rpmbuild/RPMS" -type f \\ + -name "${rpm_name}" -print -quit) + test -n "${built}" - aws s3 cp --endpoint-url "${B2_ENDPOINT}" \\ - "${built}" "${dest}" + aws s3 cp --endpoint-url "${B2_ENDPOINT}" \\ + "${built}" "${prefix}/${rpm_name}" + done fi - repo_url="s3://${RPM_BUCKET}/fedora/${fedora_version}/aarch64" repo="${WORKSPACE}/repo" mkdir -p "${repo}" aws s3 sync --endpoint-url "${B2_ENDPOINT}" \\ --exclude '*' --include '*.rpm' \\ - "${repo_url}/" "${repo}/" + "${prefix}/" "${repo}/" createrepo_c --update "${repo}" aws s3 sync --endpoint-url "${B2_ENDPOINT}" \\ --exclude 'repomd.xml*' \\ - "${repo}/repodata/" "${repo_url}/repodata/" + "${repo}/repodata/" "${prefix}/repodata/" aws s3 cp --endpoint-url "${B2_ENDPOINT}" \\ "${repo}/repodata/repomd.xml" \\ - "${repo_url}/repodata/repomd.xml" + "${prefix}/repodata/repomd.xml" # Served next to the repository so that consumers # can `dnf config-manager --add-repo` the URL. @@ -13,25 +13,45 @@ Used in [Fedora KIWI descriptions, modified by me for Surface Pro 12"](https://s `vanilla-kernel-*.ebuild` applies them, minus `gpu` (does not exist) and `rockchip` (irrelevant). +An entry prefixed with `local:` is not the overlay's, it is `patches/<name>/` +in this repository. Those carry fixes the overlay has not picked up, and they +live outside the submodule so that `git submodule update` cannot silently drop +them. They are listed right after the overlay directory they extend, so the +same numbering that orders the overlay's series orders these too. + +- `patches/camera/0027-media-i2c-ov13858-fix-bayer-order-when-mirrored.patch` + the rear camera advertises GRBG while the horizontal mirror, which + `rotation = <180>` turns on, makes it deliver RGGB. Debayering with the wrong + pattern puts both greens into the red and blue channels, so the picture comes + out close to monochrome. +- `patches/surface/0016-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-iris-firmware-name.patch` + the video codec firmware in linux-firmware is signed with Qualcomm's SecTools + test key, which this device's TrustZone rejects with `error -22 initializing + firmware`. Points the iris node at the production-signed build shipped in the + Windows driver package instead. + +Send them upstream to the overlay when they are ready; drop the `local:` entry +and the directory once the overlay carries them. + ## Configuration The starting point is `config/base-aarch64.config`: Fedora's own aarch64 -kernel config, taken verbatim from the `config` file inside -`kernel-core-7.2.0-61.fc45.aarch64.rpm`. It is vendored rather than downloaded, -so the build depends on no third-party host and a refresh shows up as a -reviewable diff. To refresh it for a newer Fedora, replace everything below the -comment header with: +kernel config, taken verbatim from the `config` file. It is vendored rather +than downloaded, so the build depends on no third-party host and a refresh +shows up as a reviewable diff. To refresh it for a newer Fedora, replace +everything below the comment header with: ```bash dnf download kernel-core --arch aarch64 -rpm2cpio kernel-core-*.aarch64.rpm | cpio -idm './usr/lib/modules/*/config' +rpm2archive -n - < kernel-core-*.aarch64.rpm | + tar -xO --wildcards '*/modules/*/config' | + wl-copy ``` -The overlay's ebuild seeds itself from the same Fedora config by way of a -Gentoo-side fork, `projg2/fedora-kernel-config-for-gentoo`. That repository no -longer exists, which is why the base config lives here instead. +If the extraction comes up empty, `rpm -qlp kernel-core-*.aarch64.rpm | grep +config` says whether the package still carries the file at all. -Three fragments are merged on top with `scripts/kconfig/merge_config.sh`: +Four fragments are merged on top with `scripts/kconfig/merge_config.sh`: * `config/surface.config` – the drivers the patch set enables (SAM stack and its new RTC, CAMSS and the CSI-2 D-PHY, fastrpc, ath12k, AudioReach). @@ -39,6 +59,9 @@ Three fragments are merged on top with `scripts/kconfig/merge_config.sh`: and dm-snapshot/overlayfs built in for `dracut`'s `dmsquash-live`, the EFI stub because GRUB's aarch64 `linux` command loads the kernel as an EFI application, and xz module compression. +* `config/foreign-socs.config` – the ARM64 platforms this machine is not. + Fedora's config enables every platform it supports because a distribution + kernel has to boot on all of them; this one boots on `qcom,x1p42100` alone. * `config/no-debug-info.config` – DWARF and BTF off. The package produces no `-debuginfo` subpackage (`%global debug_package %{nil}`) and strips modules at install time, so the DWARF was compiled only to be discarded, and it is @@ -62,7 +85,7 @@ matches the ISO (the project README notes Secure Boot is not available for it). ```bash dnf config-manager addrepo --from-repofile=\ - https://f003.backblazeb2.com/file/dist-sayagit-fedora-rpm/fedora/45/kernel-sp12in.repo + https://rpm.sayag.it/kernel-sp12in/fedora/45/kernel-sp12in.repo ``` ## Building diff --git a/config/base-aarch64.config b/config/base-aarch64.config index 8ccb3a9..8cc1df6 100644 --- a/config/base-aarch64.config +++ b/config/base-aarch64.config @@ -1,10 +1,10 @@ # Fedora's own aarch64 kernel configuration, used as the starting point for -# this package. Taken verbatim from the config shipped inside -# kernel-core-7.2.0-61.fc45.aarch64.rpm: +# this package. Taken verbatim from the config shipped inside kernel-core rpm: # # dnf download kernel-core --arch aarch64 -# rpm2cpio kernel-core-*.aarch64.rpm | -# cpio -idm './usr/lib/modules/*/config' +# rpm2archive -n - < kernel-core-*.aarch64.rpm | +# tar -xO --wildcards '*/modules/*/config' | +# wl-copy # # It is vendored rather than downloaded so the build has no dependency on a # third-party host, and so the base config is reviewable in a diff when it is @@ -12,18 +12,18 @@ # top of it in %prep; do not edit this file by hand. # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 7.2.0-61.fc45.aarch64 Kernel Configuration +# Linux/arm64 7.3.0-0.rc3.260916g9b87fdc9af2f.34.fc46.aarch64 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 16.1.1 20260703 (Red Hat 16.1.1-4)" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 16.2.1 20260819 (Red Hat 16.2.1-2)" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=160101 +CONFIG_GCC_VERSION=160201 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=20285426 +CONFIG_AS_VERSION=24750 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=20285426 +CONFIG_LD_VERSION=24750 CONFIG_LLD_VERSION=0 -CONFIG_RUSTC_VERSION=109701 +CONFIG_RUSTC_VERSION=109801 CONFIG_RUST_IS_AVAILABLE=y CONFIG_RUSTC_LLVM_VERSION=220108 CONFIG_RUSTC_LLVM_MAJOR_VERSION=22 @@ -42,6 +42,7 @@ CONFIG_RUSTC_HAS_SPAN_FILE=y CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES=y CONFIG_RUSTC_HAS_FILE_WITH_NUL=y CONFIG_RUSTC_HAS_FILE_AS_C_STR=y +CONFIG_RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS=y CONFIG_PAHOLE_VERSION=130 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y @@ -56,7 +57,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_UAPI_HEADER_TEST=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set -CONFIG_BUILD_SALT="7.2.0-61.fc45.aarch64" +CONFIG_BUILD_SALT="7.3.0-0.rc3.260916g9b87fdc9af2f.34.fc46.aarch64" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_ZSTD=y # CONFIG_KERNEL_GZIP is not set @@ -147,6 +148,7 @@ CONFIG_ARCH_HAS_PREEMPT_LAZY=y CONFIG_PREEMPT_LAZY=y # CONFIG_PREEMPT_RT is not set CONFIG_PREEMPT_COUNT=y +CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BITS=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y CONFIG_SCHED_CORE=y @@ -205,6 +207,7 @@ CONFIG_UCLAMP_TASK=y CONFIG_UCLAMP_BUCKETS_COUNT=5 # end of Scheduler features +CONFIG_ARCH_HAS_PTE_PROTNONE=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y @@ -279,7 +282,6 @@ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y CONFIG_LD_ORPHAN_WARN_LEVEL="warn" -CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_SYSFS_SYSCALL=y @@ -340,7 +342,7 @@ CONFIG_RUST_KUNIT_SELFTEST=y CONFIG_RUST_STR_KUNIT_TEST=y CONFIG_RUST_ATOMICS_KUNIT_TEST=y CONFIG_RUST_BITFIELD_KUNIT_TEST=y -CONFIG_RUSTC_VERSION_TEXT="rustc 1.97.1 (8bab26f4f 2026-07-14) (Fedora 1.97.1-2.fc45)" +CONFIG_RUSTC_VERSION_TEXT="rustc 1.98.1 (48a229cea 2026-09-01) (Fedora 1.98.1-1.fc46)" CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.72.1" CONFIG_TRACEPOINTS=y @@ -482,7 +484,7 @@ CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1319367=y CONFIG_ARM64_ERRATUM_1530923=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM64_WORKAROUND_REPEAT_TLBI_SYNC=y CONFIG_ARM64_ERRATUM_2441007=y CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1463225=y @@ -529,6 +531,8 @@ CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_ARM64_WORKAROUND_DISABLE_CNP=y CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y +CONFIG_NVIDIA_OLYMPUS_1027_ERRATUM=y +CONFIG_RENESAS_ERRATUM_GEN4GICITS1=y CONFIG_ROCKCHIP_ERRATUM_3568002=y CONFIG_ROCKCHIP_ERRATUM_3588001=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y @@ -1080,7 +1084,7 @@ CONFIG_BLK_CGROUP_IOPRIO=y CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_SED_OPAL=y CONFIG_BLK_INLINE_ENCRYPTION=y -# CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK is not set +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y # # Partition Types @@ -1134,6 +1138,7 @@ CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y +# CONFIG_QUEUED_SPINLOCKS_TRACE_CONTENDED_RELEASE is not set CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y @@ -1231,7 +1236,7 @@ CONFIG_NUMA_MIGRATION=y CONFIG_MIGRATION=y CONFIG_DEVICE_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_ARCH_ENABLE_THP_MIGRATION=y +CONFIG_ARCH_HAS_PMD_SOFTLEAVES=y CONFIG_CONTIG_ALLOC=y CONFIG_PCP_BATCH_SCALE_MAX=5 CONFIG_PHYS_ADDR_T_64BIT=y @@ -1301,6 +1306,7 @@ CONFIG_SECRETMEM=y # CONFIG_ANON_VMA_NAME is not set CONFIG_HAVE_ARCH_USERFAULTFD_WP=y CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y +CONFIG_USERFAULTFD_RWP=y CONFIG_USERFAULTFD=y CONFIG_PTE_MARKER_UFFD_WP=y CONFIG_LRU_GEN=y @@ -1314,6 +1320,7 @@ CONFIG_IOMMU_MM_DATA=y CONFIG_EXECMEM=y CONFIG_NUMA_MEMBLKS=y # CONFIG_NUMA_EMU is not set +CONFIG_GENERIC_ARCH_NUMA=y CONFIG_ARCH_HAS_USER_SHADOW_STACK=y CONFIG_PT_RECLAIM=y CONFIG_ARCH_HAS_LAZY_MMU_MODE=y @@ -1877,6 +1884,7 @@ CONFIG_NET_DSA_TAG_GSWIP=m CONFIG_NET_DSA_TAG_DSA_COMMON=m CONFIG_NET_DSA_TAG_DSA=m CONFIG_NET_DSA_TAG_EDSA=m +# CONFIG_NET_DSA_TAG_MT7628 is not set CONFIG_NET_DSA_TAG_MTK=m CONFIG_NET_DSA_TAG_MXL_862XX=m # CONFIG_NET_DSA_TAG_MXL_GSW1XX is not set @@ -2023,9 +2031,6 @@ CONFIG_BATMAN_ADV_MCAST=y # CONFIG_BATMAN_ADV_DEBUG is not set CONFIG_BATMAN_ADV_TRACING=y CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH_VXLAN=m -CONFIG_OPENVSWITCH_GENEVE=m CONFIG_VSOCKETS=m CONFIG_VSOCKETS_DIAG=m CONFIG_VSOCKETS_LOOPBACK=m @@ -2318,6 +2323,7 @@ CONFIG_PCI_HOST_GENERIC=y # CONFIG_PCIE_HISI_ERR is not set CONFIG_PCI_HYPERV_INTERFACE=y CONFIG_PCI_TEGRA=y +# CONFIG_PCIE_TEGRA264 is not set # CONFIG_PCIE_RCAR_HOST is not set CONFIG_PCIE_RENESAS_RZG3S_HOST=y CONFIG_PCIE_ROCKCHIP=y @@ -2333,6 +2339,7 @@ CONFIG_PCIE_XILINX_CPM=y # Cadence-based PCIe controllers # CONFIG_PCIE_CADENCE=y +# CONFIG_PCIE_CADENCE_DEBUGFS is not set CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_CADENCE_PLAT=y CONFIG_PCIE_CADENCE_PLAT_HOST=y @@ -2478,7 +2485,8 @@ CONFIG_PM_RUNTIME_KUNIT_TEST=m CONFIG_HMEM_REPORTING=y # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set # CONFIG_DM_KUNIT_TEST is not set -CONFIG_DRIVER_PE_KUNIT_TEST=m +# CONFIG_DRIVER_PE_KUNIT_TEST is not set +CONFIG_DRIVER_SWNODE_KUNIT_TEST=m CONFIG_GENERIC_CPU_DEVICES=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y @@ -2499,9 +2507,7 @@ CONFIG_REGMAP_SCCB=m CONFIG_REGMAP_I3C=m CONFIG_REGMAP_SPI_AVMM=m CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set CONFIG_GENERIC_ARCH_TOPOLOGY=y -CONFIG_GENERIC_ARCH_NUMA=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set # end of Generic Driver Options @@ -2575,6 +2581,7 @@ CONFIG_ARM_SCMI_POWER_CONTROL=y CONFIG_ARM_SCPI_PROTOCOL=m CONFIG_ARM_SDE_INTERFACE=y +# CONFIG_ARM_SDEI_NMI is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_DMI_SYSFS=y @@ -2638,6 +2645,8 @@ CONFIG_ARM_PSCI_FW=y # # Qualcomm firmware drivers # +CONFIG_QCOM_PAS=y +# CONFIG_QCOM_PAS_TEE is not set CONFIG_QCOM_SCM=y CONFIG_QCOM_TZMEM=y CONFIG_QCOM_TZMEM_MODE_GENERIC=y @@ -2964,7 +2973,6 @@ CONFIG_DW_XDATA_PCIE=m # CONFIG_PCI_ENDPOINT_TEST is not set CONFIG_XILINX_SDFEC=m CONFIG_MISC_RTSX=m -CONFIG_HISI_HIKEY_USB=m CONFIG_OPEN_DICE=m CONFIG_NTSYNC=m CONFIG_VCPU_STALL_DETECTOR=m @@ -2978,14 +2986,9 @@ CONFIG_NSM=m # # EEPROM support # -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_AT25=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_EEPROM_93XX46=m CONFIG_EEPROM_IDT_89HPESX=m -CONFIG_EEPROM_EE1004=m -CONFIG_EEPROM_M24LR=m # end of EEPROM support CONFIG_CB710_CORE=m @@ -3008,7 +3011,9 @@ CONFIG_PVPANIC_PCI=m CONFIG_GP_PCI1XXXX=m # CONFIG_KEBA_CP500 is not set # CONFIG_AMD_SBRMI_I2C is not set +# CONFIG_AMD_SBTSI is not set CONFIG_MISC_RP1=m +# CONFIG_INTEL_SSEI is not set # end of Misc devices # @@ -3086,6 +3091,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS is not set CONFIG_SCSI_MPI3MR=m +# CONFIG_SCSI_LEAPRAID is not set CONFIG_SCSI_SMARTPQI=m CONFIG_SCSI_HPTIOP=m # CONFIG_SCSI_BUSLOGIC is not set @@ -3565,7 +3571,9 @@ CONFIG_LIBETH=m CONFIG_LIBETH_XDP=m CONFIG_LIBIE=m CONFIG_LIBIE_ADMINQ=m +CONFIG_LIBIE_CP=m CONFIG_LIBIE_FWLOG=m +CONFIG_LIBIE_PCI=m CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m @@ -3590,9 +3598,11 @@ CONFIG_IGC=m CONFIG_IGC_LEDS=y CONFIG_IDPF=m CONFIG_IDPF_SINGLEQ=y +# CONFIG_IXD is not set CONFIG_JME=m CONFIG_NET_VENDOR_ADI=y CONFIG_ADIN1110=m +# CONFIG_ADIN1140 is not set CONFIG_NET_VENDOR_LITEX=y CONFIG_LITEX_LITEETH=m CONFIG_NET_VENDOR_MARVELL=y @@ -3802,6 +3812,8 @@ CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=m # CONFIG_XILINX_AXI_EMAC is not set CONFIG_XILINX_LL_TEMAC=m +CONFIG_NET_VENDOR_ZTE=y +# CONFIG_DINGHAI is not set # CONFIG_FDDI is not set CONFIG_QCOM_IPA=m CONFIG_PHYLINK=m @@ -3826,6 +3838,7 @@ CONFIG_AMD_PHY=m CONFIG_MESON_GXL_PHY=m CONFIG_ADIN_PHY=m # CONFIG_ADIN1100_PHY is not set +# CONFIG_ADIN1140_PHY is not set # CONFIG_AMCC_QT2025_PHY is not set CONFIG_AQUANTIA_PHY=m CONFIG_AX88796B_PHY=m @@ -3839,6 +3852,7 @@ CONFIG_BCM_NET_PHYLIB=m CONFIG_BCM_NET_PHYPTP=m CONFIG_CICADA_PHY=m CONFIG_CORTINA_PHY=m +# CONFIG_DAP8211R_PHY is not set CONFIG_DAVICOM_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_LXT_PHY=m @@ -3951,9 +3965,13 @@ CONFIG_CAN_PEAK_USB=m CONFIG_MCTP_SERIAL=m # CONFIG_MCTP_TRANSPORT_I2C is not set CONFIG_MCTP_TRANSPORT_I3C=m +CONFIG_MCTP_TRANSPORT_USBLIB=m CONFIG_MCTP_TRANSPORT_USB=m # end of MCTP Device Drivers +# +# MDIO controller drivers +# CONFIG_FWNODE_MDIO=y CONFIG_OF_MDIO=y CONFIG_ACPI_MDIO=y @@ -3982,6 +4000,8 @@ CONFIG_MDIO_BUS_MUX_MESON_GXL=m CONFIG_MDIO_BUS_MUX_GPIO=m CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m CONFIG_MDIO_BUS_MUX_MMIOREG=m +# end of MDIO Multiplexers +# end of MDIO controller drivers # # PCS device drivers @@ -4247,6 +4267,11 @@ CONFIG_MT7925U=m CONFIG_WLAN_VENDOR_MICROCHIP=y # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set +CONFIG_WLAN_VENDOR_MORSEMICRO=y +# CONFIG_MM81X_USB is not set +# CONFIG_MM81X_SDIO is not set +CONFIG_WLAN_VENDOR_NXP=y +# CONFIG_NXPWIFI_SDIO is not set # CONFIG_WLAN_VENDOR_PURELIFI is not set CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m @@ -4360,8 +4385,11 @@ CONFIG_RTW89_8852CE=m CONFIG_RTW89_8852CU=m CONFIG_RTW89_8922AE=m CONFIG_RTW89_8922AU=m +# CONFIG_RTW89_8922DE is not set # CONFIG_RTW89_DEBUGMSG is not set # CONFIG_RTW89_DEBUGFS is not set +CONFIG_RTW89_LEDS=y +CONFIG_RTW89_LEDS_MC=y CONFIG_WLAN_VENDOR_RSI=y CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4686,9 +4714,9 @@ CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_IQS269A=m CONFIG_INPUT_IQS626A=m CONFIG_INPUT_IQS7222=m +# CONFIG_INPUT_ISA1200_HAPTIC is not set CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m -CONFIG_INPUT_SOC_BUTTON_ARRAY=m # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set @@ -4762,6 +4790,7 @@ CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCILIB=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=m +CONFIG_SERIAL_8250_MOXA_PCIE=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=32 CONFIG_SERIAL_8250_EXTENDED=y @@ -4780,7 +4809,7 @@ CONFIG_SERIAL_8250_OMAP=y CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y CONFIG_SERIAL_8250_PERICOM=y CONFIG_SERIAL_8250_TEGRA=y -CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_SERIAL_OF_PLATFORM is not set CONFIG_SERIAL_8250_DWLIB=y # @@ -4852,6 +4881,7 @@ CONFIG_HVC_DRIVER=y # CONFIG_HVC_DCC is not set CONFIG_RPMSG_TTY=m CONFIG_SERIAL_DEV_BUS=y +# CONFIG_RUST_SERIAL_DEV_BUS_ABSTRACTIONS is not set CONFIG_SERIAL_DEV_CTRL_TTYPORT=y # CONFIG_TTY_PRINTK is not set CONFIG_VIRTIO_CONSOLE=y @@ -4861,6 +4891,7 @@ CONFIG_IPMI_PLAT_DATA=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m +# CONFIG_IPMI_SI_ASYNC_INIT is not set CONFIG_IPMI_SSIF=m CONFIG_IPMI_IPMB=m CONFIG_IPMI_WATCHDOG=m @@ -4887,6 +4918,7 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_HW_RANDOM_CN10K=m CONFIG_HW_RANDOM_ROCKCHIP=m CONFIG_HW_RANDOM_XILINX=m +# CONFIG_HW_RANDOM_QCOM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y CONFIG_TCG_TPM=y @@ -4902,7 +4934,6 @@ CONFIG_TCG_TIS_I2C_CR50=m CONFIG_TCG_TIS_I2C_ATMEL=m CONFIG_TCG_TIS_I2C_INFINEON=m CONFIG_TCG_TIS_I2C_NUVOTON=m -CONFIG_TCG_ATMEL=m # CONFIG_TCG_INFINEON is not set CONFIG_TCG_CRB=y CONFIG_TCG_ARM_CRB_FFA=y @@ -5061,6 +5092,7 @@ CONFIG_SVC_I3C_MASTER=m CONFIG_MIPI_I3C_HCI=m CONFIG_MIPI_I3C_HCI_PCI=m CONFIG_RENESAS_I3C=m +# CONFIG_AMD_AXI_I3C_MASTER is not set CONFIG_I3C_OR_I2C=m CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set @@ -5152,6 +5184,7 @@ CONFIG_SPI_MUX=m # SPI Protocol Masters # CONFIG_SPI_SPIDEV=m +CONFIG_SPI_DMA_KUNIT_TEST=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set @@ -5220,7 +5253,7 @@ CONFIG_PINCTRL_AMD=y CONFIG_PINCTRL_AMDISP=m CONFIG_PINCTRL_APPLE_GPIO=m CONFIG_PINCTRL_AS3722=y -CONFIG_PINCTRL_AXP209=m +# CONFIG_PINCTRL_AXP209 is not set # CONFIG_PINCTRL_AW9523 is not set CONFIG_PINCTRL_CY8C95X0=m CONFIG_PINCTRL_GENERIC_MUX=m @@ -5233,7 +5266,7 @@ CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_ROCKCHIP=y CONFIG_PINCTRL_SCMI=y -CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SINGLE is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_TPS6594=m @@ -5291,6 +5324,7 @@ CONFIG_PINCTRL_GLYMUR=y # CONFIG_PINCTRL_IPQ9574 is not set # CONFIG_PINCTRL_IPQ9650 is not set # CONFIG_PINCTRL_KAANAPALI is not set +CONFIG_PINCTRL_MAILI=y # CONFIG_PINCTRL_MDM9607 is not set CONFIG_PINCTRL_MSM8916=y # CONFIG_PINCTRL_MSM8917 is not set @@ -5587,8 +5621,8 @@ CONFIG_W1_SLAVE_DS28E04=m CONFIG_POWER_RESET=y CONFIG_POWER_RESET_AS3722=y -CONFIG_POWER_RESET_GPIO=y -CONFIG_POWER_RESET_GPIO_RESTART=y +# CONFIG_POWER_RESET_GPIO is not set +# CONFIG_POWER_RESET_GPIO_RESTART is not set CONFIG_POWER_RESET_HISI=y # CONFIG_POWER_RESET_LINKSTATION is not set CONFIG_POWER_RESET_MACSMC=m @@ -5667,8 +5701,10 @@ CONFIG_CHARGER_BQ24735=m CONFIG_CHARGER_BQ2515X=m # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_BQ25980=m +# CONFIG_CHARGER_BQ25630 is not set CONFIG_CHARGER_BQ256XX=m CONFIG_CHARGER_RK817=m +# CONFIG_CHARGER_SGM41542 is not set CONFIG_CHARGER_SMB347=m CONFIG_BATTERY_GAUGE_LTC2941=m # CONFIG_BATTERY_GOLDFISH is not set @@ -5721,6 +5757,7 @@ CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASUS_ROG_RYUJIN=m CONFIG_SENSORS_AXI_FAN_CONTROL=m +# CONFIG_SENSORS_KB9002 is not set CONFIG_SENSORS_ARCTIC_FAN_CONTROLLER=m CONFIG_SENSORS_ARM_SCMI=m CONFIG_SENSORS_ARM_SCPI=m @@ -5894,7 +5931,9 @@ CONFIG_SENSORS_MP9941=m CONFIG_SENSORS_MP9945=m CONFIG_SENSORS_MPQ7932_REGULATOR=y CONFIG_SENSORS_MPQ7932=m +# CONFIG_SENSORS_MPQ82D00 is not set CONFIG_SENSORS_MPQ8785=m +# CONFIG_SENSORS_MPQ8646 is not set CONFIG_SENSORS_PIM4328=m CONFIG_SENSORS_PLI1209BC=m CONFIG_SENSORS_PLI1209BC_REGULATOR=y @@ -5902,6 +5941,7 @@ CONFIG_SENSORS_PM6764TR=m # CONFIG_SENSORS_PXE1610 is not set CONFIG_SENSORS_Q54SJ108A2=m CONFIG_SENSORS_STEF48H28=m +# CONFIG_SENSORS_SQ24860 is not set # CONFIG_SENSORS_STPDDC60 is not set CONFIG_SENSORS_TDA38640=m CONFIG_SENSORS_TDA38640_REGULATOR=y @@ -5912,6 +5952,7 @@ CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TPS546D24=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m +# CONFIG_SENSORS_VT7505 is not set CONFIG_SENSORS_XDP710=m # CONFIG_SENSORS_XDP720 is not set CONFIG_SENSORS_XDPE152=m @@ -5922,7 +5963,6 @@ CONFIG_SENSORS_PT5161L=m CONFIG_SENSORS_PWM_FAN=m CONFIG_SENSORS_QNAP_MCU_HWMON=m CONFIG_SENSORS_RASPBERRYPI_HWMON=m -CONFIG_SENSORS_SBTSI=m CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SHT3x=m @@ -6050,6 +6090,8 @@ CONFIG_TEGRA_BPMP_THERMAL=m # CONFIG_QCOM_TSENS=m CONFIG_QCOM_SPMI_ADC_TM5=m +# CONFIG_QCOM_SPMI_MBG_TM is not set +# CONFIG_QCOM_SPMI_ADC_TM5_GEN3 is not set CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_LMH=m # end of Qualcomm thermal drivers @@ -6296,6 +6338,7 @@ CONFIG_MFD_VX855=m # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set CONFIG_MFD_WM8994=m +CONFIG_MFD_ROHM_PWRBUTTON=y CONFIG_MFD_ROHM_BD718XX=y # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_ROHM_BD957XMUF is not set @@ -6336,7 +6379,7 @@ CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_BD718XX=m CONFIG_REGULATOR_BD9571MWV=m CONFIG_REGULATOR_BD96801=m -CONFIG_REGULATOR_CROS_EC=m +# CONFIG_REGULATOR_CROS_EC is not set # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set @@ -7066,6 +7109,8 @@ CONFIG_VIDEO_IMX335=m CONFIG_VIDEO_IMX355=m CONFIG_VIDEO_IMX412=m CONFIG_VIDEO_IMX415=m +# CONFIG_VIDEO_IMX471 is not set +# CONFIG_VIDEO_IMX678 is not set CONFIG_VIDEO_MAX9271_LIB=m CONFIG_VIDEO_MT9M001=m # CONFIG_VIDEO_MT9M111 is not set @@ -7557,8 +7602,9 @@ CONFIG_DRM_CLIENT_SETUP=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set -# CONFIG_DRM_CLIENT_LOG is not set +CONFIG_DRM_CLIENT_LOG=y CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y +# CONFIG_DRM_CLIENT_DEFAULT_LOG is not set CONFIG_DRM_CLIENT_DEFAULT="fbdev" # end of Supported DRM clients @@ -7698,6 +7744,7 @@ CONFIG_DRM_IMX8QXP_PIXEL_COMBINER=m CONFIG_DRM_IMX8QXP_PIXEL_LINK=m CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI=m CONFIG_DRM_IMX93_MIPI_DSI=m +# CONFIG_DRM_IMX93_PARALLEL_DISP_FMT_CONVERTER is not set CONFIG_DRM_DW_DP=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m @@ -7766,6 +7813,7 @@ CONFIG_DRM_PANEL=y # Display Panels # # CONFIG_DRM_PANEL_ABT_Y030XX067A is not set +# CONFIG_DRM_PANEL_ANBERNIC_TD4310 is not set CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set # CONFIG_DRM_PANEL_AUO_A030JTN01 is not set @@ -7775,6 +7823,7 @@ CONFIG_DRM_PANEL_BOE_TD4320=m CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A=m CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BOE_TV101WUM_LL2=m +# CONFIG_DRM_PANEL_CHIPONE_ICNA35XX is not set CONFIG_DRM_PANEL_CHIPWEALTH_CH13726A=m # CONFIG_DRM_PANEL_EBBG_FT8719 is not set CONFIG_DRM_PANEL_ELIDA_KD35T133=m @@ -7790,8 +7839,10 @@ CONFIG_DRM_PANEL_HIMAX_HX83112B=m CONFIG_DRM_PANEL_HIMAX_HX83121A=m CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_HYDIS_HV101HD1=m +# CONFIG_DRM_PANEL_ILITEK_ILI7807S is not set CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m +# CONFIG_DRM_PANEL_ILITEK_ILI9488 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set CONFIG_DRM_PANEL_ILITEK_ILI9806E_CORE=m CONFIG_DRM_PANEL_ILITEK_ILI9806E_DSI=m @@ -7825,6 +7876,7 @@ CONFIG_DRM_PANEL_NOVATEK_NT35532=m CONFIG_DRM_PANEL_NOVATEK_NT35560=m CONFIG_DRM_PANEL_NOVATEK_NT35950=m # CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36536 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set # CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set CONFIG_DRM_PANEL_NOVATEK_NT37700F=m @@ -7842,6 +7894,7 @@ CONFIG_DRM_PANEL_RAYDIUM_RM68200=m CONFIG_DRM_PANEL_RAYDIUM_RM692E5=m CONFIG_DRM_PANEL_RAYDIUM_RM69380=m CONFIG_DRM_PANEL_RENESAS_R61307=m +# CONFIG_DRM_PANEL_RENESAS_R63419 is not set CONFIG_DRM_PANEL_RENESAS_R69328=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_AMS581VF01=m @@ -8096,6 +8149,7 @@ CONFIG_BACKLIGHT_AW99706=m CONFIG_BACKLIGHT_KTD253=m # CONFIG_BACKLIGHT_KTD2801 is not set CONFIG_BACKLIGHT_KTZ8866=m +# CONFIG_BACKLIGHT_SY7758 is not set CONFIG_BACKLIGHT_PWM=m CONFIG_BACKLIGHT_MAX25014=m # CONFIG_BACKLIGHT_APPLE_DWI is not set @@ -8328,6 +8382,7 @@ CONFIG_SND_HDA_CODEC_HDMI_NVIDIA_MCP=m CONFIG_SND_HDA_CODEC_HDMI_TEGRA=m CONFIG_SND_HDA_CIRRUS_SCODEC=m CONFIG_SND_HDA_CIRRUS_SCODEC_KUNIT_TEST=m +# CONFIG_SND_HDA_SCODEC_AW88399_I2C is not set CONFIG_SND_HDA_SCODEC_CS35L41=m CONFIG_SND_HDA_SCODEC_COMPONENT=m CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m @@ -8759,6 +8814,7 @@ CONFIG_SND_SOC_AW88166=m CONFIG_SND_SOC_AW88261=m CONFIG_SND_SOC_AW88081=m CONFIG_SND_SOC_AW87390=m +CONFIG_SND_SOC_AW88399_LIB=m CONFIG_SND_SOC_AW88399=m CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m @@ -8922,6 +8978,7 @@ CONFIG_SND_SOC_RT722_SDCA_SDW=m CONFIG_SND_SOC_RT715=m CONFIG_SND_SOC_RT715_SDW=m CONFIG_SND_SOC_RT715_SDCA_SDW=m +# CONFIG_SND_SOC_RT766_SDCA_SDW is not set # CONFIG_SND_SOC_RT9120 is not set CONFIG_SND_SOC_RT9123=m CONFIG_SND_SOC_RT9123P=m @@ -9027,6 +9084,7 @@ CONFIG_SND_SOC_WM8994=m # CONFIG_SND_SOC_WSA881X is not set CONFIG_SND_SOC_WSA883X=m CONFIG_SND_SOC_WSA884X=m +# CONFIG_SND_SOC_WSA885X is not set CONFIG_SND_SOC_ZL38060=m CONFIG_SND_SOC_MAX9759=m # CONFIG_SND_SOC_MT6351 is not set @@ -9111,12 +9169,14 @@ CONFIG_HID_GFRM=m CONFIG_HID_GLORIOUS=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y +# CONFIG_HID_HYPERX is not set CONFIG_HID_VIVALDI_COMMON=m CONFIG_HID_GOODIX_SPI=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GOOGLE_STADIA_FF=m CONFIG_HID_VIVALDI=m CONFIG_HID_GT683R=m +# CONFIG_HID_MSI is not set CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_KYSONA=m @@ -9195,6 +9255,7 @@ CONFIG_HID_RMI=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y CONFIG_HID_HYPERV_MOUSE=m +# CONFIG_HID_HYPERV_MOUSE_KUNIT_TEST is not set CONFIG_HID_SMARTJOYPLUS=m CONFIG_SMARTJOYPLUS_FF=y CONFIG_HID_TIVO=m @@ -9853,6 +9914,7 @@ CONFIG_LEDS_USER=m # CONFIG_LEDS_SPI_BYTE is not set # CONFIG_LEDS_LM3697 is not set CONFIG_LEDS_ST1202=m +# CONFIG_LEDS_LTC3220 is not set # # Flash and Torch LED drivers @@ -10114,6 +10176,7 @@ CONFIG_RTC_DRV_MESON_VRTC=m # CONFIG_RTC_DRV_SH is not set # CONFIG_RTC_DRV_PL030 is not set CONFIG_RTC_DRV_PL031=y +# CONFIG_RTC_DRV_RZN1 is not set CONFIG_RTC_DRV_SUN6I=y CONFIG_RTC_DRV_MV=m CONFIG_RTC_DRV_ARMADA38X=m @@ -10526,6 +10589,14 @@ CONFIG_COMMON_CLK_BD718XX=m CONFIG_CLK_BCM2711_DVP=m CONFIG_CLK_BCM2835=y CONFIG_CLK_RASPBERRYPI=y + +# +# Cixtech Audio Subsystem Clock Driver +# +# CONFIG_CLK_SKY1_AUDSS is not set +# end of Cixtech Audio Subsystem Clock Driver + +CONFIG_COMMON_CLK_HISI=y # CONFIG_COMMON_CLK_HI3516CV300 is not set CONFIG_COMMON_CLK_HI3519=m CONFIG_COMMON_CLK_HI3559A=y @@ -10569,6 +10640,8 @@ CONFIG_COMMON_CLK_AXG=y CONFIG_COMMON_CLK_AXG_AUDIO=y # CONFIG_COMMON_CLK_A1_PLL is not set # CONFIG_COMMON_CLK_A1_PERIPHERALS is not set +CONFIG_COMMON_CLK_A9_PERIPHERALS=y +CONFIG_COMMON_CLK_A9_AO=y CONFIG_COMMON_CLK_C3_PLL=y CONFIG_COMMON_CLK_C3_PERIPHERALS=y CONFIG_COMMON_CLK_G12A=y @@ -10588,7 +10661,9 @@ CONFIG_COMMON_CLK_QCOM=y CONFIG_CLK_ELIZA_DISPCC=m CONFIG_CLK_ELIZA_GCC=y CONFIG_CLK_ELIZA_TCSRCC=y +CONFIG_CLK_GLYMUR_CAMCC=m CONFIG_CLK_GLYMUR_DISPCC=m +CONFIG_CLK_GLYMUR_EVACC=m CONFIG_CLK_GLYMUR_GCC=y CONFIG_CLK_GLYMUR_GPUCC=m CONFIG_CLK_GLYMUR_TCSRCC=y @@ -10599,7 +10674,12 @@ CONFIG_CLK_GLYMUR_VIDEOCC=m # CONFIG_CLK_KAANAPALI_GPUCC is not set # CONFIG_CLK_KAANAPALI_TCSRCC is not set # CONFIG_CLK_KAANAPALI_VIDEOCC is not set -# CONFIG_CLK_NORD_GCC is not set +CONFIG_CLK_NORD_DISPCC=m +CONFIG_CLK_MAILI_VIDEOCC=m +CONFIG_CLK_NORD_GCC=m +CONFIG_CLK_SHIKRA_AUDIOCORECC=m +CONFIG_CLK_SHIKRA_GCC=y +CONFIG_CLK_NORD_GPUCC=m CONFIG_CLK_X1E80100_CAMCC=m CONFIG_CLK_X1E80100_DISPCC=m CONFIG_CLK_X1E80100_GCC=y @@ -10610,18 +10690,17 @@ CONFIG_CLK_X1P42100_GPUCC=m CONFIG_CLK_X1P42100_VIDEOCC=m CONFIG_CLK_QCM2290_GPUCC=m CONFIG_QCOM_A53PLL=m -# CONFIG_QCOM_A7PLL is not set CONFIG_QCOM_CLK_APCS_MSM8916=m # CONFIG_QCOM_CLK_APCC_MSM8996 is not set CONFIG_QCOM_CLK_SMD_RPM=m CONFIG_QCOM_CLK_RPMH=y -# CONFIG_CLK_HAWI_GCC is not set +CONFIG_CLK_HAWI_GCC=m # CONFIG_CLK_HAWI_TCSRCC is not set +CONFIG_CLK_HAWI_VIDEOCC=m # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_APSS_5424 is not set # CONFIG_IPQ_APSS_6018 is not set CONFIG_IPQ_CMN_PLL=m -# CONFIG_IPQ_GCC_4019 is not set CONFIG_IPQ_GCC_5018=m # CONFIG_IPQ_GCC_5210 is not set # CONFIG_IPQ_GCC_5332 is not set @@ -10756,6 +10835,7 @@ CONFIG_CLK_GFM_LPASS_SM8250=m # CONFIG_SM_VIDEOCC_8450 is not set CONFIG_CLK_RENESAS=y CONFIG_CLK_R8A774A1=y +CONFIG_CLK_R8A78000=y CONFIG_CLK_R9A07G043=y CONFIG_CLK_R9A07G044=y CONFIG_CLK_R9A07G054=y @@ -10771,6 +10851,7 @@ CONFIG_CLK_RCAR_GEN3_CPG=y # CONFIG_CLK_RCAR_USB2_CLOCK_SEL is not set CONFIG_CLK_RZG2L=y CONFIG_CLK_RZV2H=y +CONFIG_CLK_RZV2H_CPG_LIB=y # CONFIG_CLK_RENESAS_VBATTB is not set CONFIG_CLK_RENESAS_CPG_MSSR=y CONFIG_CLK_RENESAS_DIV6=y @@ -10809,6 +10890,7 @@ CONFIG_CLK_KUNIT_TEST=m CONFIG_CLK_FIXED_RATE_KUNIT_TEST=m CONFIG_CLK_GATE_KUNIT_TEST=m CONFIG_CLK_FD_KUNIT_TEST=m +CONFIG_CLK_DIVIDER_KUNIT_TEST=m CONFIG_HWSPINLOCK=y CONFIG_HWSPINLOCK_OMAP=m CONFIG_HWSPINLOCK_QCOM=m @@ -10850,7 +10932,7 @@ CONFIG_ARM_MHU=m CONFIG_ARM_MHU_V2=m CONFIG_ARM_MHU_V3=m CONFIG_IMX_MBOX=m -CONFIG_PLATFORM_MHU=m +# CONFIG_PLATFORM_MHU is not set # CONFIG_PL320_MBOX is not set CONFIG_ARMADA_37XX_RWTM_MBOX=m CONFIG_OMAP2PLUS_MBOX=m @@ -10907,6 +10989,7 @@ CONFIG_TEGRA241_CMDQV=y CONFIG_QCOM_IOMMU=y CONFIG_IOMMUFD_DRIVER_CORE=y CONFIG_IOMMUFD=m +CONFIG_IOMMUFD_NOIOMMU=y CONFIG_ROCKCHIP_IOMMU=y CONFIG_SUN50I_IOMMU=y CONFIG_TEGRA_IOMMU_SMMU=y @@ -10914,12 +10997,21 @@ CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_APPLE_DART=m CONFIG_VIRTIO_IOMMU=y # CONFIG_VSI_IOMMU is not set +CONFIG_GENERIC_PT=y +# CONFIG_DEBUG_GENERIC_PT is not set +CONFIG_IOMMU_PT=y +CONFIG_IOMMU_PT_AMDV1=m +# CONFIG_IOMMU_PT_VTDSS is not set +# CONFIG_IOMMU_PT_RISCV64 is not set +# CONFIG_IOMMU_PT_X86_64 is not set +CONFIG_IOMMU_PT_KUNIT_TEST=m # # Remoteproc drivers # CONFIG_REMOTEPROC=y # CONFIG_REMOTEPROC_CDEV is not set +# CONFIG_AMD_MBV_BRAM_REMOTEPROC is not set CONFIG_IMX_REMOTEPROC=m CONFIG_IMX_DSP_REMOTEPROC=m CONFIG_PRU_REMOTEPROC=m @@ -10978,6 +11070,7 @@ CONFIG_MESON_GX_SOCINFO=y # Apple SoC drivers # CONFIG_APPLE_MAILBOX=m +# CONFIG_APPLE_PMGR_MISC is not set CONFIG_APPLE_RTKIT=m CONFIG_APPLE_SART=m CONFIG_APPLE_TUNABLE=m @@ -11028,24 +11121,15 @@ CONFIG_SOC_IMX9=m # end of Enable LiteX SoC Builder specific drivers CONFIG_WPCM450_SOC=m - -# -# Qualcomm SoC drivers -# +CONFIG_QCOM_SOC=y CONFIG_QCOM_AOSS_QMP=m CONFIG_QCOM_COMMAND_DB=y CONFIG_QCOM_GENI_SE=y -CONFIG_QCOM_GSBI=y CONFIG_QCOM_LLCC=m -CONFIG_QCOM_KRYO_L2_ACCESSORS=y -CONFIG_QCOM_MDT_LOADER=m CONFIG_QCOM_OCMEM=m CONFIG_QCOM_PD_MAPPER=m -CONFIG_QCOM_PDR_HELPERS=m -CONFIG_QCOM_PDR_MSG=m CONFIG_QCOM_PMIC_PDCHARGER_ULOG=m CONFIG_QCOM_PMIC_GLINK=m -CONFIG_QCOM_QMI_HELPERS=m CONFIG_QCOM_RAMP_CTRL=m CONFIG_QCOM_RMTFS_MEM=m CONFIG_QCOM_RPM_MASTER_STATS=m @@ -11061,10 +11145,13 @@ CONFIG_QCOM_STATS=m CONFIG_QCOM_WCNSS_CTRL=m CONFIG_QCOM_APR=m CONFIG_QCOM_ICC_BWMON=m -CONFIG_QCOM_INLINE_CRYPTO_ENGINE=m CONFIG_QCOM_PBS=m -# end of Qualcomm SoC drivers - +CONFIG_QCOM_INLINE_CRYPTO_ENGINE=m +CONFIG_QCOM_KRYO_L2_ACCESSORS=y +CONFIG_QCOM_MDT_LOADER=m +CONFIG_QCOM_PDR_HELPERS=m +CONFIG_QCOM_PDR_MSG=m +CONFIG_QCOM_QMI_HELPERS=m CONFIG_QCOM_UBWC_CONFIG=m CONFIG_SOC_RENESAS=y CONFIG_ARCH_RCAR_GEN3=y @@ -11166,7 +11253,7 @@ CONFIG_RASPBERRYPI_POWER=y # CONFIG_IMX_GPCV2_PM_DOMAINS=y CONFIG_IMX8M_BLK_CTRL=y -CONFIG_IMX9_BLK_CTRL=y +CONFIG_IMX9_BLK_CTRL=m CONFIG_IMX_SCU_PD=y # end of i.MX PM Domains @@ -11182,6 +11269,7 @@ CONFIG_QCOM_RPMPD=m # Renesas PM Domains # CONFIG_SYSC_RCAR=y +CONFIG_MDLC_R8A78000=y CONFIG_SYSC_R8A774A1=y # end of Renesas PM Domains @@ -11385,6 +11473,7 @@ CONFIG_IMX7D_ADC=m CONFIG_IMX8QXP_ADC=m CONFIG_IMX93_ADC=m # CONFIG_LTC2309 is not set +# CONFIG_LTC2378 is not set # CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2496 is not set @@ -11435,6 +11524,7 @@ CONFIG_TI_ADS1015=m CONFIG_TI_ADS1018=m CONFIG_TI_ADS1100=m # CONFIG_TI_ADS1119 is not set +# CONFIG_TI_ADS112C14 is not set # CONFIG_TI_ADS124S08 is not set # CONFIG_TI_ADS1298 is not set CONFIG_TI_ADS131E08=m @@ -11448,6 +11538,8 @@ CONFIG_TI_AM335X_ADC=m CONFIG_TI_LMP92064=m # CONFIG_TI_TLC4541 is not set CONFIG_TI_TSC2046=m +# CONFIG_VERSAL_SYSMON is not set +# CONFIG_VERSAL_SYSMON_I2C is not set # CONFIG_VF610_ADC is not set CONFIG_XILINX_XADC=m CONFIG_XILINX_AMS=m @@ -11588,6 +11680,7 @@ CONFIG_MAX5522=m # CONFIG_MAX5821 is not set # CONFIG_MCP4725 is not set CONFIG_MCP4728=m +# CONFIG_MCP47A1 is not set CONFIG_MCP47FEB02=m CONFIG_MCP4821=m # CONFIG_MCP4922 is not set @@ -11611,6 +11704,12 @@ CONFIG_TI_DAC7311=m # end of Filters # +# Flow sensors +# +# CONFIG_SENSIRION_SLF3S is not set +# end of Flow sensors + +# # Frequency Synthesizers DDS/PLL # @@ -11623,6 +11722,7 @@ CONFIG_TI_DAC7311=m # # Phase-Locked Loop (PLL) frequency synthesizers # +# CONFIG_ADF41513 is not set # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set CONFIG_ADF4377=m @@ -11714,6 +11814,8 @@ CONFIG_FXOS8700_SPI=m CONFIG_INV_ICM42600=m CONFIG_INV_ICM42600_I2C=m CONFIG_INV_ICM42600_SPI=m +# CONFIG_INV_ICM42607_I2C is not set +# CONFIG_INV_ICM42607_SPI is not set CONFIG_INV_ICM45600=m CONFIG_INV_ICM45600_I2C=m CONFIG_INV_ICM45600_SPI=m @@ -11828,6 +11930,8 @@ CONFIG_IIO_ST_MAGN_3AXIS=m CONFIG_IIO_ST_MAGN_I2C_3AXIS=m CONFIG_IIO_ST_MAGN_SPI_3AXIS=m # CONFIG_INFINEON_TLV493D is not set +# CONFIG_QMC5883L is not set +# CONFIG_QMC6308 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set CONFIG_SENSORS_RM3100=m @@ -12088,6 +12192,7 @@ CONFIG_RESET_RZV2H_USB2PHY=m CONFIG_RESET_SCMI=y CONFIG_RESET_SIMPLE=y CONFIG_RESET_SKY1=y +# CONFIG_RESET_SKY1_AUDSS is not set CONFIG_RESET_SUNXI=y CONFIG_RESET_TI_SCI=m CONFIG_RESET_TI_SYSCON=m @@ -12172,6 +12277,7 @@ CONFIG_PHY_QCOM_PCIE2=m CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QMP_COMBO=m CONFIG_PHY_QCOM_QMP_PCIE=m +# CONFIG_PHY_QCOM_QMP_PCIE_MULTIPHY is not set CONFIG_PHY_QCOM_QMP_PCIE_8996=m CONFIG_PHY_QCOM_QMP_UFS=m CONFIG_PHY_QCOM_QMP_USB=m @@ -12318,6 +12424,11 @@ CONFIG_NVMEM_LAYOUT_ONIE_TLV=m CONFIG_NVMEM_LAYOUT_U_BOOT_ENV=m # end of Layout Types +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_EE1004=m +CONFIG_EEPROM_M24LR=m CONFIG_NVMEM_APPLE_EFUSES=m CONFIG_NVMEM_APPLE_SPMI=m # CONFIG_NVMEM_IMX_IIM is not set @@ -12422,6 +12533,7 @@ CONFIG_INTERCONNECT_QCOM_ELIZA=y CONFIG_INTERCONNECT_QCOM_GLYMUR=y # CONFIG_INTERCONNECT_QCOM_HAWI is not set # CONFIG_INTERCONNECT_QCOM_KAANAPALI is not set +CONFIG_INTERCONNECT_QCOM_MAILI=y CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8937 is not set # CONFIG_INTERCONNECT_QCOM_MSM8939 is not set @@ -12593,7 +12705,6 @@ CONFIG_FSCACHE_STATS=y CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_ERROR_INJECTION is not set -CONFIG_CACHEFILES_ONDEMAND=y # end of Caches # @@ -12617,11 +12728,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii" CONFIG_FAT_KUNIT_TEST=m CONFIG_EXFAT_FS=m CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -# CONFIG_NTFS_FS 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 +# CONFIG_NTFS_FS_WOF_COMPRESSION is not set +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS_POSIX_ACL=y +# CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -12631,7 +12742,7 @@ CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y CONFIG_PROC_VMCORE_DEVICE_DUMP=y -CONFIG_PROC_SYSCTL=y +CONFIG_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_CHILDREN=y CONFIG_PROC_CPU_RESCTRL=y @@ -12663,7 +12774,6 @@ CONFIG_HFSPLUS_FS=m CONFIG_HFSPLUS_KUNIT_TEST=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set CONFIG_JFFS2_FS=m CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y @@ -12703,7 +12813,6 @@ CONFIG_SQUASHFS_ZSTD=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=m # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set @@ -12936,6 +13045,7 @@ CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y # CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set # CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set CONFIG_SECURITY_LANDLOCK=y +CONFIG_SECURITY_LANDLOCK_LOG=y CONFIG_SECURITY_IPE=y CONFIG_IPE_BOOT_POLICY="" CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING=y @@ -12986,6 +13096,7 @@ CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y # CONFIG_IMA_DISABLE_HTABLE is not set CONFIG_IMA_KEXEC_EXTRA_MEMORY_KB=0 CONFIG_IMA_STAGING=y +# CONFIG_IMA_INIT_LATE_SYNC is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y # CONFIG_EVM_ADD_XATTRS is not set @@ -13229,11 +13340,9 @@ CONFIG_CRYPTO_DEV_SUN4I_SS=m CONFIG_CRYPTO_DEV_SUN8I_CE=m # CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y -CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y CONFIG_CRYPTO_DEV_SUN8I_SS=m # CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set -CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=m CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=m @@ -13250,7 +13359,6 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI=y CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y -CONFIG_CRYPTO_DEV_FSL_CAAM_PRNG_API=y # CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m # CONFIG_CRYPTO_DEV_SAHARA is not set @@ -13281,8 +13389,6 @@ CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m # CONFIG_CRYPTO_DEV_QAT_ERROR_INJECTION is not set -# CONFIG_CRYPTO_DEV_QCE is not set -CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m # CONFIG_CRYPTO_DEV_ROCKCHIP_DEBUG is not set CONFIG_CRYPTO_DEV_TEGRA=m @@ -13381,7 +13487,13 @@ CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_AES_ARCH=y CONFIG_CRYPTO_LIB_AESCFB=y +CONFIG_CRYPTO_LIB_AES_CBC=y CONFIG_CRYPTO_LIB_AES_CBC_MACS=y +CONFIG_CRYPTO_LIB_AES_CCM=y +CONFIG_CRYPTO_LIB_AES_CTR=y +CONFIG_CRYPTO_LIB_AES_ECB=y +CONFIG_CRYPTO_LIB_AES_GCM=y +CONFIG_CRYPTO_LIB_AES_XTS=y CONFIG_CRYPTO_LIB_ARC4=m CONFIG_CRYPTO_LIB_GF128MUL=m CONFIG_CRYPTO_LIB_BLAKE2B=y @@ -13412,15 +13524,16 @@ CONFIG_CRYPTO_LIB_SHA3_ARCH=y CONFIG_XOR_BLOCKS=y CONFIG_XOR_BLOCKS_ARCH=y CONFIG_XOR_KUNIT_TEST=m +# CONFIG_XOR_BENCHMARK is not set CONFIG_RAID6_PQ=y CONFIG_RAID6_PQ_ARCH=y CONFIG_RAID6_PQ_KUNIT_TEST=m +# CONFIG_RAID6_PQ_KUNIT_BENCHMARK is not set # CONFIG_RAID6_PQ_BENCHMARK is not set CONFIG_XXHASH=y CONFIG_AUDIT_GENERIC=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y CONFIG_AUDIT_COMPAT_GENERIC=y -# CONFIG_RANDOM32_SELFTEST is not set CONFIG_842_COMPRESS=y CONFIG_842_DECOMPRESS=y CONFIG_ZLIB_INFLATE=y @@ -13482,6 +13595,7 @@ CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y CONFIG_ARCH_HAS_BATCHED_DMA_SYNC=y CONFIG_SWIOTLB=y +CONFIG_SWIOTLB_DEFAULT_SIZE_MB=64 # CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y CONFIG_DMA_NEED_SYNC=y @@ -13520,7 +13634,7 @@ CONFIG_DIMLIB=y CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_VDSO_DATASTORE=y CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_VDSO_GETRANDOM=y CONFIG_FONT_SUPPORT=y @@ -13605,7 +13719,6 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_VMLINUX_MAP is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options # @@ -13673,6 +13786,7 @@ CONFIG_PTDUMP=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_PER_VMA_LOCK_STATS is not set +# CONFIG_MEM_ALLOC_PROFILING is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SHRINKER_DEBUG is not set # CONFIG_DEBUG_STACK_USAGE is not set @@ -13685,7 +13799,6 @@ CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_MEM_ALLOC_PROFILING is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y @@ -13849,6 +13962,7 @@ CONFIG_BRANCH_PROFILE_NONE=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_FPROBE_EVENTS=y CONFIG_PROBE_EVENTS_BTF_ARGS=y +# CONFIG_PROBE_EVENTS_DUMP_FETCHARG is not set CONFIG_KPROBE_EVENTS=y # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set CONFIG_UPROBE_EVENTS=y @@ -13899,6 +14013,7 @@ CONFIG_RV_MON_NOMISS=y CONFIG_RV_REACTORS=y CONFIG_RV_REACT_PRINTK=y CONFIG_RV_REACT_PANIC=y +CONFIG_RV_MONITORS_KUNIT_TEST=m # CONFIG_TRACE_REMOTE_TEST is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y @@ -13994,6 +14109,7 @@ CONFIG_TEST_VMALLOC=m # CONFIG_TEST_WORKQUEUE is not set CONFIG_TEST_BPF=m # CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_REGION_ALLOC_BENCHMARK is not set # CONFIG_FIND_BIT_BENCHMARK_RUST is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set @@ -14025,6 +14141,8 @@ CONFIG_STACKINIT_KUNIT_TEST=m CONFIG_FORTIFY_KUNIT_TEST=m CONFIG_LONGEST_SYM_KUNIT_TEST=m CONFIG_CRYPTO_LIB_AES_CBC_MACS_KUNIT_TEST=m +CONFIG_CRYPTO_LIB_AES_CCM_KUNIT_TEST=m +CONFIG_CRYPTO_LIB_AES_GCM_KUNIT_TEST=m CONFIG_CRYPTO_LIB_BLAKE2B_KUNIT_TEST=m CONFIG_CRYPTO_LIB_BLAKE2S_KUNIT_TEST=m CONFIG_CRYPTO_LIB_CHACHA20POLY1305_KUNIT_TEST=m @@ -14064,8 +14182,10 @@ CONFIG_INT_POW_KUNIT_TEST=m CONFIG_INT_SQRT_KUNIT_TEST=m CONFIG_INT_LOG_KUNIT_TEST=m CONFIG_GCD_KUNIT_TEST=m +CONFIG_POLYNOMIAL_KUNIT_TEST=m CONFIG_PRIME_NUMBERS_KUNIT_TEST=m CONFIG_GLOB_KUNIT_TEST=m +CONFIG_PRANDOM_KUNIT_TEST=m CONFIG_ARCH_USE_MEMTEST=y CONFIG_MEMTEST=y # CONFIG_HYPERV_TESTING is not set diff --git a/config/foreign-socs.config b/config/foreign-socs.config new file mode 100644 index 0000000..5926d06 --- /dev/null +++ b/config/foreign-socs.config @@ -0,0 +1,68 @@ +# Config fragment turning off the ARM64 platforms this machine is not. +# +# Two platforms are deliberately kept: +# +# ARCH_QCOM what this machine is. +# ARCH_VEXPRESS cheap, and it is the ARM reference/model platform that pulls +# in the AMBA PrimeCell parts a QEMU `virt` guest expects, +# which is how an image built from this kernel can be smoke +# tested without the hardware in hand. + +# Allwinner +# CONFIG_ARCH_SUNXI is not set + +# Apple M-series +# CONFIG_ARCH_APPLE is not set + +# Broadcom, including Raspberry Pi +# CONFIG_ARCH_BCM is not set +# CONFIG_ARCH_BCM2835 is not set + +# Black Sesame +# CONFIG_ARCH_BST is not set + +# CIX +# CONFIG_ARCH_CIX is not set + +# Texas Instruments K3 +# CONFIG_ARCH_K3 is not set + +# HiSilicon +# CONFIG_ARCH_HISI is not set + +# Amlogic +# CONFIG_ARCH_MESON is not set + +# Marvell EBU +# CONFIG_ARCH_MVEBU is not set + +# NXP: i.MX, Layerscape and S32 +# CONFIG_ARCH_NXP is not set +# CONFIG_ARCH_LAYERSCAPE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_S32 is not set + +# Renesas +# CONFIG_ARCH_RENESAS is not set + +# Rockchip +# CONFIG_ARCH_ROCKCHIP is not set + +# AMD Seattle +# CONFIG_ARCH_SEATTLE is not set + +# Socionext SynQuacer +# CONFIG_ARCH_SYNQUACER is not set + +# NVIDIA Tegra +# CONFIG_ARCH_TEGRA is not set + +# Cavium ThunderX and ThunderX2 servers +# CONFIG_ARCH_THUNDER is not set +# CONFIG_ARCH_THUNDER2 is not set + +# AppliedMicro X-Gene +# CONFIG_ARCH_XGENE is not set + +# Xilinx ZynqMP +# CONFIG_ARCH_ZYNQMP is not set diff --git a/fixups/0012-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-add-camera-support.patch.sed b/fixups/0012-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-add-camera-support.patch.sed new file mode 100644 index 0000000..b0ea155 --- /dev/null +++ b/fixups/0012-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-add-camera-support.patch.sed @@ -0,0 +1 @@ +s/^@@ -753,6 +768,260 @@/@@ -753,6 +768,232 @@/ diff --git a/kernel-sp12in.repo b/kernel-sp12in.repo index 226108c..fa257a2 100644 --- a/kernel-sp12in.repo +++ b/kernel-sp12in.repo @@ -1,5 +1,5 @@ [kernel-sp12in] name=kernel-sp12in for Fedora $releasever - $basearch -baseurl=https://f003.backblazeb2.com/file/dist-sayagit-fedora-rpm/fedora/$releasever/$basearch/ +baseurl=https://rpm.sayag.it/kernel-sp12in/fedora/$releasever/$basearch/ enabled=1 gpgcheck=0 diff --git a/kernel-surface.spec b/kernel-surface.spec index dc29ae3..22aa947 100644 --- a/kernel-surface.spec +++ b/kernel-surface.spec @@ -12,7 +12,7 @@ # passes them in with --define, which takes precedence -- so keep the plain # `%%global <name> <value>` shape, which make-sources.sh reads with awk. %if %{undefined upstream_ver} -%global upstream_ver 7.2.3 +%global upstream_ver 7.3-rc3 %endif # Bumped whenever the patch tarball changes without the upstream version moving. @@ -25,6 +25,7 @@ # anyway -- 7.3-rc1 builds 7.3.0 -- and %%prep drops the EXTRAVERSION that would # otherwise carry the -rcN into uname -r. A stable version passes through. %global kversion %(echo %{upstream_ver} | sed -e 's/-rc[0-9]*$/.0/') +%global kverextra %(echo %{upstream_ver} | cut -d'-' -f2 -s) # The kernel's own release string: what uname -r reports and what names # /usr/lib/modules/<...>. Matches Fedora's <version>-<release>.<arch> convention. @@ -43,7 +44,7 @@ Name: kernel-surface Version: %{kversion} -Release: %{patchset_ver}%{?dist} +Release: %(test -n "%{kverextra}" && printf "%{kverextra}.")%{patchset_ver}%{?dist} Summary: Linux kernel for the Microsoft Surface Pro 12-inch (Snapdragon X1P-42-100) License: GPL-2.0-only URL: https://github.com/miasvanklei/Gentoo-overlay @@ -56,6 +57,7 @@ Source2: base-aarch64.config Source3: surface.config Source4: live-image.config Source5: no-debug-info.config +Source6: foreign-socs.config BuildRequires: bc BuildRequires: binutils @@ -71,6 +73,7 @@ BuildRequires: gzip BuildRequires: hostname BuildRequires: kmod BuildRequires: make +BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: patch BuildRequires: perl-interpreter @@ -142,6 +145,18 @@ for patchdir in patches/*/; do done rm -rf patches +# The camera series calls devm_phy_get_by_of_node(), which only the phy series +# adds -- and the overlay's own 7.2.3 ebuild left phy out of its loop while +# shipping the camera patch that needs it. Applying one without the other +# compiles for twenty-odd minutes before failing in camss-csiphy.c, so assert +# the declaration is here while it is still cheap to say so. +grep -q 'devm_phy_get_by_of_node' include/linux/phy/phy.h || { + echo "ERROR: include/linux/phy/phy.h does not declare devm_phy_get_by_of_node." + echo "The camera patches need the phy ones; check phy is in patch-order.txt" + echo "and that it exists at the pinned overlay commit." + exit 1 +} + # Fold the -rcN suffix into the package release instead of carrying it in # uname -r, so the module directory is named the way Fedora names it. sed -i 's/^EXTRAVERSION[[:space:]]*=.*/EXTRAVERSION =/' Makefile @@ -157,7 +172,7 @@ CONFIG_BUILD_SALT="%{kverrel}" EOF ARCH=arm64 scripts/kconfig/merge_config.sh -m -O . \ - .config .release.config %{SOURCE3} %{SOURCE4} %{SOURCE5} + .config .release.config %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} make ARCH=arm64 olddefconfig # merge_config.sh is only advisory about symbols it could not set, so check the @@ -179,6 +194,7 @@ test "${kernelrelease}" = "%{kverrel}" || { } %build +export KCFLAGS="-mcpu=oryon-1+nopauth" %make_build ARCH=arm64 Image modules dtbs %install @@ -204,7 +220,7 @@ install -Dm644 System.map \ install -Dm644 .config \ %{buildroot}/usr/lib/modules/%{kverrel}/config install -Dm644 arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dtb \ - %{buildroot}/usr/lib/surface-dtb/x1p42100-microsoft-sp12in.dtb + %{buildroot}/usr/lib/surface-dtb/%{kverrel}/x1p42100-microsoft-sp12in.dtb %post /usr/sbin/depmod -a %{kverrel} || : @@ -226,12 +242,43 @@ fi %files %license COPYING /usr/lib/modules/%{kverrel}/ -/usr/lib/surface-dtb/x1p42100-microsoft-sp12in.dtb +/usr/lib/surface-dtb/%{kverrel}/ %ghost %attr(0644,root,root) /boot/config-%{kverrel} %ghost %attr(0644,root,root) /boot/initramfs-%{kverrel}.img %ghost %attr(0600,root,root) /boot/System.map-%{kverrel} %ghost %attr(0644,root,root) /boot/vmlinuz-%{kverrel} %changelog +* Fri Sep 18 2026 Saya Andy 7.3.0-rc3.1 +- Update Linux kernel to 7.3-rc3 +- Update Gentoo overlay from dbb15bd8 to 089d5857 (master) +- Repair malformed hunk header in the overlay's Surface Pro 12in camera DTS + patch via sed fixups + +* Fri Sep 18 2026 Saya Andy 7.2.6-1 +- Update Linux kernel from 7.2.4 to 7.2.6 + +* Wed Sep 09 2026 Saya Andy 7.2.4-2 +- Compile kernel specifically for Oryon v1 instruction set (Snapdragon X1 cpu) + +* Tue Sep 08 2026 Saya Andy 7.2.4-1 +- Update Linux kernel from 7.2.3 to 7.2.4 + +* Mon Sep 07 2026 Saya Andy 7.2.3-4 +- Turn off all the ARM64 platform kernel modules besides qcom and vexpress + (used in qemu) +- Fix Bayer order in rear camera resulting in color space shift + +* Mon Sep 07 2026 Saya Andy 7.2.3-3 +- Key the /usr/lib/surface-dtb copy of the device tree by kernel version. This + package is installonly, so an unqualified path there conflicts between two + installed releases as soon as the device tree they build differs. + +* Sun Sep 06 2026 Saya Andy 7.2.3-2 +- Local camera patch: report the right bayer order when mirrored (fixes the + black-green monochrome output issue) +- Local surface patch: point iris at the OEM video firmware (fixes error -22 + for video encoding/decoding) + * Sun Sep 06 2026 Saya Andy 7.2.3-1 - Initial package: vanilla 7.2.3 with the overlay's Surface Pro 12" patch set diff --git a/make-sources.sh b/make-sources.sh index b4abb4b..aa1c13b 100755 --- a/make-sources.sh +++ b/make-sources.sh @@ -3,8 +3,9 @@ # Assemble the rpmbuild sources for kernel-surface.spec: # # * kernel-surface-patches-<upstream_ver>-<patchset_ver>.tar.gz, built from the -# overlay submodule's sys-kernel/vanilla-kernel/files directories listed in -# patch-order.txt +# directories listed in patch-order.txt: bare names come from the overlay +# submodule's sys-kernel/vanilla-kernel/files, "local:" ones from this +# repository's patches/ # * the upstream kernel tarball # * the base kernel config and the fragments from config/ # @@ -32,6 +33,7 @@ spec="${script_dir}/kernel-surface.spec" order_file="${script_dir}/patch-order.txt" overlay_dir=${OVERLAY_DIR:-${script_dir}/overlay} patch_root="${overlay_dir}/sys-kernel/vanilla-kernel/files" +local_patch_root="${script_dir}/patches" output_dir="" skip_download=false @@ -95,7 +97,19 @@ while read -r dir; do dir=${dir//[[:space:]]/} [[ -n ${dir} ]] || continue - src="${patch_root}/${dir}" + # "local:foo" is patches/foo in this repository, "foo" is the overlay's + # files/foo. The staging name keeps the prefix so the tarball, and the + # spec's "Applying ..." log, say where each patch came from. + if [[ ${dir} == local:* ]]; then + name=${dir#local:} + src="${local_patch_root}/${name}" + label="local-${name}" + else + name=${dir} + src="${patch_root}/${name}" + label=${name} + fi + if [[ ! -d ${src} ]]; then echo "ERROR: ${src} does not exist (listed in patch-order.txt)" >&2 exit 1 @@ -107,15 +121,36 @@ while read -r dir; do exit 1 fi - dest=$(printf '%s/patches/%02d-%s' "${staging}" "${index}" "${dir}") + dest=$(printf '%s/patches/%02d-%s' "${staging}" "${index}" "${label}") mkdir -p "${dest}" cp "${src}"/*.patch "${dest}/" - printf ' %02d %-12s %2d patches\n' "${index}" "${dir}" "${count}" + printf ' %02d %-18s %2d patches\n' "${index}" "${label}" "${count}" index=$((index + 1)) total=$((total + count)) done < "${order_file}" +# Repair known-bad overlay patches: fixups/<patch basename>.sed is applied to +# the staged copy of that patch. +shopt -s nullglob +for fixup in "${script_dir}"/fixups/*.sed; do + fixup_name=${fixup##*/} + target=${fixup_name%.sed} + staged=$(find "${staging}/patches" -type f -name "${target}" -print -quit) + if [[ -z ${staged} ]]; then + echo "ERROR: fixups/${fixup_name} matches no staged patch; delete it" >&2 + exit 1 + fi + sed -f "${fixup}" "${staged}" > "${staging}/.fixed.patch" + if cmp -s "${staged}" "${staging}/.fixed.patch"; then + echo "ERROR: fixups/${fixup_name} changed nothing (overlay patch repaired?); delete it" >&2 + exit 1 + fi + mv "${staging}/.fixed.patch" "${staged}" + echo " fixup applied: ${target}" +done +shopt -u nullglob + tarball="${output_dir}/kernel-surface-patches-${upstream_ver}-${patchset_ver}.tar.gz" # COPYFILE_DISABLE stops macOS tar from adding ._ AppleDouble members, which # would show up as bogus patch files in the spec's glob. @@ -125,10 +160,10 @@ echo "${tarball} (${index} directories, ${total} patches)" #-------------------------------------- # Base config and fragments #-------------------------------------- -for cfg in base-aarch64 surface live-image no-debug-info; do +for cfg in base-aarch64 surface live-image no-debug-info foreign-socs; do cp "${script_dir}/config/${cfg}.config" "${output_dir}/${cfg}.config" done -echo "${output_dir}/{base-aarch64,surface,live-image,no-debug-info}.config" +echo "${output_dir}/{base-aarch64,surface,live-image,no-debug-info,foreign-socs}.config" if [[ ${skip_download} == true ]]; then exit 0 diff --git a/overlay b/overlay -Subproject b8ef9b54f09965d7e30ce03b3a70f5a36f4591b +Subproject 089d585765009758ab8387ea237e0f869354842 diff --git a/patch-order.txt b/patch-order.txt index 334f847..c567bb0 100644 --- a/patch-order.txt +++ b/patch-order.txt @@ -1,20 +1,24 @@ -# Patch directories under the Gentoo overlay's sys-kernel/vanilla-kernel/files, -# in application order. +# Patch directories in application order. # -# This mirrors the loop in vanilla-kernel-7.2.3.ebuild's src_prepare(), minus -# rockchip (irrelevant). There is no phy directory at this overlay commit; the -# CSI-2 D-PHY driver is part of the camera series here. +# A bare name is a directory under the Gentoo overlay's +# sys-kernel/vanilla-kernel/files. A "local:" prefix means patches/<name> in +# this repository, for fixes the overlay does not carry yet. +# +# This mirrors the loop in vanilla-kernel-7.3_rc3.ebuild's src_prepare(), minus +# rockchip (irrelevant). other audio clk +icc pci remoteproc -gpu -usb video wifi input el2 +phy camera +local:camera irq surface +local:surface diff --git a/patches/camera/0027-media-i2c-ov13858-fix-bayer-order-when-mirrored.patch b/patches/camera/0027-media-i2c-ov13858-fix-bayer-order-when-mirrored.patch new file mode 100644 index 0000000..d465f8d --- /dev/null +++ b/patches/camera/0027-media-i2c-ov13858-fix-bayer-order-when-mirrored.patch @@ -0,0 +1,142 @@ +media: i2c: ov13858: report the right bayer order + +The driver advertises MEDIA_BUS_FMT_SGRBG10_1X10 unconditionally, but that is +not what the sensor delivers in any flip state on the Surface Pro 12in. The +horizontal mirror moves the Bayer phase by one column, and the native order is +GBRG rather than GRBG, so the two correct codes are GBRG unmirrored and BGGR +mirrored. + +The rear ov13858 is mounted upside down (rotation = <180> in DT), so userspace +enables both flips to compensate and every frame is then debayered as RGGB +while the sensor emits BGGR. Red and blue are exchanged: an orange object comes +out cyan, warm wood comes out blue, while neutrals are unaffected, which is +what makes it easy to mistake for a white balance problem. + +Two measurements on a Surface Pro 12in, from raw frames captured off the CAMSS +RDI video node. The first locates the green pair by comparing the mean absolute +difference of the diagonal against the antidiagonal samples of each 2x2 quad, +the two greens correlating far better than red against blue: + + hflip=0 vflip=0 diagonal 8.65 antidiagonal 56.82 -> greens diagonal + hflip=1 vflip=0 diagonal 56.25 antidiagonal 8.34 -> greens antidiagonal + hflip=0 vflip=1 diagonal 13.21 antidiagonal 55.94 -> greens diagonal + hflip=1 vflip=1 diagonal 56.04 antidiagonal 13.16 -> greens antidiagonal + +So only the horizontal mirror moves the phase; the ISP Y window offset written +for VFLIP compensates the vertical one. + +That test cannot tell red from blue, because GBRG and GRBG share a green +diagonal just as BGGR and RGGB share a green antidiagonal. Resolving the +remaining ambiguity needs colour: a scene of objects with known colour was +captured in all four states, and the red channel identified as the one whose +ratio to blue matches the scene. The rejected assignment is the reciprocal, so +the margin is large: + + hflip=0 vflip=0 R/B 1.651 (reciprocal 0.606) -> GBRG + hflip=0 vflip=1 R/B 1.622 (reciprocal 0.616) -> GBRG + hflip=1 vflip=0 R/B 1.651 (reciprocal 0.606) -> BGGR + hflip=1 vflip=1 R/B 1.625 (reciprocal 0.615) -> BGGR + +Derive the media bus code from HFLIP and tag the control with +V4L2_CTRL_FLAG_MODIFY_LAYOUT so userspace knows to renegotiate the format after +toggling it. + +The native order disagreeing with upstream is suspicious in itself. The removal +of the per-mode {0x3811, 0x04} and {0x3813, 0x05} ISP window offsets in +"media: i2c: ov13858: add rotate control support", which now writes 1 or 2 into +those registers from the flip handlers, changes the X parity, and that patch +also sets BIT(3) of ROTATE_CONTROL when HFLIP is clear while VFLIP sets BIT(4) +when set. Whether the phase should instead be corrected there is left alone +here: this patch only reports what the sensor is measured to emit. + +--- a/drivers/media/i2c/ov13858.c ++++ b/drivers/media/i2c/ov13858.c +@@ -1032,6 +1032,7 @@ + struct v4l2_ctrl *vblank; + struct v4l2_ctrl *hblank; + struct v4l2_ctrl *exposure; ++ struct v4l2_ctrl *hflip; + + struct clk *img_clk; + struct gpio_desc *reset_gpio; +@@ -1222,8 +1223,10 @@ + OV13858_DGTL_GAIN_MIN, OV13858_DGTL_GAIN_MAX, + OV13858_DGTL_GAIN_STEP, OV13858_DGTL_GAIN_DEFAULT); + +- v4l2_ctrl_new_std(ctrl_hdlr, &ov13858_ctrl_ops, V4L2_CID_HFLIP, +- 0, 1, 1, 0); ++ ov13858->hflip = v4l2_ctrl_new_std(ctrl_hdlr, &ov13858_ctrl_ops, ++ V4L2_CID_HFLIP, 0, 1, 1, 0); ++ if (ov13858->hflip) ++ ov13858->hflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT; + + v4l2_ctrl_new_std(ctrl_hdlr, &ov13858_ctrl_ops, V4L2_CID_VFLIP, + 0, 1, 1, 0); +@@ -1258,12 +1261,24 @@ + return ret; + } + +-static void ov13858_update_pad_format(const struct ov13858_mode *mode, ++/* ++ * Mirroring shifts the Bayer phase by one column, so the native GBRG order ++ * becomes BGGR. The vertical flip is compensated by the ISP Y window offset ++ * and leaves the order alone. ++ */ ++static u32 ov13858_get_format_code(struct ov13858 *ov13858) ++{ ++ return ov13858->hflip->val ? MEDIA_BUS_FMT_SBGGR10_1X10 ++ : MEDIA_BUS_FMT_SGBRG10_1X10; ++} ++ ++static void ov13858_update_pad_format(struct ov13858 *ov13858, ++ const struct ov13858_mode *mode, + struct v4l2_mbus_framefmt *fmt) + { + fmt->width = mode->width; + fmt->height = mode->height; +- fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10; ++ fmt->code = ov13858_get_format_code(ov13858); + fmt->field = V4L2_FIELD_NONE; + } + +@@ -1418,7 +1433,7 @@ + ARRAY_SIZE(supported_modes), + width, height, + fmt->format.width, fmt->format.height); +- ov13858_update_pad_format(mode, &fmt->format); ++ ov13858_update_pad_format(ov13858, mode, &fmt->format); + *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format; + + if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) +@@ -1453,11 +1468,11 @@ + struct v4l2_subdev_state *sd_state, + struct v4l2_subdev_mbus_code_enum *code) + { +- /* Only one bayer order(GRBG) is supported */ ++ /* Only one bayer order is supported, which one depends on the mirror */ + if (code->index > 0) + return -EINVAL; + +- code->code = MEDIA_BUS_FMT_SGRBG10_1X10; ++ code->code = ov13858_get_format_code(to_ov13858(sd)); + + return 0; + } +@@ -1469,7 +1484,7 @@ + if (fse->index >= ARRAY_SIZE(supported_modes)) + return -EINVAL; + +- if (fse->code != MEDIA_BUS_FMT_SGRBG10_1X10) ++ if (fse->code != ov13858_get_format_code(to_ov13858(sd))) + return -EINVAL; + + fse->min_width = supported_modes[fse->index].width; +@@ -1520,7 +1535,7 @@ + { + struct ov13858 *ov13858 = to_ov13858(sd); + +- ov13858_update_pad_format(ov13858->cur_mode, ++ ov13858_update_pad_format(ov13858, ov13858->cur_mode, + v4l2_subdev_state_get_format(sd_state, 0)); + + return 0; diff --git a/patches/surface/0016-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-iris-firmware-name.patch b/patches/surface/0016-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-iris-firmware-name.patch new file mode 100644 index 0000000..b182b0b --- /dev/null +++ b/patches/surface/0016-arm64-dts-qcom-purwa-Microsoft-Surface-Pro-12in-iris-firmware-name.patch @@ -0,0 +1,32 @@ +arm64: dts: qcom: purwa: Microsoft Surface Pro 12in: point iris at the OEM video firmware + +The generic qcom/vpu/vpu30_p1_s7.mbn shipped by linux-firmware is signed with +the Qualcomm SecTools test key chain ("SECTOOLS SECP384R1 CURVE TEST ROOT" / +"General Use Test Key (for testing only)"), which the TrustZone on a retail +Surface Pro 12in refuses: + + qcom-iris aa00000.video-codec: error -22 initializing firmware qcom/vpu/vpu30_p1_s7.mbn + qcom-iris aa00000.video-codec: firmware download failed + qcom-iris aa00000.video-codec: core init failed + +The -22 comes straight out of qcom_scm_pas_init_image() in +__qcom_mdt_pas_init(), i.e. the image metadata is rejected before anything is +loaded. + +The Windows driver package for this machine carries the same firmware signed +with the production chain ("QMC Attestation Root CA 6"), in two builds: +qcvss8380.mbn and qcvss8380_pa.mbn. The _pa one is what loads here. It has an +identical 7 MiB load span, so it fits the existing video_mem reservation +unchanged. Point the iris node at it, the same way the board already does for +the aDSP, cDSP and GPU firmware. + +--- a/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts ++++ b/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts +@@ -1098,6 +1098,7 @@ + }; + + &iris { ++ firmware-name = "qcom/x1p42100/Microsoft/Surface12/qcvss8380_pa.mbn"; + status = "okay"; + }; + |