diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 2afa4fc721..0000000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/contribute/code-of-conduct/](https://rocknix.org/contribute/code-of-conduct/)
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 554ef29393..0000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/contribute/](https://rocknix.org/contribute/)
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
index fa496b1e09..8fbc98b773 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,13 +1,10 @@
-
[![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
-#
-
## Licenses
-JELOS is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only.
+ROCKNIX is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only.
-### JELOS Branding
+### ROCKNIX Branding
-JELOS branding and images are licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
+ROCKNIX branding and images are licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
You are free to:
@@ -20,11 +17,11 @@ Under the following terms:
- NonCommercial: You may not use the material for commercial purposes.
- ShareAlike: If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
-### JELOS Software
+### ROCKNIX Software
-Copyright 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+Copyright 2024 ROCKNIX (https://github.com/ROCKNIX)
-Original software and scripts developed by the JELOS team are licensed under the terms of the [GNU GPL Version 2](https://choosealicense.com/licenses/gpl-2.0/). The full license can be found in this project's licenses folder.
+Original software and scripts developed by the ROCKNIX team are licensed under the terms of the [GNU GPL Version 2](https://choosealicense.com/licenses/gpl-2.0/). The full license can be found in this project's licenses folder.
### Bundled Works
-All other software is provided under each component's respective license. These licenses can be found in the software sources or in this project's licenses folder. Modifications to bundled software and scripts by the JELOS team are licensed under the terms of the software being modified.
+All other software is provided under each component's respective license. These licenses can be found in the software sources or in this project's licenses folder. Modifications to bundled software and scripts by the ROCKNIX team are licensed under the terms of the software being modified.
diff --git a/Makefile b/Makefile
index d4e31b027a..bd499264b3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
BUILD_DIRS=build.*
--include $(HOME)/.${DISTRONAME}/options
+-include $(HOME)/.ROCKNIX/options
all: world
@@ -47,6 +47,7 @@ S922X:
PROJECT=Amlogic DEVICE=S922X ARCH=aarch64 ./scripts/build_distro
RK3566:
+ unset DEVICE_ROOT
DEVICE_ROOT=RK3566 PROJECT=Rockchip DEVICE=RK3566 ARCH=arm ./scripts/build_distro
DEVICE_ROOT=RK3566 PROJECT=Rockchip DEVICE=RK3566 ARCH=aarch64 ./scripts/build_distro
@@ -74,7 +75,7 @@ package-clean:
# For example: make docker-AMD64 will use docker to call: make AMD64
# All variables are scoped to docker-* commands to prevent weird collisions/behavior with non-docker commands
-docker-%: DOCKER_IMAGE := "justenoughlinuxos/rocknix-build:latest"
+docker-%: DOCKER_IMAGE := "rocknix/rocknix-build:latest"
# DOCKER_WORK_DIR is the directory in the Docker image - it is set to /work by default
# Anytime this directory changes, you must run `make clean` similarly to moving the distribution directory
diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 39be8557fd..0000000000
--- a/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Pull Request Template
-
-## Description
-
-Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
-
-Fixes # (issue)
-
-## Type of change
-
-Please delete options that are not relevant.
-
-- [ ] Bug fix (non-breaking change which fixes an issue)
-- [ ] New feature (non-breaking change which adds functionality)
-- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
-- [ ] This change requires a documentation update
-
-## How Has This Been Tested Locally?
-
-Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
-
-- [ ] Test A
-- [ ] Test B
-
-**Test Configuration**:
-* Build OS name and version:
-* Docker (Y/N):
-* JELOS Branch:
-* Any additional information that may be useful:
-
-## Checklist:
-
-- [ ] My code follows the style guidelines of this project
-- [ ] I have performed a self-review of my own code
-- [ ] I have commented my code, particularly in hard-to-understand areas
-- [ ] I have made corresponding changes to the documentation
-
-Note: This PR template is adapted from [embeddedartistry](https://github.com/embeddedartistry/templates/blob/master/oss_docs/PULL_REQUEST_TEMPLATE.md)
diff --git a/distributions/ROCKNIX/splash/splash.png b/distributions/ROCKNIX/splash/splash.png
deleted file mode 100644
index bd538c1543..0000000000
Binary files a/distributions/ROCKNIX/splash/splash.png and /dev/null differ
diff --git a/documentation/DEVEL_ADD_HARDWARE_QUIRKS.md b/documentation/DEVEL_ADD_HARDWARE_QUIRKS.md
deleted file mode 100644
index 67208e1f9b..0000000000
--- a/documentation/DEVEL_ADD_HARDWARE_QUIRKS.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/contribute/quirks/](https://rocknix.org/contribute/quirks/)
\ No newline at end of file
diff --git a/documentation/DEVEL_BUILDING_ROCKNIX.md b/documentation/DEVEL_BUILDING_ROCKNIX.md
deleted file mode 100644
index f44c0cc8ba..0000000000
--- a/documentation/DEVEL_BUILDING_ROCKNIX.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/contribute/build/](https://rocknix.org/contribute/build/)
\ No newline at end of file
diff --git a/documentation/DEVEL_CREATING_PACKAGES.md b/documentation/DEVEL_CREATING_PACKAGES.md
deleted file mode 100644
index 93733f0146..0000000000
--- a/documentation/DEVEL_CREATING_PACKAGES.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/contribute/packages/](https://rocknix.org/contribute/packages/)
\ No newline at end of file
diff --git a/documentation/GENERAL_CUSTOM_SHADERS.md b/documentation/GENERAL_CUSTOM_SHADERS.md
deleted file mode 100644
index 3d863dd9e3..0000000000
--- a/documentation/GENERAL_CUSTOM_SHADERS.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/shaders/](https://rocknix.org/configure/shaders/)
\ No newline at end of file
diff --git a/documentation/GENERAL_DONATING_TO_ROCKNIX.md b/documentation/GENERAL_DONATING_TO_ROCKNIX.md
deleted file mode 100644
index aad4fade2e..0000000000
--- a/documentation/GENERAL_DONATING_TO_ROCKNIX.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/donations/](https://rocknix.org/donations/)
\ No newline at end of file
diff --git a/documentation/GENERAL_FREQUENTLY_ASKED_QUESTIONS.md b/documentation/GENERAL_FREQUENTLY_ASKED_QUESTIONS.md
deleted file mode 100644
index f687d057e7..0000000000
--- a/documentation/GENERAL_FREQUENTLY_ASKED_QUESTIONS.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/faqs/](https://rocknix.org/faqs/)
\ No newline at end of file
diff --git a/documentation/GENERAL_HOTKEYS_AND_BUTTON_CODES.md b/documentation/GENERAL_HOTKEYS_AND_BUTTON_CODES.md
deleted file mode 100644
index e4408a7cd6..0000000000
--- a/documentation/GENERAL_HOTKEYS_AND_BUTTON_CODES.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/play/controls/](https://rocknix.org/play/controls/)
\ No newline at end of file
diff --git a/documentation/GENERAL_NETWORK_PLAY.md b/documentation/GENERAL_NETWORK_PLAY.md
deleted file mode 100644
index 05656b1f06..0000000000
--- a/documentation/GENERAL_NETWORK_PLAY.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/play/netplay/](https://rocknix.org/play/netplay/)
\ No newline at end of file
diff --git a/documentation/GENERAL_PERFORMANCE_AND_BATTERY.md b/documentation/GENERAL_PERFORMANCE_AND_BATTERY.md
deleted file mode 100644
index d6217f7fba..0000000000
--- a/documentation/GENERAL_PERFORMANCE_AND_BATTERY.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/optimizations/](https://rocknix.org/configure/optimizations/)
\ No newline at end of file
diff --git a/documentation/SETUP_BT_AUDIO.md b/documentation/SETUP_BT_AUDIO.md
deleted file mode 100644
index ae73e88a27..0000000000
--- a/documentation/SETUP_BT_AUDIO.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Bluetooth Audio Setup
-
-## How to pair your headset
-Go to the "Controller & Bluetooth Settings" menu in Emulation Station and enable Bluetooth. Put your headset into pairing mode, then select "Pair a bluetooth device" - your audio device should be detected and paired automatically.
-Once your headset is paired go to "System Settings" -> "Audio Device" - your headset should appear in the list of devices. Select "Bluetooth Device" or your paired device from the list and let EmulationStation restart. All audio should now go through your bluetooth device.
-
-## Known Working Devices
-Since bluetooth is infamously unreliable I'm putting together a few test results with various headphones. This list is very outdated at this point so please feel free to submit your own results - it would greatly help to identify issues and fix them.
-
-| JELOS Device | JELOS Version | Bluetooth Device | Codec(s) | Test Results |
-|:-------------:|:-------------:|:----------------:|:-----:|:-------|
-| RG353V,
RG351V (+dongle) | 20221114 | Jaybird X3 | AAC | Connects but does not play any audio.
Worked with previous JELOS version. |
-| RG353V | 20221114 | Sennheiser PXC 550-II | AAC, aptX | No issues, connects and works fine. |
-| RG353V,
RG351V (+dongle) | 20221114 | Sennheiser Momentum TW3 | aptX | No issues, connects and works fine.
Required bluez update to v5.66 to prevent occasional crashes.
-| RG353V,
RG351V (+dongle) | 20221114 | Sony WH-1000XM3 | LDAC | **Very** minor audio stutters with "mobile" (330kbps) and "standard" (660kbps) quality profiles. Best results achieved with "standard" and adaptive bit rate.
"High" (990kbps) quality profile has significant impact on emulator performance and is not recommended.
No connectivity issues. |
-
-## How to change codec settings
-If you run into issues playing audio from your headset you can try playing with the codec configuration options for BlueALSA. A list of command line parameters can be found here: https://github.com/Arkq/bluez-alsa/blob/master/doc/bluealsa.8.rst. On the device they are read from `/storage/.cache/services/bluealsa.conf` (restart required after change).
-
-## Known Issues
-
-* Disconnects are not handled gracefully by JELOS at this point. If you disconnect your headset without first switching back to the default audio device, you won't get any audio until you reboot.
-* Does not work with the PCSX ReARMed32 Retroarch core for unknown reasons (no sound will play from this core).
**Workaround**: Use a different PSX core (e.g. PCSX ReARMed, SwanStation) when you want to play with a bluetooth headset.
diff --git a/documentation/SETUP_CLOUD_DRIVES.md b/documentation/SETUP_CLOUD_DRIVES.md
deleted file mode 100644
index d87b124f4a..0000000000
--- a/documentation/SETUP_CLOUD_DRIVES.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/cloud-sync/](https://rocknix.org/configure/cloud-sync/)
\ No newline at end of file
diff --git a/documentation/SETUP_GAME_ENGINES_AND_LAUNCH_FILES.md b/documentation/SETUP_GAME_ENGINES_AND_LAUNCH_FILES.md
deleted file mode 100644
index 467b8571b4..0000000000
--- a/documentation/SETUP_GAME_ENGINES_AND_LAUNCH_FILES.md
+++ /dev/null
@@ -1,91 +0,0 @@
-
[![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
-#
-
-# Game Engine Launch Files
-Game engines such as Build Engine, GZDoom, LZDoom, ScummVM and ECWolf use launch files for launching the game with the specified files and mods. Most are configurable to enable different configurations of game files and mods per game.
-> Note: the extensions for game engine launch files are case-sensitive, so make sure the launch extensions `.build`, `.doom`, `.scummvm` and `.ecwolf` are lower case, and make sure any references to game files match the case of the game files exactly (e.g. if the game file is `DOOM.WAD` then trying to launch it as `doom.wad` won't work).
-
-## .build files
-These files must be created for each build engine game that will be launched with raze. The file contains a `PATH` variable and an optional `GRP` variable. The `PATH` variable points to the subfolder containing the game's **GRP** file. The optional `GRP` variable is used to identify the specific **GRP** file to load for games with multiple **GRP** files.
-
-Example: `/storage/roms/build/shadow warrior.build` contains
-```
-PATH=sw
-GRP=SW.GRP
--- end --
-```
-where the Shadow Warrior games files are stored in subfolder `sw`, i.e. `/storage/roms/build/sw/`
-> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
-
-> Note: add `-- end --` to the end of the file if it contains multiple lines
-
-## .doom files
-These files must be created for each **WAD** that you want to load with gzdoom or lzdoom. The file contains `IWAD` variables and optional `MOD` variables. Multiple `IWAD` and `MOD` variables can be used in the same file to load multiple wads, mods and packages. Therefore, multiple **.doom** files can be created for the same **WAD** for each configuration of the game. It is recommended to store **WAD** files in a **iwads** subfolder and `MODs` in a **mods** subfolder and include the full path to each file in the **.doom** file.
-
-Example: `/storage/roms/doom/doom.doom` contains
-```
-IWAD=/storage/roms/doom/iwads/doom.wad
-```
-to load vanilla doom
-> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
-
-Example: `/storage/roms/doom/heretic-mod.doom` contains
-```
-IWAD=/storage/roms/doom/iwads/heretic.wad
-IWAD=/storage/roms/doom/iwads/IWMPP_Heretic.wad
-MOD=/storage/roms/doom/mods/precise-crosshair-v1.4.1.pk3
-MOD=/storage/roms/doom/mods/target-spy-v2.0.1.pk3
--- end --
-```
-to load Heretic with additional patches and mods.
-> Note: add `-- end --` to the end of the file when it contains multiple lines
-
-## .scummvm or .svm files
-These files are created by `_Scan ScummVM Games.sh` script in `/storage/.config/scummvm` folder (which is also displayed in EmuStation). The script scans for game folders and generates the relevant `.scummvm` files to launch those games. The files are stored in `/storage/.config/scummvm/games`.
-
-`.scummvm` files are named using the common name of the game and the Game Short Name in brackets (e.g. `Beneath a Steel Sky (sky).scummvm`).
-
-`.scummvm` files contain a single line in the form:
-* `--path=` variable and the path to the folder containing the game, *followed by*
-* Game Short Name
-
-Example: `/storage/.config/scummvm/games/Beneath a Steel Sky (sky).scummvm` contains
-```
---path="/storage/roms/scummvm/Beneath a Steel Sky (CD VGA)" sky
-```
-> Note: enclose filenames containing spaces with "quotes"
-
-> Note: `.scummvm` and `.svm` files are identical and interchangeable
-
-> Note: the `.scummvm` files are **NOT** stored in `/storage/roms/scummvm` and any `.scummvm` files stored there will not be displayed by EmuStation. EmuStation only displays `.scummvm` files that are in `/storage/.config/scummvm/games`.
-
-> Note: to display metadata and media within EmuStation, put `gamelist.xml` in `/storage/.config/scummvm/games` and media into relevant subfolders (e.g. `/storage/.config/scummvm/games/media` folder with `boxart`, `images` and `videos` subfolders)
-
-## .ecwolf files
-These files must be created for each Wolfenstein 3D compatible game. The file contains `PATH` variable that points to the subfolder containing the game's game files, `DATA` variable with the extension of the game files and `PK3` variables for each separate package file to load. `PK3` variables must be sequentially numbered with **_1**, **_2** etc.
-
-Example: `/storage/roms/ecwolf/wolfenstein3d.ecwolf` contains
-```
-PATH=Wolfenstein 3D
-DATA=WL6
-PK3_1=/storage/roms/ecwolf/ecwolf.pk3
--- end --
-```
-where the Wolfenstein 3D game files have extension **.WL6**
-> Note: the data value must match the file extension of the game exactly and is case sensitive so `WL6` is not the same as `wl6`
-
-> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
-
-> Note: add `-- end --` to the end of the file
-
-Example: `/storage/roms/ecwolf/spear of destiny.ecwolf` contains
-```
-PATH=SOD
-DATA=SOD
-PK3_1=/storage/roms/ecwolf/SOD/ecwolf.pk3
--- end --
-```
-where the Spear of Destiny game files have extension **.SOD**
-> Note: add `-- end --` to the end of the file
-
-
diff --git a/documentation/SETUP_MOONLIGHT_STREAMING.md b/documentation/SETUP_MOONLIGHT_STREAMING.md
deleted file mode 100644
index cd5c60513b..0000000000
--- a/documentation/SETUP_MOONLIGHT_STREAMING.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/systems/moonlight/](https://rocknix.org/systems/moonlight/)
\ No newline at end of file
diff --git a/documentation/SETUP_P2P_ZEROTIER.md b/documentation/SETUP_P2P_ZEROTIER.md
deleted file mode 100644
index 37f2389fa1..0000000000
--- a/documentation/SETUP_P2P_ZEROTIER.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/vpn/#zerotier](https://rocknix.org/configure/vpn/#zerotier)
\ No newline at end of file
diff --git a/documentation/SETUP_SYNCTHING.md b/documentation/SETUP_SYNCTHING.md
deleted file mode 100644
index d87b124f4a..0000000000
--- a/documentation/SETUP_SYNCTHING.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/cloud-sync/](https://rocknix.org/configure/cloud-sync/)
\ No newline at end of file
diff --git a/documentation/SETUP_VPN_TAILSCALE.md b/documentation/SETUP_VPN_TAILSCALE.md
deleted file mode 100644
index 60b5157b57..0000000000
--- a/documentation/SETUP_VPN_TAILSCALE.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/vpn/#tailscale](https://rocknix.org/configure/vpn/#tailscale)
\ No newline at end of file
diff --git a/documentation/SETUP_VPN_WIREGUARD.md b/documentation/SETUP_VPN_WIREGUARD.md
deleted file mode 100644
index bb593a58fa..0000000000
--- a/documentation/SETUP_VPN_WIREGUARD.md
+++ /dev/null
@@ -1 +0,0 @@
-Moved to [https://rocknix.org/configure/vpn/#wireguard](https://rocknix.org/configure/vpn/#wireguard)
\ No newline at end of file
diff --git a/packages/emulators/tools/control-gen/Makefile b/packages/apps/control-gen/Makefile
similarity index 100%
rename from packages/emulators/tools/control-gen/Makefile
rename to packages/apps/control-gen/Makefile
diff --git a/packages/emulators/tools/control-gen/control-gen.cpp b/packages/apps/control-gen/control-gen.cpp
similarity index 100%
rename from packages/emulators/tools/control-gen/control-gen.cpp
rename to packages/apps/control-gen/control-gen.cpp
diff --git a/packages/emulators/tools/control-gen/package.mk b/packages/apps/control-gen/package.mk
similarity index 100%
rename from packages/emulators/tools/control-gen/package.mk
rename to packages/apps/control-gen/package.mk
diff --git a/packages/emulators/tools/control-gen/scripts/control-gen_init.sh b/packages/apps/control-gen/scripts/control-gen_init.sh
similarity index 100%
rename from packages/emulators/tools/control-gen/scripts/control-gen_init.sh
rename to packages/apps/control-gen/scripts/control-gen_init.sh
diff --git a/packages/emulators/tools/gamecontrollerdb/config/gamecontrollerdb.txt b/packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt
similarity index 100%
rename from packages/emulators/tools/gamecontrollerdb/config/gamecontrollerdb.txt
rename to packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt
diff --git a/packages/emulators/tools/gamecontrollerdb/package.mk b/packages/apps/gamecontrollerdb/package.mk
similarity index 100%
rename from packages/emulators/tools/gamecontrollerdb/package.mk
rename to packages/apps/gamecontrollerdb/package.mk
diff --git a/packages/emulators/tools/jstest-sdl/package.mk b/packages/apps/jstest-sdl/package.mk
similarity index 100%
rename from packages/emulators/tools/jstest-sdl/package.mk
rename to packages/apps/jstest-sdl/package.mk
diff --git a/packages/emulators/tools/libgo2/package.mk b/packages/apps/libgo2/package.mk
similarity index 100%
rename from packages/emulators/tools/libgo2/package.mk
rename to packages/apps/libgo2/package.mk
diff --git a/packages/emulators/tools/libgo2/patches/001-libevdev.patch b/packages/apps/libgo2/patches/001-libevdev.patch
similarity index 100%
rename from packages/emulators/tools/libgo2/patches/001-libevdev.patch
rename to packages/apps/libgo2/patches/001-libevdev.patch
diff --git a/packages/apps/moonlight/package.mk b/packages/apps/moonlight/package.mk
index 70b397bd3c..90366dc5e8 100644
--- a/packages/apps/moonlight/package.mk
+++ b/packages/apps/moonlight/package.mk
@@ -10,7 +10,7 @@ PKG_SHORTDESC="Moonlight is an open source implementation of NVIDIA's GameStream
GET_HANDLER_SUPPORT="git"
PKG_PATCH_DIRS+="${DEVICE}"
-if [ "${TARGET_ARCH}" = "x86_64" ]
+if [ "${TARGET_ARCH}" = "x86_64" ]
then
PKG_SITE+="qt"
PKG_URL="${PKG_SITE}.git"
@@ -44,7 +44,7 @@ fi
if [ "${PROJECT}" = "Rockchip" ]
then
- PKG_DEPENDS_TARGET+=" librga rkmpp"
+ PKG_DEPENDS_TARGET+=" rkmpp"
fi
if [ ! "${OPENGL}" = "no" ]; then
diff --git a/packages/apps/portmaster/package.mk b/packages/apps/portmaster/package.mk
index 9ccd1d6f8e..65ba1d8c1b 100644
--- a/packages/apps/portmaster/package.mk
+++ b/packages/apps/portmaster/package.mk
@@ -8,7 +8,7 @@ PKG_URL="${PKG_SITE}/releases/download/${PKG_VERSION}/PortMaster.zip"
COMPAT_URL="https://github.com/brooksytech/JelosAddOns/raw/main/compat.zip"
PKG_LICENSE="MIT"
PKG_ARCH="arm aarch64"
-PKG_DEPENDS_TARGET="toolchain gptokeyb gamecontrollerdb wget oga_controls control-gen"
+PKG_DEPENDS_TARGET="toolchain rocknix-hotkey gamecontrollerdb wget oga_controls control-gen"
PKG_TOOLCHAIN="manual"
PKG_LONGDESC="Portmaster - a simple tool that allows you to download various game ports"
diff --git a/packages/emulators/tools/gptokeyb/Makefile b/packages/apps/rocknix-hotkey/Makefile
similarity index 100%
rename from packages/emulators/tools/gptokeyb/Makefile
rename to packages/apps/rocknix-hotkey/Makefile
diff --git a/packages/emulators/tools/gptokeyb/package.mk b/packages/apps/rocknix-hotkey/package.mk
similarity index 83%
rename from packages/emulators/tools/gptokeyb/package.mk
rename to packages/apps/rocknix-hotkey/package.mk
index f349141fea..529e5feb33 100644
--- a/packages/emulators/tools/gptokeyb/package.mk
+++ b/packages/apps/rocknix-hotkey/package.mk
@@ -1,11 +1,11 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert)
-PKG_NAME="gptokeyb"
-PKG_VERSION="0303b36b5376a9b25cf82a53ed4242509daf14e9"
+PKG_NAME="rocknix-hotkey"
+PKG_VERSION="14255daccc61dd8f366b3c88292d54cfef1c087a"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
-PKG_SITE="https://github.com/EmuELEC/gptokeyb"
+PKG_SITE="https://github.com/ROCKNIX/rocknix-hotkey"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain libevdev SDL2 control-gen"
PKG_TOOLCHAIN="make"
diff --git a/packages/emulators/tools/sdljoytest/package.mk b/packages/apps/sdljoytest/package.mk
similarity index 100%
rename from packages/emulators/tools/sdljoytest/package.mk
rename to packages/apps/sdljoytest/package.mk
diff --git a/packages/devel/librga/package.mk b/packages/devel/librga/package.mk
deleted file mode 100644
index c20d432e96..0000000000
--- a/packages/devel/librga/package.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)
-
-PKG_NAME="librga"
-PKG_VERSION="df26244eb0c3991df319d4276ab80e8c0bf91f64"
-PKG_ARCH="arm aarch64"
-PKG_LICENSE="GNU"
-PKG_DEPENDS_TARGET="toolchain libdrm"
-PKG_SITE="https://github.com/ROCKNIX/linux-rga"
-PKG_URL="${PKG_SITE}.git"
-PKG_LONGDESC="The RGA driver userspace "
-PKG_TOOLCHAIN="auto"
diff --git a/packages/devel/librga/patches/01-string_not_arr.patch b/packages/devel/librga/patches/01-string_not_arr.patch
deleted file mode 100644
index 7ce0b06824..0000000000
--- a/packages/devel/librga/patches/01-string_not_arr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rupN librga.orig/meson.build librga/meson.build
---- librga.orig/meson.build 2022-07-08 18:24:31.727555866 -0400
-+++ librga/meson.build 2022-07-08 18:24:47.499517461 -0400
-@@ -28,7 +28,7 @@ libthreads_dep = dependency('threads')
-
- gen_version = vcs_tag(
- command : ['./genversion.sh', 'meson'],
-- replace_string : ['$GIT_BUILD_VERSION'],
-+ replace_string : '$GIT_BUILD_VERSION',
- input : 'version.h.template', output : 'version.h',
- )
- add_project_arguments('-DLINUX=1', language : 'cpp')
diff --git a/packages/emulators/tools/xa/package.mk b/packages/devel/xa/package.mk
similarity index 100%
rename from packages/emulators/tools/xa/package.mk
rename to packages/devel/xa/package.mk
diff --git a/packages/emulators/standalone/retroarch/autostart/003-logging b/packages/emulators/libretro/retroarch/autostart/003-logging
similarity index 100%
rename from packages/emulators/standalone/retroarch/autostart/003-logging
rename to packages/emulators/libretro/retroarch/autostart/003-logging
diff --git a/packages/emulators/standalone/retroarch/modprobe.d/usbhid.conf b/packages/emulators/libretro/retroarch/modprobe.d/usbhid.conf
similarity index 100%
rename from packages/emulators/standalone/retroarch/modprobe.d/usbhid.conf
rename to packages/emulators/libretro/retroarch/modprobe.d/usbhid.conf
diff --git a/packages/emulators/standalone/retroarch/package.mk b/packages/emulators/libretro/retroarch/package.mk
similarity index 100%
rename from packages/emulators/standalone/retroarch/package.mk
rename to packages/emulators/libretro/retroarch/package.mk
diff --git a/packages/emulators/standalone/retroarch/patches/0001-Increase-glui-size.patch b/packages/emulators/libretro/retroarch/patches/0001-Increase-glui-size.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0001-Increase-glui-size.patch
rename to packages/emulators/libretro/retroarch/patches/0001-Increase-glui-size.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0001-Increase-ozone-size.patch b/packages/emulators/libretro/retroarch/patches/0001-Increase-ozone-size.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0001-Increase-ozone-size.patch
rename to packages/emulators/libretro/retroarch/patches/0001-Increase-ozone-size.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0001-Increase-ozone-widget_size.patch b/packages/emulators/libretro/retroarch/patches/0001-Increase-ozone-widget_size.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0001-Increase-ozone-widget_size.patch
rename to packages/emulators/libretro/retroarch/patches/0001-Increase-ozone-widget_size.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0002-quit-not-restart.patch b/packages/emulators/libretro/retroarch/patches/0002-quit-not-restart.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0002-quit-not-restart.patch
rename to packages/emulators/libretro/retroarch/patches/0002-quit-not-restart.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0003-fix-oga-no-preferred.patch b/packages/emulators/libretro/retroarch/patches/0003-fix-oga-no-preferred.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0003-fix-oga-no-preferred.patch
rename to packages/emulators/libretro/retroarch/patches/0003-fix-oga-no-preferred.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0004-drm-resolution.patch b/packages/emulators/libretro/retroarch/patches/0004-drm-resolution.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0004-drm-resolution.patch
rename to packages/emulators/libretro/retroarch/patches/0004-drm-resolution.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0006-no-screen-brightness.patch b/packages/emulators/libretro/retroarch/patches/0006-no-screen-brightness.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0006-no-screen-brightness.patch
rename to packages/emulators/libretro/retroarch/patches/0006-no-screen-brightness.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0008-disable_search.patch b/packages/emulators/libretro/retroarch/patches/0008-disable_search.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0008-disable_search.patch
rename to packages/emulators/libretro/retroarch/patches/0008-disable_search.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0009-hide-wayland-checkerboard.patch b/packages/emulators/libretro/retroarch/patches/0009-hide-wayland-checkerboard.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0009-hide-wayland-checkerboard.patch
rename to packages/emulators/libretro/retroarch/patches/0009-hide-wayland-checkerboard.patch
diff --git a/packages/emulators/standalone/retroarch/patches/0010-paths.patch b/packages/emulators/libretro/retroarch/patches/0010-paths.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/0010-paths.patch
rename to packages/emulators/libretro/retroarch/patches/0010-paths.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566-BSP-X55/0011-librga.patch b/packages/emulators/libretro/retroarch/patches/RK3566-BSP-X55/0011-librga.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566-BSP-X55/0011-librga.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566-BSP-X55/0011-librga.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566-BSP-X55/002-display-tweaks.patch b/packages/emulators/libretro/retroarch/patches/RK3566-BSP-X55/002-display-tweaks.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566-BSP-X55/002-display-tweaks.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566-BSP-X55/002-display-tweaks.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566-BSP/0011-librga.patch b/packages/emulators/libretro/retroarch/patches/RK3566-BSP/0011-librga.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566-BSP/0011-librga.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566-BSP/0011-librga.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566-BSP/002-display-tweaks.patch b/packages/emulators/libretro/retroarch/patches/RK3566-BSP/002-display-tweaks.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566-BSP/002-display-tweaks.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566-BSP/002-display-tweaks.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566-BSP/003-fix-go2-rotation.patch b/packages/emulators/libretro/retroarch/patches/RK3566-BSP/003-fix-go2-rotation.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566-BSP/003-fix-go2-rotation.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566-BSP/003-fix-go2-rotation.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566/0011-librga.patch b/packages/emulators/libretro/retroarch/patches/RK3566/0011-librga.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566/0011-librga.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566/0011-librga.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566/002-display-tweaks.patch b/packages/emulators/libretro/retroarch/patches/RK3566/002-display-tweaks.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566/002-display-tweaks.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566/002-display-tweaks.patch
diff --git a/packages/emulators/standalone/retroarch/patches/RK3566/003-fix-go2-rotation.patch b/packages/emulators/libretro/retroarch/patches/RK3566/003-fix-go2-rotation.patch
similarity index 100%
rename from packages/emulators/standalone/retroarch/patches/RK3566/003-fix-go2-rotation.patch
rename to packages/emulators/libretro/retroarch/patches/RK3566/003-fix-go2-rotation.patch
diff --git a/packages/emulators/tools/retroarch-assets/package.mk b/packages/emulators/libretro/retroarch/retroarch-assets/package.mk
similarity index 100%
rename from packages/emulators/tools/retroarch-assets/package.mk
rename to packages/emulators/libretro/retroarch/retroarch-assets/package.mk
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/ THEC64 Joystick THEC64 Joystick .cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/ THEC64 Joystick THEC64 Joystick .cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/ THEC64 Joystick THEC64 Joystick .cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/ THEC64 Joystick THEC64 Joystick .cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/8Bitdo SF30 Pro 8Bitdo SN30 Pro.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/8Bitdo SF30 Pro 8Bitdo SN30 Pro.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/8Bitdo SF30 Pro 8Bitdo SN30 Pro.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/8Bitdo SF30 Pro 8Bitdo SN30 Pro.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Atari Classic Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Atari Classic Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Atari Classic Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Atari Classic Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Atari Game Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Atari Game Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Atari Game Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Atari Game Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Core (Plus) Wired Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Core (Plus) Wired Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Core (Plus) Wired Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Core (Plus) Wired Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/GO-Super Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GO-Super Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/GO-Super Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GO-Super Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/GO-Ultra Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GO-Ultra Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/GO-Ultra Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GO-Ultra Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Game Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Game Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Game Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Game Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/GameForce ACE Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GameForce ACE Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/GameForce ACE Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/GameForce ACE Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Microsoft X-Box 360 pad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Microsoft X-Box 360 pad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Microsoft X-Box 360 pad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Microsoft X-Box 360 pad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller_SDL.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller_SDL.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller_SDL.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/OpenSimHardware OSH PB Controller_SDL.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/RGB20S Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/RGB20S Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/RGB20S Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/RGB20S Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/ROCKNIX Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/ROCKNIX Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/ROCKNIX Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/ROCKNIX Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/Steam Controller.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Steam Controller.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/Steam Controller.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/Steam Controller.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/XU10 Gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/XU10 Gamepad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/XU10 Gamepad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/XU10 Gamepad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/odroidgo2_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo2_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/odroidgo2_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo2_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/odroidgo2_v11_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo2_v11_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/odroidgo2_v11_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo2_v11_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/odroidgo3_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo3_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/odroidgo3_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/odroidgo3_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/r33s_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/r33s_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/r33s_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/r33s_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/retrogame_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/retrogame_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/retrogame_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/retrogame_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/rg552_joypad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/rg552_joypad.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/rg552_joypad.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/rg552_joypad.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/gamepads/zed_joystick.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/zed_joystick.cfg
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/gamepads/zed_joystick.cfg
rename to packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/zed_joystick.cfg
diff --git a/packages/emulators/tools/retroarch-joypads/package.mk b/packages/emulators/libretro/retroarch/retroarch-joypads/package.mk
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/package.mk
rename to packages/emulators/libretro/retroarch/retroarch-joypads/package.mk
diff --git a/packages/emulators/tools/retroarch-joypads/system.d/tmp-joypads.mount b/packages/emulators/libretro/retroarch/retroarch-joypads/system.d/tmp-joypads.mount
similarity index 100%
rename from packages/emulators/tools/retroarch-joypads/system.d/tmp-joypads.mount
rename to packages/emulators/libretro/retroarch/retroarch-joypads/system.d/tmp-joypads.mount
diff --git a/packages/emulators/tools/retroarch-overlays/package.mk b/packages/emulators/libretro/retroarch/retroarch-overlays/package.mk
similarity index 100%
rename from packages/emulators/tools/retroarch-overlays/package.mk
rename to packages/emulators/libretro/retroarch/retroarch-overlays/package.mk
diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/AMD64/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/AMD64/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/AMD64/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/AMD64/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/AMD64/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/AMD64/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/AMD64/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/AMD64/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/AMD64/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/AMD64/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/AMD64/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/AMD64/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/AMD64/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/AMD64/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/RK3326/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3326/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/RK3326/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/RK3326/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3326/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3326/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3326/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3326/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3326/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3326/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3326/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3326/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3326/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3326/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/RK3399/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3399/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/RK3399/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/RK3399/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3399/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3399/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3399/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3399/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3399/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3399/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3399/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3399/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3399/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3399/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/RK3566/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3566/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/RK3566/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3566/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3566/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3566/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3566/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3566/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3566/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/RK3588/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3588/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/RK3588/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3588/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3588/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3588/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3588/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/RK3588/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/RK3588/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/S922X/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/S922X/TATE-MAME 2003-Plus.rmp
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/S922X/TATE-MAME 2003-Plus.rmp
rename to packages/emulators/libretro/retroarch/sources/S922X/TATE-MAME 2003-Plus.rmp
diff --git a/packages/emulators/standalone/retroarch/sources/S922X/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/S922X/retroarch-core-options.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/S922X/retroarch-core-options.cfg
rename to packages/emulators/libretro/retroarch/sources/S922X/retroarch-core-options.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/S922X/retroarch.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg
rename to packages/emulators/libretro/retroarch/sources/S922X/retroarch.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/S922X/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/S922X/retroarch32bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/S922X/retroarch32bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/S922X/retroarch32bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/sources/S922X/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/S922X/retroarch64bit-append.cfg
similarity index 100%
rename from packages/emulators/standalone/retroarch/sources/S922X/retroarch64bit-append.cfg
rename to packages/emulators/libretro/retroarch/sources/S922X/retroarch64bit-append.cfg
diff --git a/packages/emulators/standalone/retroarch/system.d/tmp-assets.mount b/packages/emulators/libretro/retroarch/system.d/tmp-assets.mount
similarity index 100%
rename from packages/emulators/standalone/retroarch/system.d/tmp-assets.mount
rename to packages/emulators/libretro/retroarch/system.d/tmp-assets.mount
diff --git a/packages/emulators/standalone/retroarch/system.d/tmp-cores.mount b/packages/emulators/libretro/retroarch/system.d/tmp-cores.mount
similarity index 100%
rename from packages/emulators/standalone/retroarch/system.d/tmp-cores.mount
rename to packages/emulators/libretro/retroarch/system.d/tmp-cores.mount
diff --git a/packages/emulators/standalone/retroarch/system.d/tmp-database.mount b/packages/emulators/libretro/retroarch/system.d/tmp-database.mount
similarity index 100%
rename from packages/emulators/standalone/retroarch/system.d/tmp-database.mount
rename to packages/emulators/libretro/retroarch/system.d/tmp-database.mount
diff --git a/packages/emulators/standalone/retroarch/system.d/tmp-overlays.mount b/packages/emulators/libretro/retroarch/system.d/tmp-overlays.mount
similarity index 100%
rename from packages/emulators/standalone/retroarch/system.d/tmp-overlays.mount
rename to packages/emulators/libretro/retroarch/system.d/tmp-overlays.mount
diff --git a/packages/emulators/standalone/retroarch/system.d/tmp-shaders.mount b/packages/emulators/libretro/retroarch/system.d/tmp-shaders.mount
similarity index 100%
rename from packages/emulators/standalone/retroarch/system.d/tmp-shaders.mount
rename to packages/emulators/libretro/retroarch/system.d/tmp-shaders.mount
diff --git a/packages/emulators/standalone/retroarch/tmpfiles.d/retroarch-userdirs.conf b/packages/emulators/libretro/retroarch/tmpfiles.d/retroarch-userdirs.conf
similarity index 100%
rename from packages/emulators/standalone/retroarch/tmpfiles.d/retroarch-userdirs.conf
rename to packages/emulators/libretro/retroarch/tmpfiles.d/retroarch-userdirs.conf
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-8bitdo-bluetooth-controllers.rules b/packages/emulators/libretro/retroarch/udev.d/99-8bitdo-bluetooth-controllers.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-8bitdo-bluetooth-controllers.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-8bitdo-bluetooth-controllers.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-ION-iCade-bluetooth.rules b/packages/emulators/libretro/retroarch/udev.d/99-ION-iCade-bluetooth.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-ION-iCade-bluetooth.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-ION-iCade-bluetooth.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-gen-game-s3-controller.rules b/packages/emulators/libretro/retroarch/udev.d/99-gen-game-s3-controller.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-gen-game-s3-controller.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-gen-game-s3-controller.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-nintendo-wii-remote.rules b/packages/emulators/libretro/retroarch/udev.d/99-nintendo-wii-remote.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-nintendo-wii-remote.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-nintendo-wii-remote.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-ninteno-wii-remote.rules b/packages/emulators/libretro/retroarch/udev.d/99-ninteno-wii-remote.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-ninteno-wii-remote.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-ninteno-wii-remote.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-nv-shield-controller.rules b/packages/emulators/libretro/retroarch/udev.d/99-nv-shield-controller.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-nv-shield-controller.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-nv-shield-controller.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-ouya-controller.rules b/packages/emulators/libretro/retroarch/udev.d/99-ouya-controller.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-ouya-controller.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-ouya-controller.rules
diff --git a/packages/emulators/standalone/retroarch/udev.d/99-terios-t3.rules b/packages/emulators/libretro/retroarch/udev.d/99-terios-t3.rules
similarity index 100%
rename from packages/emulators/standalone/retroarch/udev.d/99-terios-t3.rules
rename to packages/emulators/libretro/retroarch/udev.d/99-terios-t3.rules
diff --git a/packages/emulators/standalone/drastic-sa/package.mk b/packages/emulators/standalone/drastic-sa/package.mk
index f834ed03b2..271d7cf3ad 100644
--- a/packages/emulators/standalone/drastic-sa/package.mk
+++ b/packages/emulators/standalone/drastic-sa/package.mk
@@ -6,7 +6,7 @@ PKG_VERSION="1.0"
PKG_LICENSE="Proprietary:DRASTIC.pdf"
PKG_ARCH="aarch64"
PKG_URL="https://github.com/r3claimer/JelosAddOns/raw/main/drastic.tar.gz"
-PKG_DEPENDS_TARGET="toolchain"
+PKG_DEPENDS_TARGET="toolchain rocknix-hotkey"
PKG_LONGDESC="Install Drastic Launcher script, will dowload bin on first run"
PKG_TOOLCHAIN="make"
diff --git a/packages/emulators/tools/gptokeyb/patches/0001-build_fix.patch b/packages/emulators/tools/gptokeyb/patches/0001-build_fix.patch
deleted file mode 100644
index e7f15ff458..0000000000
--- a/packages/emulators/tools/gptokeyb/patches/0001-build_fix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/gptokeyb.cpp b/gptokeyb.cpp
-old mode 100644
-new mode 100755
-index aa4c0b0..0d62f28
---- a/gptokeyb.cpp
-+++ b/gptokeyb.cpp
-@@ -42,8 +42,8 @@
- #include
- #include
-
--#include
--#include
-+#include
-+#include
-
- #include
- #include
-@@ -2284,7 +2284,7 @@ int main(int argc, char* argv[])
- const char* config_file = nullptr;
-
- config_mode = true;
-- config_file = "/emuelec/configs/gptokeyb/default.gptk";
-+ config_file = "/usr/config/gptokeyb/default.gptk";
-
- // Add hotkey environment variable if available
- if (char* env_hotkey = SDL_getenv("HOTKEY")) {
diff --git a/packages/emulators/tools/virtualcontroller/package.mk b/packages/emulators/tools/virtualcontroller/package.mk
deleted file mode 100644
index ddf25ea4e7..0000000000
--- a/packages/emulators/tools/virtualcontroller/package.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="virtualcontroller"
-PKG_VERSION="85f2c70c25230d90781dbddbc97436fa50283530"
-PKG_LICENSE="GPLv2"
-PKG_SITE="https://github.com/macromorgan/input-wrapper"
-PKG_URL="${PKG_SITE}.git"
-PKG_DEPENDS_TARGET="toolchain linux"
-PKG_TOOLCHAIN="make"
-PKG_PATCH_DIRS+="${DEVICE}"
-
-makeinstall_target() {
- mkdir -p ${INSTALL}/usr/bin
- cp virtual_controller ${INSTALL}/usr/bin/virtual_controller
- chmod 0755 ${INSTALL}/usr/bin/virtual_controller
-}
-
-post_install() {
- enable_service virtualcontroller.service
-}
diff --git a/packages/emulators/tools/virtualcontroller/system.d/virtualcontroller.service b/packages/emulators/tools/virtualcontroller/system.d/virtualcontroller.service
deleted file mode 100644
index 105ea15b5c..0000000000
--- a/packages/emulators/tools/virtualcontroller/system.d/virtualcontroller.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Virtual Controller Driver
-After=systemd-udev-settle.service
-Wants=systemd-udev-settle.service
-
-[Service]
-Type=simple
-Nice=-20
-OOMScoreAdjust=-1000
-Restart=always
-ExecStart=/usr/bin/virtual_controller
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/emulators/tools/virtualcontroller/udev.d/99-ROCKNIX-not-joysticks.rules b/packages/emulators/tools/virtualcontroller/udev.d/99-ROCKNIX-not-joysticks.rules
deleted file mode 100644
index 95380ad145..0000000000
--- a/packages/emulators/tools/virtualcontroller/udev.d/99-ROCKNIX-not-joysticks.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBSYSTEM=="input", ATTRS{name}=="gpio-keys-control", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
-SUBSYSTEM=="input", ATTRS{name}=="adc-joystick", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
diff --git a/packages/graphics/SDL2/package.mk b/packages/graphics/SDL2/package.mk
index ff417003c2..a990245c82 100644
--- a/packages/graphics/SDL2/package.mk
+++ b/packages/graphics/SDL2/package.mk
@@ -61,13 +61,6 @@ else
-DSDL_X11=OFF"
fi
-case ${PROJECT} in
- Rockchip)
- PKG_DEPENDS_TARGET+=" librga"
- PKG_PATCH_DIRS_TARGET+="${DEVICE}"
- ;;
-esac
-
pre_configure_target(){
if [ -n "${PKG_PATCH_DIRS_TARGET}" ]
diff --git a/packages/emulators/tools/capsimg/package.mk b/packages/graphics/capsimg/package.mk
similarity index 100%
rename from packages/emulators/tools/capsimg/package.mk
rename to packages/graphics/capsimg/package.mk
diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk
index 2ac406dc4f..b04a06c93b 100644
--- a/packages/graphics/mesa/package.mk
+++ b/packages/graphics/mesa/package.mk
@@ -10,15 +10,8 @@ PKG_TOOLCHAIN="meson"
PKG_PATCH_DIRS+=" ${DEVICE}"
case ${DEVICE} in
- RK3588*)
- PKG_VERSION="120202c675749c5ef81ae4c8cdc30019b4de08f4"
- PKG_SITE="https://gitlab.com/panfork/mesa"
- PKG_URL="${PKG_SITE}.git"
- PKG_GIT_CLONE_BRANCH="csf"
- ;;
- # keep RK3399 and RK-ARMV8-A on same version to maintain cross comaptibility
- RK33*|RK-ARMV8-A|RK3566) #Using upstream dev for panfrost
- PKG_VERSION="0b953bdbb81439c3d812631282429feeaf393db8"
+ RK3*) #Using upstream dev for panfrost
+ PKG_VERSION="b8ffa9f956c4bcb416a0ad94d8b65ce050a05357"
PKG_SITE="https://gitlab.freedesktop.org/mesa/mesa"
PKG_URL="${PKG_SITE}.git"
PKG_PATCH_DIRS+=" panfrost"
diff --git a/packages/devel/qt5/package.mk b/packages/graphics/qt5/package.mk
similarity index 100%
rename from packages/devel/qt5/package.mk
rename to packages/graphics/qt5/package.mk
diff --git a/packages/graphics/qt6/package.mk b/packages/graphics/qt6/package.mk
deleted file mode 100644
index b21b9dc031..0000000000
--- a/packages/graphics/qt6/package.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2023-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="qt6"
-PKG_MAJOR_VERSION="6.6"
-PKG_VERSION="${PKG_MAJOR_VERSION}.1"
-PKG_LICENSE="GPLv3"
-PKG_SITE="https://download.qt.io"
-PKG_DEPENDS_TARGET="toolchain"
-PKG_LONGDESC="Qt6 - Qt is a full development framework with tools designed to streamline the creation of applications and user interfaces for desktop, embedded, and mobile platforms."
-
-PKG_DEPENDS_TARGET+=" qt6base qt6tools qt6wayland"
diff --git a/packages/graphics/qt6/qt6base/package.mk b/packages/graphics/qt6/qt6base/package.mk
deleted file mode 100644
index 6e7075c313..0000000000
--- a/packages/graphics/qt6/qt6base/package.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2023-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="qt6base"
-PKG_MAJOR_VERSION="6.6"
-PKG_VERSION="${PKG_MAJOR_VERSION}.1"
-PKG_LICENSE="GPLv3"
-PKG_SITE="https://download.qt.io"
-PKG_URL="${PKG_SITE}/archive/qt/${PKG_MAJOR_VERSION}/${PKG_VERSION}/submodules/qtbase-everywhere-src-${PKG_VERSION}.tar.xz"
-PKG_DEPENDS_HOST="toolchain:host"
-PKG_DEPENDS_TARGET="toolchain qt6base:host xorgproto"
-PKG_LONGDESC="QT6 base package"
-
-pre_configure_host() {
-PKG_CMAKE_OPTS_HOST+="
- -GNinja \
- -DFEATURE_gui=ON \
- -DFEATURE_openssl_linked=ON \
- -DFEATURE_concurrent=ON \
- -DFEATURE_xml=ON \
- -DFEATURE_sql=ON \
- -DFEATURE_testlib=ON \
- -DFEATURE_network=ON \
- -DFEATURE_dbus=ON \
- -DFEATURE_icu=OFF \
- -DFEATURE_glib=OFF \
- -DFEATURE_system_pcre2=ON \
- -DFEATURE_system_zlib=ON \
- -DQT_BUILD_TESTS_BY_DEFAULT=OFF \
- -DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF \
- -DCMAKE_CROSSCOMPILING=OFF"
-}
-
-pre_configure_target() {
- PKG_CMAKE_OPTS_TARGET+="
- -GNinja \
- -DQT_HOST_PATH=${PKG_BUILD}/.x86_64-rocknix-linux-gnu \
- -DFEATURE_gui=ON \
- -DFEATURE_concurrent=OFF \
- -DFEATURE_xml=OFF \
- -DFEATURE_sql=OFF \
- -DFEATURE_testlib=OFF \
- -DFEATURE_network=ON \
- -DFEATURE_icu=OFF \
- -DFEATURE_glib=OFF \
- -DFEATURE_system_doubleconversion=OFF \
- -DFEATURE_system_pcre2=ON \
- -DFEATURE_system_zlib=ON \
- -DFEATURE_libudev=ON\
- -DFEATURE_gui=ON \
- -DFEATURE_freetype=ON \
- -DFEATURE_png=ON\
- -DFEATURE_system_png=ON \
- -DFEATURE_gui=ON \
- -DFEATURE_freetype=ON \
- -DFEATURE_vulkan=OFF \
- -DFEATURE_dbus=ON"
-
-}
-
-make_host() {
- ninja ${NINJA_OPTS}
-}
diff --git a/packages/graphics/qt6/qt6tools/package.mk b/packages/graphics/qt6/qt6tools/package.mk
deleted file mode 100644
index c1c31b3e21..0000000000
--- a/packages/graphics/qt6/qt6tools/package.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2023-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="qt6tools"
-PKG_MAJOR_VERSION="6.6"
-PKG_VERSION="${PKG_MAJOR_VERSION}.1"
-PKG_LICENSE="GPLv3"
-PKG_SITE="https://download.qt.io"
-PKG_URL="${PKG_SITE}/archive/qt/${PKG_MAJOR_VERSION}/${PKG_VERSION}/submodules/qttools-everywhere-src-${PKG_VERSION}.tar.xz"
-PKG_DEPENDS_HOST="toolchain:host qt6base"
-PKG_DEPENDS_TARGET="toolchain qt6tools:host qt6base"
-PKG_LONGDESC="QT6 Tools package"
-
-pre_configure_host() {
- PKG_CMAKE_OPTS_HOST+=" -GNinja \
- -DQT_FEATURE_linguist=ON \
- -DQT_FEATURE_qdbus=OFF \
- -DQT_FEATURE_qtattributionsscanner=ON \
- -DQT_FEATURE_qtdiag=ON \
- -DQT_FEATURE_qtplugininfo=ON \
- -DCMAKE_CROSSCOMPILING=OFF"
-}
-
-pre_configure_target() {
- PKG_CMAKE_OPTS_TARGET+=" -GNinja \
- -DQT_HOST_PATH=${PKG_BUILD}/.x86_64-rocknix-linux-gnu \
- -DQT_FEATURE_linguist=ON \
- -DQT_FEATURE_qdbus=ON \
- -DQT_DEBUG_FIND_PACKAGE=ON
- -DQT_FEATURE_qtattributionsscanner=ON \
- -DQT_FEATURE_qtdiag=ON \
- -DQT_FEATURE_qtplugininfo=ON \
- -DQT_BUILD_TESTS_BY_DEFAULT=OFF \
- -DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF \
- -DQT_FEATURE_LinguistTools=OFF"
-}
-
-
-make_host() {
- ninja ${NINJA_OPTS}
-}
diff --git a/packages/graphics/qt6/qt6wayland/package.mk b/packages/graphics/qt6/qt6wayland/package.mk
deleted file mode 100644
index 57d208517d..0000000000
--- a/packages/graphics/qt6/qt6wayland/package.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2023-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="qt6wayland"
-PKG_MAJOR_VERSION="6.6"
-PKG_VERSION="${PKG_MAJOR_VERSION}.1"
-PKG_LICENSE="GPLv3"
-PKG_SITE="https://download.qt.io"
-PKG_URL="${PKG_SITE}/archive/qt/${PKG_MAJOR_VERSION}/${PKG_VERSION}/submodules/qtwayland-everywhere-src-${PKG_VERSION}.tar.xz"
-PKG_DEPENDS_HOST="toolchain:host qt6base"
-PKG_DEPENDS_TARGET="toolchain qt6wayland:host qt6base"
-PKG_LONGDESC="QT6 wayland"
-
-pre_configure_host() {
- PKG_CMAKE_OPTS_HOST+=" -GNinja \
- -DBUILD_WITH_PCH=OFF \
- -DQT_BUILD_EXAMPLES=OFF \
- -DQT_BUILD_TESTS=OFF \
- -DCMAKE_CROSSCOMPILING=OFF"
-}
-
-pre_configure_target() {
- PKG_CMAKE_OPTS_TARGET+=" -GNinja \
- -DQT_HOST_PATH=${PKG_BUILD}/.x86_64-rocknix-linux-gnu \
- -DQT_DEBUG_FIND_PACKAGE=ON \
- -DBUILD_WITH_PCH=OFF \
- -DQT_BUILD_EXAMPLES=OFF \
- -DQT_BUILD_TESTS=OFF"
-}
-
-make_host() {
- ninja ${NINJA_OPTS}
-}
diff --git a/packages/kernel/firmware/kernel-firmware/firmwares/any.dat b/packages/kernel/firmware/kernel-firmware/firmwares/any.dat
index d036e214ae..7f6f751d7f 100644
--- a/packages/kernel/firmware/kernel-firmware/firmwares/any.dat
+++ b/packages/kernel/firmware/kernel-firmware/firmwares/any.dat
@@ -19,3 +19,6 @@ ath6k/AR6004/hw1.?/bdata.bin
ath9k_htc/*
brcm/*
rt*/*
+
+#Panthor GPU firmware
+arm/mali*
diff --git a/packages/kernel/firmware/libmali_rk3588/firmware/mali_csffw.bin b/packages/kernel/firmware/libmali_rk3588/firmware/mali_csffw.bin
deleted file mode 100755
index 710d362c28..0000000000
Binary files a/packages/kernel/firmware/libmali_rk3588/firmware/mali_csffw.bin and /dev/null differ
diff --git a/packages/kernel/firmware/libmali_rk3588/package.mk b/packages/kernel/firmware/libmali_rk3588/package.mk
deleted file mode 100755
index e439abd20c..0000000000
--- a/packages/kernel/firmware/libmali_rk3588/package.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-PKG_NAME="libmali_rk3588"
-PKG_VERSION="1.0"
-PKG_LICENSE="GPLv3"
-PKG_ARCH="arm aarch64"
-PKG_DEPENDS_TARGET="kernel-firmware"
-PKG_TOOLCHAIN="manual"
-PKG_LONGDESC="Mali blob needed for RK3588 gpu"
-PKG_ACE_FIRMWARE="https://github.com/JeffyCN/mirrors/raw/ca33693a03b2782edc237d1d3b786f94849bed7d/firmware/g610/mali_csffw.bin"
-
-makeinstall_target() {
- mkdir -p ${INSTALL}/$(get_full_firmware_dir)
- case ${DEVICE} in
- RK3588*)
- # RK Linux 6.1 reequires libmali v18 for the moment
- curl -Lo ${INSTALL}/$(get_full_firmware_dir)/mali_csffw.bin ${PKG_ACE_FIRMWARE}
- ;;
- *)
- cp -rf ${PKG_DIR}/firmware/* ${INSTALL}/$(get_full_firmware_dir)/
- ;;
- esac
-}
diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk
index 765080ce66..104870237e 100644
--- a/packages/kernel/linux/package.mk
+++ b/packages/kernel/linux/package.mk
@@ -16,17 +16,17 @@ PKG_PATCH_DIRS="${LINUX} ${DEVICE} default"
case ${DEVICE} in
RK3588*)
- PKG_VERSION="494c0a303537c55971421b5552d98eb55e652cf3"
- PKG_URL="https://github.com/armbian/linux-rockchip/archive/${PKG_VERSION}.tar.gz"
- PKG_GIT_CLONE_BRANCH="rk-5.10-rkr6"
+ PKG_VERSION="6a2f44f4d0ac3aa90ac5050138d08b46118da9cd"
+ PKG_URL="https://github.com/hbiyik/linux-rockchip/archive/${PKG_VERSION}.tar.gz"
+ PKG_GIT_CLONE_BRANCH="rk-6.1-rkr1-panthor-v6"
;;
- RK3566*)
- PKG_VERSION="6.8-rc6"
- PKG_URL="https://git.kernel.org/torvalds/t/${PKG_NAME}-${PKG_VERSION}.tar.gz"
+ RK3326*)
+ PKG_VERSION="6.7.9"
+ PKG_URL="${PKG_SITE}/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
;;
*)
PKG_VERSION="6.8.1"
- PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
+ PKG_URL="${PKG_SITE}/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
;;
esac
diff --git a/packages/emulators/tools/sixaxis/package.mk b/packages/network/sixaxis/package.mk
similarity index 100%
rename from packages/emulators/tools/sixaxis/package.mk
rename to packages/network/sixaxis/package.mk
diff --git a/packages/emulators/tools/sixaxis/system.d/sixaxis@.service b/packages/network/sixaxis/system.d/sixaxis@.service
similarity index 100%
rename from packages/emulators/tools/sixaxis/system.d/sixaxis@.service
rename to packages/network/sixaxis/system.d/sixaxis@.service
diff --git a/packages/emulators/tools/sixaxis/udev.d/99-sixaxis.rules b/packages/network/sixaxis/udev.d/99-sixaxis.rules
similarity index 100%
rename from packages/emulators/tools/sixaxis/udev.d/99-sixaxis.rules
rename to packages/network/sixaxis/udev.d/99-sixaxis.rules
diff --git a/packages/emulators/tools/sixpair/package.mk b/packages/network/sixpair/package.mk
similarity index 100%
rename from packages/emulators/tools/sixpair/package.mk
rename to packages/network/sixpair/package.mk
diff --git a/packages/virtual/gamesupport/package.mk b/packages/virtual/gamesupport/package.mk
index adccabcfbc..bdaf04ca74 100644
--- a/packages/virtual/gamesupport/package.mk
+++ b/packages/virtual/gamesupport/package.mk
@@ -7,7 +7,7 @@ PKG_SITE="https://rocknix.org"
PKG_SECTION="virtual"
PKG_LONGDESC="Game support software metapackage."
-PKG_GAMESUPPORT="sixaxis gptokeyb jstest-sdl gamecontrollerdb sdljoytest control-gen"
+PKG_GAMESUPPORT="sixaxis rocknix-hotkey jstest-sdl gamecontrollerdb sdljoytest control-gen"
PKG_DEPENDS_TARGET="${PKG_GAMESUPPORT}"
diff --git a/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
index c5416b224a..0aa0b3019d 100644
--- a/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
+++ b/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
@@ -1,19 +1,23 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.10.160 Kernel Configuration
+# Linux/arm64 6.1.43 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="aarch64-linux-gnueabi-gcc-12.3.1 (GCC) 12.3.1 20240103"
+CONFIG_CC_VERSION_TEXT="aarch64-jelos-linux-gnueabi-gcc-12.3.1 (GCC) 12.3.1 20240103"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120301
-CONFIG_LD_VERSION=241000000
CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24100
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24100
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
-CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=0
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -28,10 +32,10 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT=""
CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@"
-CONFIG_SWAP=y
+CONFIG_DEFAULT_HOSTNAME="RK3588-ACE"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC_COMPAT=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_WATCH_QUEUE is not set
@@ -58,18 +62,19 @@ CONFIG_GENERIC_IRQ_IPI=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_ARCH_WANTS_IRQ_RAW=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
# end of IRQ subsystem
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
#
# Timers subsystem
@@ -83,9 +88,25 @@ CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# end of Timers subsystem
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+
+#
+# BPF subsystem
+#
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT is not set
+# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
+CONFIG_USERMODE_DRIVER=y
+# CONFIG_BPF_PRELOAD is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_VOLUNTARY_BUILD=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_DYNAMIC is not set
#
# CPU/Task time and stats accounting
@@ -125,6 +146,7 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
CONFIG_GENERIC_SCHED_CLOCK=y
#
@@ -136,11 +158,14 @@ CONFIG_UCLAMP_BUCKETS_COUNT=20
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC11_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
@@ -159,6 +184,7 @@ CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
+# CONFIG_CGROUP_MISC is not set
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
@@ -170,11 +196,10 @@ CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_RT_SOFTINT_OPTIMIZATION is not set
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE="@INITRAMFS_SOURCE@"
+CONFIG_INITRAMFS_SOURCE="/media/storage/5jel/packages/virtual/initramfs/config/initramfs.conf /media/storage/5jel/build.JELOS-RK3588-ACE.aarch64/initramfs"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_RD_GZIP=y
@@ -192,15 +217,14 @@ CONFIG_INITRAMFS_COMPRESSION_GZIP=y
# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set
# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set
# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
-# CONFIG_INITRD_ASYNC is not set
# CONFIG_BOOT_CONFIG is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_LD_ORPHAN_WARN=y
CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_BPF=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
@@ -209,13 +233,11 @@ CONFIG_SYSFS_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
-CONFIG_HAVE_FUTEX_CMPXCHG=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
@@ -228,18 +250,13 @@ CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
-CONFIG_USERMODE_DRIVER=y
-# CONFIG_BPF_PRELOAD is not set
-# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_KCMP=y
CONFIG_RSEQ=y
# CONFIG_DEBUG_RSEQ is not set
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_GUEST_PERF_EVENTS=y
# CONFIG_PC104 is not set
#
@@ -249,25 +266,13 @@ CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
# end of Kernel Performance Events And Counters
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_SYSFS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-# CONFIG_SLAB_FREELIST_RANDOM is not set
-# CONFIG_SLAB_FREELIST_HARDENED is not set
-# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
-CONFIG_SLUB_CPU_PARTIAL=y
CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
# end of General setup
CONFIG_ARM64=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_64BIT=y
CONFIG_MMU=y
CONFIG_ARM64_PAGE_SHIFT=12
@@ -280,16 +285,12 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CSUM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
CONFIG_SMP=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_FIX_EARLYCON_MEM=y
@@ -301,32 +302,29 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y
# Platform selection
#
# CONFIG_ARCH_ACTIONS is not set
-# CONFIG_ARCH_AGILEX is not set
# CONFIG_ARCH_SUNXI is not set
# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_BCM2835 is not set
-# CONFIG_ARCH_BCM_IPROC is not set
+# CONFIG_ARCH_APPLE is not set
+# CONFIG_ARCH_BCM is not set
# CONFIG_ARCH_BERLIN is not set
# CONFIG_ARCH_BITMAIN is not set
-# CONFIG_ARCH_BRCMSTB is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_SPARX5 is not set
# CONFIG_ARCH_K3 is not set
-# CONFIG_ARCH_LAYERSCAPE is not set
# CONFIG_ARCH_LG1K is not set
# CONFIG_ARCH_HISI is not set
# CONFIG_ARCH_KEEMBAY is not set
# CONFIG_ARCH_MEDIATEK is not set
# CONFIG_ARCH_MESON is not set
# CONFIG_ARCH_MVEBU is not set
-# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_NXP is not set
+# CONFIG_ARCH_NPCM is not set
# CONFIG_ARCH_QCOM is not set
# CONFIG_ARCH_REALTEK is not set
# CONFIG_ARCH_RENESAS is not set
CONFIG_ARCH_ROCKCHIP=y
-# CONFIG_ARCH_S32 is not set
# CONFIG_ARCH_SEATTLE is not set
-# CONFIG_ARCH_STRATIX10 is not set
+# CONFIG_ARCH_INTEL_SOCFPGA is not set
# CONFIG_ARCH_SYNQUACER is not set
# CONFIG_ARCH_TEGRA is not set
# CONFIG_ARCH_SPRD is not set
@@ -336,7 +334,6 @@ CONFIG_ARCH_ROCKCHIP=y
# CONFIG_ARCH_VEXPRESS is not set
# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCH_XGENE is not set
-# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQMP is not set
# end of Platform selection
@@ -347,6 +344,7 @@ CONFIG_ARCH_ROCKCHIP=y
#
# ARM errata workarounds via the alternatives framework
#
+CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y
# CONFIG_ARM64_ERRATUM_826319 is not set
# CONFIG_ARM64_ERRATUM_827319 is not set
# CONFIG_ARM64_ERRATUM_824069 is not set
@@ -356,6 +354,7 @@ CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM64_ERRATUM_1742098=y
CONFIG_ARM64_ERRATUM_845719=y
CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
CONFIG_ARM64_ERRATUM_1024718=y
CONFIG_ARM64_ERRATUM_1418040=y
CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
@@ -363,15 +362,18 @@ CONFIG_ARM64_ERRATUM_1165522=y
CONFIG_ARM64_ERRATUM_1319367=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_ARM64_ERRATUM_2441007=y
CONFIG_ARM64_ERRATUM_1286807=y
CONFIG_ARM64_ERRATUM_1463225=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_1508412=y
# CONFIG_ARM64_ERRATUM_2051678 is not set
+CONFIG_ARM64_ERRATUM_2077057=y
+CONFIG_ARM64_ERRATUM_2658417=y
CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y
CONFIG_ARM64_ERRATUM_2054223=y
CONFIG_ARM64_ERRATUM_2067961=y
-# CONFIG_ARM64_ERRATUM_2454944 is not set
+CONFIG_ARM64_ERRATUM_2441009=y
CONFIG_ARM64_ERRATUM_2457168=y
# CONFIG_CAVIUM_ERRATUM_22375 is not set
# CONFIG_CAVIUM_ERRATUM_23154 is not set
@@ -384,6 +386,7 @@ CONFIG_QCOM_FALKOR_ERRATUM_1003=y
CONFIG_QCOM_FALKOR_ERRATUM_1009=y
CONFIG_QCOM_QDF2400_ERRATUM_0065=y
CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
# end of ARM errata workarounds via the alternatives framework
@@ -398,28 +401,19 @@ CONFIG_ARM64_PA_BITS=48
# CONFIG_CPU_BIG_ENDIAN is not set
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_SCHED_MC=y
+# CONFIG_SCHED_CLUSTER is not set
# CONFIG_SCHED_SMT is not set
CONFIG_NR_CPUS=8
CONFIG_HOTPLUG_CPU=y
# CONFIG_NUMA is not set
-CONFIG_HOLES_IN_ZONE=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
CONFIG_HW_PERF_EVENTS=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
# CONFIG_PARAVIRT is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
@@ -427,7 +421,7 @@ CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
# CONFIG_KEXEC_FILE is not set
# CONFIG_CRASH_DUMP is not set
# CONFIG_XEN is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ARCH_FORCE_MAX_ORDER=11
CONFIG_UNMAP_KERNEL_AT_EL0=y
CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
@@ -435,6 +429,7 @@ CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
CONFIG_ARM64_TAGGED_ADDR_ABI=y
CONFIG_COMPAT=y
CONFIG_KUSER_HELPERS=y
+# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
CONFIG_CP15_BARRIER_EMULATION=y
@@ -447,13 +442,13 @@ CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_PAN=y
CONFIG_AS_HAS_LDAPR=y
CONFIG_AS_HAS_LSE_ATOMICS=y
-CONFIG_ARM64_VHE=y
# end of ARMv8.1 architectural features
#
# ARMv8.2 architectural features
#
-CONFIG_ARM64_UAO=y
+CONFIG_AS_HAS_ARMV8_2=y
+CONFIG_AS_HAS_SHA3=y
# CONFIG_ARM64_PMEM is not set
CONFIG_ARM64_RAS_EXTN=y
CONFIG_ARM64_CNP=y
@@ -463,6 +458,7 @@ CONFIG_ARM64_CNP=y
# ARMv8.3 architectural features
#
CONFIG_ARM64_PTR_AUTH=y
+CONFIG_ARM64_PTR_AUTH_KERNEL=y
CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
CONFIG_AS_HAS_PAC=y
@@ -484,12 +480,18 @@ CONFIG_AS_HAS_ARMV8_5=y
CONFIG_ARM64_BTI=y
CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y
CONFIG_ARM64_E0PD=y
-CONFIG_ARCH_RANDOM=y
CONFIG_ARM64_AS_HAS_MTE=y
CONFIG_ARM64_MTE=y
# end of ARMv8.5 architectural features
+#
+# ARMv8.7 architectural features
+#
+CONFIG_ARM64_EPAN=y
+# end of ARMv8.7 architectural features
+
CONFIG_ARM64_SVE=y
+CONFIG_ARM64_SME=y
CONFIG_ARM64_MODULE_PLTS=y
CONFIG_ARM64_PSEUDO_NMI=y
# CONFIG_ARM64_DEBUG_PRIORITY_MASKING is not set
@@ -498,6 +500,7 @@ CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
CONFIG_STACKPROTECTOR_PER_TASK=y
+CONFIG_ARCH_NR_GPIO=0
# end of Kernel Features
#
@@ -509,9 +512,6 @@ CONFIG_EFI=y
CONFIG_DMI=y
# end of Boot options
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
-
#
# Power management options
#
@@ -522,6 +522,7 @@ CONFIG_SUSPEND_FREEZER=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set
CONFIG_PM=y
CONFIG_PM_DEBUG=y
@@ -553,11 +554,11 @@ CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
#
# ARM CPU Idle Drivers
#
-# CONFIG_ARM_CPUIDLE is not set
CONFIG_ARM_PSCI_CPUIDLE=y
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
# end of ARM CPU Idle Drivers
@@ -570,7 +571,6 @@ CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_TIMES is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
@@ -581,7 +581,7 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
# CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set
@@ -590,63 +590,15 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
# CPU frequency scaling drivers
#
CONFIG_CPUFREQ_DT=y
-# CONFIG_CPUFREQ_DUMMY is not set
CONFIG_ARM_ROCKCHIP_CPUFREQ=y
# CONFIG_ARM_SCMI_CPUFREQ is not set
# end of CPU Frequency scaling
# end of CPU Power Management
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=y
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-# CONFIG_ARM_SDE_INTERFACE is not set
-# CONFIG_FIRMWARE_MEMMAP is not set
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-# CONFIG_FW_CFG_SYSFS is not set
-# CONFIG_QCOM_SCM is not set
-CONFIG_ROCKCHIP_SIP=y
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=y
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_EFI_EARLYCON=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
-CONFIG_ARM_SMCCC_SOC_ID=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
CONFIG_ARCH_SUPPORTS_ACPI=y
# CONFIG_ACPI is not set
CONFIG_IRQ_BYPASS_MANAGER=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
+CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
@@ -659,39 +611,27 @@ CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA256_ARM64=y
-# CONFIG_CRYPTO_SHA512_ARM64 is not set
-CONFIG_CRYPTO_SHA1_ARM64_CE=y
-CONFIG_CRYPTO_SHA2_ARM64_CE=y
-# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
-# CONFIG_CRYPTO_SHA3_ARM64 is not set
-# CONFIG_CRYPTO_SM3_ARM64_CE is not set
-# CONFIG_CRYPTO_SM4_ARM64_CE is not set
-CONFIG_CRYPTO_GHASH_ARM64_CE=y
-# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
-# CONFIG_CRYPTO_AES_ARM64 is not set
-CONFIG_CRYPTO_AES_ARM64_CE=y
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
-# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_POLY1305_NEON=m
-# CONFIG_CRYPTO_NHPOLY1305_NEON is not set
-# CONFIG_CRYPTO_AES_ARM64_BS is not set
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+# CONFIG_NVHE_EL2_DEBUG is not set
#
# General architecture-dependent options
#
-CONFIG_SET_FS=y
+CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
CONFIG_UPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -701,6 +641,7 @@ CONFIG_ARCH_HAS_KEEPINITRD=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_HAVE_ASM_MODVERSIONS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
@@ -721,28 +662,37 @@ CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
+# CONFIG_SHADOW_CALL_STACK is not set
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_LTO_NONE=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_MOVE_PUD=y
CONFIG_HAVE_MOVE_PMD=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_ARCH_MMAP_RND_BITS=18
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
@@ -750,6 +700,9 @@ CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET=y
+# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
@@ -759,7 +712,12 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_RELR=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
#
# GCOV-based kernel profiling
@@ -770,9 +728,7 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
-# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
-# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=y
@@ -781,25 +737,28 @@ CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS_NONE=y
+# CONFIG_MODULE_COMPRESS_GZIP is not set
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_CGROUP_IOCOST is not set
@@ -836,12 +795,13 @@ CONFIG_CMDLINE_PARTITION=y
CONFIG_BLOCK_COMPAT=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
#
# IO Schedulers
#
CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_DEADLINE_CGROUP=y
CONFIG_MQ_IOSCHED_KYBER=y
# CONFIG_IOSCHED_BFQ is not set
# end of IO Schedulers
@@ -885,29 +845,6 @@ CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-# CONFIG_GKI_HIDDEN_DRM_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_REGMAP_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_CRYPTO_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_SND_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_SND_SOC_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_MMC_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_GPIO_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_QCOM_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_MEDIA_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_VIRTUAL_CONFIGS is not set
-# CONFIG_GKI_LEGACY_WEXT_ALLCONFIG is not set
-# CONFIG_GKI_HIDDEN_USB_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_SOC_BUS_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_RPMSG_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_GPU_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_IRQ_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_HYPERVISOR_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_NET_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_PHY_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_MM_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_DMA_CONFIGS is not set
-# CONFIG_GKI_HIDDEN_ETHERNET_CONFIGS is not set
-# CONFIG_GKI_HACKS_TO_FIX is not set
CONFIG_FREEZER=y
#
@@ -916,6 +853,7 @@ CONFIG_FREEZER=y
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
CONFIG_ARCH_HAVE_ELF_PROT=y
CONFIG_ARCH_USE_GNU_PROPERTY=y
CONFIG_ELFCORE=y
@@ -928,9 +866,27 @@ CONFIG_COREDUMP=y
#
# Memory Management options
#
-CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_FLATMEM_MANUAL is not set
-CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SWAP=y
+# CONFIG_ZSWAP is not set
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+
+#
+# SLAB allocator options
+#
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+CONFIG_SLUB_SYSFS=y
+# CONFIG_SLUB_STATS is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# end of SLAB allocator options
+
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_COMPAT_BRK is not set
CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
@@ -938,22 +894,25 @@ CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_FAST_GUP=y
CONFIG_ARCH_KEEP_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
# CONFIG_COMPACTION is not set
# CONFIG_PAGE_REPORTING is not set
CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_BOUNCE=y
CONFIG_MMU_NOTIFIER=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
+CONFIG_ARCH_WANTS_THP_SWAP=y
# CONFIG_TRANSPARENT_HUGEPAGE is not set
-# CONFIG_CLEANCACHE is not set
-# CONFIG_FRONTSWAP is not set
CONFIG_CMA=y
# CONFIG_CMA_INACTIVE is not set
# CONFIG_CMA_DEBUG is not set
@@ -961,21 +920,24 @@ CONFIG_CMA_DEBUGFS=y
CONFIG_CMA_DEBUGFS_BITMAP_HEX=y
CONFIG_CMA_SYSFS=y
CONFIG_CMA_AREAS=7
-# CONFIG_ZPOOL is not set
-# CONFIG_ZBUD is not set
-CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_STAT is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_FRAME_VECTOR=y
+CONFIG_ARCH_HAS_ZONE_DMA_SET=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_PERCPU_STATS is not set
-CONFIG_ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT=y
-CONFIG_SPECULATIVE_PAGE_FAULT=y
-# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_GUP_TEST is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+# CONFIG_LRU_GEN is not set
+CONFIG_LOCK_MM_AND_FIND_VMA=y
#
# Data Access Monitoring
@@ -987,6 +949,7 @@ CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
CONFIG_NET_REDIRECT=y
CONFIG_SKB_EXTENSIONS=y
@@ -997,6 +960,7 @@ CONFIG_PACKET=y
CONFIG_PACKET_DIAG=m
CONFIG_UNIX=y
CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_TLS_DEVICE=y
@@ -1102,6 +1066,7 @@ CONFIG_IPV6_PIMSM_V2=y
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
CONFIG_NETLABEL=y
CONFIG_MPTCP=y
CONFIG_INET_MPTCP_DIAG=m
@@ -1116,16 +1081,18 @@ CONFIG_BRIDGE_NETFILTER=m
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_FAMILY_BRIDGE=y
CONFIG_NETFILTER_FAMILY_ARP=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_NETLINK_OSF=m
CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-# CONFIG_NF_LOG_NETDEV is not set
+CONFIG_NF_LOG_SYSLOG=m
CONFIG_NETFILTER_CONNCOUNT=m
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_SECMARK is not set
@@ -1168,7 +1135,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-# CONFIG_NFT_COUNTER is not set
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -1194,9 +1160,12 @@ CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+# CONFIG_NFT_REJECT_NETDEV is not set
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+# CONFIG_NF_FLOW_TABLE_PROCFS is not set
CONFIG_NETFILTER_XTABLES=y
+CONFIG_NETFILTER_XTABLES_COMPAT=y
#
# Xtables combined modules
@@ -1273,7 +1242,6 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-# CONFIG_NETFILTER_XT_MATCH_QUOTA2 is not set
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
@@ -1336,6 +1304,7 @@ CONFIG_IP_VS_SH=m
CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
+# CONFIG_IP_VS_TWOS is not set
#
# IPVS SH scheduler
@@ -1365,7 +1334,6 @@ CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-# CONFIG_NF_FLOW_TABLE_IPV4 is not set
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
@@ -1405,7 +1373,6 @@ CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-# CONFIG_NF_FLOW_TABLE_IPV6 is not set
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
@@ -1436,7 +1403,6 @@ CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
-# CONFIG_NF_LOG_BRIDGE is not set
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
@@ -1511,12 +1477,11 @@ CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_BRIDGE_MRP=y
-CONFIG_HAVE_NET_DSA=y
+# CONFIG_BRIDGE_CFM is not set
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
CONFIG_ATALK=m
@@ -1591,7 +1556,6 @@ CONFIG_NET_SCH_PLUG=m
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
-# CONFIG_NET_CLS_TCINDEX is not set
CONFIG_NET_CLS_ROUTE4=m
# CONFIG_NET_CLS_FW is not set
CONFIG_NET_CLS_U32=m
@@ -1646,9 +1610,7 @@ CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV_NC=y
CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUGFS is not set
CONFIG_BATMAN_ADV_DEBUG=y
-# CONFIG_BATMAN_ADV_SYSFS is not set
CONFIG_BATMAN_ADV_TRACING=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=m
@@ -1671,14 +1633,16 @@ CONFIG_QRTR_TUN=m
CONFIG_QRTR_MHI=m
CONFIG_NET_NCSI=y
CONFIG_NCSI_OEM_CMD_GET_MAC=y
+# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
+CONFIG_PCPU_DEV_REFCNT=y
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_NET_FLOW_LIMIT=y
@@ -1697,68 +1661,6 @@ CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_ISOTP is not set
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_VXCAN is not set
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_FLEXCAN is not set
-CONFIG_CAN_GRCAN=m
-# CONFIG_CAN_KVASER_PCIEFD is not set
-CONFIG_CAN_XILINXCAN=m
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-CONFIG_CAN_CC770=m
-CONFIG_CAN_CC770_ISA=m
-CONFIG_CAN_CC770_PLATFORM=m
-# CONFIG_CAN_IFI_CANFD is not set
-CONFIG_CAN_M_CAN=m
-# CONFIG_CAN_M_CAN_PLATFORM is not set
-# CONFIG_CAN_M_CAN_TCAN4X5X is not set
-# CONFIG_CAN_PEAK_PCIEFD is not set
-# CONFIG_CAN_ROCKCHIP is not set
-# CONFIG_CANFD_ROCKCHIP is not set
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-# CONFIG_CAN_F81601 is not set
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SJA1000_ISA=m
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_SOFTING=m
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_HI311X=m
-CONFIG_CAN_MCP251X=m
-CONFIG_CAN_MCP251XFD=m
-# CONFIG_CAN_MCP251XFD_SANITY is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-# CONFIG_CAN_ESD_USB2 is not set
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-# CONFIG_CAN_MCBA_USB is not set
-CONFIG_CAN_PEAK_USB=m
-# CONFIG_CAN_UCAN is not set
-# end of CAN USB interfaces
-
-CONFIG_CAN_DEBUG_DEVICES=y
-# end of CAN Device Drivers
-
CONFIG_BT=y
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=m
@@ -1772,6 +1674,7 @@ CONFIG_BT_LE=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
# CONFIG_BT_MSFTEXT is not set
+# CONFIG_BT_AOSPEXT is not set
CONFIG_BT_DEBUGFS=y
# CONFIG_BT_SELFTEST is not set
@@ -1781,6 +1684,7 @@ CONFIG_BT_DEBUGFS=y
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
+CONFIG_BT_MTK=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
CONFIG_BT_HCIBTUSB_BCM=y
@@ -1810,12 +1714,12 @@ CONFIG_BT_MRVL=m
CONFIG_BT_ATH3K=m
CONFIG_BT_MTKSDIO=m
# CONFIG_BT_MTKUART is not set
-# CONFIG_BT_HCIBTUSB_RTLBTUSB is not set
# end of Bluetooth device drivers
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
CONFIG_STREAM_PARSER=y
+# CONFIG_MCTP is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
@@ -1859,7 +1763,6 @@ CONFIG_MAC80211_VERBOSE_DEBUG=y
# CONFIG_MAC80211_TDLS_DEBUG is not set
# CONFIG_MAC80211_DEBUG_COUNTERS is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-# CONFIG_WIMAX is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_LEDS=y
# CONFIG_RFKILL_INPUT is not set
@@ -1878,11 +1781,12 @@ CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
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_FAILOVER is not set
CONFIG_ETHTOOL_NETLINK=y
-CONFIG_HAVE_EBPF_JIT=y
#
# Device Drivers
@@ -1917,6 +1821,7 @@ CONFIG_PCIE_BUS_DEFAULT=y
# CONFIG_PCIE_BUS_SAFE is not set
# CONFIG_PCIE_BUS_PERFORMANCE is not set
# CONFIG_PCIE_BUS_PEER2PEER is not set
+# CONFIG_VGA_ARB is not set
# CONFIG_HOTPLUG_PCI is not set
#
@@ -1932,6 +1837,7 @@ CONFIG_PCIE_BUS_DEFAULT=y
CONFIG_PCIE_ROCKCHIP=y
CONFIG_PCIE_ROCKCHIP_HOST=y
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set
+# CONFIG_PCIE_MICROCHIP_HOST is not set
#
# DesignWare PCI Core Support
@@ -1952,7 +1858,6 @@ CONFIG_PCIE_RK_THREADED_INIT=y
#
# Mobiveil PCIe Core Support
#
-# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# end of Mobiveil PCIe Core Support
#
@@ -1975,6 +1880,7 @@ CONFIG_PCIE_RK_THREADED_INIT=y
# CONFIG_PCI_SW_SWITCHTEC is not set
# end of PCI switch controller drivers
+# CONFIG_CXL_BUS is not set
# CONFIG_PCCARD is not set
# CONFIG_RAPIDIO is not set
@@ -1984,6 +1890,7 @@ CONFIG_PCIE_RK_THREADED_INIT=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -1995,6 +1902,7 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_FW_LOADER_COMPRESS is not set
CONFIG_FW_CACHE=y
+# CONFIG_FW_UPLOAD is not set
# end of Firmware loader
CONFIG_WANT_DEV_COREDUMP=y
@@ -2023,57 +1931,126 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y
#
# CONFIG_BRCMSTB_GISB_ARB is not set
# CONFIG_MOXTET is not set
-# CONFIG_SIMPLE_PM_BUS is not set
# CONFIG_VEXPRESS_CONFIG is not set
CONFIG_MHI_BUS=m
# CONFIG_MHI_BUS_DEBUG is not set
+# CONFIG_MHI_BUS_PCI_GENERIC is not set
+# CONFIG_MHI_BUS_EP is not set
# end of Bus devices
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
-# CONFIG_GNSS is not set
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
#
-# Partition parsers
+# Firmware Drivers
#
-# CONFIG_MTD_AR7_PARTS is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_OF_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# end of Partition parsers
#
-# User Modules And Translation Layers
+# ARM System Control and Management Interface Protocol
#
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_SM_FTL is not set
-# CONFIG_MTD_OOPS is not set
-# CONFIG_MTD_SWAP is not set
-# CONFIG_MTD_PARTITIONED_MASTER is not set
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_HAVE_MSG=y
+CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y
+CONFIG_ARM_SCMI_TRANSPORT_OPTEE=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set
+CONFIG_ARM_SCMI_POWER_DOMAIN=y
+# CONFIG_ARM_SCMI_POWER_CONTROL is not set
+# end of ARM System Control and Management Interface Protocol
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# end of RAM/ROM/Flash chip drivers
+# CONFIG_ARM_SCPI_PROTOCOL is not set
+# CONFIG_FIRMWARE_MEMMAP is not set
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+# CONFIG_FW_CFG_SYSFS is not set
+CONFIG_ROCKCHIP_SIP=y
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_ARM_FFA_TRANSPORT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=y
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# end of RAM/ROM/Flash chip drivers
#
# Mapping drivers for chip access
@@ -2089,6 +2066,7 @@ CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_MCHP48L640 is not set
# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
@@ -2112,6 +2090,10 @@ CONFIG_MTD_SPI_NAND=y
#
# ECC engine support
#
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+# CONFIG_MTD_NAND_ECC_MXIC is not set
CONFIG_MTD_NAND_BBT_USING_FLASH=y
# end of ECC engine support
# end of NAND
@@ -2125,6 +2107,9 @@ CONFIG_MTD_NAND_BBT_USING_FLASH=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
# CONFIG_MTD_SPI_NOR_MISC is not set
+# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
@@ -2142,7 +2127,6 @@ CONFIG_OF_KOBJ=y
CONFIG_OF_DYNAMIC=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
CONFIG_OF_RESERVED_MEM=y
# CONFIG_OF_OVERLAY is not set
# CONFIG_PARPORT is not set
@@ -2151,23 +2135,23 @@ CONFIG_BLK_DEV=y
CONFIG_CDROM=y
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
CONFIG_ZRAM=y
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_ZRAM_MEMORY_TRACKING is not set
-# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SKD is not set
-# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_BLK_DEV_RBD is not set
-# CONFIG_BLK_DEV_RSXX is not set
+# CONFIG_BLK_DEV_UBLK is not set
#
# NVME Support
@@ -2175,9 +2159,11 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_NVME_CORE=y
CONFIG_BLK_DEV_NVME=y
# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_VERBOSE_ERRORS is not set
# CONFIG_NVME_HWMON is not set
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_AUTH is not set
# CONFIG_NVME_TARGET is not set
# end of NVME Support
@@ -2200,6 +2186,7 @@ CONFIG_BLK_DEV_NVME=y
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HI6421V600_IRQ is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
@@ -2211,12 +2198,12 @@ CONFIG_BLK_DEV_NVME=y
# CONFIG_DS1682 is not set
# CONFIG_LATTICE_ECP3_CONFIG is not set
CONFIG_SRAM=y
+# CONFIG_DW_XDATA_PCIE is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_XILINX_SDFEC is not set
-# CONFIG_UID_SYS_STATS is not set
-# CONFIG_PVPANIC is not set
# CONFIG_HISI_HIKEY_USB is not set
-CONFIG_KHADAS_MCU=y
+# CONFIG_OPEN_DICE is not set
+# CONFIG_VCPU_STALL_DETECTOR is not set
# CONFIG_C2PORT is not set
#
@@ -2243,13 +2230,17 @@ CONFIG_EEPROM_93CX6=m
# CONFIG_SENSORS_LIS3_SPI is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_ALTERA_STAPL is not set
+# CONFIG_VMWARE_VMCI is not set
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
+# CONFIG_BCM_VK is not set
# CONFIG_MISC_ALCOR_PCI is not set
# CONFIG_MISC_RTSX_PCI is not set
# CONFIG_MISC_RTSX_USB is not set
# CONFIG_HABANA_AI is not set
# CONFIG_UACCE is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_GP_PCI1XXXX is not set
# end of Misc devices
#
@@ -2257,6 +2248,7 @@ CONFIG_EEPROM_93CX6=m
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y
@@ -2268,6 +2260,7 @@ CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
CONFIG_BLK_DEV_SR=y
# CONFIG_CHR_DEV_SG is not set
+CONFIG_BLK_DEV_BSG=y
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
@@ -2311,15 +2304,15 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT3SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_MPI3MR is not set
# CONFIG_SCSI_SMARTPQI is not set
-# CONFIG_SCSI_UFSHCD is not set
# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_MYRB is not set
# CONFIG_SCSI_MYRS is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FDOMAIN_PCI is not set
-# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
@@ -2337,7 +2330,6 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DH is not set
# end of SCSI device support
-CONFIG_HAVE_PATA_PLATFORM=y
CONFIG_ATA=y
CONFIG_SATA_HOST=y
CONFIG_ATA_VERBOSE_ERROR=y
@@ -2350,6 +2342,7 @@ CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_MOBILE_LPM_POLICY=0
CONFIG_SATA_AHCI_PLATFORM=y
+# CONFIG_AHCI_DWC is not set
# CONFIG_AHCI_CEVA is not set
# CONFIG_AHCI_QORIQ is not set
# CONFIG_SATA_INIC162X is not set
@@ -2394,6 +2387,7 @@ CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
# CONFIG_DM_MULTIPATH_HST is not set
+# CONFIG_DM_MULTIPATH_IOA is not set
CONFIG_DM_DELAY=m
# CONFIG_DM_DUST is not set
# CONFIG_DM_UEVENT is not set
@@ -2404,8 +2398,7 @@ CONFIG_DM_VERITY=m
CONFIG_DM_SWITCH=m
CONFIG_DM_LOG_WRITES=m
# CONFIG_DM_INTEGRITY is not set
-# CONFIG_DM_BOW is not set
-CONFIG_DM_USER=m
+# CONFIG_DM_AUDIT is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set
@@ -2441,6 +2434,7 @@ CONFIG_VXLAN=m
CONFIG_GENEVE=m
# CONFIG_BAREUDP is not set
# CONFIG_GTP is not set
+# CONFIG_AMT is not set
# CONFIG_MACSEC is not set
CONFIG_NETCONSOLE=m
# CONFIG_NETCONSOLE_DYNAMIC is not set
@@ -2452,6 +2446,7 @@ CONFIG_TAP=m
CONFIG_VETH=m
CONFIG_NLMON=m
CONFIG_NET_VRF=m
+# CONFIG_MHI_NET is not set
CONFIG_ARCNET=m
# CONFIG_ARCNET_1201 is not set
# CONFIG_ARCNET_1051 is not set
@@ -2472,12 +2467,6 @@ CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_FORE200E is not set
# CONFIG_ATM_HE is not set
# CONFIG_ATM_SOLOS is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-# end of Distributed Switch Architecture drivers
-
CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
@@ -2492,11 +2481,10 @@ CONFIG_NET_VENDOR_AMAZON=y
CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_AQTION is not set
# CONFIG_NET_VENDOR_ARC is not set
+CONFIG_NET_VENDOR_ASIX=y
+# CONFIG_SPI_AX88796C is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
-CONFIG_NET_VENDOR_AURORA=y
-# CONFIG_AURORA_NB8800 is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_BROCADE is not set
CONFIG_NET_VENDOR_CADENCE=y
# CONFIG_MACB is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
@@ -2504,34 +2492,47 @@ CONFIG_NET_VENDOR_CADENCE=y
# CONFIG_NET_VENDOR_CISCO is not set
CONFIG_NET_VENDOR_CORTINA=y
# CONFIG_GEMINI_ETHERNET is not set
+CONFIG_NET_VENDOR_DAVICOM=y
+# CONFIG_DM9051 is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
+CONFIG_NET_VENDOR_ENGLEDER=y
+# CONFIG_TSNEP is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_NET_VENDOR_FUNGIBLE=y
+# CONFIG_FUN_ETH is not set
CONFIG_NET_VENDOR_GOOGLE=y
# CONFIG_GVE is not set
# CONFIG_NET_VENDOR_HISILICON is not set
CONFIG_NET_VENDOR_HUAWEI=y
# CONFIG_HINIC is not set
# CONFIG_NET_VENDOR_INTEL is not set
+CONFIG_NET_VENDOR_WANGXUN=y
+# CONFIG_NGBE is not set
+# CONFIG_TXGBE is not set
# CONFIG_JME is not set
+CONFIG_NET_VENDOR_ADI=y
+# CONFIG_ADIN1110 is not set
+CONFIG_NET_VENDOR_LITEX=y
+# CONFIG_LITEX_LITEETH is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
CONFIG_NET_VENDOR_MICROSEMI=y
# CONFIG_MSCC_OCELOT_SWITCH is not set
+CONFIG_NET_VENDOR_MICROSOFT=y
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
+CONFIG_NET_VENDOR_NI=y
+# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
CONFIG_NET_VENDOR_NETERION=y
# CONFIG_S2IO is not set
-# CONFIG_VXGE is not set
CONFIG_NET_VENDOR_NETRONOME=y
# CONFIG_NFP is not set
-CONFIG_NET_VENDOR_NI=y
-# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
@@ -2541,6 +2542,7 @@ CONFIG_NET_VENDOR_PACKET_ENGINES=y
CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_IONIC is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
+# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
CONFIG_NET_VENDOR_REALTEK=y
@@ -2549,16 +2551,16 @@ CONFIG_NET_VENDOR_REALTEK=y
CONFIG_R8168=y
CONFIG_R8169=y
# CONFIG_R8125 is not set
-# CONFIG_REALTEK_PGTOOL is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SILAN is not set
+# CONFIG_NET_VENDOR_SIS is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
# CONFIG_SFC is not set
# CONFIG_SFC_FALCON is not set
-# CONFIG_NET_VENDOR_SILAN is not set
-# CONFIG_NET_VENDOR_SIS is not set
+# CONFIG_SFC_SIENA is not set
# CONFIG_NET_VENDOR_SMSC is not set
CONFIG_NET_VENDOR_SOCIONEXT=y
CONFIG_NET_VENDOR_STMICRO=y
@@ -2573,14 +2575,18 @@ CONFIG_DWMAC_GENERIC=y
CONFIG_DWMAC_ROCKCHIP=y
CONFIG_DWMAC_ROCKCHIP_TOOL=y
# CONFIG_DWMAC_INTEL_PLAT is not set
+# CONFIG_DWMAC_LOONGSON is not set
# CONFIG_STMMAC_PCI is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
+CONFIG_NET_VENDOR_VERTEXCOM=y
+# CONFIG_MSE102X is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_NET_VENDOR_XILINX=y
+# CONFIG_XILINX_EMACLITE is not set
# CONFIG_XILINX_AXI_EMAC is not set
# CONFIG_XILINX_LL_TEMAC is not set
# CONFIG_FDDI is not set
@@ -2597,6 +2603,7 @@ CONFIG_FIXED_PHY=y
#
# CONFIG_AMD_PHY is not set
# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
# CONFIG_AQUANTIA_PHY is not set
CONFIG_AX88796B_PHY=y
# CONFIG_BROADCOM_PHY is not set
@@ -2613,12 +2620,16 @@ CONFIG_AX88796B_PHY=y
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
# CONFIG_MICREL_PHY is not set
CONFIG_MICROCHIP_PHY=m
# CONFIG_MICROCHIP_T1_PHY is not set
# CONFIG_MICROSEMI_PHY is not set
CONFIG_MOTORCOMM_PHY=y
# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
# CONFIG_NXP_TJA11XX_PHY is not set
# CONFIG_AT803X_PHY is not set
# CONFIG_QSEMI_PHY is not set
@@ -2634,11 +2645,77 @@ CONFIG_SMSC_PHY=m
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
# CONFIG_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_VCAN=m
+# CONFIG_CAN_VXCAN is not set
+CONFIG_CAN_NETLINK=y
+CONFIG_CAN_CALC_BITTIMING=y
+CONFIG_CAN_RX_OFFLOAD=y
+# CONFIG_CAN_CAN327 is not set
+# CONFIG_CAN_FLEXCAN is not set
+CONFIG_CAN_GRCAN=m
+# CONFIG_CAN_KVASER_PCIEFD is not set
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_XILINXCAN=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_ISA=m
+CONFIG_CAN_CC770_PLATFORM=m
+# CONFIG_CAN_CTUCANFD_PCI is not set
+# CONFIG_CAN_CTUCANFD_PLATFORM is not set
+# CONFIG_CAN_IFI_CANFD is not set
+CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PCI is not set
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
+# CONFIG_CAN_PEAK_PCIEFD is not set
+# CONFIG_CAN_ROCKCHIP is not set
+# CONFIG_CANFD_ROCKCHIP is not set
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_EMS_PCI=m
+# CONFIG_CAN_F81601 is not set
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_SOFTING=m
+
+#
+# CAN SPI interfaces
+#
+CONFIG_CAN_HI311X=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+# CONFIG_CAN_MCP251XFD_SANITY is not set
+# end of CAN SPI interfaces
+
+#
+# CAN USB interfaces
+#
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_EMS_USB=m
+# CONFIG_CAN_ESD_USB is not set
+# CONFIG_CAN_ETAS_ES58X is not set
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_KVASER_USB=m
+# CONFIG_CAN_MCBA_USB is not set
+CONFIG_CAN_PEAK_USB=m
+# CONFIG_CAN_UCAN is not set
+# end of CAN USB interfaces
+
+CONFIG_CAN_DEBUG_DEVICES=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
CONFIG_OF_MDIO=y
CONFIG_MDIO_DEVRES=y
# CONFIG_MDIO_BITBANG is not set
@@ -2723,8 +2800,8 @@ CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
# CONFIG_USB_NET_AQC111 is not set
+CONFIG_USB_RTL8153_ECM=m
CONFIG_WLAN=y
-# CONFIG_WIRELESS_WDS is not set
CONFIG_WLAN_VENDOR_ADMTEK=y
# CONFIG_ADM8211 is not set
CONFIG_ATH_COMMON=m
@@ -2783,7 +2860,6 @@ CONFIG_HOSTAP_FIRMWARE_NVRAM=y
# CONFIG_HOSTAP_PCI is not set
# CONFIG_HERMES is not set
# CONFIG_P54_COMMON is not set
-# CONFIG_PRISM54 is not set
CONFIG_WLAN_VENDOR_MARVELL=y
# CONFIG_LIBERTAS is not set
CONFIG_LIBERTAS_THINFIRM=y
@@ -2805,9 +2881,14 @@ CONFIG_MT7601U=m
# CONFIG_MT7663U is not set
# CONFIG_MT7663S is not set
# CONFIG_MT7915E is not set
+# CONFIG_MT7921E is not set
+# CONFIG_MT7921S is not set
+# CONFIG_MT7921U is not set
CONFIG_WLAN_VENDOR_MICROCHIP=y
# CONFIG_WILC1000_SDIO is not set
# CONFIG_WILC1000_SPI is not set
+CONFIG_WLAN_VENDOR_PURELIFI=y
+# CONFIG_PLFXLC is not set
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_RT2X00=m
# CONFIG_RT2400PCI is not set
@@ -2846,13 +2927,24 @@ CONFIG_RTW88_PCI=m
CONFIG_RTW88_8822C=m
CONFIG_RTW88_8821C=m
# CONFIG_RTW88_8822BE is not set
+# CONFIG_RTW88_8822BS is not set
+# CONFIG_RTW88_8822BU is not set
CONFIG_RTW88_8822CE=m
+# CONFIG_RTW88_8822CS is not set
+# CONFIG_RTW88_8822CU is not set
# CONFIG_RTW88_8723DE is not set
+# CONFIG_RTW88_8723DS is not set
+# CONFIG_RTW88_8723DU is not set
CONFIG_RTW88_8821CE=m
+# CONFIG_RTW88_8821CS is not set
+# CONFIG_RTW88_8821CU is not set
# CONFIG_RTW88_DEBUG is not set
# CONFIG_RTW88_DEBUGFS is not set
+# CONFIG_RTW89 is not set
CONFIG_WLAN_VENDOR_RSI=y
# CONFIG_RSI_91X is not set
+CONFIG_WLAN_VENDOR_SILABS=y
+# CONFIG_WFX is not set
CONFIG_WLAN_VENDOR_ST=y
# CONFIG_CW1200 is not set
CONFIG_WLAN_VENDOR_TI=y
@@ -2866,17 +2958,27 @@ CONFIG_USB_ZD1201=m
CONFIG_WLAN_VENDOR_QUANTENNA=y
# CONFIG_QTNFMAC_PCIE is not set
# CONFIG_WL_ROCKCHIP is not set
-# CONFIG_SPARD_WLAN_SUPPORT is not set
# CONFIG_AIC_WLAN_SUPPORT is not set
+# CONFIG_RTL8723DS is not set
+# CONFIG_RTL8822BU is not set
+# CONFIG_RTL8821CU is not set
+# CONFIG_88XXAU is not set
+# CONFIG_RTL8192EU is not set
+# CONFIG_RTL8189FS is not set
+# CONFIG_RTL8189ES is not set
+# CONFIG_SPARD_WLAN_SUPPORT is not set
# CONFIG_MAC80211_HWSIM is not set
CONFIG_USB_NET_RNDIS_WLAN=y
# CONFIG_VIRT_WIFI is not set
+# CONFIG_WAN is not set
+# CONFIG_IEEE802154_DRIVERS is not set
#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# Wireless WAN
#
-# CONFIG_WAN is not set
-# CONFIG_IEEE802154_DRIVERS is not set
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
# CONFIG_VMXNET3 is not set
# CONFIG_NETDEVSIM is not set
# CONFIG_NET_FAILOVER is not set
@@ -2925,6 +3027,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=y
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
@@ -2933,6 +3036,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=y
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CYPRESS_SF is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
# CONFIG_MOUSE_SERIAL is not set
@@ -2975,18 +3079,18 @@ CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_PSXPAD_SPI=y
# CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set
# CONFIG_JOYSTICK_PXRC is not set
+# CONFIG_JOYSTICK_QWIIC is not set
# CONFIG_JOYSTICK_FSIA6B is not set
+# CONFIG_JOYSTICK_SENSEHAT is not set
CONFIG_JOYSTICK_JELOS_JOYPAD=y
CONFIG_INPUT_TABLET=y
# CONFIG_TABLET_USB_ACECAD is not set
# CONFIG_TABLET_USB_AIPTEK is not set
-# CONFIG_TABLET_USB_GTCO is not set
# CONFIG_TABLET_USB_HANWANG is not set
# CONFIG_TABLET_USB_KBTAB is not set
# CONFIG_TABLET_USB_PEGASUS is not set
# CONFIG_TABLET_SERIAL_WACOM4 is not set
CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
@@ -3001,6 +3105,7 @@ CONFIG_TOUCHSCREEN_PROPERTIES=y
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5 is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
@@ -3016,7 +3121,9 @@ CONFIG_TOUCHSCREEN_GOODIX=y
# CONFIG_TOUCHSCREEN_GT1X is not set
# CONFIG_TOUCHSCREEN_GT9XX is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_ILITEK is not set
# CONFIG_TOUCHSCREEN_S6SY761 is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
@@ -3024,18 +3131,20 @@ CONFIG_TOUCHSCREEN_GOODIX=y
# CONFIG_TOUCHSCREEN_ELAN5515 is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_W9013 is not set
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
# CONFIG_TOUCHSCREEN_MAX11801 is not set
# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MMS114 is not set
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MSG2638 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_IMAGIS is not set
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
-# CONFIG_TOUCHSCREEN_RASPITS_FT5426 is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
@@ -3057,6 +3166,7 @@ CONFIG_TOUCHSCREEN_GOODIX=y
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZET6223 is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
# CONFIG_TOUCHSCREEN_IQS5XX is not set
# CONFIG_TOUCHSCREEN_ZINITIX is not set
@@ -3089,9 +3199,13 @@ CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RK805_PWRKEY=y
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA7280_HAPTICS is not set
# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IBM_PANEL is not set
# CONFIG_INPUT_IMS_PCU is not set
# CONFIG_INPUT_IQS269A is not set
+# CONFIG_INPUT_IQS626A is not set
+# CONFIG_INPUT_IQS7222 is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
@@ -3145,11 +3259,11 @@ CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_NR_UARTS=10
CONFIG_SERIAL_8250_RUNTIME_UARTS=10
# CONFIG_SERIAL_8250_EXTENDED is not set
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
CONFIG_SERIAL_8250_DWLIB=y
CONFIG_SERIAL_8250_FSL=y
CONFIG_SERIAL_8250_DW=y
# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_PERICOM=y
CONFIG_SERIAL_OF_PLATFORM=y
#
@@ -3158,20 +3272,17 @@ CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_SERIAL_AMBA_PL010 is not set
# CONFIG_SERIAL_AMBA_PL011 is not set
# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
-# CONFIG_SERIAL_SAMSUNG is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_MSM_GENI_EARLY_CONSOLE is not set
# CONFIG_SERIAL_SIFIVE is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
@@ -3186,7 +3297,6 @@ CONFIG_SERIAL_MCTRL_GPIO=y
# CONFIG_N_GSM is not set
# CONFIG_NOZOMI is not set
# CONFIG_NULL_TTY is not set
-# CONFIG_TRACE_SINK is not set
# CONFIG_HVC_DCC is not set
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
@@ -3200,15 +3310,18 @@ CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_OPTEE=y
# CONFIG_HW_RANDOM_CCTRNG is not set
# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y
+CONFIG_HW_RANDOM_CN10K=y
CONFIG_HW_RANDOM_ROCKCHIP=y
# CONFIG_APPLICOM is not set
CONFIG_DEVMEM=y
-# CONFIG_RAW_DRIVER is not set
CONFIG_DEVPORT=y
CONFIG_TCG_TPM=y
CONFIG_HW_RANDOM_TPM=y
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_TIS_SPI is not set
+# CONFIG_TCG_TIS_I2C is not set
+# CONFIG_TCG_TIS_I2C_CR50 is not set
# CONFIG_TCG_TIS_I2C_ATMEL is not set
CONFIG_TCG_TIS_I2C_INFINEON=y
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
@@ -3218,6 +3331,7 @@ CONFIG_TCG_TIS_I2C_INFINEON=y
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
# CONFIG_RANDOM_TRUST_CPU is not set
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# end of Character devices
@@ -3296,6 +3410,8 @@ CONFIG_I2C_XILINX=m
# External I2C/SMBus adapter drivers
#
CONFIG_I2C_DIOLAN_U2C=m
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_PCI1XXXX is not set
CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m
@@ -3303,6 +3419,7 @@ CONFIG_I2C_TINY_USB=m
#
# Other I2C/SMBus bus drivers
#
+# CONFIG_I2C_VIRTIO is not set
# end of I2C Hardware Bus support
CONFIG_I2C_STUB=m
@@ -3328,16 +3445,20 @@ CONFIG_SPI_MEM=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_CADENCE_QUADSPI is not set
+# CONFIG_SPI_CADENCE_XSPI is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_NXP_FLEXSPI is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
# CONFIG_SPI_OC_TINY is not set
# CONFIG_SPI_PL022 is not set
# CONFIG_SPI_PXA2XX is not set
CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_ROCKCHIP_MISCDEV=y
CONFIG_SPI_ROCKCHIP_SFC=y
+CONFIG_SPI_ROCKCHIP_SLAVE=y
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_MXIC is not set
@@ -3364,6 +3485,7 @@ CONFIG_SPI_SLAVE=y
# CONFIG_SPI_SLAVE_ROCKCHIP_OBJ is not set
CONFIG_SPI_DYNAMIC=y
CONFIG_SPMI=m
+# CONFIG_SPMI_HISI3670 is not set
CONFIG_HSI=m
CONFIG_HSI_BOARDINFO=y
@@ -3393,12 +3515,15 @@ CONFIG_PPS_CLIENT_GPIO=m
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
+CONFIG_PTP_1588_CLOCK_KVM=y
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# CONFIG_PTP_1588_CLOCK_OCP is not set
# end of PTP clock support
CONFIG_PINCTRL=y
@@ -3406,14 +3531,16 @@ CONFIG_PINMUX=y
CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_CY8C95X0 is not set
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+CONFIG_PINCTRL_RK805=y
+CONFIG_PINCTRL_RK806=y
CONFIG_PINCTRL_ROCKCHIP=y
# CONFIG_PINCTRL_SINGLE is not set
-# CONFIG_PINCTRL_SX150X is not set
# CONFIG_PINCTRL_STMFX is not set
-CONFIG_PINCTRL_RK805=y
-CONFIG_PINCTRL_RK806=y
-# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SX150X is not set
#
# Renesas pinctrl drivers
@@ -3446,7 +3573,6 @@ CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_MB86S7X is not set
# CONFIG_GPIO_PL061 is not set
CONFIG_GPIO_ROCKCHIP=y
-# CONFIG_GPIO_SAMA5D2_PIOBU is not set
# CONFIG_GPIO_SIFIVE is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_XGENE is not set
@@ -3457,7 +3583,6 @@ CONFIG_GPIO_ROCKCHIP=y
#
# I2C GPIO expanders
#
-# CONFIG_GPIO_ADP5588 is not set
CONFIG_GPIO_ADNP=m
CONFIG_GPIO_AW9110=m
CONFIG_GPIO_GW_PLD=m
@@ -3502,8 +3627,14 @@ CONFIG_GPIO_XRA1403=m
#
# end of USB GPIO expanders
+#
+# Virtual GPIO drivers
+#
CONFIG_GPIO_AGGREGATOR=m
CONFIG_GPIO_MOCKUP=m
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
CONFIG_W1=m
CONFIG_W1_CON=y
@@ -3547,6 +3678,7 @@ CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_REGULATOR is not set
# CONFIG_POWER_RESET_RESTART is not set
# CONFIG_POWER_RESET_XGENE is not set
# CONFIG_POWER_RESET_SYSCON is not set
@@ -3559,6 +3691,7 @@ CONFIG_POWER_SUPPLY=y
CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_PDA_POWER is not set
# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_IP5XXX_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
CONFIG_BATTERY_CW2015=y
@@ -3568,6 +3701,7 @@ CONFIG_BATTERY_CW2015=y
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
CONFIG_BATTERY_SBS=y
# CONFIG_CHARGER_SBS is not set
# CONFIG_MANAGER_SBS is not set
@@ -3582,9 +3716,11 @@ CONFIG_CHARGER_GPIO=y
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_ROCKCHIP_CHARGER_MANAGER is not set
# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
# CONFIG_CHARGER_SC8551 is not set
# CONFIG_CHARGER_SC89890 is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24257 is not set
@@ -3593,18 +3729,21 @@ CONFIG_CHARGER_BQ24735=y
CONFIG_CHARGER_BQ25700=y
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_BQ25980 is not set
-# CONFIG_CHARGER_SMB347 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_BATTERY_RT5033 is not set
-# CONFIG_CHARGER_RT9455 is not set
-# CONFIG_CHARGER_UCS1002 is not set
-# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_CHARGER_BQ256XX is not set
# CONFIG_BATTERY_RK816 is not set
CONFIG_BATTERY_RK817=y
CONFIG_CHARGER_RK817=y
# CONFIG_BATTERY_RK818 is not set
# CONFIG_CHARGER_RK818 is not set
# CONFIG_CHARGER_SGM41542 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_UCS1002 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3627,13 +3766,15 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
# CONFIG_SENSORS_ARM_SCMI is not set
-# CONFIG_SENSORS_ASPEED is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU is not set
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
@@ -3657,6 +3798,7 @@ CONFIG_SENSORS_GPIO_FAN=y
# CONFIG_SENSORS_LTC2947_I2C is not set
# CONFIG_SENSORS_LTC2947_SPI is not set
# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2992 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
@@ -3664,12 +3806,15 @@ CONFIG_SENSORS_GPIO_FAN=y
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX127 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX31722 is not set
# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_SENSORS_MAX6620 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
@@ -3678,6 +3823,7 @@ CONFIG_SENSORS_GPIO_FAN=y
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_LM63 is not set
@@ -3701,21 +3847,28 @@ CONFIG_SENSORS_GPIO_FAN=y
# CONFIG_SENSORS_NTC_THERMISTOR is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT6775_I2C is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
# CONFIG_SENSORS_OCC_P8_I2C is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
CONFIG_SENSORS_PWM_FAN=y
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHT4x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC2305 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
@@ -3730,6 +3883,7 @@ CONFIG_SENSORS_PWM_FAN=y
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_INA238 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
@@ -3738,6 +3892,7 @@ CONFIG_SENSORS_PWM_FAN=y
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_TMP464 is not set
# CONFIG_SENSORS_TMP513 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
@@ -3782,6 +3937,7 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_OPEN_TIMEOUT=0
# CONFIG_WATCHDOG_SYSFS is not set
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set
#
# Watchdog Pretimeout Governors
@@ -3804,6 +3960,7 @@ CONFIG_KHADAS_WATCHDOG=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_I6300ESB_WDT is not set
+# CONFIG_HP_WATCHDOG is not set
# CONFIG_MEN_A21_WDT is not set
#
@@ -3849,6 +4006,7 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_MP2629 is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
# CONFIG_LPC_ICH is not set
@@ -3864,6 +4022,7 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_MAX77650 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77714 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
@@ -3872,15 +4031,21 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_MAX96745 is not set
# CONFIG_MFD_MAX96755F is not set
# CONFIG_MFD_MT6360 is not set
+# CONFIG_MFD_MT6370 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_SY7636A is not set
CONFIG_MFD_RDC321X=m
+# CONFIG_MFD_RT4831 is not set
# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RK618 is not set
# CONFIG_MFD_RK628 is not set
@@ -3888,6 +4053,7 @@ CONFIG_MFD_RDC321X=m
# CONFIG_MFD_RK630_I2C is not set
# CONFIG_MFD_RK630_SPI is not set
CONFIG_MFD_RK806=y
+# CONFIG_MFD_RK806_I2C is not set
CONFIG_MFD_RK806_SPI=y
CONFIG_MFD_RK808=y
# CONFIG_MFD_RK1000 is not set
@@ -3903,7 +4069,6 @@ CONFIG_MFD_RK808=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
-# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TI_AM335X_TSCADC is not set
@@ -3924,7 +4089,6 @@ CONFIG_MFD_TPS6586X=y
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_WL1273_CORE is not set
@@ -3941,13 +4105,17 @@ CONFIG_MFD_TPS6586X=y
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ROHM_BD718XX is not set
-# CONFIG_MFD_ROHM_BD70528 is not set
# CONFIG_MFD_ROHM_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_KHADAS_MCU is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_RAVE_SP_CORE is not set
# CONFIG_MFD_INTEL_M10_BMC is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
# end of Multifunction device drivers
CONFIG_REGULATOR=y
@@ -3959,6 +4127,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_ACT8865=y
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ARM_SCMI is not set
+# CONFIG_REGULATOR_DA9121 is not set
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
CONFIG_REGULATOR_FAN53555=y
@@ -3976,8 +4145,10 @@ CONFIG_REGULATOR_LP8752=y
# CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8893 is not set
# CONFIG_REGULATOR_MAX8952 is not set
# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MAX20086 is not set
# CONFIG_REGULATOR_MAX77826 is not set
# CONFIG_REGULATOR_MCP16502 is not set
# CONFIG_REGULATOR_MP5416 is not set
@@ -3986,7 +4157,9 @@ CONFIG_REGULATOR_MP8865=y
# CONFIG_REGULATOR_MP886X is not set
# CONFIG_REGULATOR_MPQ7920 is not set
# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_MT6315 is not set
# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
# CONFIG_REGULATOR_PFUZE100 is not set
# CONFIG_REGULATOR_PV88060 is not set
# CONFIG_REGULATOR_PV88080 is not set
@@ -3999,13 +4172,20 @@ CONFIG_REGULATOR_RK806=y
CONFIG_REGULATOR_RK808=y
CONFIG_REGULATOR_RK860X=y
# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RT5190A is not set
+# CONFIG_REGULATOR_RT5759 is not set
+# CONFIG_REGULATOR_RT6160 is not set
+# CONFIG_REGULATOR_RT6245 is not set
+# CONFIG_REGULATOR_RTQ2134 is not set
# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_RTQ6752 is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_SY8827N is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS6286X is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
CONFIG_REGULATOR_TPS65132=y
@@ -4016,10 +4196,16 @@ CONFIG_REGULATOR_TPS6586X=y
# CONFIG_REGULATOR_QCOM_LABIBB is not set
CONFIG_REGULATOR_XZ3216=y
# CONFIG_RC_CORE is not set
+
+#
+# CEC support
+#
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_CEC_CH7322 is not set
# CONFIG_USB_PULSE8_CEC is not set
# CONFIG_USB_RAINSHADOW_CEC is not set
+# end of CEC support
+
CONFIG_MEDIA_SUPPORT=y
# CONFIG_MEDIA_SUPPORT_FILTER is not set
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
@@ -4047,13 +4233,13 @@ CONFIG_DVB_CORE=y
#
# Video4Linux options
#
-CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_V4L2_I2C=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L2_FWNODE=y
+CONFIG_V4L2_ASYNC=y
# end of Video4Linux options
#
@@ -4073,6 +4259,10 @@ CONFIG_DVB_DYNAMIC_MINORS=y
# CONFIG_DVB_ULE_DEBUG is not set
# end of Digital TV options
+#
+# Media drivers
+#
+
#
# Media drivers
#
@@ -4081,23 +4271,20 @@ CONFIG_MEDIA_USB_SUPPORT=y
#
# Webcam devices
#
-CONFIG_USB_VIDEO_CLASS=y
-# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set
# CONFIG_USB_GSPCA is not set
# CONFIG_USB_PWC is not set
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
# CONFIG_VIDEO_USBTV is not set
+CONFIG_USB_VIDEO_CLASS=y
+# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set
#
# Analog TV USB devices
#
-# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_GO7007 is not set
# CONFIG_VIDEO_HDPVR is not set
+# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_STK1160_COMMON is not set
-# CONFIG_VIDEO_GO7007 is not set
#
# Analog/digital TV USB devices
@@ -4108,12 +4295,12 @@ CONFIG_USB_VIDEO_CLASS=y
#
# Digital TV USB devices
#
+# CONFIG_DVB_AS102 is not set
+# CONFIG_DVB_B2C2_FLEXCOP_USB is not set
# CONFIG_DVB_USB_V2 is not set
+# CONFIG_SMS_USB_DRV is not set
# CONFIG_DVB_TTUSB_BUDGET is not set
# CONFIG_DVB_TTUSB_DEC is not set
-# CONFIG_SMS_USB_DRV is not set
-# CONFIG_DVB_B2C2_FLEXCOP_USB is not set
-# CONFIG_DVB_AS102 is not set
#
# Webcam, TV (analog/digital) USB devices
@@ -4128,217 +4315,199 @@ CONFIG_USB_VIDEO_CLASS=y
# CONFIG_USB_MSI2500 is not set
# CONFIG_MEDIA_PCI_SUPPORT is not set
CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_SI470X is not set
-# CONFIG_RADIO_SI4713 is not set
-# CONFIG_USB_MR800 is not set
-# CONFIG_USB_DSBR is not set
# CONFIG_RADIO_MAXIRADIO is not set
+# CONFIG_RADIO_SAA7706H is not set
# CONFIG_RADIO_SHARK is not set
# CONFIG_RADIO_SHARK2 is not set
-# CONFIG_USB_KEENE is not set
-# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_MA901 is not set
+# CONFIG_RADIO_SI4713 is not set
# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
# CONFIG_RADIO_TEF6862 is not set
# CONFIG_RADIO_WL1273 is not set
-CONFIG_VIDEOBUF2_CORE=y
-CONFIG_VIDEOBUF2_V4L2=y
-CONFIG_VIDEOBUF2_MEMOPS=y
-CONFIG_VIDEOBUF2_CMA_SG=y
-CONFIG_VIDEOBUF2_VMALLOC=y
-CONFIG_VIDEOBUF2_DMA_SG=y
+# CONFIG_USB_DSBR is not set
+# CONFIG_USB_KEENE is not set
+# CONFIG_USB_MA901 is not set
+# CONFIG_USB_MR800 is not set
+# CONFIG_USB_RAREMONO is not set
+# CONFIG_RADIO_SI470X is not set
+CONFIG_MEDIA_PLATFORM_DRIVERS=y
CONFIG_V4L_PLATFORM_DRIVERS=y
-# CONFIG_VIDEO_CAFE_CCIC is not set
-# CONFIG_VIDEO_CADENCE is not set
-# CONFIG_VIDEO_ASPEED is not set
-# CONFIG_VIDEO_MUX is not set
-CONFIG_VIDEO_ROCKCHIP_CIF=y
-CONFIG_ROCKCHIP_CIF_WORKMODE_PINGPONG=y
-# CONFIG_ROCKCHIP_CIF_WORKMODE_ONEFRAME is not set
-CONFIG_ROCKCHIP_CIF_USE_DUMMY_BUF=y
-# CONFIG_ROCKCHIP_CIF_USE_NONE_DUMMY_BUF is not set
-# CONFIG_ROCKCHIP_CIF_USE_MONITOR is not set
-# CONFIG_VIDEO_ROCKCHIP_RKISP1 is not set
-CONFIG_VIDEO_ROCKCHIP_ISP=y
-CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V1X=y
-# CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V20 is not set
-CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V21=y
-CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V30=y
-# CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V32 is not set
-CONFIG_VIDEO_ROCKCHIP_ISPP=y
-# CONFIG_VIDEO_ROCKCHIP_ISPP_FEC is not set
-# CONFIG_VIDEO_ROCKCHIP_ISPP_VERSION_V10 is not set
-CONFIG_VIDEO_ROCKCHIP_ISPP_VERSION_V20=y
-CONFIG_VIDEO_ROCKCHIP_HDMIRX_CLASS=y
-# CONFIG_VIDEO_ROCKCHIP_HDMIRX is not set
-# CONFIG_VIDEO_XILINX is not set
+# CONFIG_SDR_PLATFORM_DRIVERS is not set
+# CONFIG_DVB_PLATFORM_DRIVERS is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
-CONFIG_VIDEO_ROCKCHIP_RGA=y
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-# CONFIG_SDR_PLATFORM_DRIVERS is not set
+# CONFIG_VIDEO_MUX is not set
#
-# MMC/SDIO DVB adapters
+# Allegro DVT media platform drivers
#
-# CONFIG_SMS_SDIO_DRV is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-# CONFIG_DVB_TEST_DRIVERS is not set
-# end of Media drivers
#
-# Media ancillary drivers
+# Amlogic media platform drivers
#
-CONFIG_MEDIA_ATTACH=y
#
-# Audio decoders, processors and mixers
+# Amphion drivers
#
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA1997X is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-# CONFIG_VIDEO_MSP3400 is not set
-# CONFIG_VIDEO_CS3308 is not set
-# CONFIG_VIDEO_CS5345 is not set
-# CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_TLV320AIC23B is not set
-# CONFIG_VIDEO_UDA1342 is not set
-# CONFIG_VIDEO_WM8775 is not set
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-# CONFIG_VIDEO_SONY_BTF_MPX is not set
-# end of Audio decoders, processors and mixers
#
-# RDS decoders
+# Aspeed media platform drivers
#
-# CONFIG_VIDEO_SAA6588 is not set
-# end of RDS decoders
+# CONFIG_VIDEO_ASPEED is not set
#
-# Video decoders
+# Atmel media platform drivers
#
-# CONFIG_VIDEO_ADV7180 is not set
-# CONFIG_VIDEO_ADV7183 is not set
-# CONFIG_VIDEO_ADV748X is not set
-# CONFIG_VIDEO_ADV7604 is not set
-# CONFIG_VIDEO_ADV7842 is not set
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_EP9461E is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_IT6616 is not set
-CONFIG_VIDEO_LT6911UXC=y
-# CONFIG_VIDEO_LT6911UXE is not set
-CONFIG_VIDEO_LT7911D=y
-# CONFIG_VIDEO_LT7911UXC is not set
-# CONFIG_VIDEO_LT8619C is not set
-# CONFIG_VIDEO_ML86V7667 is not set
-# CONFIG_VIDEO_NVP6158 is not set
-# CONFIG_VIDEO_NVP6188 is not set
-# CONFIG_VIDEO_NVP6324 is not set
-# CONFIG_VIDEO_OTP_EEPROM is not set
-CONFIG_VIDEO_RK628=y
-CONFIG_VIDEO_RK628_CSI=y
-CONFIG_VIDEO_RK628_BT1120=y
-# CONFIG_VIDEO_SAA7110 is not set
-# CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_TC358743 is not set
-CONFIG_VIDEO_TC35874X=y
-# CONFIG_VIDEO_TECHPOINT is not set
-# CONFIG_VIDEO_THCV244 is not set
-# CONFIG_VIDEO_TVP514X is not set
-# CONFIG_VIDEO_TVP5150 is not set
-# CONFIG_VIDEO_TVP7002 is not set
-# CONFIG_VIDEO_TW2804 is not set
-# CONFIG_VIDEO_TW9903 is not set
-# CONFIG_VIDEO_TW9906 is not set
-# CONFIG_VIDEO_TW9910 is not set
-# CONFIG_VIDEO_VPX3220 is not set
-# CONFIG_VIDEO_MAX9286 is not set
-# CONFIG_VIDEO_MAX96712 is not set
-# CONFIG_VIDEO_MAX96714 is not set
-# CONFIG_VIDEO_MAX96722 is not set
-# CONFIG_VIDEO_DES_MAXIM4C is not set
#
-# Video and audio decoders
+# Cadence media platform drivers
#
-# CONFIG_VIDEO_SAA717X is not set
-# CONFIG_VIDEO_CX25840 is not set
-# CONFIG_VIDEO_IT66353 is not set
-# end of Video decoders
+# CONFIG_VIDEO_CADENCE_CSI2RX is not set
+# CONFIG_VIDEO_CADENCE_CSI2TX is not set
#
-# Video encoders
+# Chips&Media media platform drivers
#
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_ADV7343 is not set
-# CONFIG_VIDEO_ADV7393 is not set
-# CONFIG_VIDEO_ADV7511 is not set
-# CONFIG_VIDEO_AD9389B is not set
-# CONFIG_VIDEO_AK881X is not set
-# CONFIG_VIDEO_THS8200 is not set
-# end of Video encoders
#
-# Video improvement chips
+# Intel media platform drivers
#
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-# end of Video improvement chips
#
-# Audio/Video compression chips
+# Marvell media platform drivers
#
-# CONFIG_VIDEO_SAA6752HS is not set
-# end of Audio/Video compression chips
+# CONFIG_VIDEO_CAFE_CCIC is not set
#
-# SDR tuner chips
+# Mediatek media platform drivers
#
-# CONFIG_SDR_MAX2175 is not set
-# end of SDR tuner chips
#
-# Miscellaneous helper chips
+# NVidia media platform drivers
#
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_M52790 is not set
-# CONFIG_VIDEO_I2C is not set
-# CONFIG_VIDEO_ST_MIPID02 is not set
-CONFIG_VIDEO_RK_IRCUT=y
-# end of Miscellaneous helper chips
+
+#
+# NXP media platform drivers
+#
+
+#
+# Qualcomm media platform drivers
+#
+
+#
+# Renesas media platform drivers
+#
+
+#
+# Rockchip media platform drivers
+#
+CONFIG_VIDEO_ROCKCHIP_CIF=y
+CONFIG_ROCKCHIP_CIF_WORKMODE_PINGPONG=y
+# CONFIG_ROCKCHIP_CIF_WORKMODE_ONEFRAME is not set
+CONFIG_ROCKCHIP_CIF_USE_DUMMY_BUF=y
+# CONFIG_ROCKCHIP_CIF_USE_NONE_DUMMY_BUF is not set
+# CONFIG_ROCKCHIP_CIF_USE_MONITOR is not set
+# CONFIG_VIDEO_ROCKCHIP_RKISP1 is not set
+CONFIG_VIDEO_ROCKCHIP_ISP=y
+CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V1X=y
+# CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V20 is not set
+CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V21=y
+CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V30=y
+# CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V32 is not set
+CONFIG_VIDEO_ROCKCHIP_ISPP=y
+# CONFIG_VIDEO_ROCKCHIP_ISPP_FEC is not set
+# CONFIG_VIDEO_ROCKCHIP_ISPP_VERSION_V10 is not set
+CONFIG_VIDEO_ROCKCHIP_ISPP_VERSION_V20=y
+CONFIG_VIDEO_ROCKCHIP_HDMIRX_CLASS=y
+# CONFIG_VIDEO_ROCKCHIP_HDMIRX is not set
+CONFIG_VIDEO_ROCKCHIP_RGA=y
+# CONFIG_VIDEO_ROCKCHIP_ISP1 is not set
+
+#
+# Samsung media platform drivers
+#
+
+#
+# STMicroelectronics media platform drivers
+#
+
+#
+# Sunxi media platform drivers
+#
+
+#
+# Texas Instruments drivers
+#
+
+#
+# Verisilicon media platform drivers
+#
+# CONFIG_VIDEO_HANTRO is not set
+
+#
+# VIA media platform drivers
+#
+
+#
+# Xilinx media platform drivers
+#
+# CONFIG_VIDEO_XILINX is not set
+
+#
+# MMC/SDIO DVB adapters
+#
+# CONFIG_SMS_SDIO_DRV is not set
+# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_DVB_TEST_DRIVERS is not set
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_V4L2=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_CMA_SG=y
+CONFIG_VIDEOBUF2_VMALLOC=y
+CONFIG_VIDEOBUF2_DMA_SG=y
+# end of Media drivers
+
+#
+# Media ancillary drivers
+#
+CONFIG_MEDIA_ATTACH=y
+# CONFIG_VIDEO_CAM_SLEEP_WAKEUP is not set
#
# Camera sensor devices
#
# CONFIG_VIDEO_AR0230 is not set
+# CONFIG_VIDEO_AR0521 is not set
# CONFIG_VIDEO_AR0822 is not set
+# CONFIG_VIDEO_AR2020 is not set
+# CONFIG_VIDEO_BF3925 is not set
# CONFIG_VIDEO_GC02M2 is not set
+# CONFIG_VIDEO_GC0312 is not set
+# CONFIG_VIDEO_GC0329 is not set
+# CONFIG_VIDEO_GC0403 is not set
+# CONFIG_VIDEO_GC05A2 is not set
# CONFIG_VIDEO_GC08A3 is not set
# CONFIG_VIDEO_GC1084 is not set
+# CONFIG_VIDEO_GC2035 is not set
# CONFIG_VIDEO_GC2053 is not set
# CONFIG_VIDEO_GC2093 is not set
# CONFIG_VIDEO_GC2145 is not set
+# CONFIG_VIDEO_GC2155 is not set
+# CONFIG_VIDEO_GC2355 is not set
+# CONFIG_VIDEO_GC2375H is not set
# CONFIG_VIDEO_GC2385 is not set
# CONFIG_VIDEO_GC3003 is not set
# CONFIG_VIDEO_GC4023 is not set
# CONFIG_VIDEO_GC4653 is not set
# CONFIG_VIDEO_GC4663 is not set
# CONFIG_VIDEO_GC4C33 is not set
+# CONFIG_VIDEO_GC5024 is not set
# CONFIG_VIDEO_GC5025 is not set
# CONFIG_VIDEO_GC5035 is not set
CONFIG_VIDEO_GC8034=y
# CONFIG_VIDEO_HI556 is not set
+# CONFIG_VIDEO_HI846 is not set
+# CONFIG_VIDEO_HI847 is not set
+# CONFIG_VIDEO_IMX208 is not set
# CONFIG_VIDEO_IMX214 is not set
# CONFIG_VIDEO_IMX219 is not set
# CONFIG_VIDEO_IMX258 is not set
@@ -4352,22 +4521,50 @@ CONFIG_VIDEO_GC8034=y
# CONFIG_VIDEO_IMX334 is not set
# CONFIG_VIDEO_IMX335 is not set
# CONFIG_VIDEO_IMX347 is not set
+# CONFIG_VIDEO_IMX355 is not set
# CONFIG_VIDEO_IMX378 is not set
+# CONFIG_VIDEO_IMX412 is not set
CONFIG_VIDEO_IMX415=y
CONFIG_VIDEO_IMX464=y
# CONFIG_VIDEO_IMX492 is not set
-# CONFIG_VIDEO_IMX355 is not set
# CONFIG_VIDEO_IMX577 is not set
# CONFIG_VIDEO_IMX586 is not set
+# CONFIG_VIDEO_JX_F37 is not set
+# CONFIG_VIDEO_JX_H62 is not set
+# CONFIG_VIDEO_JX_H65 is not set
# CONFIG_VIDEO_JX_K17 is not set
+# CONFIG_VIDEO_MIS2031 is not set
+# CONFIG_VIDEO_MIS4001 is not set
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M032 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_OG01A10 is not set
+# CONFIG_VIDEO_OG01A1B is not set
+# CONFIG_VIDEO_OG02B10 is not set
# CONFIG_VIDEO_OS02G10 is not set
# CONFIG_VIDEO_OS02K10 is not set
# CONFIG_VIDEO_OS03B10 is not set
CONFIG_VIDEO_OS04A10=y
+# CONFIG_VIDEO_OS04D10 is not set
# CONFIG_VIDEO_OS05A20 is not set
# CONFIG_VIDEO_OS08A20 is not set
+# CONFIG_VIDEO_OV02A10 is not set
# CONFIG_VIDEO_OV02B10 is not set
# CONFIG_VIDEO_OV02K10 is not set
+# CONFIG_VIDEO_OV08D10 is not set
+# CONFIG_VIDEO_OV12D2Q is not set
+CONFIG_VIDEO_OV13850=y
+CONFIG_VIDEO_OV13855=y
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV13B10 is not set
+# CONFIG_VIDEO_OV16885 is not set
# CONFIG_VIDEO_OV16A10 is not set
# CONFIG_VIDEO_OV16A1Q is not set
# CONFIG_VIDEO_OV2640 is not set
@@ -4382,34 +4579,36 @@ CONFIG_VIDEO_OV4689=y
# CONFIG_VIDEO_OV5640 is not set
# CONFIG_VIDEO_OV5645 is not set
# CONFIG_VIDEO_OV5647 is not set
-# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV5648 is not set
# CONFIG_VIDEO_OV5670 is not set
# CONFIG_VIDEO_OV5675 is not set
+# CONFIG_VIDEO_OV5693 is not set
CONFIG_VIDEO_OV5695=y
+# CONFIG_VIDEO_OV6650 is not set
CONFIG_VIDEO_OV7251=y
-# CONFIG_VIDEO_OV772X is not set
# CONFIG_VIDEO_OV7640 is not set
# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV772X is not set
# CONFIG_VIDEO_OV7740 is not set
# CONFIG_VIDEO_OV8856 is not set
# CONFIG_VIDEO_OV8858 is not set
+# CONFIG_VIDEO_OV8865 is not set
# CONFIG_VIDEO_OV9281 is not set
+# CONFIG_VIDEO_OV9282 is not set
# CONFIG_VIDEO_OV9640 is not set
# CONFIG_VIDEO_OV9650 is not set
-# CONFIG_VIDEO_OV12D2Q is not set
-CONFIG_VIDEO_OV13850=y
-CONFIG_VIDEO_OV13855=y
-# CONFIG_VIDEO_OV13858 is not set
-# CONFIG_VIDEO_VS6624 is not set
-# CONFIG_VIDEO_MT9M001 is not set
-# CONFIG_VIDEO_MT9M032 is not set
-# CONFIG_VIDEO_MT9M111 is not set
-# CONFIG_VIDEO_MT9P031 is not set
-# CONFIG_VIDEO_MT9T001 is not set
-# CONFIG_VIDEO_MT9T112 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_MT9V032 is not set
-# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_PREISP_DUMMY_SENSOR is not set
+# CONFIG_VIDEO_RDACM20 is not set
+# CONFIG_VIDEO_RDACM21 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K3L6XX is not set
+# CONFIG_VIDEO_S5K3L8XX is not set
+# CONFIG_VIDEO_S5K4ECGX is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_S5K6AA is not set
+# CONFIG_VIDEO_S5KJN1 is not set
# CONFIG_VIDEO_SC031GS is not set
# CONFIG_VIDEO_SC035GS is not set
# CONFIG_VIDEO_SC132GS is not set
@@ -4422,6 +4621,7 @@ CONFIG_VIDEO_OV13855=y
# CONFIG_VIDEO_SC230AI is not set
# CONFIG_VIDEO_SC2310 is not set
# CONFIG_VIDEO_SC2336 is not set
+# CONFIG_VIDEO_SC2355 is not set
# CONFIG_VIDEO_SC301IOT is not set
# CONFIG_VIDEO_SC3336 is not set
# CONFIG_VIDEO_SC3338 is not set
@@ -4430,6 +4630,8 @@ CONFIG_VIDEO_OV13855=y
# CONFIG_VIDEO_SC4238 is not set
# CONFIG_VIDEO_SC430CS is not set
# CONFIG_VIDEO_SC4336 is not set
+# CONFIG_VIDEO_SC4336P is not set
+# CONFIG_VIDEO_SC450AI is not set
# CONFIG_VIDEO_SC500AI is not set
# CONFIG_VIDEO_SC501AI is not set
# CONFIG_VIDEO_SC530AI is not set
@@ -4437,20 +4639,10 @@ CONFIG_VIDEO_OV13855=y
# CONFIG_VIDEO_SC850SL is not set
# CONFIG_VIDEO_SENSOR_ADAPTER is not set
# CONFIG_VIDEO_SR030PC30 is not set
-# CONFIG_VIDEO_NOON010PC30 is not set
-# CONFIG_VIDEO_M5MOLS is not set
-# CONFIG_VIDEO_RDACM20 is not set
-# CONFIG_VIDEO_RJ54N1 is not set
-# CONFIG_VIDEO_S5K3L6XX is not set
-# CONFIG_VIDEO_S5K6AA is not set
-# CONFIG_VIDEO_S5K6A3 is not set
-# CONFIG_VIDEO_S5K4ECGX is not set
-# CONFIG_VIDEO_S5K5BAF is not set
-# CONFIG_VIDEO_S5KJN1 is not set
-# CONFIG_VIDEO_SMIAPP is not set
+# CONFIG_VIDEO_VS6624 is not set
+# CONFIG_VIDEO_CCS is not set
# CONFIG_VIDEO_ET8EK8 is not set
-# CONFIG_VIDEO_S5C73M3 is not set
-# CONFIG_VIDEO_PREISP_DUMMY_SENSOR is not set
+# CONFIG_VIDEO_M5MOLS is not set
# end of Camera sensor devices
#
@@ -4463,6 +4655,7 @@ CONFIG_VIDEO_CN3927V=m
CONFIG_VIDEO_DW9714=m
# CONFIG_VIDEO_DW9763 is not set
CONFIG_VIDEO_DW9768=m
+# CONFIG_VIDEO_DW9800V is not set
CONFIG_VIDEO_DW9800W=m
CONFIG_VIDEO_DW9807_VCM=m
CONFIG_VIDEO_FP5510=m
@@ -4479,16 +4672,140 @@ CONFIG_VIDEO_FP5510=m
# end of Flash devices
#
-# SPI helper chips
+# Audio decoders, processors and mixers
#
-# CONFIG_VIDEO_GS1662 is not set
-# CONFIG_VIDEO_ROCKCHIP_PREISP is not set
-# end of SPI helper chips
+# CONFIG_VIDEO_CS3308 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_SONY_BTF_MPX is not set
+# CONFIG_VIDEO_TDA1997X is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_UDA1342 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_WM8775 is not set
+# end of Audio decoders, processors and mixers
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+# end of RDS decoders
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_ADV7183 is not set
+# CONFIG_VIDEO_ADV748X is not set
+# CONFIG_VIDEO_ADV7604 is not set
+# CONFIG_VIDEO_ADV7842 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_EP9461E is not set
+# CONFIG_VIDEO_ISL7998X is not set
+# CONFIG_VIDEO_IT6616 is not set
+# CONFIG_VIDEO_KS0127 is not set
+CONFIG_VIDEO_LT6911UXC=y
+# CONFIG_VIDEO_LT6911UXE is not set
+CONFIG_VIDEO_LT7911D=y
+# CONFIG_VIDEO_LT7911UXC is not set
+# CONFIG_VIDEO_LT8619C is not set
+# CONFIG_VIDEO_MAX9286 is not set
+# CONFIG_VIDEO_MAX96712 is not set
+# CONFIG_VIDEO_MAX96714 is not set
+# CONFIG_VIDEO_MAX96722 is not set
+# CONFIG_VIDEO_MAX96756 is not set
+# CONFIG_VIDEO_ML86V7667 is not set
+# CONFIG_VIDEO_NVP6158 is not set
+# CONFIG_VIDEO_NVP6188 is not set
+# CONFIG_VIDEO_NVP6324 is not set
+# CONFIG_VIDEO_OTP_EEPROM is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_TC358743 is not set
+CONFIG_VIDEO_TC35874X=y
+# CONFIG_VIDEO_TECHPOINT is not set
+# CONFIG_VIDEO_THCV244 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_TW2804 is not set
+# CONFIG_VIDEO_TW9903 is not set
+# CONFIG_VIDEO_TW9906 is not set
+# CONFIG_VIDEO_TW9910 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+CONFIG_VIDEO_RK628=y
+CONFIG_VIDEO_RK628_CSI=y
+CONFIG_VIDEO_RK628_BT1120=y
+# CONFIG_VIDEO_DES_MAXIM2C is not set
+# CONFIG_VIDEO_DES_MAXIM4C is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_CX25840 is not set
+# CONFIG_VIDEO_IT66353 is not set
+# end of Video decoders
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_AD9389B is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_ADV7393 is not set
+# CONFIG_VIDEO_ADV7511 is not set
+# CONFIG_VIDEO_AK881X is not set
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_THS8200 is not set
+# end of Video encoders
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+# end of Video improvement chips
+
+#
+# Audio/Video compression chips
+#
+# CONFIG_VIDEO_SAA6752HS is not set
+# end of Audio/Video compression chips
+
+#
+# SDR tuner chips
+#
+# CONFIG_SDR_MAX2175 is not set
+# end of SDR tuner chips
+
+#
+# Miscellaneous helper chips
+#
+# CONFIG_VIDEO_I2C is not set
+# CONFIG_VIDEO_M52790 is not set
+CONFIG_VIDEO_RK_IRCUT=y
+# CONFIG_VIDEO_ST_MIPID02 is not set
+# CONFIG_VIDEO_THS7303 is not set
+# end of Miscellaneous helper chips
#
# Media SPI Adapters
#
CONFIG_CXD2880_SPI_DRV=m
+# CONFIG_VIDEO_GS1662 is not set
+# CONFIG_VIDEO_ROCKCHIP_PREISP is not set
# end of Media SPI Adapters
CONFIG_MEDIA_TUNER=y
@@ -4496,43 +4813,43 @@ CONFIG_MEDIA_TUNER=y
#
# Customize TV tuners
#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_E4000=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_M88RS6000T=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
CONFIG_MEDIA_TUNER_MSI001=m
-CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2060=m
CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_SI2157=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18250=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_MXL301RF=m
-CONFIG_MEDIA_TUNER_QM1D1C0042=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
# end of Customize TV tuners
#
@@ -4542,124 +4859,124 @@ CONFIG_MEDIA_TUNER_QM1D1B0004=m
#
# Multistandard (satellite) frontends
#
+CONFIG_DVB_M88DS3103=m
+CONFIG_DVB_MXL5XX=m
CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV0910=m
CONFIG_DVB_STV6110x=m
CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
#
# Multistandard (cable + terrestrial) frontends
#
CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
+CONFIG_DVB_SI2165=m
+CONFIG_DVB_TDA18271C2DD=m
#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
CONFIG_DVB_CX24123=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
+CONFIG_DVB_SI21XX=m
CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0288=m
CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_TDA10071=m
CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
#
# DVB-T (terrestrial) frontends
#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
+CONFIG_DVB_AF9013=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_CXD2841ER=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m
CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
+CONFIG_DVB_DRXD=m
CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_NXT6000=m
CONFIG_DVB_RTL2830=m
CONFIG_DVB_RTL2832=m
CONFIG_DVB_RTL2832_SDR=m
+CONFIG_DVB_S5H1432=m
CONFIG_DVB_SI2168=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
CONFIG_DVB_ZD1301_DEMOD=m
+CONFIG_DVB_ZL10353=m
CONFIG_DVB_CXD2880=m
#
# DVB-C (cable) frontends
#
-CONFIG_DVB_VES1820=m
+CONFIG_DVB_STV0297=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
+CONFIG_DVB_VES1820=m
#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LG2160=m
CONFIG_DVB_LGDT3305=m
CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_MXL692=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
CONFIG_DVB_S5H1411=m
#
# ISDB-T (terrestrial) frontends
#
-CONFIG_DVB_S921=m
CONFIG_DVB_DIB8000=m
CONFIG_DVB_MB86A20S=m
+CONFIG_DVB_S921=m
#
# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
#
-CONFIG_DVB_TC90522=m
CONFIG_DVB_MN88443X=m
+CONFIG_DVB_TC90522=m
#
# Digital terrestrial only tuners/PLL
@@ -4671,25 +4988,25 @@ CONFIG_DVB_TUNER_DIB0090=m
#
# SEC control devices for DVB-S
#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBH29=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_AF9033=m
+CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_HELENE=m
+CONFIG_DVB_HORUS3A=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
+CONFIG_DVB_IX2505V=m
CONFIG_DVB_LGS8GL5=m
CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
+CONFIG_DVB_LNBH25=m
+CONFIG_DVB_LNBH29=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_DRX39XYJ=m
#
# Common Interface (EN50221) controller drivers
@@ -4707,24 +5024,20 @@ CONFIG_DVB_SP2=m
#
# Graphics support
#
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=y
# CONFIG_DRM_EDID is not set
+# CONFIG_DRM_IGNORE_IOTCL_PERMIT is not set
CONFIG_DRM_MIPI_DSI=y
-# CONFIG_DRM_DP is not set
-# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DEBUG_MM is not set
-# CONFIG_DRM_DEBUG_SELFTEST is not set
CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_KMS_FB_HELPER=y
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
+# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=200
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
-# CONFIG_DRM_DP_CEC is not set
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
+# CONFIG_DRM_DP is not set
+CONFIG_DRM_GEM_DMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SCHED=y
@@ -4768,32 +5081,42 @@ CONFIG_ROCKCHIP_RGB=y
# CONFIG_ROCKCHIP_VCONN is not set
# CONFIG_DRM_ROCKCHIP_VVOP is not set
CONFIG_ROCKCHIP_DW_HDCP2=y
+# CONFIG_DRM_VMWGFX is not set
# CONFIG_DRM_UDL is not set
# CONFIG_DRM_AST is not set
# CONFIG_DRM_MGAG200 is not set
# CONFIG_DRM_RCAR_DW_HDMI is not set
-# CONFIG_DRM_RCAR_LVDS is not set
+# CONFIG_DRM_RCAR_USE_LVDS is not set
+# CONFIG_DRM_RCAR_USE_MIPI_DSI is not set
# CONFIG_DRM_QXL is not set
-# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_VIRTIO_GPU is not set
CONFIG_DRM_PANEL=y
#
# Display Panels
#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
+# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
+# CONFIG_DRM_PANEL_DSI_CM is not set
# CONFIG_DRM_PANEL_LVDS is not set
CONFIG_DRM_PANEL_SIMPLE=y
+# CONFIG_DRM_PANEL_EDP is not set
+# CONFIG_DRM_PANEL_EBBG_FT8719 is not set
# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
-# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_JDI_R63452 is not set
+# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
@@ -4801,7 +5124,11 @@ CONFIG_DRM_PANEL_SIMPLE=y
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
# CONFIG_DRM_PANEL_MAXIM_MAX96752F is not set
@@ -4810,33 +5137,38 @@ CONFIG_DRM_PANEL_SIMPLE=y
# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
-# CONFIG_DRM_PANEL_RADXA_DISPLAY_8HD is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
-# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
+# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
-# CONFIG_DRM_PANEL_INNOLUX_AFJ101_BA2131 is not set
# end of Display Panels
CONFIG_DRM_BRIDGE=y
@@ -4846,10 +5178,16 @@ CONFIG_DRM_PANEL_BRIDGE=y
# Display Interface Bridges
#
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
# CONFIG_DRM_CHRONTEL_CH7033 is not set
# CONFIG_DRM_DISPLAY_CONNECTOR is not set
# CONFIG_DRM_ITE_IT6161 is not set
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_MAXIM_MAX96745 is not set
# CONFIG_DRM_MAXIM_MAX96755F is not set
@@ -4870,24 +5208,31 @@ CONFIG_DRM_PANEL_BRIDGE=y
# CONFIG_DRM_TOSHIBA_TC358767 is not set
# CONFIG_DRM_TOSHIBA_TC358768 is not set
# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
# CONFIG_DRM_TI_SN65DSI86 is not set
# CONFIG_DRM_TI_TPD12S015 is not set
# CONFIG_DRM_ANALOGIX_ANX6345 is not set
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
# CONFIG_DRM_I2C_ADV7511 is not set
# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_DW_MIPI_DSI=y
# end of Display Interface Bridges
# CONFIG_DRM_ETNAVIV is not set
-# CONFIG_DRM_ARCPGU is not set
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_HISI_KIRIN is not set
-# CONFIG_DRM_MXSFB is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_GM12U320 is not set
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+# CONFIG_DRM_SIMPLEDRM is not set
# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
# CONFIG_TINYDRM_ILI9225 is not set
# CONFIG_TINYDRM_ILI9341 is not set
# CONFIG_TINYDRM_ILI9486 is not set
@@ -4898,9 +5243,13 @@ CONFIG_DRM_DW_MIPI_DSI=y
# CONFIG_DRM_PL111 is not set
# CONFIG_DRM_LIMA is not set
CONFIG_DRM_PANFROST=y
+CONFIG_DRM_PANTHOR=m
# CONFIG_DRM_TIDSS is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_NOMODESET=y
# CONFIG_MALI400 is not set
CONFIG_MALI_DEVFREQ=y
CONFIG_MALI_MIDGARD=y
@@ -4930,6 +5279,8 @@ CONFIG_MALI_REAL_HW=y
#
# Platform specific options
#
+# end of Platform specific options
+
CONFIG_MALI_CSF_SUPPORT=y
CONFIG_MALI_BIFROST_DEVFREQ=y
CONFIG_MALI_BIFROST_GATOR_SUPPORT=y
@@ -5090,6 +5441,12 @@ CONFIG_ROCKCHIP_MPP_JPGDEC=y
CONFIG_ROCKCHIP_MPP_AV1DEC=y
# CONFIG_ROCKCHIP_MPP_VDPP is not set
# CONFIG_ROCKCHIP_DVBM is not set
+
+#
+# Rockchip video tunnel support
+#
+# CONFIG_ROCKCHIP_VIDEO_TUNNEL is not set
+# end of Rockchip video tunnel support
# end of Rockchip Misc Video driver
CONFIG_VIDEOMODE_HELPERS=y
@@ -5132,7 +5489,9 @@ CONFIG_SND_MAX_CARDS=32
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
@@ -5144,6 +5503,7 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_SERIAL_GENERIC is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_PCI is not set
@@ -5168,7 +5528,9 @@ CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
# CONFIG_SND_USB_VARIAX is not set
CONFIG_SND_SOC=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_ADI is not set
# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
# CONFIG_SND_DESIGNWARE_I2S is not set
@@ -5187,15 +5549,15 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# end of SoC Audio for Freescale CPUs
# CONFIG_SND_I2S_HI6210_I2S is not set
-# CONFIG_SND_I2S_HI3660_I2S is not set
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_MTK_BTCVSD is not set
CONFIG_SND_SOC_ROCKCHIP=y
-# CONFIG_SND_SOC_ROCKCHIP_DLP is not set
+# CONFIG_SND_SOC_ROCKCHIP_DLP_PCM is not set
CONFIG_SND_SOC_ROCKCHIP_I2S=y
CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y
# CONFIG_SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES is not set
@@ -5222,13 +5584,14 @@ CONFIG_SND_SOC_ROCKCHIP_HDMI=y
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not set
-# CONFIG_ZX_TDM is not set
CONFIG_SND_SOC_I2C_AND_SPI=y
#
# CODEC drivers
#
# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_ADAU1761_I2C is not set
# CONFIG_SND_SOC_ADAU1761_SPI is not set
@@ -5237,6 +5600,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ADAU7118_I2C is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
@@ -5244,6 +5608,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AW8738 is not set
# CONFIG_SND_SOC_BD28623 is not set
# CONFIG_SND_SOC_BT_SCO is not set
# CONFIG_SND_SOC_CS35L32 is not set
@@ -5251,11 +5616,16 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_CS35L34 is not set
# CONFIG_SND_SOC_CS35L35 is not set
# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
# CONFIG_SND_SOC_CS42L42 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42L83 is not set
# CONFIG_SND_SOC_CS4234 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
@@ -5287,6 +5657,8 @@ CONFIG_SND_SOC_ES8328_I2C=y
CONFIG_SND_SOC_ES8328_SPI=y
# CONFIG_SND_SOC_ES8396 is not set
# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC_MAX98088 is not set
CONFIG_SND_SOC_MAX98090=y
@@ -5294,8 +5666,10 @@ CONFIG_SND_SOC_MAX98090=y
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9867 is not set
# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
# CONFIG_SND_SOC_MAX98373_I2C is not set
# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
# CONFIG_SND_SOC_MAX9860 is not set
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
@@ -5309,6 +5683,7 @@ CONFIG_SND_SOC_MAX98090=y
# CONFIG_SND_SOC_PCM3060_SPI is not set
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK312X is not set
@@ -5321,17 +5696,22 @@ CONFIG_SND_SOC_RK817=y
CONFIG_SND_SOC_RK_CODEC_DIGITAL=y
# CONFIG_SND_SOC_RK_DSM is not set
CONFIG_SND_SOC_RL6231=y
+# CONFIG_SND_SOC_ROCKCHIP_SPI_CODEC is not set
CONFIG_SND_SOC_RT5616=y
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5640=y
CONFIG_SND_SOC_RT5645=y
CONFIG_SND_SOC_RT5651=y
+# CONFIG_SND_SOC_RT5659 is not set
+# CONFIG_SND_SOC_RT9120 is not set
# CONFIG_SND_SOC_RV1106 is not set
# CONFIG_SND_SOC_SGTL5000 is not set
# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
CONFIG_SND_SOC_SPDIF=y
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
# CONFIG_SND_SOC_SSM4567 is not set
@@ -5342,19 +5722,24 @@ CONFIG_SND_SOC_SPDIF=y
# CONFIG_SND_SOC_TAS2562 is not set
# CONFIG_SND_SOC_TAS2764 is not set
# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS2780 is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
# CONFIG_SND_SOC_TAS6424 is not set
# CONFIG_SND_SOC_TDA7419 is not set
# CONFIG_SND_SOC_TDA7803 is not set
# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC3X is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
# CONFIG_SND_SOC_TLV320ADCX140 is not set
CONFIG_SND_SOC_TS3A227E=y
# CONFIG_SND_SOC_TSCS42XX is not set
@@ -5366,7 +5751,8 @@ CONFIG_SND_SOC_TS3A227E=y
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
@@ -5378,22 +5764,28 @@ CONFIG_SND_SOC_TS3A227E=y
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
# CONFIG_SND_SOC_WM8960 is not set
# CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_WM8985 is not set
# CONFIG_SND_SOC_ZL38060 is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
# CONFIG_SND_SOC_MAX9759 is not set
# CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8315 is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
# CONFIG_SND_SOC_NAU8822 is not set
# CONFIG_SND_SOC_NAU8824 is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
# CONFIG_SND_SOC_AW87XXX is not set
# CONFIG_SND_SOC_AW883XX is not set
# end of CODEC drivers
@@ -5401,6 +5793,8 @@ CONFIG_SND_SOC_TS3A227E=y
CONFIG_SND_SIMPLE_CARD_UTILS=y
CONFIG_SND_SIMPLE_CARD=y
# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
#
# HID support
@@ -5440,6 +5834,7 @@ CONFIG_HID_GENERIC=y
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_GLORIOUS is not set
@@ -5451,6 +5846,8 @@ CONFIG_HID_GENERIC=y
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set
# CONFIG_HID_ITE is not set
@@ -5460,10 +5857,12 @@ CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LED is not set
# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
# CONFIG_HID_LOGITECH is not set
# CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MALTRON is not set
# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MEGAWORLD_FF is not set
# CONFIG_HID_REDRAGON is not set
# CONFIG_HID_MICROSOFT is not set
# CONFIG_HID_MONTEREY is not set
@@ -5477,12 +5876,15 @@ CONFIG_HID_MULTITOUCH=y
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
-# CONFIG_HID_PLAYSTATION is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
# CONFIG_HID_SONY is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_STEAM is not set
@@ -5493,6 +5895,7 @@ CONFIG_HID_MULTITOUCH=y
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_UDRAW_PS3 is not set
@@ -5518,7 +5921,9 @@ CONFIG_USB_HIDDEV=y
#
# I2C HID support
#
-# CONFIG_I2C_HID is not set
+# CONFIG_I2C_HID_OF is not set
+# CONFIG_I2C_HID_OF_ELAN is not set
+# CONFIG_I2C_HID_OF_GOODIX is not set
# end of I2C HID support
# end of HID support
@@ -5620,7 +6025,7 @@ CONFIG_USBIP_VHCI_NR_HCS=1
CONFIG_USBIP_HOST=m
CONFIG_USBIP_VUDC=m
CONFIG_USBIP_DEBUG=y
-# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_CDNS_SUPPORT is not set
# CONFIG_USB_MUSB_HDRC is not set
CONFIG_USB_DWC3=y
# CONFIG_USB_DWC3_HOST is not set
@@ -5694,7 +6099,6 @@ CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
-# CONFIG_USB_SERIAL_XIRCOM is not set
CONFIG_USB_SERIAL_WWAN=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
@@ -5704,6 +6108,7 @@ CONFIG_USB_SERIAL_WISHBONE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_UPD78F0730=m
+# CONFIG_USB_SERIAL_XR is not set
# CONFIG_USB_SERIAL_DEBUG is not set
#
@@ -5735,6 +6140,7 @@ CONFIG_USB_EZUSB_FX2=y
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
+# CONFIG_USB_ONBOARD_HUB is not set
CONFIG_USB_ATM=m
# CONFIG_USB_SPEEDTOUCH is not set
# CONFIG_USB_CXACRU is not set
@@ -5772,10 +6178,6 @@ CONFIG_USB_SNP_CORE=m
CONFIG_USB_SNP_UDC_PLAT=m
CONFIG_USB_M66592=m
CONFIG_USB_BDC_UDC=m
-
-#
-# Platform Support
-#
CONFIG_USB_AMD5536UDC=m
CONFIG_USB_NET2272=m
CONFIG_USB_NET2272_DMA=y
@@ -5823,8 +6225,6 @@ CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
CONFIG_USB_CONFIGFS_F_FS=y
-# CONFIG_USB_CONFIGFS_F_ACC is not set
-# CONFIG_USB_CONFIGFS_F_AUDIO_SRC is not set
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
CONFIG_USB_CONFIGFS_F_UAC2=y
@@ -5877,13 +6277,17 @@ CONFIG_TYPEC_HUSB311=y
# CONFIG_TYPEC_TCPCI_MAXIM is not set
CONFIG_TYPEC_FUSB302=y
# CONFIG_TYPEC_UCSI is not set
-# CONFIG_TYPEC_HD3SS3220 is not set
# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
#
# USB Type-C Multiplexer/DeMultiplexer Switch support
#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
# CONFIG_TYPEC_MUX_PI3USB30532 is not set
# end of USB Type-C Multiplexer/DeMultiplexer Switch support
@@ -5913,7 +6317,6 @@ CONFIG_MMC_SDHCI=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y
-# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
CONFIG_MMC_SDHCI_OF_DWCMSHC=y
# CONFIG_MMC_SDHCI_CADENCE is not set
@@ -5941,6 +6344,7 @@ CONFIG_MMC_HSQ=y
# CONFIG_MMC_SDHCI_XENON is not set
# CONFIG_MMC_SDHCI_OMAP is not set
# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_SCSI_UFSHCD is not set
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
@@ -5991,6 +6395,14 @@ CONFIG_LEDS_IS31FL32XX=y
# CONFIG_LEDS_SPI_BYTE is not set
# CONFIG_LEDS_TI_LMU_COMMON is not set
+#
+# Flash and Torch LED drivers
+#
+
+#
+# RGB LED drivers
+#
+
#
# LED Triggers
#
@@ -6015,6 +6427,11 @@ CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGER_NETDEV=y
CONFIG_LEDS_TRIGGER_PATTERN=m
CONFIG_LEDS_TRIGGER_AUDIO=m
+# CONFIG_LEDS_TRIGGER_TTY is not set
+
+#
+# Simple LED drivers
+#
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC_SUPPORT=y
@@ -6047,6 +6464,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_DS1672 is not set
CONFIG_RTC_DRV_HYM8563=y
# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
CONFIG_RTC_DRV_RK808=y
# CONFIG_RTC_DRV_ROCKCHIP is not set
# CONFIG_RTC_DRV_RS5C372 is not set
@@ -6086,7 +6504,6 @@ CONFIG_RTC_DRV_RK808=y
# CONFIG_RTC_DRV_MAX6916 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RX4581 is not set
-# CONFIG_RTC_DRV_RX6110 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_PCF2123 is not set
@@ -6099,6 +6516,7 @@ CONFIG_RTC_I2C_AND_SPI=y
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
#
# Platform RTC drivers
@@ -6118,6 +6536,7 @@ CONFIG_RTC_I2C_AND_SPI=y
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_OPTEE is not set
# CONFIG_RTC_DRV_ZYNQMP is not set
#
@@ -6132,6 +6551,7 @@ CONFIG_RTC_I2C_AND_SPI=y
#
# HID Sensor RTC drivers
#
+# CONFIG_RTC_DRV_GOLDFISH is not set
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
@@ -6146,7 +6566,6 @@ CONFIG_DMA_OF=y
# CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set
# CONFIG_FSL_QDMA is not set
-# CONFIG_HISI_DMA is not set
# CONFIG_INTEL_IDMA64 is not set
# CONFIG_MV_XOR_V2 is not set
CONFIG_PL330_DMA=y
@@ -6179,11 +6598,11 @@ CONFIG_SW_SYNC=y
CONFIG_SW_SYNC_DEBUG=y
# CONFIG_UDMABUF is not set
# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_SYSFS_STATS=y
-# CONFIG_DMABUF_HEAPS_DEFERRED_FREE is not set
-# CONFIG_DMABUF_HEAPS_PAGE_POOL is not set
+# CONFIG_DMABUF_HEAPS_SYSTEM is not set
CONFIG_DMABUF_HEAPS_CMA=y
# CONFIG_DMABUF_HEAPS_SRAM is not set
# CONFIG_DMABUF_HEAPS_ROCKCHIP is not set
@@ -6196,7 +6615,6 @@ CONFIG_DMABUF_HEAPS_CMA=y
CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_PCI is not set
# CONFIG_VIRTIO_MMIO is not set
-# CONFIG_VIRTIO_DMA_SHARED_BUFFER is not set
# CONFIG_VDPA is not set
CONFIG_VHOST_MENU=y
# CONFIG_VHOST_NET is not set
@@ -6209,9 +6627,9 @@ CONFIG_VHOST_MENU=y
# end of Microsoft Hyper-V guest support
# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
CONFIG_STAGING=y
# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
# CONFIG_RTL8192U is not set
# CONFIG_RTLLIB is not set
# CONFIG_RTL8723BS is not set
@@ -6236,7 +6654,6 @@ CONFIG_STAGING=y
# Analog to digital converters
#
# CONFIG_AD7816 is not set
-# CONFIG_AD7280 is not set
# end of Analog to digital converters
#
@@ -6245,13 +6662,6 @@ CONFIG_STAGING=y
# CONFIG_ADT7316 is not set
# end of Analog digital bi-direction converters
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
#
# Direct Digital Synthesis
#
@@ -6280,17 +6690,8 @@ CONFIG_STAGING=y
# CONFIG_FB_SM750 is not set
# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
# CONFIG_STAGING_BOARD is not set
# CONFIG_LTE_GDM724X is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
CONFIG_FB_TFT=y
CONFIG_FB_TFT_AGM1264K_FL=m
CONFIG_FB_TFT_BD663474=m
@@ -6323,27 +6724,17 @@ CONFIG_FB_TFT_TLS8204=m
CONFIG_FB_TFT_UC1611=m
CONFIG_FB_TFT_UC1701=m
CONFIG_FB_TFT_UPD161704=m
-# CONFIG_FB_TFT_WATTEROTT is not set
# CONFIG_KS7010 is not set
# CONFIG_PI433 is not set
-
-#
-# Gasket devices
-#
-# CONFIG_STAGING_GASKET_FRAMEWORK is not set
-# end of Gasket devices
-
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_FIELDBUS_DEV is not set
# CONFIG_QLGE is not set
-# CONFIG_WFX is not set
-# CONFIG_SPMI_HISI3670 is not set
-# CONFIG_MFD_HI6421_SPMI is not set
+# CONFIG_VME_BUS is not set
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_SURFACE_PLATFORMS=y
CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_PROCFS is not set
@@ -6351,10 +6742,11 @@ CONFIG_COMMON_CLK=y
#
# Clock driver for ARM Reference designs
#
-# CONFIG_ICST is not set
+# CONFIG_CLK_ICST is not set
# CONFIG_CLK_SP810 is not set
# end of Clock driver for ARM Reference designs
+# CONFIG_LMK04832 is not set
# CONFIG_COMMON_CLK_MAX9485 is not set
CONFIG_COMMON_CLK_RK808=y
CONFIG_COMMON_CLK_SCMI=y
@@ -6366,10 +6758,12 @@ CONFIG_COMMON_CLK_SCMI=y
# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
-# CONFIG_CLK_QORIQ is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
# CONFIG_COMMON_CLK_XGENE is not set
CONFIG_COMMON_CLK_PWM=y
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
# CONFIG_COMMON_CLK_FIXED_MMIO is not set
CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_CLK_PX30=y
@@ -6390,6 +6784,8 @@ CONFIG_ROCKCHIP_DDRCLK_SIP_V2=y
# CONFIG_ROCKCHIP_PLL_RK3066 is not set
CONFIG_ROCKCHIP_PLL_RK3399=y
CONFIG_ROCKCHIP_PLL_RK3588=y
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_HWSPINLOCK is not set
#
@@ -6399,19 +6795,18 @@ CONFIG_TIMER_OF=y
CONFIG_TIMER_PROBE=y
CONFIG_CLKSRC_MMIO=y
CONFIG_ROCKCHIP_TIMER=y
-# CONFIG_SUN4I_TIMER is not set
CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
CONFIG_FSL_ERRATUM_A008585=y
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_ARM64_ERRATUM_858921=y
-# CONFIG_MTK_TIMER is not set
# CONFIG_MICROCHIP_PIT64B is not set
# end of Clock Source drivers
CONFIG_MAILBOX=y
# CONFIG_ARM_MHU is not set
+# CONFIG_ARM_MHU_V2 is not set
# CONFIG_PLATFORM_MHU is not set
# CONFIG_PL320_MBOX is not set
# CONFIG_ROCKCHIP_MBOX is not set
@@ -6419,7 +6814,6 @@ CONFIG_MAILBOX=y
# CONFIG_MAILBOX_TEST is not set
CONFIG_IOMMU_IOVA=y
CONFIG_IOMMU_API=y
-# CONFIG_IOMMU_LIMIT_IOVA_ALIGNMENT is not set
CONFIG_IOMMU_SUPPORT=y
#
@@ -6429,9 +6823,12 @@ CONFIG_IOMMU_IO_PGTABLE=y
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+# CONFIG_IOMMU_IO_PGTABLE_DART is not set
# end of Generic IOMMU Pagetable Support
# CONFIG_IOMMU_DEBUGFS is not set
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_OF_IOMMU=y
CONFIG_IOMMU_DMA=y
@@ -6450,6 +6847,7 @@ CONFIG_ARM_SMMU_V3=y
# Rpmsg drivers
#
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+# CONFIG_RPMSG_ROCKCHIP_SOFTIRQ is not set
# CONFIG_RPMSG_VIRTIO is not set
# end of Rpmsg drivers
@@ -6464,11 +6862,6 @@ CONFIG_ARM_SMMU_V3=y
#
# end of Amlogic SoC drivers
-#
-# Aspeed SoC drivers
-#
-# end of Aspeed SoC drivers
-
#
# Broadcom SoC drivers
#
@@ -6482,11 +6875,22 @@ CONFIG_ARM_SMMU_V3=y
# CONFIG_FSL_RCPM is not set
# end of NXP/Freescale QorIQ SoC drivers
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
#
# i.MX SoC drivers
#
# end of i.MX SoC drivers
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
#
# Qualcomm SoC drivers
#
@@ -6513,8 +6917,10 @@ CONFIG_CPU_RK3588=y
# end of Rockchip CPU selection
CONFIG_NO_GKI=y
+# CONFIG_ROCKCHIP_DISABLE_UNUSED is not set
# CONFIG_ROCKCHIP_AMP is not set
# CONFIG_ROCKCHIP_ARM64_ALIGN_FAULT_FIX is not set
+# CONFIG_ROCKCHIP_CSU is not set
CONFIG_ROCKCHIP_GRF=y
# CONFIG_ROCKCHIP_HW_DECOMPRESS is not set
# CONFIG_ROCKCHIP_HW_DECOMPRESS_USER is not set
@@ -6525,8 +6931,10 @@ CONFIG_ROCKCHIP_OPP=y
# CONFIG_ROCKCHIP_OPTIMIZE_RT_PRIO is not set
# CONFIG_ROCKCHIP_PERFORMANCE is not set
CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_ROCKCHIP_REGULATOR_COUPLER=y
CONFIG_ROCKCHIP_PVTM=y
# CONFIG_ROCKCHIP_RAMDISK is not set
+# CONFIG_ROCKCHIP_LITE_ULTRA_SUSPEND is not set
CONFIG_ROCKCHIP_SUSPEND_MODE=y
CONFIG_ROCKCHIP_SYSTEM_MONITOR=y
CONFIG_ROCKCHIP_VENDOR_STORAGE=y
@@ -6569,7 +6977,6 @@ CONFIG_RK_DMABUF_PROCFS=y
#
# Xilinx SoC drivers
#
-# CONFIG_XILINX_VCU is not set
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers
@@ -6605,6 +7012,7 @@ CONFIG_EXTCON=y
# CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_EXTCON_USBC_TUSB320 is not set
# CONFIG_EXTCON_USBC_VIRTUAL_PD is not set
# CONFIG_MEMORY is not set
CONFIG_IIO=y
@@ -6627,19 +7035,28 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
#
# CONFIG_ADIS16201 is not set
# CONFIG_ADIS16209 is not set
+# CONFIG_ADXL313_I2C is not set
+# CONFIG_ADXL313_SPI is not set
# CONFIG_ADXL345_I2C is not set
# CONFIG_ADXL345_SPI is not set
+# CONFIG_ADXL355_I2C is not set
+# CONFIG_ADXL355_SPI is not set
+# CONFIG_ADXL367_SPI is not set
+# CONFIG_ADXL367_I2C is not set
# CONFIG_ADXL372_SPI is not set
# CONFIG_ADXL372_I2C is not set
# CONFIG_BMA180 is not set
# CONFIG_BMA220 is not set
# CONFIG_BMA400 is not set
# CONFIG_BMC150_ACCEL is not set
+# CONFIG_BMI088_ACCEL is not set
# CONFIG_DA280 is not set
# CONFIG_DA311 is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
# CONFIG_DMARD10 is not set
+# CONFIG_FXLS8962AF_I2C is not set
+# CONFIG_FXLS8962AF_SPI is not set
# CONFIG_IIO_ST_ACCEL_3AXIS is not set
# CONFIG_KXSD9 is not set
# CONFIG_KXCJK1013 is not set
@@ -6650,9 +7067,11 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_MMA8452 is not set
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
+# CONFIG_MSA311 is not set
# CONFIG_MXC4005 is not set
# CONFIG_MXC6255 is not set
# CONFIG_SCA3000 is not set
+# CONFIG_SCA3300 is not set
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
# end of Accelerometers
@@ -6664,6 +7083,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_AD7124 is not set
# CONFIG_AD7192 is not set
# CONFIG_AD7266 is not set
+# CONFIG_AD7280 is not set
# CONFIG_AD7291 is not set
# CONFIG_AD7292 is not set
# CONFIG_AD7298 is not set
@@ -6692,6 +7112,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
# CONFIG_MAX1118 is not set
+# CONFIG_MAX11205 is not set
# CONFIG_MAX1241 is not set
# CONFIG_MAX1363 is not set
# CONFIG_MAX9611 is not set
@@ -6704,6 +7125,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_QCOM_SPMI_ADC5 is not set
CONFIG_ROCKCHIP_SARADC=y
# CONFIG_ROCKCHIP_SARADC_TEST_CHN is not set
+# CONFIG_RICHTEK_RTQ6056 is not set
# CONFIG_SD_ADC_MODULATOR is not set
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC0832 is not set
@@ -6717,11 +7139,19 @@ CONFIG_TI_ADS1015=y
# CONFIG_TI_ADS8344 is not set
# CONFIG_TI_ADS8688 is not set
# CONFIG_TI_ADS124S08 is not set
+# CONFIG_TI_ADS131E08 is not set
# CONFIG_TI_TLC4541 is not set
+# CONFIG_TI_TSC2046 is not set
# CONFIG_VF610_ADC is not set
# CONFIG_XILINX_XADC is not set
# end of Analog to digital converters
+#
+# Analog to digital and digital to analog converters
+#
+# CONFIG_AD74413R is not set
+# end of Analog to digital and digital to analog converters
+
#
# Analog Front Ends
#
@@ -6732,9 +7162,17 @@ CONFIG_TI_ADS1015=y
# Amplifiers
#
# CONFIG_AD8366 is not set
+# CONFIG_ADA4250 is not set
# CONFIG_HMC425 is not set
# end of Amplifiers
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7746 is not set
+# end of Capacitance to digital converters
+
#
# Chemical Sensors
#
@@ -6745,8 +7183,12 @@ CONFIG_TI_ADS1015=y
# CONFIG_IAQCORE is not set
# CONFIG_PMS7003 is not set
# CONFIG_SCD30_CORE is not set
+# CONFIG_SCD4X is not set
# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
+# CONFIG_SENSIRION_SGP40 is not set
+# CONFIG_SPS30_I2C is not set
+# CONFIG_SPS30_SERIAL is not set
+# CONFIG_SENSEAIR_SUNRISE_CO2 is not set
# CONFIG_VZ89X is not set
# end of Chemical Sensors
@@ -6755,6 +7197,12 @@ CONFIG_TI_ADS1015=y
#
# end of Hid Sensor IIO Common
+#
+# IIO SCMI Sensors
+#
+# CONFIG_IIO_SCMI is not set
+# end of IIO SCMI Sensors
+
#
# SSP Sensor Common
#
@@ -6764,6 +7212,7 @@ CONFIG_TI_ADS1015=y
#
# Digital to analog converters
#
+# CONFIG_AD3552R is not set
# CONFIG_AD5064 is not set
# CONFIG_AD5360 is not set
# CONFIG_AD5380 is not set
@@ -6774,14 +7223,17 @@ CONFIG_TI_ADS1015=y
# CONFIG_AD5593R is not set
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
+# CONFIG_LTC2688 is not set
# CONFIG_AD5686_SPI is not set
# CONFIG_AD5696_I2C is not set
# CONFIG_AD5755 is not set
# CONFIG_AD5758 is not set
# CONFIG_AD5761 is not set
# CONFIG_AD5764 is not set
+# CONFIG_AD5766 is not set
# CONFIG_AD5770R is not set
# CONFIG_AD5791 is not set
+# CONFIG_AD7293 is not set
# CONFIG_AD7303 is not set
# CONFIG_AD8801 is not set
# CONFIG_DPOT_DAC is not set
@@ -6805,6 +7257,12 @@ CONFIG_TI_ADS1015=y
#
# end of IIO dummy driver
+#
+# Filters
+#
+# CONFIG_ADMV8818 is not set
+# end of Filters
+
#
# Frequency Synthesizers DDS/PLL
#
@@ -6820,6 +7278,10 @@ CONFIG_TI_ADS1015=y
#
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
+# CONFIG_ADMV1013 is not set
+# CONFIG_ADMV1014 is not set
+# CONFIG_ADMV4420 is not set
+# CONFIG_ADRF6780 is not set
# end of Phase-Locked Loop (PLL) frequency synthesizers
# end of Frequency Synthesizers DDS/PLL
@@ -6875,6 +7337,8 @@ CONFIG_TI_ADS1015=y
# CONFIG_ADIS16480 is not set
# CONFIG_BMI160_I2C is not set
# CONFIG_BMI160_SPI is not set
+# CONFIG_BOSCH_BNO055_SERIAL is not set
+# CONFIG_BOSCH_BNO055_I2C is not set
# CONFIG_FXOS8700_I2C is not set
# CONFIG_FXOS8700_SPI is not set
# CONFIG_KMX61 is not set
@@ -6884,6 +7348,7 @@ CONFIG_TI_ADS1015=y
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IIO_ST_LSM6DSR is not set
# CONFIG_IIO_ST_LSM6DSX is not set
+# CONFIG_IIO_ST_LSM9DS0 is not set
# end of Inertial measurement units
#
@@ -6911,6 +7376,7 @@ CONFIG_SENSORS_ISL29018=y
# CONFIG_JSA1212 is not set
# CONFIG_RPR0521 is not set
# CONFIG_LTR501 is not set
+# CONFIG_LTRF216A is not set
# CONFIG_LV0104CS is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX44009 is not set
@@ -6925,6 +7391,7 @@ CONFIG_SENSORS_ISL29018=y
# CONFIG_TCS3472 is not set
CONFIG_SENSORS_TSL2563=y
CONFIG_TSL2583=y
+# CONFIG_TSL2591 is not set
# CONFIG_TSL2772 is not set
# CONFIG_TSL4531 is not set
# CONFIG_UCS12CM0 is not set
@@ -6952,6 +7419,7 @@ CONFIG_TSL2583=y
# CONFIG_SENSORS_HMC5843_SPI is not set
# CONFIG_SENSORS_RM3100_I2C is not set
# CONFIG_SENSORS_RM3100_SPI is not set
+# CONFIG_YAMAHA_YAS530 is not set
# end of Magnetometer sensors
#
@@ -6980,6 +7448,7 @@ CONFIG_IIO_SYSFS_TRIGGER=y
#
# Digital potentiometers
#
+# CONFIG_AD5110 is not set
# CONFIG_AD5272 is not set
# CONFIG_DS1803 is not set
# CONFIG_MAX5432 is not set
@@ -7034,6 +7503,8 @@ CONFIG_IIO_SYSFS_TRIGGER=y
# CONFIG_RFD77402 is not set
# CONFIG_SRF04 is not set
# CONFIG_SX9310 is not set
+# CONFIG_SX9324 is not set
+# CONFIG_SX9360 is not set
# CONFIG_SX9500 is not set
# CONFIG_SRF08 is not set
# CONFIG_VCNL3020 is not set
@@ -7056,21 +7527,26 @@ CONFIG_IIO_SYSFS_TRIGGER=y
# CONFIG_MLX90632 is not set
# CONFIG_TMP006 is not set
# CONFIG_TMP007 is not set
+# CONFIG_TMP117 is not set
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
# CONFIG_MAX31856 is not set
+# CONFIG_MAX31865 is not set
# end of Temperature sensors
# CONFIG_NTB is not set
-# CONFIG_VME_BUS is not set
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
# CONFIG_PWM_DEBUG is not set
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+# CONFIG_PWM_DWC is not set
# CONFIG_PWM_FSL_FTM is not set
# CONFIG_PWM_GPIO is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_PWM_ROCKCHIP=y
# CONFIG_PWM_ROCKCHIP_ONESHOT is not set
+# CONFIG_PWM_XILINX is not set
#
# IRQ chip support
@@ -7083,6 +7559,7 @@ CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
CONFIG_PARTITION_PERCPU=y
# end of IRQ chip support
@@ -7090,7 +7567,9 @@ CONFIG_PARTITION_PERCPU=y
CONFIG_ARCH_HAS_RESET_CONTROLLER=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_SCMI=y
+# CONFIG_RESET_SIMPLE is not set
# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
#
# PHY Subsystem
@@ -7098,15 +7577,22 @@ CONFIG_RESET_SCMI=y
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PHY_MIPI_DPHY=y
# CONFIG_PHY_XGENE is not set
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+
+#
+# PHY drivers for Broadcom platforms
+#
# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
# CONFIG_PHY_CADENCE_TORRENT is not set
# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
# CONFIG_PHY_CADENCE_SIERRA is not set
# CONFIG_PHY_CADENCE_SALVO is not set
-# CONFIG_PHY_FSL_IMX8MQ_USB is not set
-# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_LAN966X_SERDES is not set
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
# CONFIG_PHY_OCELOT_SERDES is not set
@@ -7120,6 +7606,7 @@ CONFIG_PHY_ROCKCHIP_EMMC=y
CONFIG_PHY_ROCKCHIP_INNO_HDMI=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_INNO_USB3=y
+# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set
CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y
CONFIG_PHY_ROCKCHIP_MIPI_RX=y
CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y
@@ -7149,6 +7636,8 @@ CONFIG_PHY_ROCKCHIP_USBDP=y
CONFIG_ARM_PMU=y
# CONFIG_ARM_DSU_PMU is not set
# CONFIG_ARM_SPE_PMU is not set
+# CONFIG_HISI_PCIE_PMU is not set
+# CONFIG_HNS3_PMU is not set
# end of Performance monitor support
# CONFIG_RAS is not set
@@ -7157,36 +7646,32 @@ CONFIG_ARM_PMU=y
#
# Android
#
-# CONFIG_ANDROID is not set
+# CONFIG_ANDROID_BINDER_IPC is not set
# end of Android
# CONFIG_LIBNVDIMM is not set
# CONFIG_DAX is not set
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
-# CONFIG_NVMEM_SPMI_SDAM is not set
-# CONFIG_ROCKCHIP_EFUSE is not set
-# CONFIG_ROCKCHIP_OTP is not set
+# CONFIG_NVMEM_RMEM is not set
+# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set
+# CONFIG_NVMEM_ROCKCHIP_OTP is not set
# CONFIG_NVMEM_ROCKCHIP_SEC_OTP is not set
+# CONFIG_NVMEM_SPMI_SDAM is not set
+# CONFIG_NVMEM_U_BOOT_ENV is not set
#
# HW tracing support
#
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
+# CONFIG_HISI_PTT is not set
# end of HW tracing support
# CONFIG_FPGA is not set
# CONFIG_FSI is not set
CONFIG_TEE=y
-
-#
-# TEE drivers
-#
CONFIG_OPTEE=y
-CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# end of TEE drivers
-
CONFIG_MULTIPLEXER=m
#
@@ -7204,6 +7689,8 @@ CONFIG_PM_OPP=y
# CONFIG_INTERCONNECT is not set
# CONFIG_COUNTER is not set
# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE is not set
# CONFIG_RK_FLASH is not set
# CONFIG_RK_NAND is not set
@@ -7282,12 +7769,12 @@ CONFIG_F2FS_FS_SECURITY=y
# CONFIG_F2FS_CHECK_FS is not set
# CONFIG_F2FS_FAULT_INJECTION is not set
# CONFIG_F2FS_FS_COMPRESSION is not set
-# CONFIG_FS_DAX is not set
+CONFIG_F2FS_IOSTAT=y
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
# CONFIG_FS_VERITY is not set
CONFIG_FSNOTIFY=y
@@ -7314,7 +7801,6 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
# CONFIG_OVERLAY_FS_INDEX is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
# CONFIG_OVERLAY_FS_METACOPY is not set
-# CONFIG_INCREMENTAL_FS is not set
#
# Caches
@@ -7343,6 +7829,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS3_FS is not set
# end of DOS/FAT/EXFAT/NT Filesystems
#
@@ -7359,6 +7846,7 @@ CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
# CONFIG_TMPFS_INODE64 is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_MEMFD_CREATE=y
@@ -7420,6 +7908,7 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_PSTORE=y
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
CONFIG_PSTORE_DEFLATE_COMPRESS=y
# CONFIG_PSTORE_LZO_COMPRESS is not set
# CONFIG_PSTORE_LZ4_COMPRESS is not set
@@ -7433,6 +7922,7 @@ CONFIG_PSTORE_CONSOLE=y
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_FTRACE is not set
CONFIG_PSTORE_RAM=y
+# CONFIG_PSTORE_BLK is not set
# CONFIG_PSTORE_BOOT_LOG is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
@@ -7441,7 +7931,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
# CONFIG_NFSD_BLOCKLAYOUT is not set
@@ -7460,6 +7949,7 @@ CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
+# CONFIG_SMB_SERVER is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
@@ -7526,7 +8016,10 @@ CONFIG_KEYS=y
# CONFIG_KEYS_REQUEST_CACHE is not set
# CONFIG_PERSISTENT_KEYRINGS is not set
CONFIG_TRUSTED_KEYS=m
+CONFIG_TRUSTED_KEYS_TPM=y
+CONFIG_TRUSTED_KEYS_TEE=y
CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_USER_DECRYPTED_DATA is not set
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
@@ -7550,17 +8043,22 @@ CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
CONFIG_SECURITY_APPARMOR=y
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y
CONFIG_SECURITY_APPARMOR_HASH=y
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y
+CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y
# CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_SECURITY_SAFESETID is not set
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
+# CONFIG_SECURITY_LANDLOCK is not set
CONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not set
CONFIG_INTEGRITY_AUDIT=y
# CONFIG_IMA is not set
+# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
# CONFIG_EVM is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
@@ -7578,15 +8076,18 @@ CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_NONE=y
-# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
-# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
-# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
# CONFIG_INIT_STACK_ALL_ZERO is not set
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
# end of Memory initialization
+
+CONFIG_RANDSTRUCT_NONE=y
+# CONFIG_RANDSTRUCT_FULL is not set
+# CONFIG_RANDSTRUCT_PERFORMANCE is not set
# end of Kernel hardening options
# end of Security options
@@ -7601,7 +8102,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-CONFIG_CRYPTO_FIPS140=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
@@ -7629,6 +8129,8 @@ CONFIG_CRYPTO_NULL2=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=y
+# end of Crypto core or helper
#
# Public-key cryptography
@@ -7637,93 +8139,99 @@ CONFIG_CRYPTO_RSA=y
# CONFIG_CRYPTO_DH is not set
CONFIG_CRYPTO_ECC=y
CONFIG_CRYPTO_ECDH=y
+# CONFIG_CRYPTO_ECDSA is not set
# CONFIG_CRYPTO_ECRDSA is not set
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_CURVE25519 is not set
+# end of Public-key cryptography
#
-# Authenticated Encryption with Associated Data
+# Block ciphers
#
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-# CONFIG_CRYPTO_AEGIS128 is not set
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+CONFIG_CRYPTO_SM4=y
+# CONFIG_CRYPTO_SM4_GENERIC is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+# end of Block ciphers
#
-# Block modes
+# Length-preserving ciphers and modes
#
+# CONFIG_CRYPTO_ADIANTUM is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CFB=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
# CONFIG_CRYPTO_LRW is not set
CONFIG_CRYPTO_OFB=y
# CONFIG_CRYPTO_PCBC is not set
CONFIG_CRYPTO_XTS=y
-# CONFIG_CRYPTO_KEYWRAP is not set
-# CONFIG_CRYPTO_ADIANTUM is not set
-CONFIG_CRYPTO_ESSIV=m
+# end of Length-preserving ciphers and modes
#
-# Hash modes
+# AEAD (authenticated encryption with associated data) ciphers
#
-CONFIG_CRYPTO_CMAC=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
+# CONFIG_CRYPTO_AEGIS128 is not set
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
#
-# Digest
+# Hashes, digests, and MACs
#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=y
-CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO_BLAKE2B=y
-# CONFIG_CRYPTO_BLAKE2S is not set
-CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_GHASH=y
-# CONFIG_CRYPTO_POLY1305 is not set
+CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_POLY1305 is not set
# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
# CONFIG_CRYPTO_SHA3 is not set
CONFIG_CRYPTO_SM3=y
+# CONFIG_CRYPTO_SM3_GENERIC is not set
# CONFIG_CRYPTO_STREEBOG is not set
-# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_VMAC is not set
# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=y
+# end of Hashes, digests, and MACs
#
-# Ciphers
+# CRCs (cyclic redundancy checks)
#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_CHACHA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-CONFIG_CRYPTO_SM4=y
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_TWOFISH_COMMON=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+# CONFIG_CRYPTO_CRC64_ROCKSOFT is not set
+# end of CRCs (cyclic redundancy checks)
#
# Compression
@@ -7734,9 +8242,10 @@ CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set
CONFIG_CRYPTO_ZSTD=m
+# end of Compression
#
-# Random Number Generation
+# Random number generation
#
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -7745,17 +8254,60 @@ CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_CTR is not set
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
CONFIG_CRYPTO_USER_API=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+# end of Userspace interface
+
CONFIG_CRYPTO_HASH_INFO=y
+# CONFIG_CRYPTO_NHPOLY1305_NEON is not set
+CONFIG_CRYPTO_CHACHA20_NEON=m
+
+#
+# Accelerated Cryptographic Algorithms for CPU (arm64)
+#
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_POLY1305_NEON=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA256_ARM64=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+# CONFIG_CRYPTO_SHA512_ARM64 is not set
+# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
+# CONFIG_CRYPTO_SHA3_ARM64 is not set
+# CONFIG_CRYPTO_SM3_NEON is not set
+# CONFIG_CRYPTO_SM3_ARM64_CE is not set
+# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
+# CONFIG_CRYPTO_AES_ARM64 is not set
+CONFIG_CRYPTO_AES_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set
+# CONFIG_CRYPTO_AES_ARM64_BS is not set
+# CONFIG_CRYPTO_SM4_ARM64_CE is not set
+# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
+# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
+# end of Accelerated Cryptographic Algorithms for CPU (arm64)
+
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
# CONFIG_CRYPTO_DEV_CCP is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set
+# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
CONFIG_CRYPTO_DEV_ROCKCHIP=y
@@ -7769,12 +8321,12 @@ CONFIG_CRYPTO_DEV_ROCKCHIP_DEV=y
# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-# CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set
CONFIG_X509_CERTIFICATE_PARSER=y
# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
#
# Certificates for signature checking
@@ -7808,10 +8360,12 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
# CONFIG_INDIRECT_PIO is not set
+# CONFIG_TRACE_MMIO_ACCESS is not set
#
# Crypto library routines
#
+CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_ARC4=y
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
@@ -7825,13 +8379,14 @@ CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
CONFIG_CRYPTO_LIB_POLY1305=m
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA256=y
# end of Crypto library routines
-CONFIG_LIB_MEMNEQ=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
+# CONFIG_CRC64_ROCKSOFT is not set
CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
@@ -7854,6 +8409,7 @@ CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DEC=y
@@ -7863,6 +8419,7 @@ CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
# CONFIG_XZ_DEC_SPARC is not set
+# CONFIG_XZ_DEC_MICROLZMA is not set
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
@@ -7881,6 +8438,7 @@ CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
@@ -7896,9 +8454,9 @@ CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
CONFIG_SWIOTLB=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
CONFIG_DMA_NONCOHERENT_MMAP=y
CONFIG_DMA_COHERENT_POOL=y
-CONFIG_DMA_REMAP=y
CONFIG_DMA_DIRECT_REMAP=y
CONFIG_DMA_CMA=y
# CONFIG_DMA_PERNUMA_CMA is not set
@@ -7913,7 +8471,9 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
+# CONFIG_FORCE_NR_CPUS is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
@@ -7934,10 +8494,14 @@ CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_SG_POOL=y
CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
# end of Library routines
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_ASN1_ENCODER=m
+
#
# Kernel hacking
#
@@ -7948,6 +8512,7 @@ CONFIG_SBITMAP=y
CONFIG_PRINTK_TIME=y
CONFIG_PRINTK_TIME_FROM_ARM_ARCH_TIMER=y
# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
@@ -7958,20 +8523,27 @@ CONFIG_SYMBOLIC_ERRNAME=y
CONFIG_DEBUG_BUGVERBOSE=y
# end of printk and dmesg options
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_MISC=y
+
#
# Compile-time checks and compiler options
#
-# CONFIG_DEBUG_INFO is not set
-CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_AS_HAS_NON_CONST_LEB128=y
+CONFIG_DEBUG_INFO_NONE=y
+# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
+# CONFIG_DEBUG_INFO_DWARF4 is not set
+# CONFIG_DEBUG_INFO_DWARF5 is not set
CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_HEADERS_INSTALL is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
+# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
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
@@ -7990,19 +8562,28 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
+CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
+# CONFIG_KCSAN is not set
# end of Generic Kernel Debugging Instruments
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
+#
+# Networking Debugging
+#
+# CONFIG_NET_DEV_REFCNT_TRACKER is not set
+# CONFIG_NET_NS_REFCNT_TRACKER is not set
+# CONFIG_DEBUG_NET is not set
+# end of Networking Debugging
#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_PAGE_OWNER is not set
-# CONFIG_PAGE_PINNER is not set
+# CONFIG_PAGE_TABLE_CHECK is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set
@@ -8011,8 +8592,7 @@ CONFIG_ARCH_HAS_DEBUG_WX=y
CONFIG_GENERIC_PTDUMP=y
# CONFIG_PTDUMP_DEBUGFS is not set
# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
+# CONFIG_SHRINKER_DEBUG is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -8082,10 +8662,10 @@ CONFIG_DEBUG_SPINLOCK=y
# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)
+# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_HAVE_DEBUG_BUGVERBOSE=y
#
# Debug kernel data structures
@@ -8095,6 +8675,7 @@ CONFIG_HAVE_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# CONFIG_DEBUG_MAPLE_TREE is not set
# end of Debug kernel data structures
CONFIG_DEBUG_CREDENTIALS=y
@@ -8108,12 +8689,12 @@ CONFIG_DEBUG_CREDENTIALS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_BOOTPARAM_RCU_STALL_PANIC is not set
CONFIG_BOOTPARAM_RCU_STALL_PANIC_VALUE=0
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set
# end of RCU Debugging
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_LATENCYTOP is not set
CONFIG_NOP_TRACER=y
@@ -8128,8 +8709,6 @@ CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
-# CONFIG_TRACE_MMIO_ACCESS is not set
-# CONFIG_TRACEFS_DISABLE_AUTOMOUNT is not set
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
@@ -8144,6 +8723,8 @@ CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_HWLAT_TRACER is not set
+# CONFIG_OSNOISE_TRACER is not set
+# CONFIG_TIMERLAT_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
# CONFIG_TRACER_SNAPSHOT is not set
CONFIG_BRANCH_PROFILE_NONE=y
@@ -8162,11 +8743,13 @@ CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
+# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_RV is not set
# CONFIG_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_IO_STRICT_DEVMEM is not set
@@ -8189,10 +8772,10 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_LKDTM=y
-# CONFIG_TEST_LIST_SORT is not set
# CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_DIV64 is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_TEST_REF_TRACKER is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -8200,16 +8783,18 @@ CONFIG_LKDTM=y
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_ASYNC_RAID6_TEST is not set
# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_STRING_SELFTEST is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_STRSCPY is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_SCANF is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_UUID is not set
# CONFIG_TEST_XARRAY is not set
-# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_MAPLE_TREE is not set
# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_SIPHASH is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_BITOPS is not set
@@ -8222,11 +8807,17 @@ CONFIG_LKDTM=y
# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_DYNAMIC_DEBUG is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_MEMCAT_P is not set
-# CONFIG_TEST_STACKINIT is not set
# CONFIG_TEST_MEMINIT is not set
# CONFIG_TEST_FREE_PAGES is not set
+CONFIG_ARCH_USE_MEMTEST=y
# CONFIG_MEMTEST is not set
# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# end of Rust hacking
# end of Kernel hacking
diff --git a/projects/Rockchip/devices/RK3588/options b/projects/Rockchip/devices/RK3588/options
index c5a763aadf..3f87b866c1 100755
--- a/projects/Rockchip/devices/RK3588/options
+++ b/projects/Rockchip/devices/RK3588/options
@@ -77,7 +77,7 @@
# additional Firmware to use ( )
# Space separated list is supported,
# e.g. FIRMWARE=""
- FIRMWARE="libmali_rk3588 RTL8821CS-firmware ap6256-firmware"
+ FIRMWARE="RTL8821CS-firmware ap6256-firmware"
# additional drivers to install:
# for a list of additional drivers see packages/linux-drivers
diff --git a/projects/Rockchip/options b/projects/Rockchip/options
index 768538701a..5587c70a5b 100755
--- a/projects/Rockchip/options
+++ b/projects/Rockchip/options
@@ -72,7 +72,7 @@
# driver addons to install:
# for a list of additinoal drivers see packages/linux-driver-addons
# Space separated list is supported,
- DRIVER_ADDONS="dvb-latest"
+ DRIVER_ADDONS=""
# debug tty path
DEBUG_TTY="/dev/ttyS2"
diff --git a/projects/Rockchip/packages/u-boot/package.mk b/projects/Rockchip/packages/u-boot/package.mk
index 235095cadc..2a2f824882 100644
--- a/projects/Rockchip/packages/u-boot/package.mk
+++ b/projects/Rockchip/packages/u-boot/package.mk
@@ -27,9 +27,9 @@ case ${DEVICE} in
PKG_URL="https://ftp.denx.de/pub/u-boot/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
;;
RK3326)
- PKG_URL="https://github.com/hardkernel/u-boot.git"
PKG_VERSION="0e26e35cb18a80005b7de45c95858c86a2f7f41e"
- PKG_GIT_CLONE_BRANCH="odroidgoA-v2017.09"
+ PKG_URL="${PKG_SITE}/hardkernel-uboot/archive/${PKG_VERSION}.tar.gz"
+ PKG_GIT_CLONE_BRANCH="RK3326"
;;
esac
@@ -87,6 +87,7 @@ make_target() {
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm64 _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make HOSTCC="${HOST_CC}" HOSTLDFLAGS="-L${TOOLCHAIN}/lib" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTSTRIP="true" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
elif [[ "${PKG_SOC}" =~ "rk3588" ]]
then
+ # rk3588 devices
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm64 make mrproper
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm64 make ${UBOOT_CONFIG} BL31=${PKG_BL31} ${PKG_LOADER} u-boot.dtb u-boot.itb CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm64 _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make HOSTCC="${HOST_CC}" HOSTLDFLAGS="-L${TOOLCHAIN}/lib" HOSTSTRIP="true" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
diff --git a/projects/Rockchip/patches/linux/RK3588/001-hx8399c-panel.patch b/projects/Rockchip/patches/linux/RK3588/001-hx8399c-panel.patch
index 0639222c80..43e0974bd3 100644
--- a/projects/Rockchip/patches/linux/RK3588/001-hx8399c-panel.patch
+++ b/projects/Rockchip/patches/linux/RK3588/001-hx8399c-panel.patch
@@ -58,7 +58,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/lcd-hx8399c_mipi.dtsi linux/a
+ stbyb-delay-ms = <120>;
+ prepare-delay-ms = <120>;
+ unprepare-delay-ms = <120>;
-+ rotation = <90>;
++ rotation = <270>;
+ disable-delay-ms = <120>;
+ dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
+ MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
diff --git a/projects/Rockchip/patches/linux/RK3588/003-audio-fix.patch b/projects/Rockchip/patches/linux/RK3588/003-audio-fix.patch
index becdafc323..b0e5c855f4 100644
--- a/projects/Rockchip/patches/linux/RK3588/003-audio-fix.patch
+++ b/projects/Rockchip/patches/linux/RK3588/003-audio-fix.patch
@@ -1,6 +1,18 @@
+diff -rupN linux.orig/Makefile linux/Makefile
+--- linux.orig/Makefile 2024-03-12 17:07:07.439910827 +0000
++++ linux/Makefile 2024-03-12 17:07:54.941476478 +0000
+@@ -1075,7 +1075,7 @@ endif
+ KBUILD_CFLAGS += -Werror=date-time
+
+ # enforce correct pointer usage
+-KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
++#KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
+
+ # Require designated initializers for all marked structures
+ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
diff -rupN linux.orig/sound/soc/codecs/es8323.c linux/sound/soc/codecs/es8323.c
---- linux.orig/sound/soc/codecs/es8323.c 2024-03-06 21:56:51.358228509 +0000
-+++ linux/sound/soc/codecs/es8323.c 2024-03-06 21:58:44.317922609 +0000
+--- linux.orig/sound/soc/codecs/es8323.c 2024-03-12 17:07:08.999962342 +0000
++++ linux/sound/soc/codecs/es8323.c 2024-03-12 17:07:39.208958586 +0000
@@ -25,6 +25,11 @@
#include
#include
@@ -60,7 +72,7 @@ diff -rupN linux.orig/sound/soc/codecs/es8323.c linux/sound/soc/codecs/es8323.c
static int es8323_mute(struct snd_soc_dai *dai, int mute, int stream)
-{
- return 0;
-+{
++{
+ // struct snd_soc_component *component = dai->component;
+ // struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component);
+
@@ -73,7 +85,7 @@ diff -rupN linux.orig/sound/soc/codecs/es8323.c linux/sound/soc/codecs/es8323.c
+
+ if (hp) {
+ // printk("gsy es8323_mute\n");
-+ // gsy add
++ // gsy add
+ if (mute) {
+ gpio_direction_output(133, 0);// spk ctl
+ gpio_set_value(133, 0);
@@ -130,13 +142,25 @@ diff -rupN linux.orig/sound/soc/codecs/es8323.c linux/sound/soc/codecs/es8323.c
+ GPIOD_OUT_LOW);
+ if (IS_ERR(es8323->spk_ctl_gpio))
+ return PTR_ERR(es8323->spk_ctl_gpio);
-+
++
es8323->mclk = devm_clk_get(component->dev, "mclk");
if (IS_ERR(es8323->mclk)) {
dev_err(component->dev, "%s mclk is missing or invalid\n", __func__);
+@@ -870,9 +918,10 @@ static int es8323_i2c_probe(struct i2c_c
+ return ret;
+ }
+
+-static void es8323_i2c_remove(struct i2c_client *client)
++static int es8323_i2c_remove(struct i2c_client *client)
+ {
+ snd_soc_unregister_component(&client->dev);
++ return 0;
+ }
+
+ static const struct i2c_device_id es8323_i2c_id[] = {
diff -rupN linux.orig/sound/soc/codecs/es8323.h linux/sound/soc/codecs/es8323.h
---- linux.orig/sound/soc/codecs/es8323.h 2024-03-06 21:56:51.362228640 +0000
-+++ linux/sound/soc/codecs/es8323.h 2024-03-06 22:01:36.203539209 +0000
+--- linux.orig/sound/soc/codecs/es8323.h 2024-03-12 17:07:08.999962342 +0000
++++ linux/sound/soc/codecs/es8323.h 2024-03-12 17:07:39.208958586 +0000
@@ -80,7 +80,7 @@
#define ES8323_ADC_MUTE ES8323_ADCCONTROL7
@@ -147,9 +171,9 @@ diff -rupN linux.orig/sound/soc/codecs/es8323.h linux/sound/soc/codecs/es8323.h
#define ES8323_IFACE ES8323_MASTERMODE
diff -rupN linux.orig/sound/soc/rockchip/rockchip_multicodecs.c linux/sound/soc/rockchip/rockchip_multicodecs.c
---- linux.orig/sound/soc/rockchip/rockchip_multicodecs.c 2024-03-06 21:56:51.478232435 +0000
-+++ linux/sound/soc/rockchip/rockchip_multicodecs.c 2024-03-06 22:04:55.818056848 +0000
-@@ -293,8 +293,11 @@ static int mc_spk_event(struct snd_soc_d
+--- linux.orig/sound/soc/rockchip/rockchip_multicodecs.c 2024-03-12 17:07:09.023963134 +0000
++++ linux/sound/soc/rockchip/rockchip_multicodecs.c 2024-03-12 17:07:39.208958586 +0000
+@@ -272,9 +272,13 @@ static int mc_hp_event(struct snd_soc_da
struct snd_soc_card *card = w->dapm->card;
struct multicodecs_data *mc_data = snd_soc_card_get_drvdata(card);
@@ -157,7 +181,10 @@ diff -rupN linux.orig/sound/soc/rockchip/rockchip_multicodecs.c linux/sound/soc/
+
switch (event) {
case SND_SOC_DAPM_POST_PMU:
+- gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 1);
++ //gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 1);
+ if (!(jack_headset->status & SND_JACK_HEADPHONE))
- gpiod_set_value_cansleep(mc_data->spk_ctl_gpio, 1);
++ gpiod_set_value_cansleep(mc_data->spk_ctl_gpio, 1);
break;
case SND_SOC_DAPM_PRE_PMD:
+ gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 0);
diff --git a/projects/Rockchip/patches/linux/RK3588/005-pll-clock.patch b/projects/Rockchip/patches/linux/RK3588/005-pll-clock.patch
deleted file mode 100644
index a41e0d9fe5..0000000000
--- a/projects/Rockchip/patches/linux/RK3588/005-pll-clock.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -rupN linux.orig/drivers/clk/rockchip/clk-rk3588.c linux/drivers/clk/rockchip/clk-rk3588.c
---- linux.orig/drivers/clk/rockchip/clk-rk3588.c 2024-03-06 22:11:33.951046369 +0000
-+++ linux/drivers/clk/rockchip/clk-rk3588.c 2024-03-07 00:00:30.202206013 +0000
-@@ -2065,13 +2065,13 @@ static struct rockchip_clk_branch rk3588
- RK3588_CLKGATE_CON(72), 4, GFLAGS),
- GATE(HCLK_VOP, "hclk_vop", "hclk_vop_root", 0,
- RK3588_CLKGATE_CON(52), 8, GFLAGS),
-- COMPOSITE(DCLK_VOP0_SRC, "dclk_vop0_src", gpll_cpll_v0pll_aupll_p, 0,
-+ COMPOSITE(DCLK_VOP0_SRC, "dclk_vop0_src", gpll_cpll_v0pll_aupll_p, CLK_SET_RATE_NO_REPARENT,
- RK3588_CLKSEL_CON(111), 7, 2, MFLAGS, 0, 7, DFLAGS,
- RK3588_CLKGATE_CON(52), 10, GFLAGS),
-- COMPOSITE(DCLK_VOP1_SRC, "dclk_vop1_src", gpll_cpll_v0pll_aupll_p, 0,
-+ COMPOSITE(DCLK_VOP1_SRC, "dclk_vop1_src", gpll_cpll_v0pll_aupll_p, CLK_SET_RATE_NO_REPARENT,
- RK3588_CLKSEL_CON(111), 14, 2, MFLAGS, 9, 5, DFLAGS,
- RK3588_CLKGATE_CON(52), 11, GFLAGS),
-- COMPOSITE(DCLK_VOP2_SRC, "dclk_vop2_src", gpll_cpll_v0pll_aupll_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
-+ COMPOSITE(DCLK_VOP2_SRC, "dclk_vop2_src", gpll_cpll_v0pll_aupll_p, CLK_SET_RATE_NO_REPARENT,
- RK3588_CLKSEL_CON(112), 5, 2, MFLAGS, 0, 5, DFLAGS,
- RK3588_CLKGATE_CON(52), 12, GFLAGS),
- COMPOSITE_NODIV(DCLK_VOP0, "dclk_vop0", dclk_vop0_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
-@@ -2083,7 +2083,7 @@ static struct rockchip_clk_branch rk3588
- COMPOSITE_NODIV(DCLK_VOP2, "dclk_vop2", dclk_vop2_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
- RK3588_CLKSEL_CON(112), 11, 2, MFLAGS,
- RK3588_CLKGATE_CON(53), 1, GFLAGS),
-- COMPOSITE(DCLK_VOP3, "dclk_vop3", gpll_cpll_v0pll_aupll_p, 0,
-+ COMPOSITE(DCLK_VOP3, "dclk_vop3", gpll_cpll_v0pll_aupll_p, CLK_SET_RATE_NO_REPARENT,
- RK3588_CLKSEL_CON(113), 7, 2, MFLAGS, 0, 7, DFLAGS,
- RK3588_CLKGATE_CON(53), 2, GFLAGS),
- GATE(PCLK_DSIHOST0, "pclk_dsihost0", "pclk_vop_root", 0,
diff --git a/projects/Rockchip/patches/linux/RK3588/005-polldev-driver.patch b/projects/Rockchip/patches/linux/RK3588/005-polldev-driver.patch
new file mode 100644
index 0000000000..05f7faf525
--- /dev/null
+++ b/projects/Rockchip/patches/linux/RK3588/005-polldev-driver.patch
@@ -0,0 +1,484 @@
+From bb62799748bd5492d80e9ebee4ac6b5702fb037e Mon Sep 17 00:00:00 2001
+From: brooksytech <1673861+brooksytech@users.noreply.github.com>
+Date: Wed, 24 Jan 2024 21:50:05 +0000
+Subject: [PATCH 14/46] input: add input-polldev driver
+
+---
+ drivers/input/Kconfig | 13 ++
+ drivers/input/Makefile | 1 +
+ drivers/input/input-polldev.c | 362 ++++++++++++++++++++++++++++++++++
+ include/linux/input-polldev.h | 58 ++++++
+ 4 files changed, 434 insertions(+)
+ create mode 100644 drivers/input/input-polldev.c
+ create mode 100644 include/linux/input-polldev.h
+
+diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
+index 3bdbd34314b3..779daf5009c1 100644
+--- a/drivers/input/Kconfig
++++ b/drivers/input/Kconfig
+@@ -51,6 +51,19 @@ config INPUT_FF_MEMLESS
+ To compile this driver as a module, choose M here: the
+ module will be called ff-memless.
+
++config INPUT_POLLDEV
++ tristate "Polled input device skeleton"
++ help
++ Say Y here if you are using a driver for an input
++ device that periodically polls hardware state. This
++ option is only useful for out-of-tree drivers since
++ in-tree drivers select it automatically.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called input-polldev.
++
+ config INPUT_SPARSEKMAP
+ tristate "Sparse keymap support library"
+ help
+diff --git a/drivers/input/Makefile b/drivers/input/Makefile
+index c78753274921..e92c29174c36 100644
+--- a/drivers/input/Makefile
++++ b/drivers/input/Makefile
+@@ -10,6 +10,7 @@ input-core-y := input.o input-compat.o input-mt.o input-poller.o ff-core.o
+ input-core-y += touchscreen.o
+
+ obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o
++obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o
+ obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o
+ obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o
+ obj-$(CONFIG_INPUT_VIVALDIFMAP) += vivaldi-fmap.o
+diff --git a/drivers/input/input-polldev.c b/drivers/input/input-polldev.c
+new file mode 100644
+index 000000000000..9bf1c9aeb4c4
+--- /dev/null
++++ b/drivers/input/input-polldev.c
+@@ -0,0 +1,362 @@
++// SPDX-License-Identifier: GPL-2.0-only
++/*
++ * Generic implementation of a polled input device
++
++ * Copyright (c) 2007 Dmitry Torokhov
++ */
++
++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
++
++#include
++#include
++#include
++#include
++#include
++#include
++
++MODULE_AUTHOR("Dmitry Torokhov ");
++MODULE_DESCRIPTION("Generic implementation of a polled input device");
++MODULE_LICENSE("GPL v2");
++
++static void input_polldev_queue_work(struct input_polled_dev *dev)
++{
++ unsigned long delay;
++
++ delay = msecs_to_jiffies(dev->poll_interval);
++ if (delay >= HZ)
++ delay = round_jiffies_relative(delay);
++
++ queue_delayed_work(system_freezable_wq, &dev->work, delay);
++}
++
++static void input_polled_device_work(struct work_struct *work)
++{
++ struct input_polled_dev *dev =
++ container_of(work, struct input_polled_dev, work.work);
++
++ dev->poll(dev);
++ input_polldev_queue_work(dev);
++}
++
++static int input_open_polled_device(struct input_dev *input)
++{
++ struct input_polled_dev *dev = input_get_drvdata(input);
++
++ if (dev->open)
++ dev->open(dev);
++
++ /* Only start polling if polling is enabled */
++ if (dev->poll_interval > 0) {
++ dev->poll(dev);
++ input_polldev_queue_work(dev);
++ }
++
++ return 0;
++}
++
++static void input_close_polled_device(struct input_dev *input)
++{
++ struct input_polled_dev *dev = input_get_drvdata(input);
++
++ cancel_delayed_work_sync(&dev->work);
++
++ if (dev->close)
++ dev->close(dev);
++}
++
++/* SYSFS interface */
++
++static ssize_t input_polldev_get_poll(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct input_polled_dev *polldev = dev_get_drvdata(dev);
++
++ return sprintf(buf, "%d\n", polldev->poll_interval);
++}
++
++static ssize_t input_polldev_set_poll(struct device *dev,
++ struct device_attribute *attr, const char *buf,
++ size_t count)
++{
++ struct input_polled_dev *polldev = dev_get_drvdata(dev);
++ struct input_dev *input = polldev->input;
++ unsigned int interval;
++ int err;
++
++ err = kstrtouint(buf, 0, &interval);
++ if (err)
++ return err;
++
++ if (interval < polldev->poll_interval_min)
++ return -EINVAL;
++
++ if (interval > polldev->poll_interval_max)
++ return -EINVAL;
++
++ mutex_lock(&input->mutex);
++
++ polldev->poll_interval = interval;
++
++ if (input->users) {
++ cancel_delayed_work_sync(&polldev->work);
++ if (polldev->poll_interval > 0)
++ input_polldev_queue_work(polldev);
++ }
++
++ mutex_unlock(&input->mutex);
++
++ return count;
++}
++
++static DEVICE_ATTR(poll, S_IRUGO | S_IWUSR, input_polldev_get_poll,
++ input_polldev_set_poll);
++
++
++static ssize_t input_polldev_get_max(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct input_polled_dev *polldev = dev_get_drvdata(dev);
++
++ return sprintf(buf, "%d\n", polldev->poll_interval_max);
++}
++
++static DEVICE_ATTR(max, S_IRUGO, input_polldev_get_max, NULL);
++
++static ssize_t input_polldev_get_min(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct input_polled_dev *polldev = dev_get_drvdata(dev);
++
++ return sprintf(buf, "%d\n", polldev->poll_interval_min);
++}
++
++static DEVICE_ATTR(min, S_IRUGO, input_polldev_get_min, NULL);
++
++static struct attribute *sysfs_attrs[] = {
++ &dev_attr_poll.attr,
++ &dev_attr_max.attr,
++ &dev_attr_min.attr,
++ NULL
++};
++
++static struct attribute_group input_polldev_attribute_group = {
++ .attrs = sysfs_attrs
++};
++
++static const struct attribute_group *input_polldev_attribute_groups[] = {
++ &input_polldev_attribute_group,
++ NULL
++};
++
++/**
++ * input_allocate_polled_device - allocate memory for polled device
++ *
++ * The function allocates memory for a polled device and also
++ * for an input device associated with this polled device.
++ */
++struct input_polled_dev *input_allocate_polled_device(void)
++{
++ struct input_polled_dev *dev;
++
++ dev = kzalloc(sizeof(struct input_polled_dev), GFP_KERNEL);
++ if (!dev)
++ return NULL;
++
++ dev->input = input_allocate_device();
++ if (!dev->input) {
++ kfree(dev);
++ return NULL;
++ }
++
++ return dev;
++}
++EXPORT_SYMBOL(input_allocate_polled_device);
++
++struct input_polled_devres {
++ struct input_polled_dev *polldev;
++};
++
++static int devm_input_polldev_match(struct device *dev, void *res, void *data)
++{
++ struct input_polled_devres *devres = res;
++
++ return devres->polldev == data;
++}
++
++static void devm_input_polldev_release(struct device *dev, void *res)
++{
++ struct input_polled_devres *devres = res;
++ struct input_polled_dev *polldev = devres->polldev;
++
++ dev_dbg(dev, "%s: dropping reference/freeing %s\n",
++ __func__, dev_name(&polldev->input->dev));
++
++ input_put_device(polldev->input);
++ kfree(polldev);
++}
++
++static void devm_input_polldev_unregister(struct device *dev, void *res)
++{
++ struct input_polled_devres *devres = res;
++ struct input_polled_dev *polldev = devres->polldev;
++
++ dev_dbg(dev, "%s: unregistering device %s\n",
++ __func__, dev_name(&polldev->input->dev));
++ input_unregister_device(polldev->input);
++
++ /*
++ * Note that we are still holding extra reference to the input
++ * device so it will stick around until devm_input_polldev_release()
++ * is called.
++ */
++}
++
++/**
++ * devm_input_allocate_polled_device - allocate managed polled device
++ * @dev: device owning the polled device being created
++ *
++ * Returns prepared &struct input_polled_dev or %NULL.
++ *
++ * Managed polled input devices do not need to be explicitly unregistered
++ * or freed as it will be done automatically when owner device unbinds
++ * from * its driver (or binding fails). Once such managed polled device
++ * is allocated, it is ready to be set up and registered in the same
++ * fashion as regular polled input devices (using
++ * input_register_polled_device() function).
++ *
++ * If you want to manually unregister and free such managed polled devices,
++ * it can be still done by calling input_unregister_polled_device() and
++ * input_free_polled_device(), although it is rarely needed.
++ *
++ * NOTE: the owner device is set up as parent of input device and users
++ * should not override it.
++ */
++struct input_polled_dev *devm_input_allocate_polled_device(struct device *dev)
++{
++ struct input_polled_dev *polldev;
++ struct input_polled_devres *devres;
++
++ devres = devres_alloc(devm_input_polldev_release, sizeof(*devres),
++ GFP_KERNEL);
++ if (!devres)
++ return NULL;
++
++ polldev = input_allocate_polled_device();
++ if (!polldev) {
++ devres_free(devres);
++ return NULL;
++ }
++
++ polldev->input->dev.parent = dev;
++ polldev->devres_managed = true;
++
++ devres->polldev = polldev;
++ devres_add(dev, devres);
++
++ return polldev;
++}
++EXPORT_SYMBOL(devm_input_allocate_polled_device);
++
++/**
++ * input_free_polled_device - free memory allocated for polled device
++ * @dev: device to free
++ *
++ * The function frees memory allocated for polling device and drops
++ * reference to the associated input device.
++ */
++void input_free_polled_device(struct input_polled_dev *dev)
++{
++ if (dev) {
++ if (dev->devres_managed)
++ WARN_ON(devres_destroy(dev->input->dev.parent,
++ devm_input_polldev_release,
++ devm_input_polldev_match,
++ dev));
++ input_put_device(dev->input);
++ kfree(dev);
++ }
++}
++EXPORT_SYMBOL(input_free_polled_device);
++
++/**
++ * input_register_polled_device - register polled device
++ * @dev: device to register
++ *
++ * The function registers previously initialized polled input device
++ * with input layer. The device should be allocated with call to
++ * input_allocate_polled_device(). Callers should also set up poll()
++ * method and set up capabilities (id, name, phys, bits) of the
++ * corresponding input_dev structure.
++ */
++int input_register_polled_device(struct input_polled_dev *dev)
++{
++ struct input_polled_devres *devres = NULL;
++ struct input_dev *input = dev->input;
++ int error;
++
++ if (dev->devres_managed) {
++ devres = devres_alloc(devm_input_polldev_unregister,
++ sizeof(*devres), GFP_KERNEL);
++ if (!devres)
++ return -ENOMEM;
++
++ devres->polldev = dev;
++ }
++
++ input_set_drvdata(input, dev);
++ INIT_DELAYED_WORK(&dev->work, input_polled_device_work);
++
++ if (!dev->poll_interval)
++ dev->poll_interval = 500;
++ if (!dev->poll_interval_max)
++ dev->poll_interval_max = dev->poll_interval;
++
++ input->open = input_open_polled_device;
++ input->close = input_close_polled_device;
++
++ input->dev.groups = input_polldev_attribute_groups;
++
++ error = input_register_device(input);
++ if (error) {
++ devres_free(devres);
++ return error;
++ }
++
++ /*
++ * Take extra reference to the underlying input device so
++ * that it survives call to input_unregister_polled_device()
++ * and is deleted only after input_free_polled_device()
++ * has been invoked. This is needed to ease task of freeing
++ * sparse keymaps.
++ */
++ input_get_device(input);
++
++ if (dev->devres_managed) {
++ dev_dbg(input->dev.parent, "%s: registering %s with devres.\n",
++ __func__, dev_name(&input->dev));
++ devres_add(input->dev.parent, devres);
++ }
++
++ return 0;
++}
++EXPORT_SYMBOL(input_register_polled_device);
++
++/**
++ * input_unregister_polled_device - unregister polled device
++ * @dev: device to unregister
++ *
++ * The function unregisters previously registered polled input
++ * device from input layer. Polling is stopped and device is
++ * ready to be freed with call to input_free_polled_device().
++ */
++void input_unregister_polled_device(struct input_polled_dev *dev)
++{
++ if (dev->devres_managed)
++ WARN_ON(devres_destroy(dev->input->dev.parent,
++ devm_input_polldev_unregister,
++ devm_input_polldev_match,
++ dev));
++
++ input_unregister_device(dev->input);
++}
++EXPORT_SYMBOL(input_unregister_polled_device);
+diff --git a/include/linux/input-polldev.h b/include/linux/input-polldev.h
+new file mode 100644
+index 000000000000..14821fd231c0
+--- /dev/null
++++ b/include/linux/input-polldev.h
+@@ -0,0 +1,58 @@
++/* SPDX-License-Identifier: GPL-2.0-only */
++#ifndef _INPUT_POLLDEV_H
++#define _INPUT_POLLDEV_H
++
++/*
++ * Copyright (c) 2007 Dmitry Torokhov
++ */
++
++#include
++#include
++
++/**
++ * struct input_polled_dev - simple polled input device
++ * @private: private driver data.
++ * @open: driver-supplied method that prepares device for polling
++ * (enabled the device and maybe flushes device state).
++ * @close: driver-supplied method that is called when device is no
++ * longer being polled. Used to put device into low power mode.
++ * @poll: driver-supplied method that polls the device and posts
++ * input events (mandatory).
++ * @poll_interval: specifies how often the poll() method should be called.
++ * Defaults to 500 msec unless overridden when registering the device.
++ * @poll_interval_max: specifies upper bound for the poll interval.
++ * Defaults to the initial value of @poll_interval.
++ * @poll_interval_min: specifies lower bound for the poll interval.
++ * Defaults to 0.
++ * @input: input device structure associated with the polled device.
++ * Must be properly initialized by the driver (id, name, phys, bits).
++ *
++ * Polled input device provides a skeleton for supporting simple input
++ * devices that do not raise interrupts but have to be periodically
++ * scanned or polled to detect changes in their state.
++ */
++struct input_polled_dev {
++ void *private;
++
++ void (*open)(struct input_polled_dev *dev);
++ void (*close)(struct input_polled_dev *dev);
++ void (*poll)(struct input_polled_dev *dev);
++ unsigned int poll_interval; /* msec */
++ unsigned int poll_interval_max; /* msec */
++ unsigned int poll_interval_min; /* msec */
++
++ struct input_dev *input;
++
++/* private: */
++ struct delayed_work work;
++
++ bool devres_managed;
++};
++
++struct input_polled_dev *input_allocate_polled_device(void);
++struct input_polled_dev *devm_input_allocate_polled_device(struct device *dev);
++void input_free_polled_device(struct input_polled_dev *dev);
++int input_register_polled_device(struct input_polled_dev *dev);
++void input_unregister_polled_device(struct input_polled_dev *dev);
++
++#endif
+--
+2.34.1
diff --git a/projects/Rockchip/patches/linux/RK3588/007-dmc-fixes.patch b/projects/Rockchip/patches/linux/RK3588/007-dmc-fixes.patch
deleted file mode 100644
index a03b856c73..0000000000
--- a/projects/Rockchip/patches/linux/RK3588/007-dmc-fixes.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-diff -rupN linux.orig/drivers/devfreq/rockchip_dmc.c linux/drivers/devfreq/rockchip_dmc.c
---- linux.orig/drivers/devfreq/rockchip_dmc.c 2024-03-07 18:08:07.755017253 +0000
-+++ linux/drivers/devfreq/rockchip_dmc.c 2024-03-07 18:09:55.570159077 +0000
-@@ -141,6 +141,7 @@ struct rockchip_dmcfreq {
- unsigned long hdmirx_rate;
- unsigned long idle_rate;
- unsigned long suspend_rate;
-+ unsigned long deep_suspend_rate;
- unsigned long reboot_rate;
- unsigned long boost_rate;
- unsigned long fixed_rate;
-@@ -1996,6 +1997,12 @@ static __maybe_unused int rk3588_dmc_ini
- if (of_property_read_u32(pdev->dev.of_node, "wait-mode", &ddr_psci_param->wait_mode))
- ddr_psci_param->wait_mode = 0;
-
-+ res = sip_smc_dram(SHARE_PAGE_TYPE_DDR, 0, ROCKCHIP_SIP_CONFIG_DRAM_GET_STALL_TIME);
-+ if (res.a0)
-+ dev_err(dmcfreq->dev, "Current ATF unsupported get_stall_time\n");
-+ else
-+ dmcfreq->info.stall_time_ns = (unsigned int)res.a1;
-+
- dmcfreq->set_auto_self_refresh = rockchip_ddr_set_auto_self_refresh;
-
- return 0;
-@@ -2248,6 +2255,9 @@ static int rockchip_get_system_status_ra
- case SYS_STATUS_SUSPEND:
- dmcfreq->suspend_rate = freq * 1000;
- break;
-+ case SYS_STATUS_DEEP_SUSPEND:
-+ dmcfreq->deep_suspend_rate = freq * 1000;
-+ break;
- case SYS_STATUS_VIDEO_1080P:
- dmcfreq->video_1080p_rate = freq * 1000;
- break;
-@@ -2390,6 +2400,11 @@ static int rockchip_get_system_status_le
- dmcfreq->suspend_rate = rockchip_freq_level_2_rate(dmcfreq, level);
- dev_info(dmcfreq->dev, "suspend_rate = %ld\n", dmcfreq->suspend_rate);
- break;
-+ case SYS_STATUS_DEEP_SUSPEND:
-+ dmcfreq->deep_suspend_rate = rockchip_freq_level_2_rate(dmcfreq, level);
-+ dev_info(dmcfreq->dev, "deep_suspend_rate = %ld\n",
-+ dmcfreq->deep_suspend_rate);
-+ break;
- case SYS_STATUS_VIDEO_1080P:
- dmcfreq->video_1080p_rate = rockchip_freq_level_2_rate(dmcfreq, level);
- dev_info(dmcfreq->dev, "video_1080p_rate = %ld\n",
-@@ -3091,6 +3106,7 @@ static int rockchip_dmcfreq_add_devfreq(
- devm_devfreq_register_opp_notifier(dev, devfreq);
-
- devfreq->last_status.current_frequency = opp_rate;
-+ devfreq->suspend_freq = dmcfreq->deep_suspend_rate;
-
- reset_last_status(devfreq);
-
-diff -rupN linux.orig/drivers/devfreq/rockchip_dmc_common.c linux/drivers/devfreq/rockchip_dmc_common.c
---- linux.orig/drivers/devfreq/rockchip_dmc_common.c 2024-03-07 18:08:07.755017253 +0000
-+++ linux/drivers/devfreq/rockchip_dmc_common.c 2024-03-07 18:08:56.184571327 +0000
-@@ -166,6 +166,15 @@ int rockchip_dmcfreq_vop_bandwidth_reque
- }
- EXPORT_SYMBOL(rockchip_dmcfreq_vop_bandwidth_request);
-
-+unsigned int rockchip_dmcfreq_get_stall_time_ns(void)
-+{
-+ if (!common_info)
-+ return 0;
-+
-+ return common_info->stall_time_ns;
-+}
-+EXPORT_SYMBOL(rockchip_dmcfreq_get_stall_time_ns);
-+
- MODULE_AUTHOR("Finley Xiao ");
- MODULE_DESCRIPTION("rockchip dmcfreq driver with devfreq framework");
- MODULE_LICENSE("GPL v2");
-diff -rupN linux.orig/include/dt-bindings/soc/rockchip-system-status.h linux/include/dt-bindings/soc/rockchip-system-status.h
---- linux.orig/include/dt-bindings/soc/rockchip-system-status.h 2024-03-07 18:08:10.371101216 +0000
-+++ linux/include/dt-bindings/soc/rockchip-system-status.h 2024-03-07 18:09:55.570159077 +0000
-@@ -37,6 +37,7 @@
- #define SYS_STATUS_HDMIRX (1 << 18)
- #define SYS_STATUS_VIDEO_SVEP (1 << 19)
- #define SYS_STATUS_VIDEO_4K_60P (1 << 20)
-+#define SYS_STATUS_DEEP_SUSPEND (1 << 21)
-
- #define SYS_STATUS_VIDEO (SYS_STATUS_VIDEO_4K | \
- SYS_STATUS_VIDEO_1080P | \
-diff -rupN linux.orig/include/soc/rockchip/rockchip_dmc.h linux/include/soc/rockchip/rockchip_dmc.h
---- linux.orig/include/soc/rockchip/rockchip_dmc.h 2024-03-07 18:08:10.527106223 +0000
-+++ linux/include/soc/rockchip/rockchip_dmc.h 2024-03-07 18:08:56.184571327 +0000
-@@ -55,6 +55,7 @@ struct dmcfreq_common_info {
- unsigned long vop_req_rate;
- unsigned int read_latency;
- unsigned int auto_freq_en;
-+ unsigned int stall_time_ns;
- bool is_msch_rl_work_started;
- int (*set_msch_readlatency)(unsigned int rl);
- };
-@@ -76,6 +77,7 @@ int rockchip_dmcfreq_wait_complete(void)
- int rockchip_dmcfreq_vop_bandwidth_init(struct dmcfreq_common_info *info);
- int rockchip_dmcfreq_vop_bandwidth_request(struct dmcfreq_vop_info *vop_info);
- void rockchip_dmcfreq_vop_bandwidth_update(struct dmcfreq_vop_info *vop_info);
-+unsigned int rockchip_dmcfreq_get_stall_time_ns(void);
- #else
- static inline void rockchip_dmcfreq_lock(void)
- {
-@@ -118,6 +120,12 @@ static inline void
- rockchip_dmcfreq_vop_bandwidth_init(struct dmcfreq_common_info *info)
- {
- }
-+
-+static inline unsigned int
-+rockchip_dmcfreq_get_stall_time_ns(void)
-+{
-+ return 0;
-+}
- #endif
-
- #endif
-diff -rupN linux.orig/include/soc/rockchip/rockchip_sip.h linux/include/soc/rockchip/rockchip_sip.h
---- linux.orig/include/soc/rockchip/rockchip_sip.h 2024-03-07 18:08:10.531106351 +0000
-+++ linux/include/soc/rockchip/rockchip_sip.h 2024-03-07 18:08:56.184571327 +0000
-@@ -23,5 +23,6 @@
- #define ROCKCHIP_SIP_CONFIG_DRAM_ECC 0x0d
- #define ROCKCHIP_SIP_CONFIG_DRAM_GET_FREQ_INFO 0x0e
- #define ROCKCHIP_SIP_CONFIG_DRAM_ADDRMAP_GET 0x10
-+#define ROCKCHIP_SIP_CONFIG_DRAM_GET_STALL_TIME 0x11
-
- #endif
diff --git a/projects/Rockchip/patches/linux/RK3588/007-rotation-quirk.patch b/projects/Rockchip/patches/linux/RK3588/007-rotation-quirk.patch
new file mode 100644
index 0000000000..6ef9017c46
--- /dev/null
+++ b/projects/Rockchip/patches/linux/RK3588/007-rotation-quirk.patch
@@ -0,0 +1,12 @@
+diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drivers/gpu/drm/drm_panel_orientation_quirks.c
+--- linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-03-23 01:52:13.930770363 +0000
++++ linux/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-03-23 01:53:34.905357358 +0000
+@@ -461,7 +461,7 @@ EXPORT_SYMBOL(drm_get_panel_orientation_
+ /* There are no quirks for non x86 devices yet */
+ int drm_get_panel_orientation_quirk(int width, int height)
+ {
+- return DRM_MODE_PANEL_ORIENTATION_UNKNOWN;
++ return DRM_MODE_PANEL_ORIENTATION_LEFT_UP;
+ }
+ EXPORT_SYMBOL(drm_get_panel_orientation_quirk);
+
diff --git a/projects/Rockchip/patches/linux/RK3588/008-simple-panel.patch b/projects/Rockchip/patches/linux/RK3588/008-simple-panel.patch
new file mode 100644
index 0000000000..9c30c94d20
--- /dev/null
+++ b/projects/Rockchip/patches/linux/RK3588/008-simple-panel.patch
@@ -0,0 +1,4018 @@
+diff -rupN linux.orig/drivers/gpu/drm/panel/panel-simple.c linux/drivers/gpu/drm/panel/panel-simple.c
+--- linux.orig/drivers/gpu/drm/panel/panel-simple.c 2024-03-22 18:43:18.858876137 +0000
++++ linux/drivers/gpu/drm/panel/panel-simple.c 2024-03-22 23:01:29.864153751 +0000
+@@ -24,6 +24,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -43,7 +44,7 @@
+ #include
+ #include
+ #include
+-#include
++#include
+
+ #include "panel-simple.h"
+
+@@ -68,50 +69,19 @@ struct panel_cmd_seq {
+ unsigned int cmd_cnt;
+ };
+
+-/**
+- * struct panel_desc - Describes a simple panel.
+- */
+ struct panel_desc {
+- /**
+- * @modes: Pointer to array of fixed modes appropriate for this panel.
+- *
+- * If only one mode then this can just be the address of the mode.
+- * NOTE: cannot be used with "timings" and also if this is specified
+- * then you cannot override the mode in the device tree.
+- */
+ const struct drm_display_mode *modes;
+-
+- /** @num_modes: Number of elements in modes array. */
+ unsigned int num_modes;
+-
+- /**
+- * @timings: Pointer to array of display timings
+- *
+- * NOTE: cannot be used with "modes" and also these will be used to
+- * validate a device tree override if one is present.
+- */
+ const struct display_timing *timings;
+-
+- /** @num_timings: Number of elements in timings array. */
+ unsigned int num_timings;
+
+- /** @bpc: Bits per color. */
+ unsigned int bpc;
+
+- /** @size: Structure containing the physical size of this panel. */
+ struct {
+- /**
+- * @size.width: Width (in mm) of the active display area.
+- */
+ unsigned int width;
+-
+- /**
+- * @size.height: Height (in mm) of the active display area.
+- */
+ unsigned int height;
+ } size;
+
+- /** @delay: Structure containing various delay values for this panel. */
+ /**
+ * @prepare: the time (in milliseconds) that it takes for the panel to
+ * become ready and start receiving video data
+@@ -130,54 +100,17 @@ struct panel_desc {
+ * send init command sequence after reset deassert
+ */
+ struct {
+- /**
+- * @delay.prepare: Time for the panel to become ready.
+- *
+- * The time (in milliseconds) that it takes for the panel to
+- * become ready and start receiving video data
+- */
+ unsigned int prepare;
+-
+- /**
+- * @delay.enable: Time for the panel to display a valid frame.
+- *
+- * The time (in milliseconds) that it takes for the panel to
+- * display the first valid frame after starting to receive
+- * video data.
+- */
++ unsigned int hpd_absent_delay;
+ unsigned int enable;
+-
+- /**
+- * @delay.disable: Time for the panel to turn the display off.
+- *
+- * The time (in milliseconds) that it takes for the panel to
+- * turn the display off (no content is visible).
+- */
+ unsigned int disable;
+-
+- /**
+- * @delay.unprepare: Time to power down completely.
+- *
+- * The time (in milliseconds) that it takes for the panel
+- * to power itself down completely.
+- *
+- * This time is used to prevent a future "prepare" from
+- * starting until at least this many milliseconds has passed.
+- * If at prepare time less time has passed since unprepare
+- * finished, the driver waits for the remaining time.
+- */
+ unsigned int unprepare;
+ unsigned int reset;
+ unsigned int init;
+ } delay;
+
+- /** @bus_format: See MEDIA_BUS_FMT_... defines. */
+ u32 bus_format;
+-
+- /** @bus_flags: See DRM_BUS_FLAG_... defines. */
+ u32 bus_flags;
+-
+- /** @connector_type: LVDS, eDP, DSI, DPI, etc. */
+ int connector_type;
+
+ struct panel_cmd_seq *init_seq;
+@@ -193,16 +126,10 @@ struct panel_simple {
+ struct drm_panel base;
+ struct mipi_dsi_device *dsi;
+ bool enabled;
+-
+ bool prepared;
+- /**
+- * @power_invert: if power-invert is true meas the panel power control is inverse,
+- * that is we need to disable ldo when panel power on and enable ldo when panel power off.
+- */
+- bool power_invert;
+
+- ktime_t prepared_time;
+- ktime_t unprepared_time;
++ bool power_invert;
++ bool no_hpd;
+
+ const struct panel_desc *desc;
+
+@@ -211,6 +138,7 @@ struct panel_simple {
+
+ struct gpio_desc *enable_gpio;
+ struct gpio_desc *reset_gpio;
++ struct gpio_desc *hpd_gpio;
+
+ struct edid *edid;
+
+@@ -220,11 +148,6 @@ struct panel_simple {
+ enum drm_panel_orientation orientation;
+ };
+
+-static inline void panel_simple_msleep(unsigned int msecs)
+-{
+- usleep_range(msecs * 1000, msecs * 1000 + 100);
+-}
+-
+ static inline struct panel_simple *to_panel_simple(struct drm_panel *panel)
+ {
+ return container_of(panel, struct panel_simple, base);
+@@ -342,7 +265,7 @@ static int panel_simple_xfer_dsi_cmd_seq
+ dev_err(dev, "failed to write dcs cmd: %d\n", err);
+
+ if (cmd->header.delay)
+- panel_simple_msleep(cmd->header.delay);
++ usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
+ }
+
+ return 0;
+@@ -365,7 +288,7 @@ static int panel_simple_xfer_spi_cmd_seq
+ return ret;
+
+ if (cmd->header.delay)
+- panel_simple_msleep(cmd->header.delay);
++ usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
+ }
+
+ return 0;
+@@ -484,20 +407,6 @@ static int panel_simple_get_non_edid_mod
+ return num;
+ }
+
+-static void panel_simple_wait(ktime_t start_ktime, unsigned int min_ms)
+-{
+- ktime_t now_ktime, min_ktime;
+-
+- if (!min_ms)
+- return;
+-
+- min_ktime = ktime_add(start_ktime, ms_to_ktime(min_ms));
+- now_ktime = ktime_get_boottime();
+-
+- if (ktime_before(now_ktime, min_ktime))
+- panel_simple_msleep(ktime_to_ms(ktime_sub(min_ktime, now_ktime)) + 1);
+-}
+-
+ static int panel_simple_regulator_enable(struct panel_simple *p)
+ {
+ int err;
+@@ -536,9 +445,9 @@ int panel_simple_loader_protect(struct d
+ struct panel_simple *p = to_panel_simple(panel);
+ int err;
+
+- err = pm_runtime_get_sync(panel->dev);
++ err = panel_simple_regulator_enable(p);
+ if (err < 0) {
+- pm_runtime_put_autosuspend(panel->dev);
++ dev_err(panel->dev, "failed to enable supply: %d\n", err);
+ return err;
+ }
+
+@@ -557,39 +466,17 @@ static int panel_simple_disable(struct d
+ return 0;
+
+ if (p->desc->delay.disable)
+- panel_simple_msleep(p->desc->delay.disable);
++ usleep_range(p->desc->delay.disable * 1000, p->desc->delay.disable * 1000 + 100);
+
+ p->enabled = false;
+
+ return 0;
+ }
+
+-static int panel_simple_suspend(struct device *dev)
+-{
+- struct panel_simple *p = dev_get_drvdata(dev);
+-
+- gpiod_set_value_cansleep(p->reset_gpio, 1);
+- gpiod_set_value_cansleep(p->enable_gpio, 0);
+-
+- panel_simple_regulator_disable(p);
+-
+- if (p->desc->delay.unprepare)
+- panel_simple_msleep(p->desc->delay.unprepare);
+-
+- p->unprepared_time = ktime_get_boottime();
+-
+- kfree(p->edid);
+- p->edid = NULL;
+-
+- return 0;
+-}
+-
+ static int panel_simple_unprepare(struct drm_panel *panel)
+ {
+ struct panel_simple *p = to_panel_simple(panel);
+- int ret;
+
+- /* Unpreparing when already unprepared is a no-op */
+ if (!p->prepared)
+ return 0;
+
+@@ -605,62 +492,97 @@ static int panel_simple_unprepare(struct
+ }
+ }
+
+- pm_runtime_mark_last_busy(panel->dev);
+- ret = pm_runtime_put_autosuspend(panel->dev);
+- if (ret < 0)
+- return ret;
++ gpiod_direction_output(p->reset_gpio, 1);
++ gpiod_direction_output(p->enable_gpio, 0);
++
++ panel_simple_regulator_disable(p);
++
++ if (p->desc->delay.unprepare)
++ usleep_range(p->desc->delay.unprepare * 1000, p->desc->delay.unprepare * 1000 + 100);
++
+ p->prepared = false;
+
+ return 0;
+ }
+
+-static int panel_simple_resume(struct device *dev)
++static int panel_simple_get_hpd_gpio(struct device *dev,
++ struct panel_simple *p, bool from_probe)
+ {
+- struct panel_simple *p = dev_get_drvdata(dev);
+ int err;
+
+- panel_simple_wait(p->unprepared_time, p->desc->delay.unprepare);
+-
+- err = panel_simple_regulator_enable(p);
+- if (err < 0) {
+- dev_err(dev, "failed to enable supply: %d\n", err);
+- return err;
++ p->hpd_gpio = devm_gpiod_get_optional(dev, "hpd", GPIOD_IN);
++ if (IS_ERR(p->hpd_gpio)) {
++ err = PTR_ERR(p->hpd_gpio);
++
++ /*
++ * If we're called from probe we won't consider '-EPROBE_DEFER'
++ * to be an error--we'll leave the error code in "hpd_gpio".
++ * When we try to use it we'll try again. This allows for
++ * circular dependencies where the component providing the
++ * hpd gpio needs the panel to init before probing.
++ */
++ if (err != -EPROBE_DEFER || !from_probe) {
++ dev_err(dev, "failed to get 'hpd' GPIO: %d\n", err);
++ return err;
++ }
+ }
+
+- gpiod_set_value_cansleep(p->enable_gpio, 1);
+-
+- if (p->desc->delay.prepare)
+- panel_simple_msleep(p->desc->delay.prepare);
+-
+- p->prepared_time = ktime_get_boottime();
+-
+ return 0;
+ }
+
+ static int panel_simple_prepare(struct drm_panel *panel)
+ {
+ struct panel_simple *p = to_panel_simple(panel);
+- int ret;
++ unsigned int delay;
++ int err;
++ int hpd_asserted;
+
+- /* Preparing when already prepared is a no-op */
+ if (p->prepared)
+ return 0;
+
+- ret = pm_runtime_get_sync(panel->dev);
+- if (ret < 0) {
+- pm_runtime_put_autosuspend(panel->dev);
+- return ret;
++ err = panel_simple_regulator_enable(p);
++ if (err < 0) {
++ dev_err(panel->dev, "failed to enable supply: %d\n", err);
++ return err;
++ }
++
++ gpiod_direction_output(p->enable_gpio, 1);
++
++ delay = p->desc->delay.prepare;
++ if (p->no_hpd)
++ delay += p->desc->delay.hpd_absent_delay;
++ if (delay)
++ usleep_range(delay * 1000, delay * 1000 + 100);
++
++ if (p->hpd_gpio) {
++ if (IS_ERR(p->hpd_gpio)) {
++ err = panel_simple_get_hpd_gpio(panel->dev, p, false);
++ if (err)
++ return err;
++ }
++
++ err = readx_poll_timeout(gpiod_get_value_cansleep, p->hpd_gpio,
++ hpd_asserted, hpd_asserted,
++ 1000, 2000000);
++ if (hpd_asserted < 0)
++ err = hpd_asserted;
++
++ if (err) {
++ dev_err(panel->dev,
++ "error waiting for hpd GPIO: %d\n", err);
++ return err;
++ }
+ }
+
+- gpiod_set_value_cansleep(p->reset_gpio, 1);
++ gpiod_direction_output(p->reset_gpio, 1);
+
+ if (p->desc->delay.reset)
+- panel_simple_msleep(p->desc->delay.reset);
++ usleep_range(p->desc->delay.reset * 1000, p->desc->delay.reset * 1000 + 100);
+
+- gpiod_set_value_cansleep(p->reset_gpio, 0);
++ gpiod_direction_output(p->reset_gpio, 0);
+
+ if (p->desc->delay.init)
+- panel_simple_msleep(p->desc->delay.init);
++ usleep_range(p->desc->delay.init * 1000, p->desc->delay.init * 1000 + 100);
+
+ if (p->desc->init_seq) {
+ if (p->desc->cmd_type == CMD_TYPE_SPI) {
+@@ -687,7 +609,7 @@ static int panel_simple_enable(struct dr
+ return 0;
+
+ if (p->desc->delay.enable)
+- panel_simple_msleep(p->desc->delay.enable);
++ usleep_range(p->desc->delay.enable * 1000, p->desc->delay.enable * 1000 + 100);
+
+ p->enabled = true;
+
+@@ -702,25 +624,19 @@ static int panel_simple_get_modes(struct
+
+ /* probe EDID if a DDC bus is available */
+ if (p->ddc) {
+- pm_runtime_get_sync(panel->dev);
+-
+- if (!p->edid)
+- p->edid = drm_get_edid(connector, p->ddc);
+-
+- if (p->edid)
+- num += drm_add_edid_modes(connector, p->edid);
++ struct edid *edid = drm_get_edid(connector, p->ddc);
+
+- pm_runtime_mark_last_busy(panel->dev);
+- pm_runtime_put_autosuspend(panel->dev);
++ drm_connector_update_edid_property(connector, edid);
++ if (edid) {
++ num += drm_add_edid_modes(connector, edid);
++ kfree(edid);
++ }
+ }
+
+ /* add hard-coded panel modes */
+ num += panel_simple_get_non_edid_modes(p, connector);
+
+- /*
+- * TODO: Remove once all drm drivers call
+- * drm_connector_set_orientation_from_panel()
+- */
++ /* set up connector's "panel orientation" property */
+ drm_connector_set_panel_orientation(connector, p->orientation);
+
+ return num;
+@@ -743,20 +659,12 @@ static int panel_simple_get_timings(stru
+ return p->desc->num_timings;
+ }
+
+-static enum drm_panel_orientation panel_simple_get_orientation(struct drm_panel *panel)
+-{
+- struct panel_simple *p = to_panel_simple(panel);
+-
+- return p->orientation;
+-}
+-
+ static const struct drm_panel_funcs panel_simple_funcs = {
+ .disable = panel_simple_disable,
+ .unprepare = panel_simple_unprepare,
+ .prepare = panel_simple_prepare,
+ .enable = panel_simple_enable,
+ .get_modes = panel_simple_get_modes,
+- .get_orientation = panel_simple_get_orientation,
+ .get_timings = panel_simple_get_timings,
+ };
+
+@@ -915,9 +823,16 @@ static int panel_simple_probe(struct dev
+ return -ENOMEM;
+
+ panel->enabled = false;
+- panel->prepared_time = 0;
++ panel->prepared = false;
+ panel->desc = desc;
+
++ panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd");
++ if (!panel->no_hpd) {
++ err = panel_simple_get_hpd_gpio(dev, panel, true);
++ if (err)
++ return err;
++ }
++
+ panel->supply = devm_regulator_get(dev, "power");
+ if (IS_ERR(panel->supply)) {
+ err = PTR_ERR(panel->supply);
+@@ -976,7 +891,7 @@ static int panel_simple_probe(struct dev
+ /* Catch common mistakes for panels. */
+ switch (connector_type) {
+ case 0:
+- dev_warn(dev, "Specify missing connector_type\n");
++ dev_dbg(dev, "Specify missing connector_type\n");
+ connector_type = DRM_MODE_CONNECTOR_DPI;
+ break;
+ case DRM_MODE_CONNECTOR_LVDS:
+@@ -995,8 +910,10 @@ static int panel_simple_probe(struct dev
+ desc->bpc != 8);
+ break;
+ case DRM_MODE_CONNECTOR_eDP:
+- if (desc->bpc != 6 && desc->bpc != 8 && desc->bpc != 10)
+- dev_warn(dev, "Expected bpc in {6,8,10} but got: %u\n", desc->bpc);
++ if (desc->bus_format == 0)
++ dev_warn(dev, "Specify missing bus_format\n");
++ if (desc->bpc != 6 && desc->bpc != 8)
++ dev_warn(dev, "Expected bpc in {6,8} but got: %u\n", desc->bpc);
+ break;
+ case DRM_MODE_CONNECTOR_DSI:
+ if (desc->bpc != 6 && desc->bpc != 8)
+@@ -1026,33 +943,20 @@ static int panel_simple_probe(struct dev
+ break;
+ }
+
+- dev_set_drvdata(dev, panel);
+-
+- /*
+- * We use runtime PM for prepare / unprepare since those power the panel
+- * on and off and those can be very slow operations. This is important
+- * to optimize powering the panel on briefly to read the EDID before
+- * fully enabling the panel.
+- */
+- pm_runtime_enable(dev);
+- pm_runtime_set_autosuspend_delay(dev, 1000);
+- pm_runtime_use_autosuspend(dev);
+-
+ drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type);
+
+ err = drm_panel_of_backlight(&panel->base);
+ if (err) {
+- dev_err_probe(dev, err, "Could not find backlight\n");
+- goto disable_pm_runtime;
++ dev_err(dev, "failed to find backlight: %d\n", err);
++ goto free_ddc;
+ }
+
+ drm_panel_add(&panel->base);
+
++ dev_set_drvdata(dev, panel);
++
+ return 0;
+
+-disable_pm_runtime:
+- pm_runtime_dont_use_autosuspend(dev);
+- pm_runtime_disable(dev);
+ free_ddc:
+ if (panel->ddc)
+ put_device(&panel->ddc->dev);
+@@ -1060,7 +964,7 @@ free_ddc:
+ return err;
+ }
+
+-static void panel_simple_remove(struct device *dev)
++static int panel_simple_remove(struct device *dev)
+ {
+ struct panel_simple *panel = dev_get_drvdata(dev);
+
+@@ -1068,10 +972,10 @@ static void panel_simple_remove(struct d
+ drm_panel_disable(&panel->base);
+ drm_panel_unprepare(&panel->base);
+
+- pm_runtime_dont_use_autosuspend(dev);
+- pm_runtime_disable(dev);
+ if (panel->ddc)
+ put_device(&panel->ddc->dev);
++
++ return 0;
+ }
+
+ static void panel_simple_shutdown(struct device *dev)
+@@ -1126,8 +1030,8 @@ static const struct panel_desc ampire_am
+ .num_modes = 1,
+ .bpc = 8,
+ .size = {
+- .width = 99,
+- .height = 58,
++ .width = 105,
++ .height = 67,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+ };
+@@ -1156,36 +1060,6 @@ static const struct panel_desc ampire_am
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ };
+
+-static const struct display_timing ampire_am800600p5tmqw_tb8h_timing = {
+- .pixelclock = { 34500000, 39600000, 50400000 },
+- .hactive = { 800, 800, 800 },
+- .hfront_porch = { 12, 112, 312 },
+- .hback_porch = { 87, 87, 48 },
+- .hsync_len = { 1, 1, 40 },
+- .vactive = { 600, 600, 600 },
+- .vfront_porch = { 1, 21, 61 },
+- .vback_porch = { 38, 38, 19 },
+- .vsync_len = { 1, 1, 20 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+- DISPLAY_FLAGS_SYNC_POSEDGE,
+-};
+-
+-static const struct panel_desc ampire_am800600p5tmqwtb8h = {
+- .timings = &ire_am800600p5tmqw_tb8h_timing,
+- .num_timings = 1,
+- .bpc = 6,
+- .size = {
+- .width = 162,
+- .height = 122,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH |
+- DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE |
+- DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+ static const struct display_timing santek_st0700i5y_rbslw_f_timing = {
+ .pixelclock = { 26400000, 33300000, 46800000 },
+ .hactive = { 800, 800, 800 },
+@@ -1332,8 +1206,6 @@ static const struct panel_desc auo_g104s
+ .width = 211,
+ .height = 158,
+ },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+ static const struct drm_display_mode auo_g121ean01_mode = {
+@@ -1810,55 +1682,6 @@ static const struct panel_desc chunghwa_
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+-static const struct display_timing dataimage_fg040346dsswbg04_timing = {
+- .pixelclock = { 5000000, 9000000, 12000000 },
+- .hactive = { 480, 480, 480 },
+- .hfront_porch = { 12, 12, 12 },
+- .hback_porch = { 12, 12, 12 },
+- .hsync_len = { 21, 21, 21 },
+- .vactive = { 272, 272, 272 },
+- .vfront_porch = { 4, 4, 4 },
+- .vback_porch = { 4, 4, 4 },
+- .vsync_len = { 8, 8, 8 },
+-};
+-
+-static const struct panel_desc dataimage_fg040346dsswbg04 = {
+- .timings = &dataimage_fg040346dsswbg04_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 95,
+- .height = 54,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct display_timing dataimage_fg1001l0dsswmg01_timing = {
+- .pixelclock = { 68900000, 71110000, 73400000 },
+- .hactive = { 1280, 1280, 1280 },
+- .vactive = { 800, 800, 800 },
+- .hback_porch = { 100, 100, 100 },
+- .hfront_porch = { 100, 100, 100 },
+- .vback_porch = { 5, 5, 5 },
+- .vfront_porch = { 5, 5, 5 },
+- .hsync_len = { 24, 24, 24 },
+- .vsync_len = { 3, 3, 3 },
+- .flags = DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+- DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
+-};
+-
+-static const struct panel_desc dataimage_fg1001l0dsswmg01 = {
+- .timings = &dataimage_fg1001l0dsswmg01_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 217,
+- .height = 136,
+- },
+-};
+-
+ static const struct drm_display_mode dataimage_scf0700c48ggu18_mode = {
+ .clock = 33260,
+ .hdisplay = 800,
+@@ -1970,32 +1793,6 @@ static const struct panel_desc edt_et035
+ .bus_flags = DRM_BUS_FLAG_DE_LOW | DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE,
+ };
+
+-static const struct drm_display_mode edt_etm0350g0dh6_mode = {
+- .clock = 6520,
+- .hdisplay = 320,
+- .hsync_start = 320 + 20,
+- .hsync_end = 320 + 20 + 68,
+- .htotal = 320 + 20 + 68,
+- .vdisplay = 240,
+- .vsync_start = 240 + 4,
+- .vsync_end = 240 + 4 + 18,
+- .vtotal = 240 + 4 + 18,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+-};
+-
+-static const struct panel_desc edt_etm0350g0dh6 = {
+- .modes = &edt_etm0350g0dh6_mode,
+- .num_modes = 1,
+- .bpc = 6,
+- .size = {
+- .width = 70,
+- .height = 53,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+ static const struct drm_display_mode edt_etm043080dh6gp_mode = {
+ .clock = 10870,
+ .hdisplay = 480,
+@@ -2047,9 +1844,6 @@ static const struct panel_desc edt_etm04
+ .width = 95,
+ .height = 54,
+ },
+- .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+ };
+
+ static const struct drm_display_mode edt_et057090dhu_mode = {
+@@ -2101,7 +1895,6 @@ static const struct panel_desc edt_etm07
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+ };
+
+ static const struct panel_desc edt_etm0700g0bdh6 = {
+@@ -2114,86 +1907,6 @@ static const struct panel_desc edt_etm07
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct display_timing edt_etml0700y5dha_timing = {
+- .pixelclock = { 40800000, 51200000, 67200000 },
+- .hactive = { 1024, 1024, 1024 },
+- .hfront_porch = { 30, 106, 125 },
+- .hback_porch = { 30, 106, 125 },
+- .hsync_len = { 30, 108, 126 },
+- .vactive = { 600, 600, 600 },
+- .vfront_porch = { 3, 12, 67},
+- .vback_porch = { 3, 12, 67 },
+- .vsync_len = { 4, 11, 66 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH,
+-};
+-
+-static const struct panel_desc edt_etml0700y5dha = {
+- .timings = &edt_etml0700y5dha_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 155,
+- .height = 86,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+-static const struct drm_display_mode edt_etmv570g2dhu_mode = {
+- .clock = 25175,
+- .hdisplay = 640,
+- .hsync_start = 640,
+- .hsync_end = 640 + 16,
+- .htotal = 640 + 16 + 30 + 114,
+- .vdisplay = 480,
+- .vsync_start = 480 + 10,
+- .vsync_end = 480 + 10 + 3,
+- .vtotal = 480 + 10 + 3 + 35,
+- .flags = DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC,
+-};
+-
+-static const struct panel_desc edt_etmv570g2dhu = {
+- .modes = &edt_etmv570g2dhu_mode,
+- .num_modes = 1,
+- .bpc = 6,
+- .size = {
+- .width = 115,
+- .height = 86,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct display_timing eink_vb3300_kca_timing = {
+- .pixelclock = { 40000000, 40000000, 40000000 },
+- .hactive = { 334, 334, 334 },
+- .hfront_porch = { 1, 1, 1 },
+- .hback_porch = { 1, 1, 1 },
+- .hsync_len = { 1, 1, 1 },
+- .vactive = { 1405, 1405, 1405 },
+- .vfront_porch = { 1, 1, 1 },
+- .vback_porch = { 1, 1, 1 },
+- .vsync_len = { 1, 1, 1 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE,
+-};
+-
+-static const struct panel_desc eink_vb3300_kca = {
+- .timings = &eink_vb3300_kca_timing,
+- .num_timings = 1,
+- .bpc = 6,
+- .size = {
+- .width = 157,
+- .height = 209,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+ };
+
+ static const struct display_timing evervision_vgg804821_timing = {
+@@ -2411,31 +2124,6 @@ static const struct panel_desc hannstar_
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+-static const struct display_timing hannstar_hsd101pww2_timing = {
+- .pixelclock = { 64300000, 71100000, 82000000 },
+- .hactive = { 1280, 1280, 1280 },
+- .hfront_porch = { 1, 1, 10 },
+- .hback_porch = { 1, 1, 10 },
+- .hsync_len = { 58, 158, 661 },
+- .vactive = { 800, 800, 800 },
+- .vfront_porch = { 1, 1, 10 },
+- .vback_porch = { 1, 1, 10 },
+- .vsync_len = { 1, 21, 203 },
+- .flags = DISPLAY_FLAGS_DE_HIGH,
+-};
+-
+-static const struct panel_desc hannstar_hsd101pww2 = {
+- .timings = &hannstar_hsd101pww2_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 217,
+- .height = 136,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+ static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
+ .clock = 33333,
+ .hdisplay = 800,
+@@ -2484,7 +2172,6 @@ static const struct panel_desc innolux_a
+ .height = 54,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+ .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+ };
+
+@@ -2542,31 +2229,6 @@ static const struct panel_desc innolux_g
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+-static const struct drm_display_mode innolux_g070y2_t02_mode = {
+- .clock = 33333,
+- .hdisplay = 800,
+- .hsync_start = 800 + 210,
+- .hsync_end = 800 + 210 + 20,
+- .htotal = 800 + 210 + 20 + 46,
+- .vdisplay = 480,
+- .vsync_start = 480 + 22,
+- .vsync_end = 480 + 22 + 10,
+- .vtotal = 480 + 22 + 23 + 10,
+-};
+-
+-static const struct panel_desc innolux_g070y2_t02 = {
+- .modes = &innolux_g070y2_t02_mode,
+- .num_modes = 1,
+- .bpc = 8,
+- .size = {
+- .width = 152,
+- .height = 92,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+ static const struct display_timing innolux_g101ice_l01_timing = {
+ .pixelclock = { 60400000, 71100000, 74700000 },
+ .hactive = { 1280, 1280, 1280 },
+@@ -2908,70 +2570,6 @@ static const struct panel_desc logictech
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+-static const struct drm_display_mode logictechno_lttd800480070_l2rt_mode = {
+- .clock = 33000,
+- .hdisplay = 800,
+- .hsync_start = 800 + 112,
+- .hsync_end = 800 + 112 + 3,
+- .htotal = 800 + 112 + 3 + 85,
+- .vdisplay = 480,
+- .vsync_start = 480 + 38,
+- .vsync_end = 480 + 38 + 3,
+- .vtotal = 480 + 38 + 3 + 29,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+-};
+-
+-static const struct panel_desc logictechno_lttd800480070_l2rt = {
+- .modes = &logictechno_lttd800480070_l2rt_mode,
+- .num_modes = 1,
+- .bpc = 8,
+- .size = {
+- .width = 154,
+- .height = 86,
+- },
+- .delay = {
+- .prepare = 45,
+- .enable = 100,
+- .disable = 100,
+- .unprepare = 45
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct drm_display_mode logictechno_lttd800480070_l6wh_rt_mode = {
+- .clock = 33000,
+- .hdisplay = 800,
+- .hsync_start = 800 + 154,
+- .hsync_end = 800 + 154 + 3,
+- .htotal = 800 + 154 + 3 + 43,
+- .vdisplay = 480,
+- .vsync_start = 480 + 47,
+- .vsync_end = 480 + 47 + 3,
+- .vtotal = 480 + 47 + 3 + 20,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+-};
+-
+-static const struct panel_desc logictechno_lttd800480070_l6wh_rt = {
+- .modes = &logictechno_lttd800480070_l6wh_rt_mode,
+- .num_modes = 1,
+- .bpc = 8,
+- .size = {
+- .width = 154,
+- .height = 86,
+- },
+- .delay = {
+- .prepare = 45,
+- .enable = 100,
+- .disable = 100,
+- .unprepare = 45
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+ static const struct drm_display_mode logicpd_type_28_mode = {
+ .clock = 9107,
+ .hdisplay = 480,
+@@ -3006,129 +2604,6 @@ static const struct panel_desc logicpd_t
+ .connector_type = DRM_MODE_CONNECTOR_DPI,
+ };
+
+-static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
+- .clock = 30400,
+- .hdisplay = 800,
+- .hsync_start = 800 + 0,
+- .hsync_end = 800 + 1,
+- .htotal = 800 + 0 + 1 + 160,
+- .vdisplay = 480,
+- .vsync_start = 480 + 0,
+- .vsync_end = 480 + 48 + 1,
+- .vtotal = 480 + 48 + 1 + 0,
+- .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+-};
+-
+-static const struct panel_desc mitsubishi_aa070mc01 = {
+- .modes = &mitsubishi_aa070mc01_mode,
+- .num_modes = 1,
+- .bpc = 8,
+- .size = {
+- .width = 152,
+- .height = 91,
+- },
+-
+- .delay = {
+- .enable = 200,
+- .unprepare = 200,
+- .disable = 400,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
+-};
+-
+-static const struct display_timing multi_inno_mi0700s4t_6_timing = {
+- .pixelclock = { 29000000, 33000000, 38000000 },
+- .hactive = { 800, 800, 800 },
+- .hfront_porch = { 180, 210, 240 },
+- .hback_porch = { 16, 16, 16 },
+- .hsync_len = { 30, 30, 30 },
+- .vactive = { 480, 480, 480 },
+- .vfront_porch = { 12, 22, 32 },
+- .vback_porch = { 10, 10, 10 },
+- .vsync_len = { 13, 13, 13 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+- DISPLAY_FLAGS_SYNC_POSEDGE,
+-};
+-
+-static const struct panel_desc multi_inno_mi0700s4t_6 = {
+- .timings = &multi_inno_mi0700s4t_6_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 154,
+- .height = 86,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH |
+- DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE |
+- DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct display_timing multi_inno_mi0800ft_9_timing = {
+- .pixelclock = { 32000000, 40000000, 50000000 },
+- .hactive = { 800, 800, 800 },
+- .hfront_porch = { 16, 210, 354 },
+- .hback_porch = { 6, 26, 45 },
+- .hsync_len = { 1, 20, 40 },
+- .vactive = { 600, 600, 600 },
+- .vfront_porch = { 1, 12, 77 },
+- .vback_porch = { 3, 13, 22 },
+- .vsync_len = { 1, 10, 20 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+- DISPLAY_FLAGS_SYNC_POSEDGE,
+-};
+-
+-static const struct panel_desc multi_inno_mi0800ft_9 = {
+- .timings = &multi_inno_mi0800ft_9_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 162,
+- .height = 122,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH |
+- DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE |
+- DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+-static const struct display_timing multi_inno_mi1010ait_1cp_timing = {
+- .pixelclock = { 68900000, 70000000, 73400000 },
+- .hactive = { 1280, 1280, 1280 },
+- .hfront_porch = { 30, 60, 71 },
+- .hback_porch = { 30, 60, 71 },
+- .hsync_len = { 10, 10, 48 },
+- .vactive = { 800, 800, 800 },
+- .vfront_porch = { 5, 10, 10 },
+- .vback_porch = { 5, 10, 10 },
+- .vsync_len = { 5, 6, 13 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH,
+-};
+-
+-static const struct panel_desc multi_inno_mi1010ait_1cp = {
+- .timings = &multi_inno_mi1010ait_1cp_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 217,
+- .height = 136,
+- },
+- .delay = {
+- .enable = 50,
+- .disable = 50,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+ static const struct display_timing nec_nl12880bc20_05_timing = {
+ .pixelclock = { 67000000, 71000000, 75000000 },
+ .hactive = { 1280, 1280, 1280 },
+@@ -3477,7 +2952,6 @@ static const struct drm_display_mode pow
+ .vsync_start = 480 + 49,
+ .vsync_end = 480 + 49 + 2,
+ .vtotal = 480 + 49 + 2 + 22,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+ };
+
+ static const struct panel_desc powertip_ph800480t013_idf02 = {
+@@ -3517,46 +2991,6 @@ static const struct panel_desc qd43003c0
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+ };
+
+-static const struct drm_display_mode qishenglong_gopher2b_lcd_modes[] = {
+- { /* 60 Hz */
+- .clock = 10800,
+- .hdisplay = 480,
+- .hsync_start = 480 + 77,
+- .hsync_end = 480 + 77 + 41,
+- .htotal = 480 + 77 + 41 + 2,
+- .vdisplay = 272,
+- .vsync_start = 272 + 16,
+- .vsync_end = 272 + 16 + 10,
+- .vtotal = 272 + 16 + 10 + 2,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+- },
+- { /* 50 Hz */
+- .clock = 10800,
+- .hdisplay = 480,
+- .hsync_start = 480 + 17,
+- .hsync_end = 480 + 17 + 41,
+- .htotal = 480 + 17 + 41 + 2,
+- .vdisplay = 272,
+- .vsync_start = 272 + 116,
+- .vsync_end = 272 + 116 + 10,
+- .vtotal = 272 + 116 + 10 + 2,
+- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+- },
+-};
+-
+-static const struct panel_desc qishenglong_gopher2b_lcd = {
+- .modes = qishenglong_gopher2b_lcd_modes,
+- .num_modes = ARRAY_SIZE(qishenglong_gopher2b_lcd_modes),
+- .bpc = 8,
+- .size = {
+- .width = 95,
+- .height = 54,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+-};
+-
+ static const struct display_timing rocktech_rk070er9427_timing = {
+ .pixelclock = { 26400000, 33300000, 46800000 },
+ .hactive = { 800, 800, 800 },
+@@ -3601,7 +3035,6 @@ static const struct drm_display_mode roc
+
+ static const struct panel_desc rocktech_rk101ii01d_ct = {
+ .modes = &rocktech_rk101ii01d_ct_mode,
+- .bpc = 8,
+ .num_modes = 1,
+ .size = {
+ .width = 217,
+@@ -3616,37 +3049,6 @@ static const struct panel_desc rocktech_
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+ };
+
+-static const struct display_timing samsung_ltl101al01_timing = {
+- .pixelclock = { 66663000, 66663000, 66663000 },
+- .hactive = { 1280, 1280, 1280 },
+- .hfront_porch = { 18, 18, 18 },
+- .hback_porch = { 36, 36, 36 },
+- .hsync_len = { 16, 16, 16 },
+- .vactive = { 800, 800, 800 },
+- .vfront_porch = { 4, 4, 4 },
+- .vback_porch = { 16, 16, 16 },
+- .vsync_len = { 3, 3, 3 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
+-};
+-
+-static const struct panel_desc samsung_ltl101al01 = {
+- .timings = &samsung_ltl101al01_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 217,
+- .height = 135,
+- },
+- .delay = {
+- .prepare = 40,
+- .enable = 300,
+- .disable = 200,
+- .unprepare = 600,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+ static const struct drm_display_mode samsung_ltn101nt05_mode = {
+ .clock = 54030,
+ .hdisplay = 1024,
+@@ -3858,68 +3260,6 @@ static const struct panel_desc starry_kr
+ .connector_type = DRM_MODE_CONNECTOR_DPI,
+ };
+
+-static const struct display_timing startek_kd070wvfpa_mode = {
+- .pixelclock = { 25200000, 27200000, 30500000 },
+- .hactive = { 800, 800, 800 },
+- .hfront_porch = { 19, 44, 115 },
+- .hback_porch = { 5, 16, 101 },
+- .hsync_len = { 1, 2, 100 },
+- .vactive = { 480, 480, 480 },
+- .vfront_porch = { 5, 43, 67 },
+- .vback_porch = { 5, 5, 67 },
+- .vsync_len = { 1, 2, 66 },
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+- DISPLAY_FLAGS_SYNC_POSEDGE,
+-};
+-
+-static const struct panel_desc startek_kd070wvfpa = {
+- .timings = &startek_kd070wvfpa_mode,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 152,
+- .height = 91,
+- },
+- .delay = {
+- .prepare = 20,
+- .enable = 200,
+- .disable = 200,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .connector_type = DRM_MODE_CONNECTOR_DPI,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH |
+- DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE |
+- DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE,
+-};
+-
+-static const struct display_timing tsd_tst043015cmhx_timing = {
+- .pixelclock = { 5000000, 9000000, 12000000 },
+- .hactive = { 480, 480, 480 },
+- .hfront_porch = { 4, 5, 65 },
+- .hback_porch = { 36, 40, 255 },
+- .hsync_len = { 1, 1, 1 },
+- .vactive = { 272, 272, 272 },
+- .vfront_porch = { 2, 8, 97 },
+- .vback_porch = { 3, 8, 31 },
+- .vsync_len = { 1, 1, 1 },
+-
+- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+- DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE,
+-};
+-
+-static const struct panel_desc tsd_tst043015cmhx = {
+- .timings = &tsd_tst043015cmhx_timing,
+- .num_timings = 1,
+- .bpc = 8,
+- .size = {
+- .width = 105,
+- .height = 67,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+-};
+-
+ static const struct drm_display_mode tfc_s9700rtwv43tr_01b_mode = {
+ .clock = 30000,
+ .hdisplay = 800,
+@@ -4166,31 +3506,6 @@ static const struct panel_desc urt_umsh_
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ };
+
+-static const struct drm_display_mode vivax_tpc9150_panel_mode = {
+- .clock = 60000,
+- .hdisplay = 1024,
+- .hsync_start = 1024 + 160,
+- .hsync_end = 1024 + 160 + 100,
+- .htotal = 1024 + 160 + 100 + 60,
+- .vdisplay = 600,
+- .vsync_start = 600 + 12,
+- .vsync_end = 600 + 12 + 10,
+- .vtotal = 600 + 12 + 10 + 13,
+-};
+-
+-static const struct panel_desc vivax_tpc9150_panel = {
+- .modes = &vivax_tpc9150_panel_mode,
+- .num_modes = 1,
+- .bpc = 6,
+- .size = {
+- .width = 200,
+- .height = 115,
+- },
+- .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+ static const struct drm_display_mode vl050_8048nt_c01_mode = {
+ .clock = 33333,
+ .hdisplay = 800,
+@@ -4240,32 +3555,6 @@ static const struct panel_desc winstar_w
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+ };
+
+-static const struct drm_display_mode yes_optoelectronics_ytc700tlag_05_201c_mode = {
+- .clock = 51200,
+- .hdisplay = 1024,
+- .hsync_start = 1024 + 100,
+- .hsync_end = 1024 + 100 + 100,
+- .htotal = 1024 + 100 + 100 + 120,
+- .vdisplay = 600,
+- .vsync_start = 600 + 10,
+- .vsync_end = 600 + 10 + 10,
+- .vtotal = 600 + 10 + 10 + 15,
+- .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+-};
+-
+-static const struct panel_desc yes_optoelectronics_ytc700tlag_05_201c = {
+- .modes = &yes_optoelectronics_ytc700tlag_05_201c_mode,
+- .num_modes = 1,
+- .bpc = 8,
+- .size = {
+- .width = 154,
+- .height = 90,
+- },
+- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
+- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+-};
+-
+ static const struct drm_display_mode arm_rtsm_mode[] = {
+ {
+ .clock = 65000,
+@@ -4306,9 +3595,6 @@ static const struct of_device_id platfor
+ .compatible = "ampire,am800480r3tmqwa1h",
+ .data = &ire_am800480r3tmqwa1h,
+ }, {
+- .compatible = "ampire,am800600p5tmqw-tb8h",
+- .data = &ire_am800600p5tmqwtb8h,
+- }, {
+ .compatible = "arm,rtsm-display",
+ .data = &arm_rtsm,
+ }, {
+@@ -4384,12 +3670,6 @@ static const struct of_device_id platfor
+ .compatible = "chunghwa,claa101wb01",
+ .data = &chunghwa_claa101wb01
+ }, {
+- .compatible = "dataimage,fg040346dsswbg04",
+- .data = &dataimage_fg040346dsswbg04,
+- }, {
+- .compatible = "dataimage,fg1001l0dsswmg01",
+- .data = &dataimage_fg1001l0dsswmg01,
+- }, {
+ .compatible = "dataimage,scf0700c48ggu18",
+ .data = &dataimage_scf0700c48ggu18,
+ }, {
+@@ -4402,9 +3682,6 @@ static const struct of_device_id platfor
+ .compatible = "edt,et035012dm6",
+ .data = &edt_et035012dm6,
+ }, {
+- .compatible = "edt,etm0350g0dh6",
+- .data = &edt_etm0350g0dh6,
+- }, {
+ .compatible = "edt,etm043080dh6gp",
+ .data = &edt_etm043080dh6gp,
+ }, {
+@@ -4426,15 +3703,6 @@ static const struct of_device_id platfor
+ .compatible = "edt,etm0700g0edh6",
+ .data = &edt_etm0700g0bdh6,
+ }, {
+- .compatible = "edt,etml0700y5dha",
+- .data = &edt_etml0700y5dha,
+- }, {
+- .compatible = "edt,etmv570g2dhu",
+- .data = &edt_etmv570g2dhu,
+- }, {
+- .compatible = "eink,vb3300-kca",
+- .data = &eink_vb3300_kca,
+- }, {
+ .compatible = "evervision,vgg804821",
+ .data = &evervision_vgg804821,
+ }, {
+@@ -4459,9 +3727,6 @@ static const struct of_device_id platfor
+ .compatible = "hannstar,hsd100pxn1",
+ .data = &hannstar_hsd100pxn1,
+ }, {
+- .compatible = "hannstar,hsd101pww2",
+- .data = &hannstar_hsd101pww2,
+- }, {
+ .compatible = "hit,tx23d38vm0caa",
+ .data = &hitachi_tx23d38vm0caa
+ }, {
+@@ -4474,9 +3739,6 @@ static const struct of_device_id platfor
+ .compatible = "innolux,g070y2-l01",
+ .data = &innolux_g070y2_l01,
+ }, {
+- .compatible = "innolux,g070y2-t02",
+- .data = &innolux_g070y2_t02,
+- }, {
+ .compatible = "innolux,g101ice-l01",
+ .data = &innolux_g101ice_l01
+ }, {
+@@ -4522,24 +3784,6 @@ static const struct of_device_id platfor
+ .compatible = "logictechno,lt170410-2whc",
+ .data = &logictechno_lt170410_2whc,
+ }, {
+- .compatible = "logictechno,lttd800480070-l2rt",
+- .data = &logictechno_lttd800480070_l2rt,
+- }, {
+- .compatible = "logictechno,lttd800480070-l6wh-rt",
+- .data = &logictechno_lttd800480070_l6wh_rt,
+- }, {
+- .compatible = "mitsubishi,aa070mc01-ca1",
+- .data = &mitsubishi_aa070mc01,
+- }, {
+- .compatible = "multi-inno,mi0700s4t-6",
+- .data = &multi_inno_mi0700s4t_6,
+- }, {
+- .compatible = "multi-inno,mi0800ft-9",
+- .data = &multi_inno_mi0800ft_9,
+- }, {
+- .compatible = "multi-inno,mi1010ait-1cp",
+- .data = &multi_inno_mi1010ait_1cp,
+- }, {
+ .compatible = "nec,nl12880bc20-05",
+ .data = &nec_nl12880bc20_05,
+ }, {
+@@ -4588,18 +3832,12 @@ static const struct of_device_id platfor
+ .compatible = "qiaodian,qd43003c0-40",
+ .data = &qd43003c0_40,
+ }, {
+- .compatible = "qishenglong,gopher2b-lcd",
+- .data = &qishenglong_gopher2b_lcd,
+- }, {
+ .compatible = "rocktech,rk070er9427",
+ .data = &rocktech_rk070er9427,
+ }, {
+ .compatible = "rocktech,rk101ii01d-ct",
+ .data = &rocktech_rk101ii01d_ct,
+ }, {
+- .compatible = "samsung,ltl101al01",
+- .data = &samsung_ltl101al01,
+- }, {
+ .compatible = "samsung,ltn101nt05",
+ .data = &samsung_ltn101nt05,
+ }, {
+@@ -4624,12 +3862,6 @@ static const struct of_device_id platfor
+ .compatible = "starry,kr070pe2t",
+ .data = &starry_kr070pe2t,
+ }, {
+- .compatible = "startek,kd070wvfpa",
+- .data = &startek_kd070wvfpa,
+- }, {
+- .compatible = "team-source-display,tst043015cmhx",
+- .data = &tsd_tst043015cmhx,
+- }, {
+ .compatible = "tfc,s9700rtwv43tr-01b",
+ .data = &tfc_s9700rtwv43tr_01b,
+ }, {
+@@ -4675,18 +3907,12 @@ static const struct of_device_id platfor
+ .compatible = "urt,umsh-8596md-20t",
+ .data = &urt_umsh_8596md_parallel,
+ }, {
+- .compatible = "vivax,tpc9150-panel",
+- .data = &vivax_tpc9150_panel,
+- }, {
+ .compatible = "vxt,vl050-8048nt-c01",
+ .data = &vl050_8048nt_c01,
+ }, {
+ .compatible = "winstar,wf35ltiacd",
+ .data = &winstar_wf35ltiacd,
+ }, {
+- .compatible = "yes-optoelectronics,ytc700tlag-05-201c",
+- .data = &yes_optoelectronics_ytc700tlag_05_201c,
+- }, {
+ /* Must be the last entry */
+ .compatible = "panel-dpi",
+ .data = &panel_dpi,
+@@ -4826,9 +4052,7 @@ static int panel_simple_platform_probe(s
+
+ static int panel_simple_platform_remove(struct platform_device *pdev)
+ {
+- panel_simple_remove(&pdev->dev);
+-
+- return 0;
++ return panel_simple_remove(&pdev->dev);
+ }
+
+ static void panel_simple_platform_shutdown(struct platform_device *pdev)
+@@ -4836,17 +4060,10 @@ static void panel_simple_platform_shutdo
+ panel_simple_shutdown(&pdev->dev);
+ }
+
+-static const struct dev_pm_ops panel_simple_pm_ops = {
+- SET_RUNTIME_PM_OPS(panel_simple_suspend, panel_simple_resume, NULL)
+- SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+- pm_runtime_force_resume)
+-};
+-
+ static struct platform_driver panel_simple_platform_driver = {
+ .driver = {
+ .name = "panel-simple",
+ .of_match_table = platform_of_match,
+- .pm = &panel_simple_pm_ops,
+ },
+ .probe = panel_simple_platform_probe,
+ .remove = panel_simple_platform_remove,
+@@ -5175,7 +4392,7 @@ static int panel_simple_dsi_probe(struct
+
+ err = mipi_dsi_attach(dsi);
+ if (err) {
+- struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
++ struct panel_simple *panel = dev_get_drvdata(&dsi->dev);
+
+ drm_panel_remove(&panel->base);
+ }
+@@ -5183,7 +4400,7 @@ static int panel_simple_dsi_probe(struct
+ return err;
+ }
+
+-static void panel_simple_dsi_remove(struct mipi_dsi_device *dsi)
++static int panel_simple_dsi_remove(struct mipi_dsi_device *dsi)
+ {
+ int err;
+
+@@ -5191,7 +4408,7 @@ static void panel_simple_dsi_remove(stru
+ if (err < 0)
+ dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
+
+- panel_simple_remove(&dsi->dev);
++ return panel_simple_remove(&dsi->dev);
+ }
+
+ static void panel_simple_dsi_shutdown(struct mipi_dsi_device *dsi)
+@@ -5203,7 +4420,6 @@ static struct mipi_dsi_driver panel_simp
+ .driver = {
+ .name = "panel-simple-dsi",
+ .of_match_table = dsi_of_match,
+- .pm = &panel_simple_pm_ops,
+ },
+ .probe = panel_simple_dsi_probe,
+ .remove = panel_simple_dsi_remove,
+@@ -5297,9 +4513,9 @@ static int panel_simple_spi_probe(struct
+ return panel_simple_probe(dev, desc);
+ }
+
+-static void panel_simple_spi_remove(struct spi_device *spi)
++static int panel_simple_spi_remove(struct spi_device *spi)
+ {
+- panel_simple_remove(&spi->dev);
++ return panel_simple_remove(&spi->dev);
+ }
+
+ static void panel_simple_spi_shutdown(struct spi_device *spi)
+@@ -5334,15 +4550,10 @@ static int __init panel_simple_init(void
+ if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) {
+ err = mipi_dsi_driver_register(&panel_simple_dsi_driver);
+ if (err < 0)
+- goto err_did_platform_register;
++ return err;
+ }
+
+ return 0;
+-
+-err_did_platform_register:
+- platform_driver_unregister(&panel_simple_platform_driver);
+-
+- return err;
+ }
+ module_init(panel_simple_init);
+
+diff -rupN linux.orig/include/drm/drm_dp_helper.h linux/include/drm/drm_dp_helper.h
+--- linux.orig/include/drm/drm_dp_helper.h 1970-01-01 00:00:00.000000000 +0000
++++ linux/include/drm/drm_dp_helper.h 2024-03-22 22:45:57.005358291 +0000
+@@ -0,0 +1,1856 @@
++/*
++ * Copyright © 2008 Keith Packard
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
++ */
++
++#ifndef _DRM_DP_HELPER_H_
++#define _DRM_DP_HELPER_H_
++
++#include
++#include
++#include
++#include
++
++struct drm_device;
++
++/*
++ * Unless otherwise noted, all values are from the DP 1.1a spec. Note that
++ * DP and DPCD versions are independent. Differences from 1.0 are not noted,
++ * 1.0 devices basically don't exist in the wild.
++ *
++ * Abbreviations, in chronological order:
++ *
++ * eDP: Embedded DisplayPort version 1
++ * DPI: DisplayPort Interoperability Guideline v1.1a
++ * 1.2: DisplayPort 1.2
++ * MST: Multistream Transport - part of DP 1.2a
++ *
++ * 1.2 formally includes both eDP and DPI definitions.
++ */
++
++/* MSA (Main Stream Attribute) MISC bits (as MISC1<<8|MISC0) */
++#define DP_MSA_MISC_SYNC_CLOCK (1 << 0)
++#define DP_MSA_MISC_INTERLACE_VTOTAL_EVEN (1 << 8)
++#define DP_MSA_MISC_STEREO_NO_3D (0 << 9)
++#define DP_MSA_MISC_STEREO_PROG_RIGHT_EYE (1 << 9)
++#define DP_MSA_MISC_STEREO_PROG_LEFT_EYE (3 << 9)
++/* bits per component for non-RAW */
++#define DP_MSA_MISC_6_BPC (0 << 5)
++#define DP_MSA_MISC_8_BPC (1 << 5)
++#define DP_MSA_MISC_10_BPC (2 << 5)
++#define DP_MSA_MISC_12_BPC (3 << 5)
++#define DP_MSA_MISC_16_BPC (4 << 5)
++/* bits per component for RAW */
++#define DP_MSA_MISC_RAW_6_BPC (1 << 5)
++#define DP_MSA_MISC_RAW_7_BPC (2 << 5)
++#define DP_MSA_MISC_RAW_8_BPC (3 << 5)
++#define DP_MSA_MISC_RAW_10_BPC (4 << 5)
++#define DP_MSA_MISC_RAW_12_BPC (5 << 5)
++#define DP_MSA_MISC_RAW_14_BPC (6 << 5)
++#define DP_MSA_MISC_RAW_16_BPC (7 << 5)
++/* pixel encoding/colorimetry format */
++#define _DP_MSA_MISC_COLOR(misc1_7, misc0_21, misc0_3, misc0_4) \
++ ((misc1_7) << 15 | (misc0_4) << 4 | (misc0_3) << 3 | ((misc0_21) << 1))
++#define DP_MSA_MISC_COLOR_RGB _DP_MSA_MISC_COLOR(0, 0, 0, 0)
++#define DP_MSA_MISC_COLOR_CEA_RGB _DP_MSA_MISC_COLOR(0, 0, 1, 0)
++#define DP_MSA_MISC_COLOR_RGB_WIDE_FIXED _DP_MSA_MISC_COLOR(0, 3, 0, 0)
++#define DP_MSA_MISC_COLOR_RGB_WIDE_FLOAT _DP_MSA_MISC_COLOR(0, 3, 0, 1)
++#define DP_MSA_MISC_COLOR_Y_ONLY _DP_MSA_MISC_COLOR(1, 0, 0, 0)
++#define DP_MSA_MISC_COLOR_RAW _DP_MSA_MISC_COLOR(1, 1, 0, 0)
++#define DP_MSA_MISC_COLOR_YCBCR_422_BT601 _DP_MSA_MISC_COLOR(0, 1, 1, 0)
++#define DP_MSA_MISC_COLOR_YCBCR_422_BT709 _DP_MSA_MISC_COLOR(0, 1, 1, 1)
++#define DP_MSA_MISC_COLOR_YCBCR_444_BT601 _DP_MSA_MISC_COLOR(0, 2, 1, 0)
++#define DP_MSA_MISC_COLOR_YCBCR_444_BT709 _DP_MSA_MISC_COLOR(0, 2, 1, 1)
++#define DP_MSA_MISC_COLOR_XVYCC_422_BT601 _DP_MSA_MISC_COLOR(0, 1, 0, 0)
++#define DP_MSA_MISC_COLOR_XVYCC_422_BT709 _DP_MSA_MISC_COLOR(0, 1, 0, 1)
++#define DP_MSA_MISC_COLOR_XVYCC_444_BT601 _DP_MSA_MISC_COLOR(0, 2, 0, 0)
++#define DP_MSA_MISC_COLOR_XVYCC_444_BT709 _DP_MSA_MISC_COLOR(0, 2, 0, 1)
++#define DP_MSA_MISC_COLOR_OPRGB _DP_MSA_MISC_COLOR(0, 0, 1, 1)
++#define DP_MSA_MISC_COLOR_DCI_P3 _DP_MSA_MISC_COLOR(0, 3, 1, 0)
++#define DP_MSA_MISC_COLOR_COLOR_PROFILE _DP_MSA_MISC_COLOR(0, 3, 1, 1)
++#define DP_MSA_MISC_COLOR_VSC_SDP (1 << 14)
++
++#define DP_AUX_MAX_PAYLOAD_BYTES 16
++
++#define DP_AUX_I2C_WRITE 0x0
++#define DP_AUX_I2C_READ 0x1
++#define DP_AUX_I2C_WRITE_STATUS_UPDATE 0x2
++#define DP_AUX_I2C_MOT 0x4
++#define DP_AUX_NATIVE_WRITE 0x8
++#define DP_AUX_NATIVE_READ 0x9
++
++#define DP_AUX_NATIVE_REPLY_ACK (0x0 << 0)
++#define DP_AUX_NATIVE_REPLY_NACK (0x1 << 0)
++#define DP_AUX_NATIVE_REPLY_DEFER (0x2 << 0)
++#define DP_AUX_NATIVE_REPLY_MASK (0x3 << 0)
++
++#define DP_AUX_I2C_REPLY_ACK (0x0 << 2)
++#define DP_AUX_I2C_REPLY_NACK (0x1 << 2)
++#define DP_AUX_I2C_REPLY_DEFER (0x2 << 2)
++#define DP_AUX_I2C_REPLY_MASK (0x3 << 2)
++
++/* AUX CH addresses */
++/* DPCD */
++#define DP_DPCD_REV 0x000
++# define DP_DPCD_REV_10 0x10
++# define DP_DPCD_REV_11 0x11
++# define DP_DPCD_REV_12 0x12
++# define DP_DPCD_REV_13 0x13
++# define DP_DPCD_REV_14 0x14
++
++#define DP_MAX_LINK_RATE 0x001
++
++#define DP_MAX_LANE_COUNT 0x002
++# define DP_MAX_LANE_COUNT_MASK 0x1f
++# define DP_TPS3_SUPPORTED (1 << 6) /* 1.2 */
++# define DP_ENHANCED_FRAME_CAP (1 << 7)
++
++#define DP_MAX_DOWNSPREAD 0x003
++# define DP_MAX_DOWNSPREAD_0_5 (1 << 0)
++# define DP_NO_AUX_HANDSHAKE_LINK_TRAINING (1 << 6)
++# define DP_TPS4_SUPPORTED (1 << 7)
++
++#define DP_NORP 0x004
++
++#define DP_DOWNSTREAMPORT_PRESENT 0x005
++# define DP_DWN_STRM_PORT_PRESENT (1 << 0)
++# define DP_DWN_STRM_PORT_TYPE_MASK 0x06
++# define DP_DWN_STRM_PORT_TYPE_DP (0 << 1)
++# define DP_DWN_STRM_PORT_TYPE_ANALOG (1 << 1)
++# define DP_DWN_STRM_PORT_TYPE_TMDS (2 << 1)
++# define DP_DWN_STRM_PORT_TYPE_OTHER (3 << 1)
++# define DP_FORMAT_CONVERSION (1 << 3)
++# define DP_DETAILED_CAP_INFO_AVAILABLE (1 << 4) /* DPI */
++
++#define DP_MAIN_LINK_CHANNEL_CODING 0x006
++# define DP_CAP_ANSI_8B10B (1 << 0)
++
++#define DP_DOWN_STREAM_PORT_COUNT 0x007
++# define DP_PORT_COUNT_MASK 0x0f
++# define DP_MSA_TIMING_PAR_IGNORED (1 << 6) /* eDP */
++# define DP_OUI_SUPPORT (1 << 7)
++
++#define DP_RECEIVE_PORT_0_CAP_0 0x008
++# define DP_LOCAL_EDID_PRESENT (1 << 1)
++# define DP_ASSOCIATED_TO_PRECEDING_PORT (1 << 2)
++
++#define DP_RECEIVE_PORT_0_BUFFER_SIZE 0x009
++
++#define DP_RECEIVE_PORT_1_CAP_0 0x00a
++#define DP_RECEIVE_PORT_1_BUFFER_SIZE 0x00b
++
++#define DP_I2C_SPEED_CAP 0x00c /* DPI */
++# define DP_I2C_SPEED_1K 0x01
++# define DP_I2C_SPEED_5K 0x02
++# define DP_I2C_SPEED_10K 0x04
++# define DP_I2C_SPEED_100K 0x08
++# define DP_I2C_SPEED_400K 0x10
++# define DP_I2C_SPEED_1M 0x20
++
++#define DP_EDP_CONFIGURATION_CAP 0x00d /* XXX 1.2? */
++# define DP_ALTERNATE_SCRAMBLER_RESET_CAP (1 << 0)
++# define DP_FRAMING_CHANGE_CAP (1 << 1)
++# define DP_DPCD_DISPLAY_CONTROL_CAPABLE (1 << 3) /* edp v1.2 or higher */
++
++#define DP_TRAINING_AUX_RD_INTERVAL 0x00e /* XXX 1.2? */
++# define DP_TRAINING_AUX_RD_MASK 0x7F /* DP 1.3 */
++# define DP_EXTENDED_RECEIVER_CAP_FIELD_PRESENT (1 << 7) /* DP 1.3 */
++
++#define DP_ADAPTER_CAP 0x00f /* 1.2 */
++# define DP_FORCE_LOAD_SENSE_CAP (1 << 0)
++# define DP_ALTERNATE_I2C_PATTERN_CAP (1 << 1)
++
++#define DP_SUPPORTED_LINK_RATES 0x010 /* eDP 1.4 */
++# define DP_MAX_SUPPORTED_RATES 8 /* 16-bit little-endian */
++
++/* Multiple stream transport */
++#define DP_FAUX_CAP 0x020 /* 1.2 */
++# define DP_FAUX_CAP_1 (1 << 0)
++
++#define DP_MSTM_CAP 0x021 /* 1.2 */
++# define DP_MST_CAP (1 << 0)
++
++#define DP_NUMBER_OF_AUDIO_ENDPOINTS 0x022 /* 1.2 */
++
++/* AV_SYNC_DATA_BLOCK 1.2 */
++#define DP_AV_GRANULARITY 0x023
++# define DP_AG_FACTOR_MASK (0xf << 0)
++# define DP_AG_FACTOR_3MS (0 << 0)
++# define DP_AG_FACTOR_2MS (1 << 0)
++# define DP_AG_FACTOR_1MS (2 << 0)
++# define DP_AG_FACTOR_500US (3 << 0)
++# define DP_AG_FACTOR_200US (4 << 0)
++# define DP_AG_FACTOR_100US (5 << 0)
++# define DP_AG_FACTOR_10US (6 << 0)
++# define DP_AG_FACTOR_1US (7 << 0)
++# define DP_VG_FACTOR_MASK (0xf << 4)
++# define DP_VG_FACTOR_3MS (0 << 4)
++# define DP_VG_FACTOR_2MS (1 << 4)
++# define DP_VG_FACTOR_1MS (2 << 4)
++# define DP_VG_FACTOR_500US (3 << 4)
++# define DP_VG_FACTOR_200US (4 << 4)
++# define DP_VG_FACTOR_100US (5 << 4)
++
++#define DP_AUD_DEC_LAT0 0x024
++#define DP_AUD_DEC_LAT1 0x025
++
++#define DP_AUD_PP_LAT0 0x026
++#define DP_AUD_PP_LAT1 0x027
++
++#define DP_VID_INTER_LAT 0x028
++
++#define DP_VID_PROG_LAT 0x029
++
++#define DP_REP_LAT 0x02a
++
++#define DP_AUD_DEL_INS0 0x02b
++#define DP_AUD_DEL_INS1 0x02c
++#define DP_AUD_DEL_INS2 0x02d
++/* End of AV_SYNC_DATA_BLOCK */
++
++#define DP_RECEIVER_ALPM_CAP 0x02e /* eDP 1.4 */
++# define DP_ALPM_CAP (1 << 0)
++
++#define DP_SINK_DEVICE_AUX_FRAME_SYNC_CAP 0x02f /* eDP 1.4 */
++# define DP_AUX_FRAME_SYNC_CAP (1 << 0)
++
++#define DP_GUID 0x030 /* 1.2 */
++
++#define DP_DSC_SUPPORT 0x060 /* DP 1.4 */
++# define DP_DSC_DECOMPRESSION_IS_SUPPORTED (1 << 0)
++
++#define DP_DSC_REV 0x061
++# define DP_DSC_MAJOR_MASK (0xf << 0)
++# define DP_DSC_MINOR_MASK (0xf << 4)
++# define DP_DSC_MAJOR_SHIFT 0
++# define DP_DSC_MINOR_SHIFT 4
++
++#define DP_DSC_RC_BUF_BLK_SIZE 0x062
++# define DP_DSC_RC_BUF_BLK_SIZE_1 0x0
++# define DP_DSC_RC_BUF_BLK_SIZE_4 0x1
++# define DP_DSC_RC_BUF_BLK_SIZE_16 0x2
++# define DP_DSC_RC_BUF_BLK_SIZE_64 0x3
++
++#define DP_DSC_RC_BUF_SIZE 0x063
++
++#define DP_DSC_SLICE_CAP_1 0x064
++# define DP_DSC_1_PER_DP_DSC_SINK (1 << 0)
++# define DP_DSC_2_PER_DP_DSC_SINK (1 << 1)
++# define DP_DSC_4_PER_DP_DSC_SINK (1 << 3)
++# define DP_DSC_6_PER_DP_DSC_SINK (1 << 4)
++# define DP_DSC_8_PER_DP_DSC_SINK (1 << 5)
++# define DP_DSC_10_PER_DP_DSC_SINK (1 << 6)
++# define DP_DSC_12_PER_DP_DSC_SINK (1 << 7)
++
++#define DP_DSC_LINE_BUF_BIT_DEPTH 0x065
++# define DP_DSC_LINE_BUF_BIT_DEPTH_MASK (0xf << 0)
++# define DP_DSC_LINE_BUF_BIT_DEPTH_9 0x0
++# define DP_DSC_LINE_BUF_BIT_DEPTH_10 0x1
++# define DP_DSC_LINE_BUF_BIT_DEPTH_11 0x2
++# define DP_DSC_LINE_BUF_BIT_DEPTH_12 0x3
++# define DP_DSC_LINE_BUF_BIT_DEPTH_13 0x4
++# define DP_DSC_LINE_BUF_BIT_DEPTH_14 0x5
++# define DP_DSC_LINE_BUF_BIT_DEPTH_15 0x6
++# define DP_DSC_LINE_BUF_BIT_DEPTH_16 0x7
++# define DP_DSC_LINE_BUF_BIT_DEPTH_8 0x8
++
++#define DP_DSC_BLK_PREDICTION_SUPPORT 0x066
++# define DP_DSC_BLK_PREDICTION_IS_SUPPORTED (1 << 0)
++
++#define DP_DSC_MAX_BITS_PER_PIXEL_LOW 0x067 /* eDP 1.4 */
++
++#define DP_DSC_MAX_BITS_PER_PIXEL_HI 0x068 /* eDP 1.4 */
++# define DP_DSC_MAX_BITS_PER_PIXEL_HI_MASK (0x3 << 0)
++# define DP_DSC_MAX_BITS_PER_PIXEL_HI_SHIFT 8
++
++#define DP_DSC_DEC_COLOR_FORMAT_CAP 0x069
++# define DP_DSC_RGB (1 << 0)
++# define DP_DSC_YCbCr444 (1 << 1)
++# define DP_DSC_YCbCr422_Simple (1 << 2)
++# define DP_DSC_YCbCr422_Native (1 << 3)
++# define DP_DSC_YCbCr420_Native (1 << 4)
++
++#define DP_DSC_DEC_COLOR_DEPTH_CAP 0x06A
++# define DP_DSC_8_BPC (1 << 1)
++# define DP_DSC_10_BPC (1 << 2)
++# define DP_DSC_12_BPC (1 << 3)
++
++#define DP_DSC_PEAK_THROUGHPUT 0x06B
++# define DP_DSC_THROUGHPUT_MODE_0_MASK (0xf << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_SHIFT 0
++# define DP_DSC_THROUGHPUT_MODE_0_UNSUPPORTED 0
++# define DP_DSC_THROUGHPUT_MODE_0_340 (1 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_400 (2 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_450 (3 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_500 (4 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_550 (5 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_600 (6 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_650 (7 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_700 (8 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_750 (9 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_800 (10 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_850 (11 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_900 (12 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_950 (13 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_1000 (14 << 0)
++# define DP_DSC_THROUGHPUT_MODE_0_170 (15 << 0) /* 1.4a */
++# define DP_DSC_THROUGHPUT_MODE_1_MASK (0xf << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_SHIFT 4
++# define DP_DSC_THROUGHPUT_MODE_1_UNSUPPORTED 0
++# define DP_DSC_THROUGHPUT_MODE_1_340 (1 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_400 (2 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_450 (3 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_500 (4 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_550 (5 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_600 (6 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_650 (7 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_700 (8 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_750 (9 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_800 (10 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_850 (11 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_900 (12 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_950 (13 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_1000 (14 << 4)
++# define DP_DSC_THROUGHPUT_MODE_1_170 (15 << 4)
++
++#define DP_DSC_MAX_SLICE_WIDTH 0x06C
++#define DP_DSC_MIN_SLICE_WIDTH_VALUE 2560
++#define DP_DSC_SLICE_WIDTH_MULTIPLIER 320
++
++#define DP_DSC_SLICE_CAP_2 0x06D
++# define DP_DSC_16_PER_DP_DSC_SINK (1 << 0)
++# define DP_DSC_20_PER_DP_DSC_SINK (1 << 1)
++# define DP_DSC_24_PER_DP_DSC_SINK (1 << 2)
++
++#define DP_DSC_BITS_PER_PIXEL_INC 0x06F
++# define DP_DSC_BITS_PER_PIXEL_1_16 0x0
++# define DP_DSC_BITS_PER_PIXEL_1_8 0x1
++# define DP_DSC_BITS_PER_PIXEL_1_4 0x2
++# define DP_DSC_BITS_PER_PIXEL_1_2 0x3
++# define DP_DSC_BITS_PER_PIXEL_1 0x4
++
++#define DP_PSR_SUPPORT 0x070 /* XXX 1.2? */
++# define DP_PSR_IS_SUPPORTED 1
++# define DP_PSR2_IS_SUPPORTED 2 /* eDP 1.4 */
++# define DP_PSR2_WITH_Y_COORD_IS_SUPPORTED 3 /* eDP 1.4a */
++
++#define DP_PSR_CAPS 0x071 /* XXX 1.2? */
++# define DP_PSR_NO_TRAIN_ON_EXIT 1
++# define DP_PSR_SETUP_TIME_330 (0 << 1)
++# define DP_PSR_SETUP_TIME_275 (1 << 1)
++# define DP_PSR_SETUP_TIME_220 (2 << 1)
++# define DP_PSR_SETUP_TIME_165 (3 << 1)
++# define DP_PSR_SETUP_TIME_110 (4 << 1)
++# define DP_PSR_SETUP_TIME_55 (5 << 1)
++# define DP_PSR_SETUP_TIME_0 (6 << 1)
++# define DP_PSR_SETUP_TIME_MASK (7 << 1)
++# define DP_PSR_SETUP_TIME_SHIFT 1
++# define DP_PSR2_SU_Y_COORDINATE_REQUIRED (1 << 4) /* eDP 1.4a */
++# define DP_PSR2_SU_GRANULARITY_REQUIRED (1 << 5) /* eDP 1.4b */
++
++#define DP_PSR2_SU_X_GRANULARITY 0x072 /* eDP 1.4b */
++#define DP_PSR2_SU_Y_GRANULARITY 0x074 /* eDP 1.4b */
++
++/*
++ * 0x80-0x8f describe downstream port capabilities, but there are two layouts
++ * based on whether DP_DETAILED_CAP_INFO_AVAILABLE was set. If it was not,
++ * each port's descriptor is one byte wide. If it was set, each port's is
++ * four bytes wide, starting with the one byte from the base info. As of
++ * DP interop v1.1a only VGA defines additional detail.
++ */
++
++/* offset 0 */
++#define DP_DOWNSTREAM_PORT_0 0x80
++# define DP_DS_PORT_TYPE_MASK (7 << 0)
++# define DP_DS_PORT_TYPE_DP 0
++# define DP_DS_PORT_TYPE_VGA 1
++# define DP_DS_PORT_TYPE_DVI 2
++# define DP_DS_PORT_TYPE_HDMI 3
++# define DP_DS_PORT_TYPE_NON_EDID 4
++# define DP_DS_PORT_TYPE_DP_DUALMODE 5
++# define DP_DS_PORT_TYPE_WIRELESS 6
++# define DP_DS_PORT_HPD (1 << 3)
++# define DP_DS_NON_EDID_MASK (0xf << 4)
++# define DP_DS_NON_EDID_720x480i_60 (1 << 4)
++# define DP_DS_NON_EDID_720x480i_50 (2 << 4)
++# define DP_DS_NON_EDID_1920x1080i_60 (3 << 4)
++# define DP_DS_NON_EDID_1920x1080i_50 (4 << 4)
++# define DP_DS_NON_EDID_1280x720_60 (5 << 4)
++# define DP_DS_NON_EDID_1280x720_50 (7 << 4)
++/* offset 1 for VGA is maximum megapixels per second / 8 */
++/* offset 1 for DVI/HDMI is maximum TMDS clock in Mbps / 2.5 */
++/* offset 2 for VGA/DVI/HDMI */
++# define DP_DS_MAX_BPC_MASK (3 << 0)
++# define DP_DS_8BPC 0
++# define DP_DS_10BPC 1
++# define DP_DS_12BPC 2
++# define DP_DS_16BPC 3
++/* offset 3 for DVI */
++# define DP_DS_DVI_DUAL_LINK (1 << 1)
++# define DP_DS_DVI_HIGH_COLOR_DEPTH (1 << 2)
++/* offset 3 for HDMI */
++# define DP_DS_HDMI_FRAME_SEQ_TO_FRAME_PACK (1 << 0)
++# define DP_DS_HDMI_YCBCR422_PASS_THROUGH (1 << 1)
++# define DP_DS_HDMI_YCBCR420_PASS_THROUGH (1 << 2)
++# define DP_DS_HDMI_YCBCR444_TO_422_CONV (1 << 3)
++# define DP_DS_HDMI_YCBCR444_TO_420_CONV (1 << 4)
++
++#define DP_MAX_DOWNSTREAM_PORTS 0x10
++
++/* DP Forward error Correction Registers */
++#define DP_FEC_CAPABILITY 0x090 /* 1.4 */
++# define DP_FEC_CAPABLE (1 << 0)
++# define DP_FEC_UNCORR_BLK_ERROR_COUNT_CAP (1 << 1)
++# define DP_FEC_CORR_BLK_ERROR_COUNT_CAP (1 << 2)
++# define DP_FEC_BIT_ERROR_COUNT_CAP (1 << 3)
++
++/* DP Extended DSC Capabilities */
++#define DP_DSC_BRANCH_OVERALL_THROUGHPUT_0 0x0a0 /* DP 1.4a SCR */
++#define DP_DSC_BRANCH_OVERALL_THROUGHPUT_1 0x0a1
++#define DP_DSC_BRANCH_MAX_LINE_WIDTH 0x0a2
++
++/* link configuration */
++#define DP_LINK_BW_SET 0x100
++# define DP_LINK_RATE_TABLE 0x00 /* eDP 1.4 */
++# define DP_LINK_BW_1_62 0x06
++# define DP_LINK_BW_2_7 0x0a
++# define DP_LINK_BW_5_4 0x14 /* 1.2 */
++# define DP_LINK_BW_8_1 0x1e /* 1.4 */
++
++#define DP_LANE_COUNT_SET 0x101
++# define DP_LANE_COUNT_MASK 0x0f
++# define DP_LANE_COUNT_ENHANCED_FRAME_EN (1 << 7)
++
++#define DP_TRAINING_PATTERN_SET 0x102
++# define DP_TRAINING_PATTERN_DISABLE 0
++# define DP_TRAINING_PATTERN_1 1
++# define DP_TRAINING_PATTERN_2 2
++# define DP_TRAINING_PATTERN_3 3 /* 1.2 */
++# define DP_TRAINING_PATTERN_4 7 /* 1.4 */
++# define DP_TRAINING_PATTERN_MASK 0x3
++# define DP_TRAINING_PATTERN_MASK_1_4 0xf
++
++/* DPCD 1.1 only. For DPCD >= 1.2 see per-lane DP_LINK_QUAL_LANEn_SET */
++# define DP_LINK_QUAL_PATTERN_11_DISABLE (0 << 2)
++# define DP_LINK_QUAL_PATTERN_11_D10_2 (1 << 2)
++# define DP_LINK_QUAL_PATTERN_11_ERROR_RATE (2 << 2)
++# define DP_LINK_QUAL_PATTERN_11_PRBS7 (3 << 2)
++# define DP_LINK_QUAL_PATTERN_11_MASK (3 << 2)
++
++# define DP_RECOVERED_CLOCK_OUT_EN (1 << 4)
++# define DP_LINK_SCRAMBLING_DISABLE (1 << 5)
++
++# define DP_SYMBOL_ERROR_COUNT_BOTH (0 << 6)
++# define DP_SYMBOL_ERROR_COUNT_DISPARITY (1 << 6)
++# define DP_SYMBOL_ERROR_COUNT_SYMBOL (2 << 6)
++# define DP_SYMBOL_ERROR_COUNT_MASK (3 << 6)
++
++#define DP_TRAINING_LANE0_SET 0x103
++#define DP_TRAINING_LANE1_SET 0x104
++#define DP_TRAINING_LANE2_SET 0x105
++#define DP_TRAINING_LANE3_SET 0x106
++
++# define DP_TRAIN_VOLTAGE_SWING_MASK 0x3
++# define DP_TRAIN_VOLTAGE_SWING_SHIFT 0
++# define DP_TRAIN_MAX_SWING_REACHED (1 << 2)
++# define DP_TRAIN_VOLTAGE_SWING_LEVEL_0 (0 << 0)
++# define DP_TRAIN_VOLTAGE_SWING_LEVEL_1 (1 << 0)
++# define DP_TRAIN_VOLTAGE_SWING_LEVEL_2 (2 << 0)
++# define DP_TRAIN_VOLTAGE_SWING_LEVEL_3 (3 << 0)
++
++# define DP_TRAIN_PRE_EMPHASIS_MASK (3 << 3)
++# define DP_TRAIN_PRE_EMPH_LEVEL_0 (0 << 3)
++# define DP_TRAIN_PRE_EMPH_LEVEL_1 (1 << 3)
++# define DP_TRAIN_PRE_EMPH_LEVEL_2 (2 << 3)
++# define DP_TRAIN_PRE_EMPH_LEVEL_3 (3 << 3)
++
++# define DP_TRAIN_PRE_EMPHASIS_SHIFT 3
++# define DP_TRAIN_MAX_PRE_EMPHASIS_REACHED (1 << 5)
++
++#define DP_DOWNSPREAD_CTRL 0x107
++# define DP_SPREAD_AMP_0_5 (1 << 4)
++# define DP_MSA_TIMING_PAR_IGNORE_EN (1 << 7) /* eDP */
++
++#define DP_MAIN_LINK_CHANNEL_CODING_SET 0x108
++# define DP_SET_ANSI_8B10B (1 << 0)
++
++#define DP_I2C_SPEED_CONTROL_STATUS 0x109 /* DPI */
++/* bitmask as for DP_I2C_SPEED_CAP */
++
++#define DP_EDP_CONFIGURATION_SET 0x10a /* XXX 1.2? */
++# define DP_ALTERNATE_SCRAMBLER_RESET_ENABLE (1 << 0)
++# define DP_FRAMING_CHANGE_ENABLE (1 << 1)
++# define DP_PANEL_SELF_TEST_ENABLE (1 << 7)
++
++#define DP_LINK_QUAL_LANE0_SET 0x10b /* DPCD >= 1.2 */
++#define DP_LINK_QUAL_LANE1_SET 0x10c
++#define DP_LINK_QUAL_LANE2_SET 0x10d
++#define DP_LINK_QUAL_LANE3_SET 0x10e
++# define DP_LINK_QUAL_PATTERN_DISABLE 0
++# define DP_LINK_QUAL_PATTERN_D10_2 1
++# define DP_LINK_QUAL_PATTERN_ERROR_RATE 2
++# define DP_LINK_QUAL_PATTERN_PRBS7 3
++# define DP_LINK_QUAL_PATTERN_80BIT_CUSTOM 4
++# define DP_LINK_QUAL_PATTERN_HBR2_EYE 5
++# define DP_LINK_QUAL_PATTERN_MASK 7
++
++#define DP_TRAINING_LANE0_1_SET2 0x10f
++#define DP_TRAINING_LANE2_3_SET2 0x110
++# define DP_LANE02_POST_CURSOR2_SET_MASK (3 << 0)
++# define DP_LANE02_MAX_POST_CURSOR2_REACHED (1 << 2)
++# define DP_LANE13_POST_CURSOR2_SET_MASK (3 << 4)
++# define DP_LANE13_MAX_POST_CURSOR2_REACHED (1 << 6)
++
++#define DP_MSTM_CTRL 0x111 /* 1.2 */
++# define DP_MST_EN (1 << 0)
++# define DP_UP_REQ_EN (1 << 1)
++# define DP_UPSTREAM_IS_SRC (1 << 2)
++
++#define DP_AUDIO_DELAY0 0x112 /* 1.2 */
++#define DP_AUDIO_DELAY1 0x113
++#define DP_AUDIO_DELAY2 0x114
++
++#define DP_LINK_RATE_SET 0x115 /* eDP 1.4 */
++# define DP_LINK_RATE_SET_SHIFT 0
++# define DP_LINK_RATE_SET_MASK (7 << 0)
++
++#define DP_RECEIVER_ALPM_CONFIG 0x116 /* eDP 1.4 */
++# define DP_ALPM_ENABLE (1 << 0)
++# define DP_ALPM_LOCK_ERROR_IRQ_HPD_ENABLE (1 << 1)
++
++#define DP_SINK_DEVICE_AUX_FRAME_SYNC_CONF 0x117 /* eDP 1.4 */
++# define DP_AUX_FRAME_SYNC_ENABLE (1 << 0)
++# define DP_IRQ_HPD_ENABLE (1 << 1)
++
++#define DP_UPSTREAM_DEVICE_DP_PWR_NEED 0x118 /* 1.2 */
++# define DP_PWR_NOT_NEEDED (1 << 0)
++
++#define DP_FEC_CONFIGURATION 0x120 /* 1.4 */
++# define DP_FEC_READY (1 << 0)
++# define DP_FEC_ERR_COUNT_SEL_MASK (7 << 1)
++# define DP_FEC_ERR_COUNT_DIS (0 << 1)
++# define DP_FEC_UNCORR_BLK_ERROR_COUNT (1 << 1)
++# define DP_FEC_CORR_BLK_ERROR_COUNT (2 << 1)
++# define DP_FEC_BIT_ERROR_COUNT (3 << 1)
++# define DP_FEC_LANE_SELECT_MASK (3 << 4)
++# define DP_FEC_LANE_0_SELECT (0 << 4)
++# define DP_FEC_LANE_1_SELECT (1 << 4)
++# define DP_FEC_LANE_2_SELECT (2 << 4)
++# define DP_FEC_LANE_3_SELECT (3 << 4)
++
++#define DP_AUX_FRAME_SYNC_VALUE 0x15c /* eDP 1.4 */
++# define DP_AUX_FRAME_SYNC_VALID (1 << 0)
++
++#define DP_DSC_ENABLE 0x160 /* DP 1.4 */
++# define DP_DECOMPRESSION_EN (1 << 0)
++
++#define DP_PSR_EN_CFG 0x170 /* XXX 1.2? */
++# define DP_PSR_ENABLE (1 << 0)
++# define DP_PSR_MAIN_LINK_ACTIVE (1 << 1)
++# define DP_PSR_CRC_VERIFICATION (1 << 2)
++# define DP_PSR_FRAME_CAPTURE (1 << 3)
++# define DP_PSR_SELECTIVE_UPDATE (1 << 4)
++# define DP_PSR_IRQ_HPD_WITH_CRC_ERRORS (1 << 5)
++# define DP_PSR_ENABLE_PSR2 (1 << 6) /* eDP 1.4a */
++
++#define DP_ADAPTER_CTRL 0x1a0
++# define DP_ADAPTER_CTRL_FORCE_LOAD_SENSE (1 << 0)
++
++#define DP_BRANCH_DEVICE_CTRL 0x1a1
++# define DP_BRANCH_DEVICE_IRQ_HPD (1 << 0)
++
++#define DP_PAYLOAD_ALLOCATE_SET 0x1c0
++#define DP_PAYLOAD_ALLOCATE_START_TIME_SLOT 0x1c1
++#define DP_PAYLOAD_ALLOCATE_TIME_SLOT_COUNT 0x1c2
++
++#define DP_SINK_COUNT 0x200
++/* prior to 1.2 bit 7 was reserved mbz */
++# define DP_GET_SINK_COUNT(x) ((((x) & 0x80) >> 1) | ((x) & 0x3f))
++# define DP_SINK_CP_READY (1 << 6)
++
++#define DP_DEVICE_SERVICE_IRQ_VECTOR 0x201
++# define DP_REMOTE_CONTROL_COMMAND_PENDING (1 << 0)
++# define DP_AUTOMATED_TEST_REQUEST (1 << 1)
++# define DP_CP_IRQ (1 << 2)
++# define DP_MCCS_IRQ (1 << 3)
++# define DP_DOWN_REP_MSG_RDY (1 << 4) /* 1.2 MST */
++# define DP_UP_REQ_MSG_RDY (1 << 5) /* 1.2 MST */
++# define DP_SINK_SPECIFIC_IRQ (1 << 6)
++
++#define DP_LANE0_1_STATUS 0x202
++#define DP_LANE2_3_STATUS 0x203
++# define DP_LANE_CR_DONE (1 << 0)
++# define DP_LANE_CHANNEL_EQ_DONE (1 << 1)
++# define DP_LANE_SYMBOL_LOCKED (1 << 2)
++
++#define DP_CHANNEL_EQ_BITS (DP_LANE_CR_DONE | \
++ DP_LANE_CHANNEL_EQ_DONE | \
++ DP_LANE_SYMBOL_LOCKED)
++
++#define DP_LANE_ALIGN_STATUS_UPDATED 0x204
++
++#define DP_INTERLANE_ALIGN_DONE (1 << 0)
++#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
++#define DP_LINK_STATUS_UPDATED (1 << 7)
++
++#define DP_SINK_STATUS 0x205
++
++#define DP_RECEIVE_PORT_0_STATUS (1 << 0)
++#define DP_RECEIVE_PORT_1_STATUS (1 << 1)
++
++#define DP_ADJUST_REQUEST_LANE0_1 0x206
++#define DP_ADJUST_REQUEST_LANE2_3 0x207
++# define DP_ADJUST_VOLTAGE_SWING_LANE0_MASK 0x03
++# define DP_ADJUST_VOLTAGE_SWING_LANE0_SHIFT 0
++# define DP_ADJUST_PRE_EMPHASIS_LANE0_MASK 0x0c
++# define DP_ADJUST_PRE_EMPHASIS_LANE0_SHIFT 2
++# define DP_ADJUST_VOLTAGE_SWING_LANE1_MASK 0x30
++# define DP_ADJUST_VOLTAGE_SWING_LANE1_SHIFT 4
++# define DP_ADJUST_PRE_EMPHASIS_LANE1_MASK 0xc0
++# define DP_ADJUST_PRE_EMPHASIS_LANE1_SHIFT 6
++
++#define DP_ADJUST_REQUEST_POST_CURSOR2 0x20c
++# define DP_ADJUST_POST_CURSOR2_LANE0_MASK 0x03
++# define DP_ADJUST_POST_CURSOR2_LANE0_SHIFT 0
++# define DP_ADJUST_POST_CURSOR2_LANE1_MASK 0x0c
++# define DP_ADJUST_POST_CURSOR2_LANE1_SHIFT 2
++# define DP_ADJUST_POST_CURSOR2_LANE2_MASK 0x30
++# define DP_ADJUST_POST_CURSOR2_LANE2_SHIFT 4
++# define DP_ADJUST_POST_CURSOR2_LANE3_MASK 0xc0
++# define DP_ADJUST_POST_CURSOR2_LANE3_SHIFT 6
++
++#define DP_TEST_REQUEST 0x218
++# define DP_TEST_LINK_TRAINING (1 << 0)
++# define DP_TEST_LINK_VIDEO_PATTERN (1 << 1)
++# define DP_TEST_LINK_EDID_READ (1 << 2)
++# define DP_TEST_LINK_PHY_TEST_PATTERN (1 << 3) /* DPCD >= 1.1 */
++# define DP_TEST_LINK_FAUX_PATTERN (1 << 4) /* DPCD >= 1.2 */
++# define DP_TEST_LINK_AUDIO_PATTERN (1 << 5) /* DPCD >= 1.2 */
++# define DP_TEST_LINK_AUDIO_DISABLED_VIDEO (1 << 6) /* DPCD >= 1.2 */
++
++#define DP_TEST_LINK_RATE 0x219
++# define DP_LINK_RATE_162 (0x6)
++# define DP_LINK_RATE_27 (0xa)
++
++#define DP_TEST_LANE_COUNT 0x220
++
++#define DP_TEST_PATTERN 0x221
++# define DP_NO_TEST_PATTERN 0x0
++# define DP_COLOR_RAMP 0x1
++# define DP_BLACK_AND_WHITE_VERTICAL_LINES 0x2
++# define DP_COLOR_SQUARE 0x3
++
++#define DP_TEST_H_TOTAL_HI 0x222
++#define DP_TEST_H_TOTAL_LO 0x223
++
++#define DP_TEST_V_TOTAL_HI 0x224
++#define DP_TEST_V_TOTAL_LO 0x225
++
++#define DP_TEST_H_START_HI 0x226
++#define DP_TEST_H_START_LO 0x227
++
++#define DP_TEST_V_START_HI 0x228
++#define DP_TEST_V_START_LO 0x229
++
++#define DP_TEST_HSYNC_HI 0x22A
++# define DP_TEST_HSYNC_POLARITY (1 << 7)
++# define DP_TEST_HSYNC_WIDTH_HI_MASK (127 << 0)
++#define DP_TEST_HSYNC_WIDTH_LO 0x22B
++
++#define DP_TEST_VSYNC_HI 0x22C
++# define DP_TEST_VSYNC_POLARITY (1 << 7)
++# define DP_TEST_VSYNC_WIDTH_HI_MASK (127 << 0)
++#define DP_TEST_VSYNC_WIDTH_LO 0x22D
++
++#define DP_TEST_H_WIDTH_HI 0x22E
++#define DP_TEST_H_WIDTH_LO 0x22F
++
++#define DP_TEST_V_HEIGHT_HI 0x230
++#define DP_TEST_V_HEIGHT_LO 0x231
++
++#define DP_TEST_MISC0 0x232
++# define DP_TEST_SYNC_CLOCK (1 << 0)
++# define DP_TEST_COLOR_FORMAT_MASK (3 << 1)
++# define DP_TEST_COLOR_FORMAT_SHIFT 1
++# define DP_COLOR_FORMAT_RGB (0 << 1)
++# define DP_COLOR_FORMAT_YCbCr422 (1 << 1)
++# define DP_COLOR_FORMAT_YCbCr444 (2 << 1)
++# define DP_TEST_DYNAMIC_RANGE_VESA (0 << 3)
++# define DP_TEST_DYNAMIC_RANGE_CEA (1 << 3)
++# define DP_TEST_YCBCR_COEFFICIENTS (1 << 4)
++# define DP_YCBCR_COEFFICIENTS_ITU601 (0 << 4)
++# define DP_YCBCR_COEFFICIENTS_ITU709 (1 << 4)
++# define DP_TEST_BIT_DEPTH_MASK (7 << 5)
++# define DP_TEST_BIT_DEPTH_SHIFT 5
++# define DP_TEST_BIT_DEPTH_6 (0 << 5)
++# define DP_TEST_BIT_DEPTH_8 (1 << 5)
++# define DP_TEST_BIT_DEPTH_10 (2 << 5)
++# define DP_TEST_BIT_DEPTH_12 (3 << 5)
++# define DP_TEST_BIT_DEPTH_16 (4 << 5)
++
++#define DP_TEST_MISC1 0x233
++# define DP_TEST_REFRESH_DENOMINATOR (1 << 0)
++# define DP_TEST_INTERLACED (1 << 1)
++
++#define DP_TEST_REFRESH_RATE_NUMERATOR 0x234
++
++#define DP_TEST_MISC0 0x232
++
++#define DP_TEST_CRC_R_CR 0x240
++#define DP_TEST_CRC_G_Y 0x242
++#define DP_TEST_CRC_B_CB 0x244
++
++#define DP_TEST_SINK_MISC 0x246
++# define DP_TEST_CRC_SUPPORTED (1 << 5)
++# define DP_TEST_COUNT_MASK 0xf
++
++#define DP_PHY_TEST_PATTERN 0x248
++# define DP_PHY_TEST_PATTERN_SEL_MASK 0x7
++# define DP_PHY_TEST_PATTERN_NONE 0x0
++# define DP_PHY_TEST_PATTERN_D10_2 0x1
++# define DP_PHY_TEST_PATTERN_ERROR_COUNT 0x2
++# define DP_PHY_TEST_PATTERN_PRBS7 0x3
++# define DP_PHY_TEST_PATTERN_80BIT_CUSTOM 0x4
++# define DP_PHY_TEST_PATTERN_CP2520 0x5
++
++#define DP_TEST_HBR2_SCRAMBLER_RESET 0x24A
++#define DP_TEST_80BIT_CUSTOM_PATTERN_7_0 0x250
++#define DP_TEST_80BIT_CUSTOM_PATTERN_15_8 0x251
++#define DP_TEST_80BIT_CUSTOM_PATTERN_23_16 0x252
++#define DP_TEST_80BIT_CUSTOM_PATTERN_31_24 0x253
++#define DP_TEST_80BIT_CUSTOM_PATTERN_39_32 0x254
++#define DP_TEST_80BIT_CUSTOM_PATTERN_47_40 0x255
++#define DP_TEST_80BIT_CUSTOM_PATTERN_55_48 0x256
++#define DP_TEST_80BIT_CUSTOM_PATTERN_63_56 0x257
++#define DP_TEST_80BIT_CUSTOM_PATTERN_71_64 0x258
++#define DP_TEST_80BIT_CUSTOM_PATTERN_79_72 0x259
++
++#define DP_TEST_RESPONSE 0x260
++# define DP_TEST_ACK (1 << 0)
++# define DP_TEST_NAK (1 << 1)
++# define DP_TEST_EDID_CHECKSUM_WRITE (1 << 2)
++
++#define DP_TEST_EDID_CHECKSUM 0x261
++
++#define DP_TEST_SINK 0x270
++# define DP_TEST_SINK_START (1 << 0)
++#define DP_TEST_AUDIO_MODE 0x271
++#define DP_TEST_AUDIO_PATTERN_TYPE 0x272
++#define DP_TEST_AUDIO_PERIOD_CH1 0x273
++#define DP_TEST_AUDIO_PERIOD_CH2 0x274
++#define DP_TEST_AUDIO_PERIOD_CH3 0x275
++#define DP_TEST_AUDIO_PERIOD_CH4 0x276
++#define DP_TEST_AUDIO_PERIOD_CH5 0x277
++#define DP_TEST_AUDIO_PERIOD_CH6 0x278
++#define DP_TEST_AUDIO_PERIOD_CH7 0x279
++#define DP_TEST_AUDIO_PERIOD_CH8 0x27A
++
++#define DP_FEC_STATUS 0x280 /* 1.4 */
++# define DP_FEC_DECODE_EN_DETECTED (1 << 0)
++# define DP_FEC_DECODE_DIS_DETECTED (1 << 1)
++
++#define DP_FEC_ERROR_COUNT_LSB 0x0281 /* 1.4 */
++
++#define DP_FEC_ERROR_COUNT_MSB 0x0282 /* 1.4 */
++# define DP_FEC_ERROR_COUNT_MASK 0x7F
++# define DP_FEC_ERR_COUNT_VALID (1 << 7)
++
++#define DP_PAYLOAD_TABLE_UPDATE_STATUS 0x2c0 /* 1.2 MST */
++# define DP_PAYLOAD_TABLE_UPDATED (1 << 0)
++# define DP_PAYLOAD_ACT_HANDLED (1 << 1)
++
++#define DP_VC_PAYLOAD_ID_SLOT_1 0x2c1 /* 1.2 MST */
++/* up to ID_SLOT_63 at 0x2ff */
++
++#define DP_SOURCE_OUI 0x300
++#define DP_SINK_OUI 0x400
++#define DP_BRANCH_OUI 0x500
++#define DP_BRANCH_ID 0x503
++#define DP_BRANCH_REVISION_START 0x509
++#define DP_BRANCH_HW_REV 0x509
++#define DP_BRANCH_SW_REV 0x50A
++
++#define DP_SET_POWER 0x600
++# define DP_SET_POWER_D0 0x1
++# define DP_SET_POWER_D3 0x2
++# define DP_SET_POWER_MASK 0x3
++# define DP_SET_POWER_D3_AUX_ON 0x5
++
++#define DP_EDP_DPCD_REV 0x700 /* eDP 1.2 */
++# define DP_EDP_11 0x00
++# define DP_EDP_12 0x01
++# define DP_EDP_13 0x02
++# define DP_EDP_14 0x03
++# define DP_EDP_14a 0x04 /* eDP 1.4a */
++# define DP_EDP_14b 0x05 /* eDP 1.4b */
++
++#define DP_EDP_GENERAL_CAP_1 0x701
++# define DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP (1 << 0)
++# define DP_EDP_BACKLIGHT_PIN_ENABLE_CAP (1 << 1)
++# define DP_EDP_BACKLIGHT_AUX_ENABLE_CAP (1 << 2)
++# define DP_EDP_PANEL_SELF_TEST_PIN_ENABLE_CAP (1 << 3)
++# define DP_EDP_PANEL_SELF_TEST_AUX_ENABLE_CAP (1 << 4)
++# define DP_EDP_FRC_ENABLE_CAP (1 << 5)
++# define DP_EDP_COLOR_ENGINE_CAP (1 << 6)
++# define DP_EDP_SET_POWER_CAP (1 << 7)
++
++#define DP_EDP_BACKLIGHT_ADJUSTMENT_CAP 0x702
++# define DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP (1 << 0)
++# define DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP (1 << 1)
++# define DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT (1 << 2)
++# define DP_EDP_BACKLIGHT_AUX_PWM_PRODUCT_CAP (1 << 3)
++# define DP_EDP_BACKLIGHT_FREQ_PWM_PIN_PASSTHRU_CAP (1 << 4)
++# define DP_EDP_BACKLIGHT_FREQ_AUX_SET_CAP (1 << 5)
++# define DP_EDP_DYNAMIC_BACKLIGHT_CAP (1 << 6)
++# define DP_EDP_VBLANK_BACKLIGHT_UPDATE_CAP (1 << 7)
++
++#define DP_EDP_GENERAL_CAP_2 0x703
++# define DP_EDP_OVERDRIVE_ENGINE_ENABLED (1 << 0)
++
++#define DP_EDP_GENERAL_CAP_3 0x704 /* eDP 1.4 */
++# define DP_EDP_X_REGION_CAP_MASK (0xf << 0)
++# define DP_EDP_X_REGION_CAP_SHIFT 0
++# define DP_EDP_Y_REGION_CAP_MASK (0xf << 4)
++# define DP_EDP_Y_REGION_CAP_SHIFT 4
++
++#define DP_EDP_DISPLAY_CONTROL_REGISTER 0x720
++# define DP_EDP_BACKLIGHT_ENABLE (1 << 0)
++# define DP_EDP_BLACK_VIDEO_ENABLE (1 << 1)
++# define DP_EDP_FRC_ENABLE (1 << 2)
++# define DP_EDP_COLOR_ENGINE_ENABLE (1 << 3)
++# define DP_EDP_VBLANK_BACKLIGHT_UPDATE_ENABLE (1 << 7)
++
++#define DP_EDP_BACKLIGHT_MODE_SET_REGISTER 0x721
++# define DP_EDP_BACKLIGHT_CONTROL_MODE_MASK (3 << 0)
++# define DP_EDP_BACKLIGHT_CONTROL_MODE_PWM (0 << 0)
++# define DP_EDP_BACKLIGHT_CONTROL_MODE_PRESET (1 << 0)
++# define DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD (2 << 0)
++# define DP_EDP_BACKLIGHT_CONTROL_MODE_PRODUCT (3 << 0)
++# define DP_EDP_BACKLIGHT_FREQ_PWM_PIN_PASSTHRU_ENABLE (1 << 2)
++# define DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE (1 << 3)
++# define DP_EDP_DYNAMIC_BACKLIGHT_ENABLE (1 << 4)
++# define DP_EDP_REGIONAL_BACKLIGHT_ENABLE (1 << 5)
++# define DP_EDP_UPDATE_REGION_BRIGHTNESS (1 << 6) /* eDP 1.4 */
++
++#define DP_EDP_BACKLIGHT_BRIGHTNESS_MSB 0x722
++#define DP_EDP_BACKLIGHT_BRIGHTNESS_LSB 0x723
++
++#define DP_EDP_PWMGEN_BIT_COUNT 0x724
++#define DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN 0x725
++#define DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX 0x726
++# define DP_EDP_PWMGEN_BIT_COUNT_MASK (0x1f << 0)
++
++#define DP_EDP_BACKLIGHT_CONTROL_STATUS 0x727
++
++#define DP_EDP_BACKLIGHT_FREQ_SET 0x728
++# define DP_EDP_BACKLIGHT_FREQ_BASE_KHZ 27000
++
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MIN_MSB 0x72a
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MIN_MID 0x72b
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MIN_LSB 0x72c
++
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MAX_MSB 0x72d
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MAX_MID 0x72e
++#define DP_EDP_BACKLIGHT_FREQ_CAP_MAX_LSB 0x72f
++
++#define DP_EDP_DBC_MINIMUM_BRIGHTNESS_SET 0x732
++#define DP_EDP_DBC_MAXIMUM_BRIGHTNESS_SET 0x733
++
++#define DP_EDP_REGIONAL_BACKLIGHT_BASE 0x740 /* eDP 1.4 */
++#define DP_EDP_REGIONAL_BACKLIGHT_0 0x741 /* eDP 1.4 */
++
++#define DP_SIDEBAND_MSG_DOWN_REQ_BASE 0x1000 /* 1.2 MST */
++#define DP_SIDEBAND_MSG_UP_REP_BASE 0x1200 /* 1.2 MST */
++#define DP_SIDEBAND_MSG_DOWN_REP_BASE 0x1400 /* 1.2 MST */
++#define DP_SIDEBAND_MSG_UP_REQ_BASE 0x1600 /* 1.2 MST */
++
++#define DP_SINK_COUNT_ESI 0x2002 /* 1.2 */
++/* 0-5 sink count */
++# define DP_SINK_COUNT_CP_READY (1 << 6)
++
++#define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI0 0x2003 /* 1.2 */
++
++#define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI1 0x2004 /* 1.2 */
++# define DP_RX_GTC_MSTR_REQ_STATUS_CHANGE (1 << 0)
++# define DP_LOCK_ACQUISITION_REQUEST (1 << 1)
++# define DP_CEC_IRQ (1 << 2)
++
++#define DP_LINK_SERVICE_IRQ_VECTOR_ESI0 0x2005 /* 1.2 */
++
++#define DP_PSR_ERROR_STATUS 0x2006 /* XXX 1.2? */
++# define DP_PSR_LINK_CRC_ERROR (1 << 0)
++# define DP_PSR_RFB_STORAGE_ERROR (1 << 1)
++# define DP_PSR_VSC_SDP_UNCORRECTABLE_ERROR (1 << 2) /* eDP 1.4 */
++
++#define DP_PSR_ESI 0x2007 /* XXX 1.2? */
++# define DP_PSR_CAPS_CHANGE (1 << 0)
++
++#define DP_PSR_STATUS 0x2008 /* XXX 1.2? */
++# define DP_PSR_SINK_INACTIVE 0
++# define DP_PSR_SINK_ACTIVE_SRC_SYNCED 1
++# define DP_PSR_SINK_ACTIVE_RFB 2
++# define DP_PSR_SINK_ACTIVE_SINK_SYNCED 3
++# define DP_PSR_SINK_ACTIVE_RESYNC 4
++# define DP_PSR_SINK_INTERNAL_ERROR 7
++# define DP_PSR_SINK_STATE_MASK 0x07
++
++#define DP_SYNCHRONIZATION_LATENCY_IN_SINK 0x2009 /* edp 1.4 */
++# define DP_MAX_RESYNC_FRAME_COUNT_MASK (0xf << 0)
++# define DP_MAX_RESYNC_FRAME_COUNT_SHIFT 0
++# define DP_LAST_ACTUAL_SYNCHRONIZATION_LATENCY_MASK (0xf << 4)
++# define DP_LAST_ACTUAL_SYNCHRONIZATION_LATENCY_SHIFT 4
++
++#define DP_LAST_RECEIVED_PSR_SDP 0x200a /* eDP 1.2 */
++# define DP_PSR_STATE_BIT (1 << 0) /* eDP 1.2 */
++# define DP_UPDATE_RFB_BIT (1 << 1) /* eDP 1.2 */
++# define DP_CRC_VALID_BIT (1 << 2) /* eDP 1.2 */
++# define DP_SU_VALID (1 << 3) /* eDP 1.4 */
++# define DP_FIRST_SCAN_LINE_SU_REGION (1 << 4) /* eDP 1.4 */
++# define DP_LAST_SCAN_LINE_SU_REGION (1 << 5) /* eDP 1.4 */
++# define DP_Y_COORDINATE_VALID (1 << 6) /* eDP 1.4a */
++
++#define DP_RECEIVER_ALPM_STATUS 0x200b /* eDP 1.4 */
++# define DP_ALPM_LOCK_TIMEOUT_ERROR (1 << 0)
++
++#define DP_LANE0_1_STATUS_ESI 0x200c /* status same as 0x202 */
++#define DP_LANE2_3_STATUS_ESI 0x200d /* status same as 0x203 */
++#define DP_LANE_ALIGN_STATUS_UPDATED_ESI 0x200e /* status same as 0x204 */
++#define DP_SINK_STATUS_ESI 0x200f /* status same as 0x205 */
++
++#define DP_DP13_DPCD_REV 0x2200
++#define DP_DP13_MAX_LINK_RATE 0x2201
++
++#define DP_DPRX_FEATURE_ENUMERATION_LIST 0x2210 /* DP 1.3 */
++# define DP_GTC_CAP (1 << 0) /* DP 1.3 */
++# define DP_SST_SPLIT_SDP_CAP (1 << 1) /* DP 1.4 */
++# define DP_AV_SYNC_CAP (1 << 2) /* DP 1.3 */
++# define DP_VSC_SDP_EXT_FOR_COLORIMETRY_SUPPORTED (1 << 3) /* DP 1.3 */
++# define DP_VSC_EXT_VESA_SDP_SUPPORTED (1 << 4) /* DP 1.4 */
++# define DP_VSC_EXT_VESA_SDP_CHAINING_SUPPORTED (1 << 5) /* DP 1.4 */
++# define DP_VSC_EXT_CEA_SDP_SUPPORTED (1 << 6) /* DP 1.4 */
++# define DP_VSC_EXT_CEA_SDP_CHAINING_SUPPORTED (1 << 7) /* DP 1.4 */
++
++/* HDMI CEC tunneling over AUX DP 1.3 section 5.3.3.3.1 DPCD 1.4+ */
++#define DP_CEC_TUNNELING_CAPABILITY 0x3000
++# define DP_CEC_TUNNELING_CAPABLE (1 << 0)
++# define DP_CEC_SNOOPING_CAPABLE (1 << 1)
++# define DP_CEC_MULTIPLE_LA_CAPABLE (1 << 2)
++
++#define DP_CEC_TUNNELING_CONTROL 0x3001
++# define DP_CEC_TUNNELING_ENABLE (1 << 0)
++# define DP_CEC_SNOOPING_ENABLE (1 << 1)
++
++#define DP_CEC_RX_MESSAGE_INFO 0x3002
++# define DP_CEC_RX_MESSAGE_LEN_MASK (0xf << 0)
++# define DP_CEC_RX_MESSAGE_LEN_SHIFT 0
++# define DP_CEC_RX_MESSAGE_HPD_STATE (1 << 4)
++# define DP_CEC_RX_MESSAGE_HPD_LOST (1 << 5)
++# define DP_CEC_RX_MESSAGE_ACKED (1 << 6)
++# define DP_CEC_RX_MESSAGE_ENDED (1 << 7)
++
++#define DP_CEC_TX_MESSAGE_INFO 0x3003
++# define DP_CEC_TX_MESSAGE_LEN_MASK (0xf << 0)
++# define DP_CEC_TX_MESSAGE_LEN_SHIFT 0
++# define DP_CEC_TX_RETRY_COUNT_MASK (0x7 << 4)
++# define DP_CEC_TX_RETRY_COUNT_SHIFT 4
++# define DP_CEC_TX_MESSAGE_SEND (1 << 7)
++
++#define DP_CEC_TUNNELING_IRQ_FLAGS 0x3004
++# define DP_CEC_RX_MESSAGE_INFO_VALID (1 << 0)
++# define DP_CEC_RX_MESSAGE_OVERFLOW (1 << 1)
++# define DP_CEC_TX_MESSAGE_SENT (1 << 4)
++# define DP_CEC_TX_LINE_ERROR (1 << 5)
++# define DP_CEC_TX_ADDRESS_NACK_ERROR (1 << 6)
++# define DP_CEC_TX_DATA_NACK_ERROR (1 << 7)
++
++#define DP_CEC_LOGICAL_ADDRESS_MASK 0x300E /* 0x300F word */
++# define DP_CEC_LOGICAL_ADDRESS_0 (1 << 0)
++# define DP_CEC_LOGICAL_ADDRESS_1 (1 << 1)
++# define DP_CEC_LOGICAL_ADDRESS_2 (1 << 2)
++# define DP_CEC_LOGICAL_ADDRESS_3 (1 << 3)
++# define DP_CEC_LOGICAL_ADDRESS_4 (1 << 4)
++# define DP_CEC_LOGICAL_ADDRESS_5 (1 << 5)
++# define DP_CEC_LOGICAL_ADDRESS_6 (1 << 6)
++# define DP_CEC_LOGICAL_ADDRESS_7 (1 << 7)
++#define DP_CEC_LOGICAL_ADDRESS_MASK_2 0x300F /* 0x300E word */
++# define DP_CEC_LOGICAL_ADDRESS_8 (1 << 0)
++# define DP_CEC_LOGICAL_ADDRESS_9 (1 << 1)
++# define DP_CEC_LOGICAL_ADDRESS_10 (1 << 2)
++# define DP_CEC_LOGICAL_ADDRESS_11 (1 << 3)
++# define DP_CEC_LOGICAL_ADDRESS_12 (1 << 4)
++# define DP_CEC_LOGICAL_ADDRESS_13 (1 << 5)
++# define DP_CEC_LOGICAL_ADDRESS_14 (1 << 6)
++# define DP_CEC_LOGICAL_ADDRESS_15 (1 << 7)
++
++#define DP_CEC_RX_MESSAGE_BUFFER 0x3010
++#define DP_CEC_TX_MESSAGE_BUFFER 0x3020
++#define DP_CEC_MESSAGE_BUFFER_LENGTH 0x10
++
++#define DP_PROTOCOL_CONVERTER_CONTROL_0 0x3050 /* DP 1.3 */
++# define DP_HDMI_DVI_OUTPUT_CONFIG (1 << 0) /* DP 1.3 */
++#define DP_PROTOCOL_CONVERTER_CONTROL_1 0x3051 /* DP 1.3 */
++# define DP_CONVERSION_TO_YCBCR420_ENABLE (1 << 0) /* DP 1.3 */
++# define DP_HDMI_EDID_PROCESSING_DISABLE (1 << 1) /* DP 1.4 */
++# define DP_HDMI_AUTONOMOUS_SCRAMBLING_DISABLE (1 << 2) /* DP 1.4 */
++# define DP_HDMI_FORCE_SCRAMBLING (1 << 3) /* DP 1.4 */
++#define DP_PROTOCOL_CONVERTER_CONTROL_2 0x3052 /* DP 1.3 */
++# define DP_CONVERSION_TO_YCBCR422_ENABLE (1 << 0) /* DP 1.3 */
++
++#define DP_AUX_HDCP_BKSV 0x68000
++#define DP_AUX_HDCP_RI_PRIME 0x68005
++#define DP_AUX_HDCP_AKSV 0x68007
++#define DP_AUX_HDCP_AN 0x6800C
++#define DP_AUX_HDCP_V_PRIME(h) (0x68014 + h * 4)
++#define DP_AUX_HDCP_BCAPS 0x68028
++# define DP_BCAPS_REPEATER_PRESENT BIT(1)
++# define DP_BCAPS_HDCP_CAPABLE BIT(0)
++#define DP_AUX_HDCP_BSTATUS 0x68029
++# define DP_BSTATUS_REAUTH_REQ BIT(3)
++# define DP_BSTATUS_LINK_FAILURE BIT(2)
++# define DP_BSTATUS_R0_PRIME_READY BIT(1)
++# define DP_BSTATUS_READY BIT(0)
++#define DP_AUX_HDCP_BINFO 0x6802A
++#define DP_AUX_HDCP_KSV_FIFO 0x6802C
++#define DP_AUX_HDCP_AINFO 0x6803B
++
++/* DP HDCP2.2 parameter offsets in DPCD address space */
++#define DP_HDCP_2_2_REG_RTX_OFFSET 0x69000
++#define DP_HDCP_2_2_REG_TXCAPS_OFFSET 0x69008
++#define DP_HDCP_2_2_REG_CERT_RX_OFFSET 0x6900B
++#define DP_HDCP_2_2_REG_RRX_OFFSET 0x69215
++#define DP_HDCP_2_2_REG_RX_CAPS_OFFSET 0x6921D
++#define DP_HDCP_2_2_REG_EKPUB_KM_OFFSET 0x69220
++#define DP_HDCP_2_2_REG_EKH_KM_WR_OFFSET 0x692A0
++#define DP_HDCP_2_2_REG_M_OFFSET 0x692B0
++#define DP_HDCP_2_2_REG_HPRIME_OFFSET 0x692C0
++#define DP_HDCP_2_2_REG_EKH_KM_RD_OFFSET 0x692E0
++#define DP_HDCP_2_2_REG_RN_OFFSET 0x692F0
++#define DP_HDCP_2_2_REG_LPRIME_OFFSET 0x692F8
++#define DP_HDCP_2_2_REG_EDKEY_KS_OFFSET 0x69318
++#define DP_HDCP_2_2_REG_RIV_OFFSET 0x69328
++#define DP_HDCP_2_2_REG_RXINFO_OFFSET 0x69330
++#define DP_HDCP_2_2_REG_SEQ_NUM_V_OFFSET 0x69332
++#define DP_HDCP_2_2_REG_VPRIME_OFFSET 0x69335
++#define DP_HDCP_2_2_REG_RECV_ID_LIST_OFFSET 0x69345
++#define DP_HDCP_2_2_REG_V_OFFSET 0x693E0
++#define DP_HDCP_2_2_REG_SEQ_NUM_M_OFFSET 0x693F0
++#define DP_HDCP_2_2_REG_K_OFFSET 0x693F3
++#define DP_HDCP_2_2_REG_STREAM_ID_TYPE_OFFSET 0x693F5
++#define DP_HDCP_2_2_REG_MPRIME_OFFSET 0x69473
++#define DP_HDCP_2_2_REG_RXSTATUS_OFFSET 0x69493
++#define DP_HDCP_2_2_REG_STREAM_TYPE_OFFSET 0x69494
++#define DP_HDCP_2_2_REG_DBG_OFFSET 0x69518
++
++/* Link Training (LT)-tunable PHY Repeaters */
++#define DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV 0xf0000 /* 1.3 */
++#define DP_MAX_LINK_RATE_PHY_REPEATER 0xf0001 /* 1.4a */
++#define DP_PHY_REPEATER_CNT 0xf0002 /* 1.3 */
++#define DP_PHY_REPEATER_MODE 0xf0003 /* 1.3 */
++#define DP_MAX_LANE_COUNT_PHY_REPEATER 0xf0004 /* 1.4a */
++#define DP_Repeater_FEC_CAPABILITY 0xf0004 /* 1.4 */
++#define DP_PHY_REPEATER_EXTENDED_WAIT_TIMEOUT 0xf0005 /* 1.4a */
++#define DP_TRAINING_PATTERN_SET_PHY_REPEATER1 0xf0010 /* 1.3 */
++#define DP_TRAINING_LANE0_SET_PHY_REPEATER1 0xf0011 /* 1.3 */
++#define DP_TRAINING_LANE1_SET_PHY_REPEATER1 0xf0012 /* 1.3 */
++#define DP_TRAINING_LANE2_SET_PHY_REPEATER1 0xf0013 /* 1.3 */
++#define DP_TRAINING_LANE3_SET_PHY_REPEATER1 0xf0014 /* 1.3 */
++#define DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1 0xf0020 /* 1.4a */
++#define DP_TRANSMITTER_CAPABILITY_PHY_REPEATER1 0xf0021 /* 1.4a */
++#define DP_LANE0_1_STATUS_PHY_REPEATER1 0xf0030 /* 1.3 */
++#define DP_LANE2_3_STATUS_PHY_REPEATER1 0xf0031 /* 1.3 */
++#define DP_LANE_ALIGN_STATUS_UPDATED_PHY_REPEATER1 0xf0032 /* 1.3 */
++#define DP_ADJUST_REQUEST_LANE0_1_PHY_REPEATER1 0xf0033 /* 1.3 */
++#define DP_ADJUST_REQUEST_LANE2_3_PHY_REPEATER1 0xf0034 /* 1.3 */
++#define DP_SYMBOL_ERROR_COUNT_LANE0_PHY_REPEATER1 0xf0035 /* 1.3 */
++#define DP_SYMBOL_ERROR_COUNT_LANE1_PHY_REPEATER1 0xf0037 /* 1.3 */
++#define DP_SYMBOL_ERROR_COUNT_LANE2_PHY_REPEATER1 0xf0039 /* 1.3 */
++#define DP_SYMBOL_ERROR_COUNT_LANE3_PHY_REPEATER1 0xf003b /* 1.3 */
++#define DP_FEC_STATUS_PHY_REPEATER1 0xf0290 /* 1.4 */
++#define DP_FEC_ERROR_COUNT_PHY_REPEATER1 0xf0291 /* 1.4 */
++#define DP_FEC_CAPABILITY_PHY_REPEATER1 0xf0294 /* 1.4a */
++
++/* Repeater modes */
++#define DP_PHY_REPEATER_MODE_TRANSPARENT 0x55 /* 1.3 */
++#define DP_PHY_REPEATER_MODE_NON_TRANSPARENT 0xaa /* 1.3 */
++
++/* DP HDCP message start offsets in DPCD address space */
++#define DP_HDCP_2_2_AKE_INIT_OFFSET DP_HDCP_2_2_REG_RTX_OFFSET
++#define DP_HDCP_2_2_AKE_SEND_CERT_OFFSET DP_HDCP_2_2_REG_CERT_RX_OFFSET
++#define DP_HDCP_2_2_AKE_NO_STORED_KM_OFFSET DP_HDCP_2_2_REG_EKPUB_KM_OFFSET
++#define DP_HDCP_2_2_AKE_STORED_KM_OFFSET DP_HDCP_2_2_REG_EKH_KM_WR_OFFSET
++#define DP_HDCP_2_2_AKE_SEND_HPRIME_OFFSET DP_HDCP_2_2_REG_HPRIME_OFFSET
++#define DP_HDCP_2_2_AKE_SEND_PAIRING_INFO_OFFSET \
++ DP_HDCP_2_2_REG_EKH_KM_RD_OFFSET
++#define DP_HDCP_2_2_LC_INIT_OFFSET DP_HDCP_2_2_REG_RN_OFFSET
++#define DP_HDCP_2_2_LC_SEND_LPRIME_OFFSET DP_HDCP_2_2_REG_LPRIME_OFFSET
++#define DP_HDCP_2_2_SKE_SEND_EKS_OFFSET DP_HDCP_2_2_REG_EDKEY_KS_OFFSET
++#define DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET DP_HDCP_2_2_REG_RXINFO_OFFSET
++#define DP_HDCP_2_2_REP_SEND_ACK_OFFSET DP_HDCP_2_2_REG_V_OFFSET
++#define DP_HDCP_2_2_REP_STREAM_MANAGE_OFFSET DP_HDCP_2_2_REG_SEQ_NUM_M_OFFSET
++#define DP_HDCP_2_2_REP_STREAM_READY_OFFSET DP_HDCP_2_2_REG_MPRIME_OFFSET
++
++#define HDCP_2_2_DP_RXSTATUS_LEN 1
++#define HDCP_2_2_DP_RXSTATUS_READY(x) ((x) & BIT(0))
++#define HDCP_2_2_DP_RXSTATUS_H_PRIME(x) ((x) & BIT(1))
++#define HDCP_2_2_DP_RXSTATUS_PAIRING(x) ((x) & BIT(2))
++#define HDCP_2_2_DP_RXSTATUS_REAUTH_REQ(x) ((x) & BIT(3))
++#define HDCP_2_2_DP_RXSTATUS_LINK_FAILED(x) ((x) & BIT(4))
++
++/* DP 1.2 Sideband message defines */
++/* peer device type - DP 1.2a Table 2-92 */
++#define DP_PEER_DEVICE_NONE 0x0
++#define DP_PEER_DEVICE_SOURCE_OR_SST 0x1
++#define DP_PEER_DEVICE_MST_BRANCHING 0x2
++#define DP_PEER_DEVICE_SST_SINK 0x3
++#define DP_PEER_DEVICE_DP_LEGACY_CONV 0x4
++
++/* DP 1.2 MST sideband request names DP 1.2a Table 2-80 */
++#define DP_GET_MSG_TRANSACTION_VERSION 0x00 /* DP 1.3 */
++#define DP_LINK_ADDRESS 0x01
++#define DP_CONNECTION_STATUS_NOTIFY 0x02
++#define DP_ENUM_PATH_RESOURCES 0x10
++#define DP_ALLOCATE_PAYLOAD 0x11
++#define DP_QUERY_PAYLOAD 0x12
++#define DP_RESOURCE_STATUS_NOTIFY 0x13
++#define DP_CLEAR_PAYLOAD_ID_TABLE 0x14
++#define DP_REMOTE_DPCD_READ 0x20
++#define DP_REMOTE_DPCD_WRITE 0x21
++#define DP_REMOTE_I2C_READ 0x22
++#define DP_REMOTE_I2C_WRITE 0x23
++#define DP_POWER_UP_PHY 0x24
++#define DP_POWER_DOWN_PHY 0x25
++#define DP_SINK_EVENT_NOTIFY 0x30
++#define DP_QUERY_STREAM_ENC_STATUS 0x38
++#define DP_QUERY_STREAM_ENC_STATUS_STATE_NO_EXIST 0
++#define DP_QUERY_STREAM_ENC_STATUS_STATE_INACTIVE 1
++#define DP_QUERY_STREAM_ENC_STATUS_STATE_ACTIVE 2
++
++/* DP 1.2 MST sideband reply types */
++#define DP_SIDEBAND_REPLY_ACK 0x00
++#define DP_SIDEBAND_REPLY_NAK 0x01
++
++/* DP 1.2 MST sideband nak reasons - table 2.84 */
++#define DP_NAK_WRITE_FAILURE 0x01
++#define DP_NAK_INVALID_READ 0x02
++#define DP_NAK_CRC_FAILURE 0x03
++#define DP_NAK_BAD_PARAM 0x04
++#define DP_NAK_DEFER 0x05
++#define DP_NAK_LINK_FAILURE 0x06
++#define DP_NAK_NO_RESOURCES 0x07
++#define DP_NAK_DPCD_FAIL 0x08
++#define DP_NAK_I2C_NAK 0x09
++#define DP_NAK_ALLOCATE_FAIL 0x0a
++
++#define MODE_I2C_START 1
++#define MODE_I2C_WRITE 2
++#define MODE_I2C_READ 4
++#define MODE_I2C_STOP 8
++
++/* DP 1.2 MST PORTs - Section 2.5.1 v1.2a spec */
++#define DP_MST_PHYSICAL_PORT_0 0
++#define DP_MST_LOGICAL_PORT_0 8
++
++#define DP_LINK_CONSTANT_N_VALUE 0x8000
++#define DP_LINK_STATUS_SIZE 6
++bool drm_dp_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
++ int lane_count);
++bool drm_dp_clock_recovery_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
++ int lane_count);
++u8 drm_dp_get_adjust_request_voltage(const u8 link_status[DP_LINK_STATUS_SIZE],
++ int lane);
++u8 drm_dp_get_adjust_request_pre_emphasis(const u8 link_status[DP_LINK_STATUS_SIZE],
++ int lane);
++u8 drm_dp_get_adjust_request_post_cursor(const u8 link_status[DP_LINK_STATUS_SIZE],
++ unsigned int lane);
++
++#define DP_BRANCH_OUI_HEADER_SIZE 0xc
++#define DP_RECEIVER_CAP_SIZE 0xf
++#define DP_DSC_RECEIVER_CAP_SIZE 0xf
++#define EDP_PSR_RECEIVER_CAP_SIZE 2
++#define EDP_DISPLAY_CTL_CAP_SIZE 3
++
++void drm_dp_link_train_clock_recovery_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]);
++void drm_dp_link_train_channel_eq_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]);
++
++u8 drm_dp_link_rate_to_bw_code(int link_rate);
++int drm_dp_bw_code_to_link_rate(u8 link_bw);
++
++#define DP_SDP_AUDIO_TIMESTAMP 0x01
++#define DP_SDP_AUDIO_STREAM 0x02
++#define DP_SDP_EXTENSION 0x04 /* DP 1.1 */
++#define DP_SDP_AUDIO_COPYMANAGEMENT 0x05 /* DP 1.2 */
++#define DP_SDP_ISRC 0x06 /* DP 1.2 */
++#define DP_SDP_VSC 0x07 /* DP 1.2 */
++#define DP_SDP_CAMERA_GENERIC(i) (0x08 + (i)) /* 0-7, DP 1.3 */
++#define DP_SDP_PPS 0x10 /* DP 1.4 */
++#define DP_SDP_VSC_EXT_VESA 0x20 /* DP 1.4 */
++#define DP_SDP_VSC_EXT_CEA 0x21 /* DP 1.4 */
++/* 0x80+ CEA-861 infoframe types */
++
++/**
++ * struct dp_sdp_header - DP secondary data packet header
++ * @HB0: Secondary Data Packet ID
++ * @HB1: Secondary Data Packet Type
++ * @HB2: Secondary Data Packet Specific header, Byte 0
++ * @HB3: Secondary Data packet Specific header, Byte 1
++ */
++struct dp_sdp_header {
++ u8 HB0;
++ u8 HB1;
++ u8 HB2;
++ u8 HB3;
++} __packed;
++
++#define EDP_SDP_HEADER_REVISION_MASK 0x1F
++#define EDP_SDP_HEADER_VALID_PAYLOAD_BYTES 0x1F
++#define DP_SDP_PPS_HEADER_PAYLOAD_BYTES_MINUS_1 0x7F
++
++/**
++ * struct dp_sdp - DP secondary data packet
++ * @sdp_header: DP secondary data packet header
++ * @db: DP secondaray data packet data blocks
++ * VSC SDP Payload for PSR
++ * db[0]: Stereo Interface
++ * db[1]: 0 - PSR State; 1 - Update RFB; 2 - CRC Valid
++ * db[2]: CRC value bits 7:0 of the R or Cr component
++ * db[3]: CRC value bits 15:8 of the R or Cr component
++ * db[4]: CRC value bits 7:0 of the G or Y component
++ * db[5]: CRC value bits 15:8 of the G or Y component
++ * db[6]: CRC value bits 7:0 of the B or Cb component
++ * db[7]: CRC value bits 15:8 of the B or Cb component
++ * db[8] - db[31]: Reserved
++ * VSC SDP Payload for Pixel Encoding/Colorimetry Format
++ * db[0] - db[15]: Reserved
++ * db[16]: Pixel Encoding and Colorimetry Formats
++ * db[17]: Dynamic Range and Component Bit Depth
++ * db[18]: Content Type
++ * db[19] - db[31]: Reserved
++ */
++struct dp_sdp {
++ struct dp_sdp_header sdp_header;
++ u8 db[32];
++} __packed;
++
++#define EDP_VSC_PSR_STATE_ACTIVE (1<<0)
++#define EDP_VSC_PSR_UPDATE_RFB (1<<1)
++#define EDP_VSC_PSR_CRC_VALUES_VALID (1<<2)
++
++/**
++ * enum dp_pixelformat - drm DP Pixel encoding formats
++ *
++ * This enum is used to indicate DP VSC SDP Pixel encoding formats.
++ * It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
++ * DB18]
++ *
++ * @DP_PIXELFORMAT_RGB: RGB pixel encoding format
++ * @DP_PIXELFORMAT_YUV444: YCbCr 4:4:4 pixel encoding format
++ * @DP_PIXELFORMAT_YUV422: YCbCr 4:2:2 pixel encoding format
++ * @DP_PIXELFORMAT_YUV420: YCbCr 4:2:0 pixel encoding format
++ * @DP_PIXELFORMAT_Y_ONLY: Y Only pixel encoding format
++ * @DP_PIXELFORMAT_RAW: RAW pixel encoding format
++ * @DP_PIXELFORMAT_RESERVED: Reserved pixel encoding format
++ */
++enum dp_pixelformat {
++ DP_PIXELFORMAT_RGB = 0,
++ DP_PIXELFORMAT_YUV444 = 0x1,
++ DP_PIXELFORMAT_YUV422 = 0x2,
++ DP_PIXELFORMAT_YUV420 = 0x3,
++ DP_PIXELFORMAT_Y_ONLY = 0x4,
++ DP_PIXELFORMAT_RAW = 0x5,
++ DP_PIXELFORMAT_RESERVED = 0x6,
++};
++
++/**
++ * enum dp_colorimetry - drm DP Colorimetry formats
++ *
++ * This enum is used to indicate DP VSC SDP Colorimetry formats.
++ * It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
++ * DB18] and a name of enum member follows DRM_MODE_COLORIMETRY definition.
++ *
++ * @DP_COLORIMETRY_DEFAULT: sRGB (IEC 61966-2-1) or
++ * ITU-R BT.601 colorimetry format
++ * @DP_COLORIMETRY_RGB_WIDE_FIXED: RGB wide gamut fixed point colorimetry format
++ * @DP_COLORIMETRY_BT709_YCC: ITU-R BT.709 colorimetry format
++ * @DP_COLORIMETRY_RGB_WIDE_FLOAT: RGB wide gamut floating point
++ * (scRGB (IEC 61966-2-2)) colorimetry format
++ * @DP_COLORIMETRY_XVYCC_601: xvYCC601 colorimetry format
++ * @DP_COLORIMETRY_OPRGB: OpRGB colorimetry format
++ * @DP_COLORIMETRY_XVYCC_709: xvYCC709 colorimetry format
++ * @DP_COLORIMETRY_DCI_P3_RGB: DCI-P3 (SMPTE RP 431-2) colorimetry format
++ * @DP_COLORIMETRY_SYCC_601: sYCC601 colorimetry format
++ * @DP_COLORIMETRY_RGB_CUSTOM: RGB Custom Color Profile colorimetry format
++ * @DP_COLORIMETRY_OPYCC_601: opYCC601 colorimetry format
++ * @DP_COLORIMETRY_BT2020_RGB: ITU-R BT.2020 R' G' B' colorimetry format
++ * @DP_COLORIMETRY_BT2020_CYCC: ITU-R BT.2020 Y'c C'bc C'rc colorimetry format
++ * @DP_COLORIMETRY_BT2020_YCC: ITU-R BT.2020 Y' C'b C'r colorimetry format
++ */
++enum dp_colorimetry {
++ DP_COLORIMETRY_DEFAULT = 0,
++ DP_COLORIMETRY_RGB_WIDE_FIXED = 0x1,
++ DP_COLORIMETRY_BT709_YCC = 0x1,
++ DP_COLORIMETRY_RGB_WIDE_FLOAT = 0x2,
++ DP_COLORIMETRY_XVYCC_601 = 0x2,
++ DP_COLORIMETRY_OPRGB = 0x3,
++ DP_COLORIMETRY_XVYCC_709 = 0x3,
++ DP_COLORIMETRY_DCI_P3_RGB = 0x4,
++ DP_COLORIMETRY_SYCC_601 = 0x4,
++ DP_COLORIMETRY_RGB_CUSTOM = 0x5,
++ DP_COLORIMETRY_OPYCC_601 = 0x5,
++ DP_COLORIMETRY_BT2020_RGB = 0x6,
++ DP_COLORIMETRY_BT2020_CYCC = 0x6,
++ DP_COLORIMETRY_BT2020_YCC = 0x7,
++};
++
++/**
++ * enum dp_dynamic_range - drm DP Dynamic Range
++ *
++ * This enum is used to indicate DP VSC SDP Dynamic Range.
++ * It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
++ * DB18]
++ *
++ * @DP_DYNAMIC_RANGE_VESA: VESA range
++ * @DP_DYNAMIC_RANGE_CTA: CTA range
++ */
++enum dp_dynamic_range {
++ DP_DYNAMIC_RANGE_VESA = 0,
++ DP_DYNAMIC_RANGE_CTA = 1,
++};
++
++/**
++ * enum dp_content_type - drm DP Content Type
++ *
++ * This enum is used to indicate DP VSC SDP Content Types.
++ * It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
++ * DB18]
++ * CTA-861-G defines content types and expected processing by a sink device
++ *
++ * @DP_CONTENT_TYPE_NOT_DEFINED: Not defined type
++ * @DP_CONTENT_TYPE_GRAPHICS: Graphics type
++ * @DP_CONTENT_TYPE_PHOTO: Photo type
++ * @DP_CONTENT_TYPE_VIDEO: Video type
++ * @DP_CONTENT_TYPE_GAME: Game type
++ */
++enum dp_content_type {
++ DP_CONTENT_TYPE_NOT_DEFINED = 0x00,
++ DP_CONTENT_TYPE_GRAPHICS = 0x01,
++ DP_CONTENT_TYPE_PHOTO = 0x02,
++ DP_CONTENT_TYPE_VIDEO = 0x03,
++ DP_CONTENT_TYPE_GAME = 0x04,
++};
++
++/**
++ * struct drm_dp_vsc_sdp - drm DP VSC SDP
++ *
++ * This structure represents a DP VSC SDP of drm
++ * It is based on DP 1.4 spec [Table 2-116: VSC SDP Header Bytes] and
++ * [Table 2-117: VSC SDP Payload for DB16 through DB18]
++ *
++ * @sdp_type: secondary-data packet type
++ * @revision: revision number
++ * @length: number of valid data bytes
++ * @pixelformat: pixel encoding format
++ * @colorimetry: colorimetry format
++ * @bpc: bit per color
++ * @dynamic_range: dynamic range information
++ * @content_type: CTA-861-G defines content types and expected processing by a sink device
++ */
++struct drm_dp_vsc_sdp {
++ unsigned char sdp_type;
++ unsigned char revision;
++ unsigned char length;
++ enum dp_pixelformat pixelformat;
++ enum dp_colorimetry colorimetry;
++ int bpc;
++ enum dp_dynamic_range dynamic_range;
++ enum dp_content_type content_type;
++};
++
++void drm_dp_vsc_sdp_log(const char *level, struct device *dev,
++ const struct drm_dp_vsc_sdp *vsc);
++
++int drm_dp_psr_setup_time(const u8 psr_cap[EDP_PSR_RECEIVER_CAP_SIZE]);
++
++static inline int
++drm_dp_max_link_rate(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return drm_dp_bw_code_to_link_rate(dpcd[DP_MAX_LINK_RATE]);
++}
++
++static inline u8
++drm_dp_max_lane_count(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_MAX_LANE_COUNT] & DP_MAX_LANE_COUNT_MASK;
++}
++
++static inline bool
++drm_dp_enhanced_frame_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DPCD_REV] >= 0x11 &&
++ (dpcd[DP_MAX_LANE_COUNT] & DP_ENHANCED_FRAME_CAP);
++}
++
++static inline bool
++drm_dp_fast_training_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DPCD_REV] >= 0x11 &&
++ (dpcd[DP_MAX_DOWNSPREAD] & DP_NO_AUX_HANDSHAKE_LINK_TRAINING);
++}
++
++static inline bool
++drm_dp_tps3_supported(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DPCD_REV] >= 0x12 &&
++ dpcd[DP_MAX_LANE_COUNT] & DP_TPS3_SUPPORTED;
++}
++
++static inline bool
++drm_dp_tps4_supported(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DPCD_REV] >= 0x14 &&
++ dpcd[DP_MAX_DOWNSPREAD] & DP_TPS4_SUPPORTED;
++}
++
++static inline u8
++drm_dp_training_pattern_mask(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return (dpcd[DP_DPCD_REV] >= 0x14) ? DP_TRAINING_PATTERN_MASK_1_4 :
++ DP_TRAINING_PATTERN_MASK;
++}
++
++static inline bool
++drm_dp_is_branch(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT;
++}
++
++/* DP/eDP DSC support */
++u8 drm_dp_dsc_sink_max_slice_count(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE],
++ bool is_edp);
++u8 drm_dp_dsc_sink_line_buf_depth(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE]);
++int drm_dp_dsc_sink_supported_input_bpcs(const u8 dsc_dpc[DP_DSC_RECEIVER_CAP_SIZE],
++ u8 dsc_bpc[3]);
++
++static inline bool
++drm_dp_sink_supports_dsc(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE])
++{
++ return dsc_dpcd[DP_DSC_SUPPORT - DP_DSC_SUPPORT] &
++ DP_DSC_DECOMPRESSION_IS_SUPPORTED;
++}
++
++static inline u16
++drm_edp_dsc_sink_output_bpp(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE])
++{
++ return dsc_dpcd[DP_DSC_MAX_BITS_PER_PIXEL_LOW - DP_DSC_SUPPORT] |
++ (dsc_dpcd[DP_DSC_MAX_BITS_PER_PIXEL_HI - DP_DSC_SUPPORT] &
++ DP_DSC_MAX_BITS_PER_PIXEL_HI_MASK <<
++ DP_DSC_MAX_BITS_PER_PIXEL_HI_SHIFT);
++}
++
++static inline u32
++drm_dp_dsc_sink_max_slice_width(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE])
++{
++ /* Max Slicewidth = Number of Pixels * 320 */
++ return dsc_dpcd[DP_DSC_MAX_SLICE_WIDTH - DP_DSC_SUPPORT] *
++ DP_DSC_SLICE_WIDTH_MULTIPLIER;
++}
++
++/* Forward Error Correction Support on DP 1.4 */
++static inline bool
++drm_dp_sink_supports_fec(const u8 fec_capable)
++{
++ return fec_capable & DP_FEC_CAPABLE;
++}
++
++static inline bool
++drm_dp_channel_coding_supported(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_MAIN_LINK_CHANNEL_CODING] & DP_CAP_ANSI_8B10B;
++}
++
++static inline bool
++drm_dp_alternate_scrambler_reset_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_EDP_CONFIGURATION_CAP] &
++ DP_ALTERNATE_SCRAMBLER_RESET_CAP;
++}
++
++/* Ignore MSA timing for Adaptive Sync support on DP 1.4 */
++static inline bool
++drm_dp_sink_can_do_video_without_timing_msa(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
++{
++ return dpcd[DP_DOWN_STREAM_PORT_COUNT] &
++ DP_MSA_TIMING_PAR_IGNORED;
++}
++
++/*
++ * DisplayPort AUX channel
++ */
++
++/**
++ * struct drm_dp_aux_msg - DisplayPort AUX channel transaction
++ * @address: address of the (first) register to access
++ * @request: contains the type of transaction (see DP_AUX_* macros)
++ * @reply: upon completion, contains the reply type of the transaction
++ * @buffer: pointer to a transmission or reception buffer
++ * @size: size of @buffer
++ */
++struct drm_dp_aux_msg {
++ unsigned int address;
++ u8 request;
++ u8 reply;
++ void *buffer;
++ size_t size;
++};
++
++struct cec_adapter;
++struct edid;
++struct drm_connector;
++
++/**
++ * struct drm_dp_aux_cec - DisplayPort CEC-Tunneling-over-AUX
++ * @lock: mutex protecting this struct
++ * @adap: the CEC adapter for CEC-Tunneling-over-AUX support.
++ * @connector: the connector this CEC adapter is associated with
++ * @unregister_work: unregister the CEC adapter
++ */
++struct drm_dp_aux_cec {
++ struct mutex lock;
++ struct cec_adapter *adap;
++ struct drm_connector *connector;
++ struct delayed_work unregister_work;
++};
++
++/**
++ * struct drm_dp_aux - DisplayPort AUX channel
++ * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter
++ * @ddc: I2C adapter that can be used for I2C-over-AUX communication
++ * @dev: pointer to struct device that is the parent for this AUX channel
++ * @crtc: backpointer to the crtc that is currently using this AUX channel
++ * @hw_mutex: internal mutex used for locking transfers
++ * @crc_work: worker that captures CRCs for each frame
++ * @crc_count: counter of captured frame CRCs
++ * @transfer: transfers a message representing a single AUX transaction
++ *
++ * The .dev field should be set to a pointer to the device that implements
++ * the AUX channel.
++ *
++ * The .name field may be used to specify the name of the I2C adapter. If set to
++ * NULL, dev_name() of .dev will be used.
++ *
++ * Drivers provide a hardware-specific implementation of how transactions
++ * are executed via the .transfer() function. A pointer to a drm_dp_aux_msg
++ * structure describing the transaction is passed into this function. Upon
++ * success, the implementation should return the number of payload bytes
++ * that were transferred, or a negative error-code on failure. Helpers
++ * propagate errors from the .transfer() function, with the exception of
++ * the -EBUSY error, which causes a transaction to be retried. On a short,
++ * helpers will return -EPROTO to make it simpler to check for failure.
++ *
++ * An AUX channel can also be used to transport I2C messages to a sink. A
++ * typical application of that is to access an EDID that's present in the
++ * sink device. The .transfer() function can also be used to execute such
++ * transactions. The drm_dp_aux_register() function registers an I2C
++ * adapter that can be passed to drm_probe_ddc(). Upon removal, drivers
++ * should call drm_dp_aux_unregister() to remove the I2C adapter.
++ * The I2C adapter uses long transfers by default; if a partial response is
++ * received, the adapter will drop down to the size given by the partial
++ * response for this transaction only.
++ *
++ * Note that the aux helper code assumes that the .transfer() function
++ * only modifies the reply field of the drm_dp_aux_msg structure. The
++ * retry logic and i2c helpers assume this is the case.
++ */
++struct drm_dp_aux {
++ const char *name;
++ struct i2c_adapter ddc;
++ struct device *dev;
++ struct drm_crtc *crtc;
++ struct mutex hw_mutex;
++ struct work_struct crc_work;
++ u8 crc_count;
++ ssize_t (*transfer)(struct drm_dp_aux *aux,
++ struct drm_dp_aux_msg *msg);
++ /**
++ * @i2c_nack_count: Counts I2C NACKs, used for DP validation.
++ */
++ unsigned i2c_nack_count;
++ /**
++ * @i2c_defer_count: Counts I2C DEFERs, used for DP validation.
++ */
++ unsigned i2c_defer_count;
++ /**
++ * @cec: struct containing fields used for CEC-Tunneling-over-AUX.
++ */
++ struct drm_dp_aux_cec cec;
++ /**
++ * @is_remote: Is this AUX CH actually using sideband messaging.
++ */
++ bool is_remote;
++};
++
++ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
++ void *buffer, size_t size);
++ssize_t drm_dp_dpcd_write(struct drm_dp_aux *aux, unsigned int offset,
++ void *buffer, size_t size);
++
++/**
++ * drm_dp_dpcd_readb() - read a single byte from the DPCD
++ * @aux: DisplayPort AUX channel
++ * @offset: address of the register to read
++ * @valuep: location where the value of the register will be stored
++ *
++ * Returns the number of bytes transferred (1) on success, or a negative
++ * error code on failure.
++ */
++static inline ssize_t drm_dp_dpcd_readb(struct drm_dp_aux *aux,
++ unsigned int offset, u8 *valuep)
++{
++ return drm_dp_dpcd_read(aux, offset, valuep, 1);
++}
++
++/**
++ * drm_dp_dpcd_writeb() - write a single byte to the DPCD
++ * @aux: DisplayPort AUX channel
++ * @offset: address of the register to write
++ * @value: value to write to the register
++ *
++ * Returns the number of bytes transferred (1) on success, or a negative
++ * error code on failure.
++ */
++static inline ssize_t drm_dp_dpcd_writeb(struct drm_dp_aux *aux,
++ unsigned int offset, u8 value)
++{
++ return drm_dp_dpcd_write(aux, offset, &value, 1);
++}
++
++int drm_dp_read_dpcd_caps(struct drm_dp_aux *aux,
++ u8 dpcd[DP_RECEIVER_CAP_SIZE]);
++
++int drm_dp_dpcd_read_link_status(struct drm_dp_aux *aux,
++ u8 status[DP_LINK_STATUS_SIZE]);
++
++bool drm_dp_send_real_edid_checksum(struct drm_dp_aux *aux,
++ u8 real_edid_checksum);
++
++int drm_dp_read_downstream_info(struct drm_dp_aux *aux,
++ const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ u8 downstream_ports[DP_MAX_DOWNSTREAM_PORTS]);
++bool drm_dp_downstream_is_type(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4], u8 type);
++bool drm_dp_downstream_is_tmds(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4],
++ const struct edid *edid);
++int drm_dp_downstream_max_dotclock(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4]);
++int drm_dp_downstream_max_tmds_clock(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4],
++ const struct edid *edid);
++int drm_dp_downstream_min_tmds_clock(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4],
++ const struct edid *edid);
++int drm_dp_downstream_max_bpc(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4],
++ const struct edid *edid);
++bool drm_dp_downstream_420_passthrough(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4]);
++bool drm_dp_downstream_444_to_420_conversion(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4]);
++struct drm_display_mode *drm_dp_downstream_mode(struct drm_device *dev,
++ const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4]);
++int drm_dp_downstream_id(struct drm_dp_aux *aux, char id[6]);
++void drm_dp_downstream_debug(struct seq_file *m,
++ const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4],
++ const struct edid *edid,
++ struct drm_dp_aux *aux);
++enum drm_mode_subconnector
++drm_dp_subconnector_type(const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const u8 port_cap[4]);
++void drm_dp_set_subconnector_property(struct drm_connector *connector,
++ enum drm_connector_status status,
++ const u8 *dpcd,
++ const u8 port_cap[4]);
++
++struct drm_dp_desc;
++bool drm_dp_read_sink_count_cap(struct drm_connector *connector,
++ const u8 dpcd[DP_RECEIVER_CAP_SIZE],
++ const struct drm_dp_desc *desc);
++int drm_dp_read_sink_count(struct drm_dp_aux *aux);
++
++void drm_dp_remote_aux_init(struct drm_dp_aux *aux);
++void drm_dp_aux_init(struct drm_dp_aux *aux);
++int drm_dp_aux_register(struct drm_dp_aux *aux);
++void drm_dp_aux_unregister(struct drm_dp_aux *aux);
++
++int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc);
++int drm_dp_stop_crc(struct drm_dp_aux *aux);
++
++struct drm_dp_dpcd_ident {
++ u8 oui[3];
++ u8 device_id[6];
++ u8 hw_rev;
++ u8 sw_major_rev;
++ u8 sw_minor_rev;
++} __packed;
++
++/**
++ * struct drm_dp_desc - DP branch/sink device descriptor
++ * @ident: DP device identification from DPCD 0x400 (sink) or 0x500 (branch).
++ * @quirks: Quirks; use drm_dp_has_quirk() to query for the quirks.
++ */
++struct drm_dp_desc {
++ struct drm_dp_dpcd_ident ident;
++ u32 quirks;
++};
++
++int drm_dp_read_desc(struct drm_dp_aux *aux, struct drm_dp_desc *desc,
++ bool is_branch);
++u32 drm_dp_get_edid_quirks(const struct edid *edid);
++
++/**
++ * enum drm_dp_quirk - Display Port sink/branch device specific quirks
++ *
++ * Display Port sink and branch devices in the wild have a variety of bugs, try
++ * to collect them here. The quirks are shared, but it's up to the drivers to
++ * implement workarounds for them. Note that because some devices have
++ * unreliable OUIDs, the EDID of sinks should also be checked for quirks using
++ * drm_dp_get_edid_quirks().
++ */
++enum drm_dp_quirk {
++ /**
++ * @DP_DPCD_QUIRK_CONSTANT_N:
++ *
++ * The device requires main link attributes Mvid and Nvid to be limited
++ * to 16 bits. So will give a constant value (0x8000) for compatability.
++ */
++ DP_DPCD_QUIRK_CONSTANT_N,
++ /**
++ * @DP_DPCD_QUIRK_NO_PSR:
++ *
++ * The device does not support PSR even if reports that it supports or
++ * driver still need to implement proper handling for such device.
++ */
++ DP_DPCD_QUIRK_NO_PSR,
++ /**
++ * @DP_DPCD_QUIRK_NO_SINK_COUNT:
++ *
++ * The device does not set SINK_COUNT to a non-zero value.
++ * The driver should ignore SINK_COUNT during detection. Note that
++ * drm_dp_read_sink_count_cap() automatically checks for this quirk.
++ */
++ DP_DPCD_QUIRK_NO_SINK_COUNT,
++ /**
++ * @DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD:
++ *
++ * The device supports MST DSC despite not supporting Virtual DPCD.
++ * The DSC caps can be read from the physical aux instead.
++ */
++ DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD,
++ /**
++ * @DP_QUIRK_FORCE_DPCD_BACKLIGHT:
++ *
++ * The device is telling the truth when it says that it uses DPCD
++ * backlight controls, even if the system's firmware disagrees. This
++ * quirk should be checked against both the ident and panel EDID.
++ * When present, the driver should honor the DPCD backlight
++ * capabilities advertised.
++ */
++ DP_QUIRK_FORCE_DPCD_BACKLIGHT,
++ /**
++ * @DP_DPCD_QUIRK_CAN_DO_MAX_LINK_RATE_3_24_GBPS:
++ *
++ * The device supports a link rate of 3.24 Gbps (multiplier 0xc) despite
++ * the DP_MAX_LINK_RATE register reporting a lower max multiplier.
++ */
++ DP_DPCD_QUIRK_CAN_DO_MAX_LINK_RATE_3_24_GBPS,
++};
++
++/**
++ * drm_dp_has_quirk() - does the DP device have a specific quirk
++ * @desc: Device descriptor filled by drm_dp_read_desc()
++ * @edid_quirks: Optional quirk bitmask filled by drm_dp_get_edid_quirks()
++ * @quirk: Quirk to query for
++ *
++ * Return true if DP device identified by @desc has @quirk.
++ */
++static inline bool
++drm_dp_has_quirk(const struct drm_dp_desc *desc, u32 edid_quirks,
++ enum drm_dp_quirk quirk)
++{
++ return (desc->quirks | edid_quirks) & BIT(quirk);
++}
++
++#ifdef CONFIG_DRM_DP_CEC
++void drm_dp_cec_irq(struct drm_dp_aux *aux);
++void drm_dp_cec_register_connector(struct drm_dp_aux *aux,
++ struct drm_connector *connector);
++void drm_dp_cec_unregister_connector(struct drm_dp_aux *aux);
++void drm_dp_cec_set_edid(struct drm_dp_aux *aux, const struct edid *edid);
++void drm_dp_cec_unset_edid(struct drm_dp_aux *aux);
++#else
++static inline void drm_dp_cec_irq(struct drm_dp_aux *aux)
++{
++}
++
++static inline void
++drm_dp_cec_register_connector(struct drm_dp_aux *aux,
++ struct drm_connector *connector)
++{
++}
++
++static inline void drm_dp_cec_unregister_connector(struct drm_dp_aux *aux)
++{
++}
++
++static inline void drm_dp_cec_set_edid(struct drm_dp_aux *aux,
++ const struct edid *edid)
++{
++}
++
++static inline void drm_dp_cec_unset_edid(struct drm_dp_aux *aux)
++{
++}
++
++#endif
++
++/**
++ * struct drm_dp_phy_test_params - DP Phy Compliance parameters
++ * @link_rate: Requested Link rate from DPCD 0x219
++ * @num_lanes: Number of lanes requested by sing through DPCD 0x220
++ * @phy_pattern: DP Phy test pattern from DPCD 0x248
++ * @hbr2_reset: DP HBR2_COMPLIANCE_SCRAMBLER_RESET from DCPD 0x24A and 0x24B
++ * @custom80: DP Test_80BIT_CUSTOM_PATTERN from DPCDs 0x250 through 0x259
++ * @enhanced_frame_cap: flag for enhanced frame capability.
++ */
++struct drm_dp_phy_test_params {
++ int link_rate;
++ u8 num_lanes;
++ u8 phy_pattern;
++ u8 hbr2_reset[2];
++ u8 custom80[10];
++ bool enhanced_frame_cap;
++};
++
++int drm_dp_get_phy_test_pattern(struct drm_dp_aux *aux,
++ struct drm_dp_phy_test_params *data);
++int drm_dp_set_phy_test_pattern(struct drm_dp_aux *aux,
++ struct drm_dp_phy_test_params *data, u8 dp_rev);
++#endif /* _DRM_DP_HELPER_H_ */
+diff -rupN linux.orig/include/drm/drm_dsc.h linux/include/drm/drm_dsc.h
+--- linux.orig/include/drm/drm_dsc.h 1970-01-01 00:00:00.000000000 +0000
++++ linux/include/drm/drm_dsc.h 2024-03-22 22:45:10.311816791 +0000
+@@ -0,0 +1,609 @@
++/* SPDX-License-Identifier: MIT
++ * Copyright (C) 2018 Intel Corp.
++ *
++ * Authors:
++ * Manasi Navare
++ */
++
++#ifndef DRM_DSC_H_
++#define DRM_DSC_H_
++
++#include
++
++/* VESA Display Stream Compression DSC 1.2 constants */
++#define DSC_NUM_BUF_RANGES 15
++#define DSC_MUX_WORD_SIZE_8_10_BPC 48
++#define DSC_MUX_WORD_SIZE_12_BPC 64
++#define DSC_RC_PIXELS_PER_GROUP 3
++#define DSC_SCALE_DECREMENT_INTERVAL_MAX 4095
++#define DSC_RANGE_BPG_OFFSET_MASK 0x3f
++
++/* DSC Rate Control Constants */
++#define DSC_RC_MODEL_SIZE_CONST 8192
++#define DSC_RC_EDGE_FACTOR_CONST 6
++#define DSC_RC_TGT_OFFSET_HI_CONST 3
++#define DSC_RC_TGT_OFFSET_LO_CONST 3
++
++/* DSC PPS constants and macros */
++#define DSC_PPS_VERSION_MAJOR_SHIFT 4
++#define DSC_PPS_BPC_SHIFT 4
++#define DSC_PPS_MSB_SHIFT 8
++#define DSC_PPS_LSB_MASK (0xFF << 0)
++#define DSC_PPS_BPP_HIGH_MASK (0x3 << 8)
++#define DSC_PPS_VBR_EN_SHIFT 2
++#define DSC_PPS_SIMPLE422_SHIFT 3
++#define DSC_PPS_CONVERT_RGB_SHIFT 4
++#define DSC_PPS_BLOCK_PRED_EN_SHIFT 5
++#define DSC_PPS_INIT_XMIT_DELAY_HIGH_MASK (0x3 << 8)
++#define DSC_PPS_SCALE_DEC_INT_HIGH_MASK (0xF << 8)
++#define DSC_PPS_RC_TGT_OFFSET_HI_SHIFT 4
++#define DSC_PPS_RC_RANGE_MINQP_SHIFT 11
++#define DSC_PPS_RC_RANGE_MAXQP_SHIFT 6
++#define DSC_PPS_NATIVE_420_SHIFT 1
++#define DSC_1_2_MAX_LINEBUF_DEPTH_BITS 16
++#define DSC_1_2_MAX_LINEBUF_DEPTH_VAL 0
++#define DSC_1_1_MAX_LINEBUF_DEPTH_BITS 13
++
++/**
++ * struct drm_dsc_rc_range_parameters - DSC Rate Control range parameters
++ *
++ * This defines different rate control parameters used by the DSC engine
++ * to compress the frame.
++ */
++struct drm_dsc_rc_range_parameters {
++ /**
++ * @range_min_qp: Min Quantization Parameters allowed for this range
++ */
++ u8 range_min_qp;
++ /**
++ * @range_max_qp: Max Quantization Parameters allowed for this range
++ */
++ u8 range_max_qp;
++ /**
++ * @range_bpg_offset:
++ * Bits/group offset to apply to target for this group
++ */
++ u8 range_bpg_offset;
++};
++
++/**
++ * struct drm_dsc_config - Parameters required to configure DSC
++ *
++ * Driver populates this structure with all the parameters required
++ * to configure the display stream compression on the source.
++ */
++struct drm_dsc_config {
++ /**
++ * @line_buf_depth:
++ * Bits per component for previous reconstructed line buffer
++ */
++ u8 line_buf_depth;
++ /**
++ * @bits_per_component: Bits per component to code (8/10/12)
++ */
++ u8 bits_per_component;
++ /**
++ * @convert_rgb:
++ * Flag to indicate if RGB - YCoCg conversion is needed
++ * True if RGB input, False if YCoCg input
++ */
++ bool convert_rgb;
++ /**
++ * @slice_count: Number fo slices per line used by the DSC encoder
++ */
++ u8 slice_count;
++ /**
++ * @slice_width: Width of each slice in pixels
++ */
++ u16 slice_width;
++ /**
++ * @slice_height: Slice height in pixels
++ */
++ u16 slice_height;
++ /**
++ * @simple_422: True if simple 4_2_2 mode is enabled else False
++ */
++ bool simple_422;
++ /**
++ * @pic_width: Width of the input display frame in pixels
++ */
++ u16 pic_width;
++ /**
++ * @pic_height: Vertical height of the input display frame
++ */
++ u16 pic_height;
++ /**
++ * @rc_tgt_offset_high:
++ * Offset to bits/group used by RC to determine QP adjustment
++ */
++ u8 rc_tgt_offset_high;
++ /**
++ * @rc_tgt_offset_low:
++ * Offset to bits/group used by RC to determine QP adjustment
++ */
++ u8 rc_tgt_offset_low;
++ /**
++ * @bits_per_pixel:
++ * Target bits per pixel with 4 fractional bits, bits_per_pixel << 4
++ */
++ u16 bits_per_pixel;
++ /**
++ * @rc_edge_factor:
++ * Factor to determine if an edge is present based on the bits produced
++ */
++ u8 rc_edge_factor;
++ /**
++ * @rc_quant_incr_limit1:
++ * Slow down incrementing once the range reaches this value
++ */
++ u8 rc_quant_incr_limit1;
++ /**
++ * @rc_quant_incr_limit0:
++ * Slow down incrementing once the range reaches this value
++ */
++ u8 rc_quant_incr_limit0;
++ /**
++ * @initial_xmit_delay:
++ * Number of pixels to delay the initial transmission
++ */
++ u16 initial_xmit_delay;
++ /**
++ * @initial_dec_delay:
++ * Initial decoder delay, number of pixel times that the decoder
++ * accumulates data in its rate buffer before starting to decode
++ * and output pixels.
++ */
++ u16 initial_dec_delay;
++ /**
++ * @block_pred_enable:
++ * True if block prediction is used to code any groups within the
++ * picture. False if BP not used
++ */
++ bool block_pred_enable;
++ /**
++ * @first_line_bpg_offset:
++ * Number of additional bits allocated for each group on the first
++ * line of slice.
++ */
++ u8 first_line_bpg_offset;
++ /**
++ * @initial_offset: Value to use for RC model offset at slice start
++ */
++ u16 initial_offset;
++ /**
++ * @rc_buf_thresh: Thresholds defining each of the buffer ranges
++ */
++ u16 rc_buf_thresh[DSC_NUM_BUF_RANGES - 1];
++ /**
++ * @rc_range_params:
++ * Parameters for each of the RC ranges defined in
++ * &struct drm_dsc_rc_range_parameters
++ */
++ struct drm_dsc_rc_range_parameters rc_range_params[DSC_NUM_BUF_RANGES];
++ /**
++ * @rc_model_size: Total size of RC model
++ */
++ u16 rc_model_size;
++ /**
++ * @flatness_min_qp: Minimum QP where flatness information is sent
++ */
++ u8 flatness_min_qp;
++ /**
++ * @flatness_max_qp: Maximum QP where flatness information is sent
++ */
++ u8 flatness_max_qp;
++ /**
++ * @initial_scale_value: Initial value for the scale factor
++ */
++ u8 initial_scale_value;
++ /**
++ * @scale_decrement_interval:
++ * Specifies number of group times between decrementing the scale factor
++ * at beginning of a slice.
++ */
++ u16 scale_decrement_interval;
++ /**
++ * @scale_increment_interval:
++ * Number of group times between incrementing the scale factor value
++ * used at the beginning of a slice.
++ */
++ u16 scale_increment_interval;
++ /**
++ * @nfl_bpg_offset: Non first line BPG offset to be used
++ */
++ u16 nfl_bpg_offset;
++ /**
++ * @slice_bpg_offset: BPG offset used to enforce slice bit
++ */
++ u16 slice_bpg_offset;
++ /**
++ * @final_offset: Final RC linear transformation offset value
++ */
++ u16 final_offset;
++ /**
++ * @vbr_enable: True if VBR mode is enabled, false if disabled
++ */
++ bool vbr_enable;
++ /**
++ * @mux_word_size: Mux word size (in bits) for SSM mode
++ */
++ u8 mux_word_size;
++ /**
++ * @slice_chunk_size:
++ * The (max) size in bytes of the "chunks" that are used in slice
++ * multiplexing.
++ */
++ u16 slice_chunk_size;
++ /**
++ * @rc_bits: Rate control buffer size in bits
++ */
++ u16 rc_bits;
++ /**
++ * @dsc_version_minor: DSC minor version
++ */
++ u8 dsc_version_minor;
++ /**
++ * @dsc_version_major: DSC major version
++ */
++ u8 dsc_version_major;
++ /**
++ * @native_422: True if Native 4:2:2 supported, else false
++ */
++ bool native_422;
++ /**
++ * @native_420: True if Native 4:2:0 supported else false.
++ */
++ bool native_420;
++ /**
++ * @second_line_bpg_offset:
++ * Additional bits/grp for seconnd line of slice for native 4:2:0
++ */
++ u8 second_line_bpg_offset;
++ /**
++ * @nsl_bpg_offset:
++ * Num of bits deallocated for each grp that is not in second line of
++ * slice
++ */
++ u16 nsl_bpg_offset;
++ /**
++ * @second_line_offset_adj:
++ * Offset adjustment for second line in Native 4:2:0 mode
++ */
++ u16 second_line_offset_adj;
++};
++
++/**
++ * struct picture_parameter_set - Represents 128 bytes of Picture Parameter Set
++ *
++ * The VESA DSC standard defines picture parameter set (PPS) which display
++ * stream compression encoders must communicate to decoders.
++ * The PPS is encapsulated in 128 bytes (PPS 0 through PPS 127). The fields in
++ * this structure are as per Table 4.1 in Vesa DSC specification v1.1/v1.2.
++ * The PPS fields that span over more than a byte should be stored in Big Endian
++ * format.
++ */
++struct drm_dsc_picture_parameter_set {
++ /**
++ * @dsc_version:
++ * PPS0[3:0] - dsc_version_minor: Contains Minor version of DSC
++ * PPS0[7:4] - dsc_version_major: Contains major version of DSC
++ */
++ u8 dsc_version;
++ /**
++ * @pps_identifier:
++ * PPS1[7:0] - Application specific identifier that can be
++ * used to differentiate between different PPS tables.
++ */
++ u8 pps_identifier;
++ /**
++ * @pps_reserved:
++ * PPS2[7:0]- RESERVED Byte
++ */
++ u8 pps_reserved;
++ /**
++ * @pps_3:
++ * PPS3[3:0] - linebuf_depth: Contains linebuffer bit depth used to
++ * generate the bitstream. (0x0 - 16 bits for DSC 1.2, 0x8 - 8 bits,
++ * 0xA - 10 bits, 0xB - 11 bits, 0xC - 12 bits, 0xD - 13 bits,
++ * 0xE - 14 bits for DSC1.2, 0xF - 14 bits for DSC 1.2.
++ * PPS3[7:4] - bits_per_component: Bits per component for the original
++ * pixels of the encoded picture.
++ * 0x0 = 16bpc (allowed only when dsc_version_minor = 0x2)
++ * 0x8 = 8bpc, 0xA = 10bpc, 0xC = 12bpc, 0xE = 14bpc (also
++ * allowed only when dsc_minor_version = 0x2)
++ */
++ u8 pps_3;
++ /**
++ * @pps_4:
++ * PPS4[1:0] -These are the most significant 2 bits of
++ * compressed BPP bits_per_pixel[9:0] syntax element.
++ * PPS4[2] - vbr_enable: 0 = VBR disabled, 1 = VBR enabled
++ * PPS4[3] - simple_422: Indicates if decoder drops samples to
++ * reconstruct the 4:2:2 picture.
++ * PPS4[4] - Convert_rgb: Indicates if DSC color space conversion is
++ * active.
++ * PPS4[5] - blobk_pred_enable: Indicates if BP is used to code any
++ * groups in picture
++ * PPS4[7:6] - Reseved bits
++ */
++ u8 pps_4;
++ /**
++ * @bits_per_pixel_low:
++ * PPS5[7:0] - This indicates the lower significant 8 bits of
++ * the compressed BPP bits_per_pixel[9:0] element.
++ */
++ u8 bits_per_pixel_low;
++ /**
++ * @pic_height:
++ * PPS6[7:0], PPS7[7:0] -pic_height: Specifies the number of pixel rows
++ * within the raster.
++ */
++ __be16 pic_height;
++ /**
++ * @pic_width:
++ * PPS8[7:0], PPS9[7:0] - pic_width: Number of pixel columns within
++ * the raster.
++ */
++ __be16 pic_width;
++ /**
++ * @slice_height:
++ * PPS10[7:0], PPS11[7:0] - Slice height in units of pixels.
++ */
++ __be16 slice_height;
++ /**
++ * @slice_width:
++ * PPS12[7:0], PPS13[7:0] - Slice width in terms of pixels.
++ */
++ __be16 slice_width;
++ /**
++ * @chunk_size:
++ * PPS14[7:0], PPS15[7:0] - Size in units of bytes of the chunks
++ * that are used for slice multiplexing.
++ */
++ __be16 chunk_size;
++ /**
++ * @initial_xmit_delay_high:
++ * PPS16[1:0] - Most Significant two bits of initial transmission delay.
++ * It specifies the number of pixel times that the encoder waits before
++ * transmitting data from its rate buffer.
++ * PPS16[7:2] - Reserved
++ */
++ u8 initial_xmit_delay_high;
++ /**
++ * @initial_xmit_delay_low:
++ * PPS17[7:0] - Least significant 8 bits of initial transmission delay.
++ */
++ u8 initial_xmit_delay_low;
++ /**
++ * @initial_dec_delay:
++ *
++ * PPS18[7:0], PPS19[7:0] - Initial decoding delay which is the number
++ * of pixel times that the decoder accumulates data in its rate buffer
++ * before starting to decode and output pixels.
++ */
++ __be16 initial_dec_delay;
++ /**
++ * @pps20_reserved:
++ *
++ * PPS20[7:0] - Reserved
++ */
++ u8 pps20_reserved;
++ /**
++ * @initial_scale_value:
++ * PPS21[5:0] - Initial rcXformScale factor used at beginning
++ * of a slice.
++ * PPS21[7:6] - Reserved
++ */
++ u8 initial_scale_value;
++ /**
++ * @scale_increment_interval:
++ * PPS22[7:0], PPS23[7:0] - Number of group times between incrementing
++ * the rcXformScale factor at end of a slice.
++ */
++ __be16 scale_increment_interval;
++ /**
++ * @scale_decrement_interval_high:
++ * PPS24[3:0] - Higher 4 bits indicating number of group times between
++ * decrementing the rcXformScale factor at beginning of a slice.
++ * PPS24[7:4] - Reserved
++ */
++ u8 scale_decrement_interval_high;
++ /**
++ * @scale_decrement_interval_low:
++ * PPS25[7:0] - Lower 8 bits of scale decrement interval
++ */
++ u8 scale_decrement_interval_low;
++ /**
++ * @pps26_reserved:
++ * PPS26[7:0]
++ */
++ u8 pps26_reserved;
++ /**
++ * @first_line_bpg_offset:
++ * PPS27[4:0] - Number of additional bits that are allocated
++ * for each group on first line of a slice.
++ * PPS27[7:5] - Reserved
++ */
++ u8 first_line_bpg_offset;
++ /**
++ * @nfl_bpg_offset:
++ * PPS28[7:0], PPS29[7:0] - Number of bits including frac bits
++ * deallocated for each group for groups after the first line of slice.
++ */
++ __be16 nfl_bpg_offset;
++ /**
++ * @slice_bpg_offset:
++ * PPS30, PPS31[7:0] - Number of bits that are deallocated for each
++ * group to enforce the slice constraint.
++ */
++ __be16 slice_bpg_offset;
++ /**
++ * @initial_offset:
++ * PPS32,33[7:0] - Initial value for rcXformOffset
++ */
++ __be16 initial_offset;
++ /**
++ * @final_offset:
++ * PPS34,35[7:0] - Maximum end-of-slice value for rcXformOffset
++ */
++ __be16 final_offset;
++ /**
++ * @flatness_min_qp:
++ * PPS36[4:0] - Minimum QP at which flatness is signaled and
++ * flatness QP adjustment is made.
++ * PPS36[7:5] - Reserved
++ */
++ u8 flatness_min_qp;
++ /**
++ * @flatness_max_qp:
++ * PPS37[4:0] - Max QP at which flatness is signalled and
++ * the flatness adjustment is made.
++ * PPS37[7:5] - Reserved
++ */
++ u8 flatness_max_qp;
++ /**
++ * @rc_model_size:
++ * PPS38,39[7:0] - Number of bits within RC Model.
++ */
++ __be16 rc_model_size;
++ /**
++ * @rc_edge_factor:
++ * PPS40[3:0] - Ratio of current activity vs, previous
++ * activity to determine presence of edge.
++ * PPS40[7:4] - Reserved
++ */
++ u8 rc_edge_factor;
++ /**
++ * @rc_quant_incr_limit0:
++ * PPS41[4:0] - QP threshold used in short term RC
++ * PPS41[7:5] - Reserved
++ */
++ u8 rc_quant_incr_limit0;
++ /**
++ * @rc_quant_incr_limit1:
++ * PPS42[4:0] - QP threshold used in short term RC
++ * PPS42[7:5] - Reserved
++ */
++ u8 rc_quant_incr_limit1;
++ /**
++ * @rc_tgt_offset:
++ * PPS43[3:0] - Lower end of the variability range around the target
++ * bits per group that is allowed by short term RC.
++ * PPS43[7:4]- Upper end of the variability range around the target
++ * bits per group that i allowed by short term rc.
++ */
++ u8 rc_tgt_offset;
++ /**
++ * @rc_buf_thresh:
++ * PPS44[7:0] - PPS57[7:0] - Specifies the thresholds in RC model for
++ * the 15 ranges defined by 14 thresholds.
++ */
++ u8 rc_buf_thresh[DSC_NUM_BUF_RANGES - 1];
++ /**
++ * @rc_range_parameters:
++ * PPS58[7:0] - PPS87[7:0]
++ * Parameters that correspond to each of the 15 ranges.
++ */
++ __be16 rc_range_parameters[DSC_NUM_BUF_RANGES];
++ /**
++ * @native_422_420:
++ * PPS88[0] - 0 = Native 4:2:2 not used
++ * 1 = Native 4:2:2 used
++ * PPS88[1] - 0 = Native 4:2:0 not use
++ * 1 = Native 4:2:0 used
++ * PPS88[7:2] - Reserved 6 bits
++ */
++ u8 native_422_420;
++ /**
++ * @second_line_bpg_offset:
++ * PPS89[4:0] - Additional bits/group budget for the
++ * second line of a slice in Native 4:2:0 mode.
++ * Set to 0 if DSC minor version is 1 or native420 is 0.
++ * PPS89[7:5] - Reserved
++ */
++ u8 second_line_bpg_offset;
++ /**
++ * @nsl_bpg_offset:
++ * PPS90[7:0], PPS91[7:0] - Number of bits that are deallocated
++ * for each group that is not in the second line of a slice.
++ */
++ __be16 nsl_bpg_offset;
++ /**
++ * @second_line_offset_adj:
++ * PPS92[7:0], PPS93[7:0] - Used as offset adjustment for the second
++ * line in Native 4:2:0 mode.
++ */
++ __be16 second_line_offset_adj;
++ /**
++ * @pps_long_94_reserved:
++ * PPS 94, 95, 96, 97 - Reserved
++ */
++ u32 pps_long_94_reserved;
++ /**
++ * @pps_long_98_reserved:
++ * PPS 98, 99, 100, 101 - Reserved
++ */
++ u32 pps_long_98_reserved;
++ /**
++ * @pps_long_102_reserved:
++ * PPS 102, 103, 104, 105 - Reserved
++ */
++ u32 pps_long_102_reserved;
++ /**
++ * @pps_long_106_reserved:
++ * PPS 106, 107, 108, 109 - reserved
++ */
++ u32 pps_long_106_reserved;
++ /**
++ * @pps_long_110_reserved:
++ * PPS 110, 111, 112, 113 - reserved
++ */
++ u32 pps_long_110_reserved;
++ /**
++ * @pps_long_114_reserved:
++ * PPS 114 - 117 - reserved
++ */
++ u32 pps_long_114_reserved;
++ /**
++ * @pps_long_118_reserved:
++ * PPS 118 - 121 - reserved
++ */
++ u32 pps_long_118_reserved;
++ /**
++ * @pps_long_122_reserved:
++ * PPS 122- 125 - reserved
++ */
++ u32 pps_long_122_reserved;
++ /**
++ * @pps_short_126_reserved:
++ * PPS 126, 127 - reserved
++ */
++ __be16 pps_short_126_reserved;
++} __packed;
++
++/**
++ * struct drm_dsc_pps_infoframe - DSC infoframe carrying the Picture Parameter
++ * Set Metadata
++ *
++ * This structure represents the DSC PPS infoframe required to send the Picture
++ * Parameter Set metadata required before enabling VESA Display Stream
++ * Compression. This is based on the DP Secondary Data Packet structure and
++ * comprises of SDP Header as defined &struct dp_sdp_header in drm_dp_helper.h
++ * and PPS payload defined in &struct drm_dsc_picture_parameter_set.
++ *
++ * @pps_header: Header for PPS as per DP SDP header format of type
++ * &struct dp_sdp_header
++ * @pps_payload: PPS payload fields as per DSC specification Table 4-1
++ * as represented in &struct drm_dsc_picture_parameter_set
++ */
++struct drm_dsc_pps_infoframe {
++ struct dp_sdp_header pps_header;
++ struct drm_dsc_picture_parameter_set pps_payload;
++} __packed;
++
++void drm_dsc_dp_pps_header_init(struct dp_sdp_header *pps_header);
++void drm_dsc_pps_payload_pack(struct drm_dsc_picture_parameter_set *pps_sdp,
++ const struct drm_dsc_config *dsc_cfg);
++int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg);
++
++#endif /* _DRM_DSC_H_ */
diff --git a/projects/Rockchip/patches/linux/RK3588/999-remove-log-spam.patch b/projects/Rockchip/patches/linux/RK3588/999-remove-log-spam.patch
deleted file mode 100644
index b6be16ad68..0000000000
--- a/projects/Rockchip/patches/linux/RK3588/999-remove-log-spam.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -rupN linux.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c linux/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
---- linux.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 2024-03-07 05:53:01.096433183 +0000
-+++ linux/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 2024-03-07 05:55:10.999624906 +0000
-@@ -4857,8 +4857,8 @@ static int vop2_plane_atomic_check(struc
-
- if (vop2_cluster_window(win) && !vpstate->afbc_en &&
- (win->supported_rotations & state->rotation)) {
-- DRM_ERROR("Unsupported linear rotation(%d) format at %s\n",
-- state->rotation, win->name);
-+ //DRM_ERROR("Unsupported linear rotation(%d) format at %s\n",
-+ // state->rotation, win->name);
- return -EINVAL;
- }
- }
diff --git a/scripts/update_packages b/scripts/update_packages
index fd9c9ef90d..1eeea2a826 100755
--- a/scripts/update_packages
+++ b/scripts/update_packages
@@ -4,7 +4,7 @@
# Based on work by ToKe79 and Shanti Gilbert
-OPTIONS="distributions/${DISTRONAME}/options"
+OPTIONS="distributions/rocknix/options"
PACKAGES=("packages/virtual/emulators/package.mk" \
"packages/virtual/es-themes/package.mk" \
"packages/virtual/gamesupport/package.mk" )