diff --git a/README.md b/README.md
index 49dab54424059e9cea46bab3d0904dd5b3e44b35..a57aee4dfab133c5d7f9df866526755059651b90 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,12 @@
## 项目简介
-该项目介绍,如何在飞腾信息科技有限公司SOC硬件平台上运行 OpenHarmony 标准系统[OpenHamony 5.0.0 release](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.0-release.md)。其中腾锐D系列芯片没有图形模块,需要搭配显卡使用,目前仓库中支持的显卡包含飞腾X100套片、AMD显卡、JM9100显卡,以及cpu模拟mesa3d方案。
+该项目介绍,如何在飞腾信息科技有限公司SOC硬件平台上运行 OpenHarmony 标准系统[OpenHamony 5.1.0 release](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.1.0-release.md)。其中腾锐D系列芯片没有图形模块,需要搭配显卡使用,目前仓库中支持的显卡包含飞腾X100套片、AMD显卡、JM9100显卡,以及cpu模拟mesa3d方案。
- 支持GPU图形硬件加速,以及X100提供的视频解码硬件加速。
- 支持Linux kernel 5.10, Linux kernel 6.6。
- 支持cpu模拟的mesa3d方案,经优化后,在E系列的芯片上也有流畅体验。
- 支持根据GPU硬件自动加载正确的GL驱动。
-- 支持根据音频硬件,自动配置ALSA mixer参数。
+- 支持根据音频硬件,自动配置ALSA mixer参数。
具体支持状态详见:[开发板简介](./device_board_phytium/README.md)
## 飞腾公司简介
@@ -70,7 +70,7 @@ export PROJ_ROOT=$WORK_SPACE/OpenHarmony
mkdir $WORK_SPACE
mkdir $PROJ_ROOT
cd $PROJ_ROOT
-repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.0.0-Release --no-repo-verify
+repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.1.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
@@ -155,8 +155,9 @@ THE DEVICE: tengrui_d(0)
|----|----|
| --product-name |产品名称,飞腾产品对应tengrui_d,tenglong_e和phytiumpi-firefly|
| --target-cpu |产品芯片架构,飞腾产品对应为arm64|
-| --gn-args linux_kernel_version|gn扩展参数,配置Linux版本,OpenHarmony 5.0.0 Release默认的Linux内核版本是5.10,以后的版本支持指定Linux kernel 6.6, --gn-args linux_kernel_version="linux-6.6"|
+| --gn-args linux_kernel_version|gn扩展参数,用于配置Linux版本,OpenHarmony 5.0.0 Release以后的版本同时支持Linux kernel 6.6和Linux kernel 5.10,5.0.0 Release默认的Linux内核版本是5.10,5.1.0 Release默认的Linux内核版本是6.6。例如,--gn-args linux_kernel_version="linux-6.6"指定编译Linux kernel 6.6|
| --ccache |通过ccache加快编译速度|
+| --gn-args enable_notice_collection=false |取消收集开源notice的过程,建议加上|
更多的编译参数说明,可以通过./build.sh --help获取。
以下是以tengrui_d为例的编译参数。
@@ -164,7 +165,10 @@ THE DEVICE: tengrui_d(0)
cd $PROJ_ROOT
#### 如果linux内核版本是6.6
-./build.sh --product-name tengrui_d --ccache --target-cpu arm64 --gn-args linux_kernel_version="linux-6.6"
+./build.sh --product-name tengrui_d --ccache --target-cpu arm64 --gn-args linux_kernel_version="linux-6.6" --gn-args enable_notice_collection=false
+
+#### 如果linux内核版本是5.10
+./build.sh --product-name tengrui_d --ccache --target-cpu arm64 --gn-args linux_kernel_version="linux-5.10" --gn-args enable_notice_collection=false
```
编译成功提示:
diff --git a/device_board_phytium/README.md b/device_board_phytium/README.md
index 0842b08e5c32e7493ce18fa42c06f6c34363b73b..ae67c784c34a658f71770d8f79e1f36fd1462d85 100644
--- a/device_board_phytium/README.md
+++ b/device_board_phytium/README.md
@@ -19,7 +19,7 @@
|GPIO|YES|
#### 1.2 GPU Model支持状况
-仓库中支持的显卡包含飞腾X100套片、AMD显卡、JM9100显卡、cpu模拟mesa3d。在编译时需要根据不同硬件添加对应的参数 --gn-args gpu_model=xxx。
+仓库中支持的显卡包含飞腾X100套片、AMD显卡、JM9100显卡、cpu模拟mesa3d。
gpu_model支持列表:
@@ -30,9 +30,9 @@
不同版本支持情况 |
- OH 4.1Kernel 5.10
- | OH 5.0.0Kernel 5.10
- | OH 5.0.0Kernel 6.6
+ | OH 4.1
+ | OH 5.0.0
+ | OH 5.1.0
|
sw |
@@ -67,9 +67,9 @@
支持3D硬件加速 |
- RX6400 |
- Linux Kernel不支持 |
- Linux Kernel不支持 |
+ RX6400<只支持Linux Kernel 6.6> |
+ 不支持 |
+ 支持3D硬件加速 |
支持3D硬件加速 |
@@ -77,6 +77,7 @@
- amd型号众多,理论上驱动支持原子操作的型号均能支持,测试样本有限,已测试支持显卡包含RX550、RX640、RX570、RX4600。
- D系列芯片本身没有图形模块,使用sw时,要插入DRM驱动支持的显卡,主要使用场景为qmue、虚拟化以及其他测试场景。
- E系列芯片有图形模块,使用sw时,不需要外插显卡,图形复杂度较低的场景下可以独立使用。对图形要求较高的场景,建议外插显卡。
+- JM显卡由于音频驱动加载顺序的问题,需要将vendor/phytium//hals/audio/alsa_adapter.json中"cardId"改为1。也可在平台上直接修改,路径为:/vendor/etc/hdfconfig/alsa_adapter.json
## 2. 目录结构
@@ -111,5 +112,5 @@
## 3. 相关仓
-* [vendor/phytium](..vendor_phytium)
+* [vendor/phytium](../vendor_phytium)
* [device/soc/phytium](../device_soc_phytium)
diff --git a/device_board_phytium/common/build_kernel/build_kernel.sh b/device_board_phytium/common/build_kernel/build_kernel.sh
index da38472631f4a78a4ef89fa3bcaa8fa19b85d453..37debb4bf01b739d2f716c5b1759877750825dbf 100755
--- a/device_board_phytium/common/build_kernel/build_kernel.sh
+++ b/device_board_phytium/common/build_kernel/build_kernel.sh
@@ -56,7 +56,9 @@ if [ -f "${KERNEL_PATCH}" -a -f "${KERNEL_CONFIG}" ]; then
fi
cp ${KERNEL_OUTPUT_PATH}/Image ${BOOT_IMAGE_PATH}
- cp ${KERNEL_OUTPUT_PATH}/dts/phytium/*.dtb ${BOOT_IMAGE_PATH}
+ if [ $(find ${KERNEL_OUTPUT_PATH}/dts/phytium/ -name "*.dtb" | wc -l) -gt 0 ]; then
+ cp ${KERNEL_OUTPUT_PATH}/dts/phytium/*.dtb ${BOOT_IMAGE_PATH}
+ fi
mkdir -p ${BOOT_IMAGE_PATH}/EFI
cp ${DEVICE_BOARD_PATH}/${DEVICE_NAME}/loader/EFI/* ${BOOT_IMAGE_PATH}/EFI -rf
diff --git a/device_board_phytium/common/build_kernel/copy_and_patch_kernel_source.sh b/device_board_phytium/common/build_kernel/copy_and_patch_kernel_source.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2ec437e4f233cc01360b347ffe94c3d223fa8db0
--- /dev/null
+++ b/device_board_phytium/common/build_kernel/copy_and_patch_kernel_source.sh
@@ -0,0 +1,59 @@
+ROOT_DIR=${1}
+KERNEL_SRC_TMP_PATH=${2}
+DEVICE_NAME=${3}
+KERNEL_VERSION=${4}
+
+NEWIP_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/newip/apply_newip.sh
+TZDRIVER_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/tzdriver/apply_tzdriver.sh
+XPM_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/xpm/apply_xpm.sh
+CED_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/container_escape_detection/apply_ced.sh
+HIDEADDR_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/memory_security/apply_hideaddr.sh
+QOS_AUTH_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/qos_auth/apply_qos_auth.sh
+UNIFIED_COLLECTION_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/ucollection/apply_ucollection.sh
+CODE_SIGN_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/code_sign/apply_code_sign.sh
+DEC_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/dec/apply_dec.sh
+
+#newip
+if [ -f $NEWIP_PATCH_FILE ]; then
+ bash $NEWIP_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#tzdriver
+if [ -f $TZDRIVER_PATCH_FILE ]; then
+ bash $TZDRIVER_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#xpm
+if [ -f $XPM_PATCH_FILE ]; then
+ bash $XPM_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#ced
+if [ -f $CED_PATCH_FILE ]; then
+ bash $CED_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#qos_auth
+if [ -f $QOS_AUTH_PATCH_FILE ]; then
+ bash $QOS_AUTH_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#hideaddr
+if [ -f $HIDEADDR_PATCH_FILE ]; then
+ bash $HIDEADDR_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#ucollection
+if [ -f $UNIFIED_COLLECTION_PATCH_FILE ]; then
+ bash $UNIFIED_COLLECTION_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#code_sign
+if [ -f $CODE_SIGN_PATCH_FILE ]; then
+ bash $CODE_SIGN_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
+
+#dec
+if [ -f $DEC_PATCH_FILE ]; then
+ bash $DEC_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION}
+fi
diff --git a/device_board_phytium/common/build_kernel/kernel.mk b/device_board_phytium/common/build_kernel/kernel.mk
index 2f098c356c97b2758df2f51cda359234502dcf1f..f9b6f514e3fbe0ff912eec7530c45db4888bad06 100755
--- a/device_board_phytium/common/build_kernel/kernel.mk
+++ b/device_board_phytium/common/build_kernel/kernel.mk
@@ -60,6 +60,10 @@ $(KERNEL_IMAGE_FILE):
echo "build kernel... "
$(hide) rm -rf $(KERNEL_SRC_TMP_PATH);mkdir -p $(KERNEL_SRC_TMP_PATH);cp -arfL $(KERNEL_SRC_PATH)/* $(KERNEL_SRC_TMP_PATH)
+ifeq ($(KERNEL_VERSION), linux-6.6)
+ $(hide) $(OHOS_BUILD_HOME)/device/board/phytium/common/build_kernel/copy_and_patch_kernel_source.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(DEVICE_NAME) ${KERNEL_VERSION}
+endif
+
$(hide) $(OHOS_BUILD_HOME)/device/board/phytium/common/build_kernel/build_gpu.sh $(OHOS_BUILD_HOME)/vendor/phytium/gpu_model $(HCK_PATH) ${KERNEL_VERSION} $(DEVICE_NAME)
$(hide) $(OHOS_BUILD_HOME)/device/board/phytium/common/build_kernel/patch_phytium.sh $(PHYTIUM_PATCH_PATH) $(KERNEL_SRC_TMP_PATH)
diff --git a/device_board_phytium/common/distributedhardware/distributed_hardware_components_cfg.json b/device_board_phytium/common/distributedhardware/distributed_hardware_components_cfg.json
index d46c0f7007c1ebff927d52bdb1f26e652c4fa056..b6861133f686283d92bf3da938cbb633d7ea5161 100755
--- a/device_board_phytium/common/distributedhardware/distributed_hardware_components_cfg.json
+++ b/device_board_phytium/common/distributedhardware/distributed_hardware_components_cfg.json
@@ -9,7 +9,7 @@
"comp_source_version": "1.0",
"comp_source_sa_id": 4803,
"comp_sink_loc": "libdistributed_camera_sink_sdk.z.so",
- "comp_sink_version": "1.0",
+ "comp_sink_version": "2.0",
"comp_sink_sa_id": 4804,
"comp_resource_desc": [
{
diff --git a/device_board_phytium/common/kernel_source/linux-5.10/phytium.patch b/device_board_phytium/common/kernel_source/linux-5.10/phytium.patch
index 02952f2b1cec43ab9b2bdc4bd2ee9c1400cc3e9e..c33b8776ec4aa900059329b2c2dd5f46cfda92c8 100644
--- a/device_board_phytium/common/kernel_source/linux-5.10/phytium.patch
+++ b/device_board_phytium/common/kernel_source/linux-5.10/phytium.patch
@@ -1,5 +1,5 @@
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 4ccf42462..000d1beb1 100644
+index 69c898937..20aaba595 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3920,6 +3920,10 @@
@@ -1835,7 +1835,7 @@ index 6a9490ad7..86336a89f 100644
{
struct fwnode_handle *result;
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
-index 14ee631cb..5cccc0f70 100644
+index b3e468000..2a7e7676b 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -22,6 +22,8 @@
@@ -1847,7 +1847,7 @@ index 14ee631cb..5cccc0f70 100644
#define PREFIX "ACPI: "
#define _COMPONENT ACPI_PCI_COMPONENT
-@@ -410,6 +412,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
+@@ -411,6 +413,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
char *link = NULL;
char link_desc[16];
int rc;
@@ -1855,7 +1855,7 @@ index 14ee631cb..5cccc0f70 100644
pin = dev->pin;
if (!pin) {
-@@ -438,7 +441,8 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
+@@ -439,7 +442,8 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
gsi = acpi_pci_link_allocate_irq(entry->link,
entry->index,
&triggering, &polarity,
@@ -1865,7 +1865,7 @@ index 14ee631cb..5cccc0f70 100644
else
gsi = entry->index;
} else
-@@ -462,7 +466,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
+@@ -463,7 +467,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
return 0;
}
@@ -1936,6 +1936,83 @@ index fb4c5632a..21f3e4e30 100644
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"Link %s is referenced\n",
acpi_device_bid(link->device)));
+diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
+index a7d9e4600..b5ff63d39 100644
+--- a/drivers/char/hw_random/Kconfig
++++ b/drivers/char/hw_random/Kconfig
+@@ -536,6 +536,18 @@ config HW_RANDOM_XIPHERA
+ To compile this driver as a module, choose M here: the
+ module will be called xiphera-trng.
+
++config HW_RANDOM_PHYTIUM
++ tristate "Phytium Random Number Generator support"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ This driver provides kernel-side support for the Random Number
++ Generator hardware found on Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium-rng.
++
++ If unsure, say Y.
++
+ endif # HW_RANDOM
+
+ config UML_RANDOM
+diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
+index 5da344509..17cc2f445 100644
+--- a/drivers/char/hw_random/Makefile
++++ b/drivers/char/hw_random/Makefile
+@@ -46,3 +46,5 @@ obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-rng.o
+ obj-$(CONFIG_HW_RANDOM_NPCM) += npcm-rng.o
+ obj-$(CONFIG_HW_RANDOM_CCTRNG) += cctrng.o
+ obj-$(CONFIG_HW_RANDOM_XIPHERA) += xiphera-trng.o
++
++obj-$(CONFIG_HW_RANDOM_PHYTIUM) += phytium-rng.o
+\ No newline at end of file
+diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig
+index f44318626..1fdabf78a 100644
+--- a/drivers/char/ipmi/Kconfig
++++ b/drivers/char/ipmi/Kconfig
+@@ -109,6 +109,27 @@ config ASPEED_KCS_IPMI_BMC
+ The driver implements the BMC side of the KCS contorller, it
+ provides the access of KCS IO space for BMC side.
+
++config PHYTIUM_KCS_IPMI_BMC
++ depends on ARCH_PHYTIUM
++ select IPMI_KCS_BMC
++ select REGMAP_MMIO
++ tristate "PHYTIUM KCS IPMI BMC driver"
++ help
++ Provides a driver for the KCS (Kerboard Controller Style) IPMI
++ interface found on Phytium SOCs.
++
++ The driver implements the BMC side of the KCS controller, it
++ provides the access of KCS IO space for BMC side.
++
++config PHYTIUM_BT_IPMI_BMC
++ depends on ARCH_PHYTIUM
++ depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
++ tristate "PHYTIUM BT BMC driver"
++ help
++ Provides a driver for the BT (Block Transfer) IPMI interface
++ found on Phytium SOCs. The driver implements the BMC
++ side of the BT interface.
++
+ config NPCM7XX_KCS_IPMI_BMC
+ depends on ARCH_NPCM7XX || COMPILE_TEST
+ select IPMI_KCS_BMC
+diff --git a/drivers/char/ipmi/Makefile b/drivers/char/ipmi/Makefile
+index 0822adc2e..97712d873 100644
+--- a/drivers/char/ipmi/Makefile
++++ b/drivers/char/ipmi/Makefile
+@@ -27,3 +27,5 @@ obj-$(CONFIG_ASPEED_BT_IPMI_BMC) += bt-bmc.o
+ obj-$(CONFIG_ASPEED_KCS_IPMI_BMC) += kcs_bmc_aspeed.o
+ obj-$(CONFIG_NPCM7XX_KCS_IPMI_BMC) += kcs_bmc_npcm7xx.o
+ obj-$(CONFIG_IPMB_DEVICE_INTERFACE) += ipmb_dev_int.o
++obj-$(CONFIG_PHYTIUM_KCS_IPMI_BMC) += kcs_bmc_phytium.o
++obj-$(CONFIG_PHYTIUM_BT_IPMI_BMC) += bt_bmc_phytium.o
+\ No newline at end of file
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index f4881764b..5ebafb91c 100644
--- a/drivers/clocksource/arm_arch_timer.c
@@ -2531,6 +2608,200 @@ index 56a1f61aa..2d734faf8 100644
/*
* Ideally channel must be free by now unless OS timeout last
* request and platform continued to process the same, wait
+diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
+index 9e4059836..ec36d56b9 100644
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -108,6 +108,10 @@ config GPIO_REGMAP
+ config GPIO_MAX730X
+ tristate
+
++# This symbol is selected by both MMIO and PCI expanders
++config GPIO_PHYTIUM_CORE
++ tristate
++
+ menu "Memory mapped GPIO drivers"
+ depends on HAS_IOMEM
+
+@@ -739,6 +743,27 @@ config GPIO_AMD_FCH
+ Note: This driver doesn't registers itself automatically, as it
+ needs to be provided with platform specific configuration.
+ (See eg. CONFIG_PCENGINES_APU2.)
++
++config GPIO_PHYTIUM_PLAT
++ tristate "Phytium GPIO Platform support"
++ default y if ARCH_PHYTIUM
++ depends on ARM64
++ select GPIO_PHYTIUM_CORE
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ select GPIOLIB_IRQCHIP
++ help
++ Say yes here to enable GPIO support for Phytium SoCs.
++
++config GPIO_PHYTIUM_SGPIO
++ tristate "Phytium SGPIO support"
++ default y if ARCH_PHYTIUM
++ depends on ARM64
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ help
++ Say yes here to enable SGPIO support for Phytium SoCs.
++
+ endmenu
+
+ menu "Port-mapped I/O GPIO drivers"
+@@ -1520,6 +1545,20 @@ config GPIO_SODAVILLE
+ help
+ Say Y here to support Intel Sodaville GPIO.
+
++
++config GPIO_PHYTIUM_PCI
++ tristate "Phytium GPIO PCI support"
++ select GPIO_PHYTIUM_CORE
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ select GPIOLIB_IRQCHIP
++ help
++ Say Y here to support Phytium PCI GPIO controller on px210 chipset.
++ An interrupt is generated when any of the inputs change state
++ (low to high or high to low).
++
++ This driver can be used for Phytium px210.
++
+ endmenu
+
+ menu "SPI GPIO expanders"
+diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
+index 09dada80a..67dea5151 100644
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -180,3 +180,8 @@ obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o
+ obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o
+ obj-$(CONFIG_GPIO_ZX) += gpio-zx.o
+ obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o
++
++obj-$(CONFIG_GPIO_PHYTIUM_CORE) += gpio-phytium-core.o
++obj-$(CONFIG_GPIO_PHYTIUM_PCI) += gpio-phytium-pci.o
++obj-$(CONFIG_GPIO_PHYTIUM_PLAT) += gpio-phytium-platform.o
++obj-$(CONFIG_GPIO_PHYTIUM_SGPIO) += gpio-phytium-sgpio.o
+diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
+index 8a427467a..3d8fe5982 100644
+--- a/drivers/hwmon/Kconfig
++++ b/drivers/hwmon/Kconfig
+@@ -2096,6 +2096,16 @@ config SENSORS_INTEL_M10_BMC_HWMON
+ sensors monitor various telemetry data of different components on the
+ card, e.g. board temperature, FPGA core temperature/voltage/current.
+
++
++config SENSORS_PHYTIUM
++ tristate "Phytium Fan tach and capture counter driver"
++ help
++ This driver provides support for Phytium Fan Tacho and capture
++ counter controllers.
++
++ This driver can also be built as a module. If so, the module
++ will be called tacho-phytium.
++
+ if ACPI
+
+ comment "ACPI drivers"
+diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
+index 9db2903b6..5b9a59433 100644
+--- a/drivers/hwmon/Makefile
++++ b/drivers/hwmon/Makefile
+@@ -194,6 +194,8 @@ obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o
+ obj-$(CONFIG_SENSORS_WM8350) += wm8350-hwmon.o
+ obj-$(CONFIG_SENSORS_XGENE) += xgene-hwmon.o
+
++obj-$(CONFIG_SENSORS_PHYTIUM) += tacho-phytium.o
++
+ obj-$(CONFIG_SENSORS_OCC) += occ/
+ obj-$(CONFIG_PMBUS) += pmbus/
+
+diff --git a/drivers/hwspinlock/Kconfig b/drivers/hwspinlock/Kconfig
+index 32cd26352..da1f879f5 100644
+--- a/drivers/hwspinlock/Kconfig
++++ b/drivers/hwspinlock/Kconfig
+@@ -65,4 +65,13 @@ config HSEM_U8500
+
+ If unsure, say N.
+
++config HWSPINLOCK_PHYTIUM
++ tristate "Phytium Hardware Spinlock device"
++ depends on HWSPINLOCK
++ depends on ARCH_PHYTIUM
++ help
++ Say y here to support the Phytium Hardware Spinlock device.
++
++ If unsure, say N.
++
+ endif # HWSPINLOCK
+diff --git a/drivers/hwspinlock/Makefile b/drivers/hwspinlock/Makefile
+index ed053e3f0..530aa6363 100644
+--- a/drivers/hwspinlock/Makefile
++++ b/drivers/hwspinlock/Makefile
+@@ -10,3 +10,5 @@ obj-$(CONFIG_HWSPINLOCK_SIRF) += sirf_hwspinlock.o
+ obj-$(CONFIG_HWSPINLOCK_SPRD) += sprd_hwspinlock.o
+ obj-$(CONFIG_HWSPINLOCK_STM32) += stm32_hwspinlock.o
+ obj-$(CONFIG_HSEM_U8500) += u8500_hsem.o
++
++obj-$(CONFIG_HWSPINLOCK_PHYTIUM) += phytium_hwspinlock.o
+\ No newline at end of file
+diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
+index ea474b16e..c2bdd7b92 100644
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -1206,6 +1206,34 @@ config I2C_RCAR
+ This driver can also be built as a module. If so, the module
+ will be called i2c-rcar.
+
++config I2C_PHYTIUM_CORE
++ tristate
++
++config I2C_PHYTIUM_PCI
++ tristate "Phytium I2C PCI"
++ depends on PCI && ARCH_PHYTIUM
++ select I2C_PHYTIUM_CORE
++ select I2C_SMBUS
++ help
++ If you say yes to this option, support will be included for the
++ Phytium I2C adapter. Only master mode is supported.
++
++ This driver can also be built as a module. If so, the module
++ will be called i2c-phytium-pci.
++
++config I2C_PHYTIUM_PLATFORM
++ tristate "Phytium I2C Platform"
++ depends on (ACPI && COMMON_CLK) || !ACPI
++ select I2C_SLAVE
++ select I2C_PHYTIUM_CORE
++ select I2C_SMBUS
++ help
++ If you say yes to this option, support will be included for the
++ Phytium I2C adapter. Only master mode is supported.
++
++ This driver can also be built as a module. If so, the module
++ will be called i2c-phytium-platform.
++
+ comment "External I2C/SMBus adapter drivers"
+
+ config I2C_DIOLAN_U2C
+diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
+index 683c49fac..78372fb65 100644
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -123,6 +123,10 @@ obj-$(CONFIG_I2C_XLR) += i2c-xlr.o
+ obj-$(CONFIG_I2C_XLP9XX) += i2c-xlp9xx.o
+ obj-$(CONFIG_I2C_RCAR) += i2c-rcar.o
+ obj-$(CONFIG_I2C_ZX2967) += i2c-zx2967.o
++obj-$(CONFIG_I2C_PHYTIUM_CORE) += i2c-phytium-core.o
++i2c-phytium-core-objs := i2c-phytium-common.o i2c-phytium-master.o i2c-phytium-slave.o
++obj-$(CONFIG_I2C_PHYTIUM_PCI) += i2c-phytium-pci.o
++obj-$(CONFIG_I2C_PHYTIUM_PLATFORM) += i2c-phytium-platform.o
+
+ # External I2C/SMBus adapter drivers
+ obj-$(CONFIG_I2C_DIOLAN_U2C) += i2c-diolan-u2c.o
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 474754151..f49a08355 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -2543,6 +2814,101 @@ index 474754151..f49a08355 100644
{ }
};
MODULE_DEVICE_TABLE(acpi, dw_i2c_acpi_match);
+diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
+index e39b67912..c08a8421c 100644
+--- a/drivers/iio/adc/Kconfig
++++ b/drivers/iio/adc/Kconfig
+@@ -1226,4 +1226,16 @@ config XILINX_XADC
+ The driver can also be build as a module. If so, the module will be called
+ xilinx-xadc.
+
++config PHYTIUM_ADC
++ tristate "Phytium ADC driver"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ select IIO_BUFFER
++ select IIO_TRIGGERED_BUFFER
++ help
++ Say yes here to build support for Phytium analog to digital
++ converters (ADC).
++
++ To compile this driver as a module, choose M here: the module
++ will be called phytium-adc.
++
+ endmenu
+diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile
+index 90f94ada7..49b6f4651 100644
+--- a/drivers/iio/adc/Makefile
++++ b/drivers/iio/adc/Makefile
+@@ -111,3 +111,4 @@ obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
+ xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o
+ obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o
+ obj-$(CONFIG_SD_ADC_MODULATOR) += sd_adc_modulator.o
++obj-$(CONFIG_PHYTIUM_ADC) += phytium-adc.o
+\ No newline at end of file
+diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
+index 3f7a5ff17..9ab0634f2 100644
+--- a/drivers/input/keyboard/Kconfig
++++ b/drivers/input/keyboard/Kconfig
+@@ -788,4 +788,15 @@ config KEYBOARD_MTK_PMIC
+ To compile this driver as a module, choose M here: the
+ module will be called pmic-keys.
+
++config KEYBOARD_PHYTIUM
++ tristate "Phytium keypad support"
++ depends on ARCH_PHYTIUM
++ select INPUT_MATRIXKMAP
++ help
++ Say Y here if you want to enable support for Phytium keypad
++ port.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium_keypad.
++
+ endif
+diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
+index 1d689fdd5..4947b23ef 100644
+--- a/drivers/input/keyboard/Makefile
++++ b/drivers/input/keyboard/Makefile
+@@ -70,3 +70,4 @@ obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-kbc.o
+ obj-$(CONFIG_KEYBOARD_TM2_TOUCHKEY) += tm2-touchkey.o
+ obj-$(CONFIG_KEYBOARD_TWL4030) += twl4030_keypad.o
+ obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o
++obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o
+diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
+index 0754744b9..ffda99260 100644
+--- a/drivers/input/serio/Kconfig
++++ b/drivers/input/serio/Kconfig
+@@ -40,6 +40,18 @@ config SERIO_I8042
+ To compile this driver as a module, choose M here: the
+ module will be called i8042.
+
++config SERIO_PHYTIUM_PS2
++ depends on SERIO
++ tristate "PHYTIUM PS/2 (keyboard and mouse)"
++ default y if ARCH_PHYTIUM
++ depends on PCI
++ help
++ This selects support for the PS/2 Host Controller on
++ Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium-ps2.
++
+ config SERIO_SERPORT
+ tristate "Serial port line discipline"
+ default y
+diff --git a/drivers/input/serio/Makefile b/drivers/input/serio/Makefile
+index 6d97bad7b..958591822 100644
+--- a/drivers/input/serio/Makefile
++++ b/drivers/input/serio/Makefile
+@@ -7,6 +7,7 @@
+
+ obj-$(CONFIG_SERIO) += serio.o
+ obj-$(CONFIG_SERIO_I8042) += i8042.o
++obj-$(CONFIG_SERIO_PHYTIUM_PS2) += phytium-ps2.o
+ obj-$(CONFIG_SERIO_PARKBD) += parkbd.o
+ obj-$(CONFIG_SERIO_SERPORT) += serport.o
+ obj-$(CONFIG_SERIO_CT82C710) += ct82c710.o
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
index 982c42c87..4dbeb03a0 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
@@ -2747,11 +3113,37 @@ index 57e5d223c..bc95e4773 100644
};
/* SMMU private data for each master */
+diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
+index 641d20632..ee1679bca 100644
+--- a/drivers/irqchip/Kconfig
++++ b/drivers/irqchip/Kconfig
+@@ -623,4 +623,12 @@ config MST_IRQ
+ help
+ Support MStar Interrupt Controller.
+
++config PHYTIUM_IXIC
++ bool "Phytium SoC PCI Legacy Interrupt Controller"
++ depends on ARCH_PHYTIUM
++ select IRQ_DOMAIN
++ select IRQ_DOMAIN_HIERARCHY
++ help
++ This enables support PCI Legacy Interrupt on Phytium SoC.
++
+ endmenu
+diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
+index 44794b04e..4f734f88d 100644
+--- a/drivers/irqchip/Makefile
++++ b/drivers/irqchip/Makefile
+@@ -117,3 +117,4 @@ obj-$(CONFIG_LOONGSON_PCH_MSI) += irq-loongson-pch-msi.o
+ obj-$(CONFIG_LOONGSON_PCH_LPC) += irq-loongson-pch-lpc.o
+ obj-$(CONFIG_MST_IRQ) += irq-mst-intc.o
+ obj-$(CONFIG_SL28CPLD_INTC) += irq-sl28cpld.o
++obj-$(CONFIG_PHYTIUM_IXIC) += irq-phytium-ixic.o
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
-index 23ca48741..343b6f2b9 100644
+index 03cbd3c0c..5593359ea 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
-@@ -4783,6 +4783,7 @@ static void its_restore_enable(void)
+@@ -4803,6 +4803,7 @@ static void its_restore_enable(void)
{
struct its_node *its;
int ret;
@@ -2759,7 +3151,7 @@ index 23ca48741..343b6f2b9 100644
raw_spin_lock(&its_lock);
list_for_each_entry(its, &its_nodes, entry) {
-@@ -4836,6 +4837,23 @@ static void its_restore_enable(void)
+@@ -4856,6 +4857,23 @@ static void its_restore_enable(void)
GITS_TYPER_HCC(gic_read_typer(base + GITS_TYPER)))
its_cpu_init_collection(its);
}
@@ -2783,6 +3175,177 @@ index 23ca48741..343b6f2b9 100644
raw_spin_unlock(&its_lock);
}
+diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig
+index 05b1009e2..e75a6824a 100644
+--- a/drivers/mailbox/Kconfig
++++ b/drivers/mailbox/Kconfig
+@@ -254,4 +254,13 @@ config QCOM_IPCC
+ acts as an interrupt controller for receiving interrupts from clients.
+ Say Y here if you want to build this driver.
+
++config PHYTIUM_MBOX
++ tristate "Phytium SoC Mailbox Support"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ Mailbox driver implementation for the Phytium platform. It is used
++ to send message between application processors and on-chip management
++ firmware. Say Y here if you want to build this mailbox controller
++ driver.
++
+ endif
+diff --git a/drivers/mailbox/Makefile b/drivers/mailbox/Makefile
+index 2e06e02b2..e08fb4b9a 100644
+--- a/drivers/mailbox/Makefile
++++ b/drivers/mailbox/Makefile
+@@ -54,3 +54,5 @@ obj-$(CONFIG_SUN6I_MSGBOX) += sun6i-msgbox.o
+ obj-$(CONFIG_SPRD_MBOX) += sprd-mailbox.o
+
+ obj-$(CONFIG_QCOM_IPCC) += qcom-ipcc.o
++
++obj-$(CONFIG_PHYTIUM_MBOX) += phytium-mailbox.o
+diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
+index c5c6608cc..311bb3fa2 100644
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -1035,6 +1035,21 @@ config UCB1400_CORE
+ To compile this driver as a module, choose M here: the
+ module will be called ucb1400_core.
+
++config MFD_PHYTIUM_I2S_LSD
++ tristate "PHYTIUM px210 I2S LSD MFD driver"
++ depends on (PCI && ARCH_PHYTIUM)
++ select MFD_CORE
++ help
++ This enables support for the Phytium px210 LSD I2S controller.
++
++config MFD_PHYTIUM_I2S_MMD
++ tristate "PHYTIUM px210 I2S MMD MFD driver"
++ depends on (PCI && ARCH_PHYTIUM)
++ select MFD_CORE
++ help
++ This enables support for the Phytium px210 MMD I2S controllers
++ for Display Port.
++
+ config MFD_PM8XXX
+ tristate "Qualcomm PM8xxx PMIC chips driver"
+ depends on (ARM || HEXAGON || COMPILE_TEST)
+diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
+index 1780019d2..5e0bd7d96 100644
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -267,3 +267,6 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas-mcu.o
+ obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o
+ obj-$(CONFIG_MFD_SIMPLE_MFD_I2C) += simple-mfd-i2c.o
+ obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o
++
++obj-$(CONFIG_MFD_PHYTIUM_I2S_LSD) += phytium_px210_i2s_lsd.o
++obj-$(CONFIG_MFD_PHYTIUM_I2S_MMD) += phytium_px210_i2s_mmd.o
+diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
+index 8fe4a0fd6..ee28b6247 100644
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -1105,3 +1105,37 @@ config MMC_OWL
+
+ config MMC_SDHCI_EXTERNAL_DMA
+ bool
++
++config MMC_PHYTIUM_SDCI
++ tristate "Phytium SD Host Controller support"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ default y if ARCH_PHYTIUM
++ help
++ This selects support for the SD/MMC Host Controller on
++ Phytium SoC family.
++
++ If you have a controller with this interface, say Y or M here.
++
++ If unsure, say N.
++
++config MMC_PHYTIUM_MCI_PCI
++ tristate "Phytium octopus PCI MultiMedia Card Interface support"
++ depends on ARCH_PHYTIUM
++ default y if ARCH_PHYTIUM
++ help
++ This selects support for the PCI MultiMedia Card Interface on Phytium
++ px210 chipset.
++
++ If you have a controller with this interface, say Y or M here.
++
++ If unsure, say N.
++
++config MMC_PHYTIUM_MCI_PLTFM
++ tristate "Phytium MultiMedia Card Interface support"
++ depends on ARCH_PHYTIUM && OF
++ default y if ARCH_PHYTIUM
++ help
++ This selects support for the MultiMedia Card Interface on Phytium SoCs.
++ If you have a controller with this interface, say Y or M here.
++
++ If unsure, say N.
+diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
+index 451c25fc2..4a46cf083 100644
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
+@@ -77,6 +77,7 @@ obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6rol0.o
+ obj-$(CONFIG_MMC_TOSHIBA_PCI) += toshsd.o
+ obj-$(CONFIG_MMC_BCM2835) += bcm2835.o
+ obj-$(CONFIG_MMC_OWL) += owl-mmc.o
++obj-$(CONFIG_MMC_PHYTIUM_SDCI) += phytium-sdci.o
+
+ obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o
+ obj-$(CONFIG_MMC_REALTEK_USB) += rtsx_usb_sdmmc.o
+@@ -112,3 +113,6 @@ endif
+
+ obj-$(CONFIG_MMC_SDHCI_XENON) += sdhci-xenon-driver.o
+ sdhci-xenon-driver-y += sdhci-xenon.o sdhci-xenon-phy.o
++
++obj-$(CONFIG_MMC_PHYTIUM_MCI_PCI) += phytium-mci-pci.o phytium-mci.o
++obj-$(CONFIG_MMC_PHYTIUM_MCI_PLTFM) += phytium-mci-plat.o phytium-mci.o
+diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
+index 6c46f25b5..2fce65c27 100644
+--- a/drivers/mtd/nand/raw/Kconfig
++++ b/drivers/mtd/nand/raw/Kconfig
+@@ -486,6 +486,25 @@ config MTD_NAND_RICOH
+ expermental, readwrite
+ 'SmartMedia/xD new translation layer'
+
++config MTD_NAND_PHYTIUM
++ tristate
++
++config MTD_NAND_PHYTIUM_PCI
++ tristate "Support Phytium NAND controller as a PCI device"
++ select MTD_NAND_PHYTIUM
++ depends on PCI
++ help
++ Enable the driver for NAND flash controller of Phytium Px210 chipset,
++ using the Phytium NAND controller core.
++
++config MTD_NAND_PHYTIUM_PLAT
++ tristate "Support Phytium NAND controller as a platform device"
++ select MTD_NAND_PHYTIUM
++ depends on ARCH_PHYTIUM
++ help
++ Enable the driver for NAND flash controller of Phytium CPU chipset,
++ using the Phytium NAND controller core.
++
+ config MTD_NAND_DISKONCHIP
+ tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)"
+ depends on HAS_IOMEM
+diff --git a/drivers/mtd/nand/raw/Makefile b/drivers/mtd/nand/raw/Makefile
+index 2930f5b90..b603ff23e 100644
+--- a/drivers/mtd/nand/raw/Makefile
++++ b/drivers/mtd/nand/raw/Makefile
+@@ -59,6 +59,10 @@ obj-$(CONFIG_MTD_NAND_MESON) += meson_nand.o
+ obj-$(CONFIG_MTD_NAND_CADENCE) += cadence-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_ARASAN) += arasan-nand-controller.o
+
++obj-$(CONFIG_MTD_NAND_PHYTIUM) += phytium_nand.o
++obj-$(CONFIG_MTD_NAND_PHYTIUM_PCI) += phytium_nand_pci.o
++obj-$(CONFIG_MTD_NAND_PHYTIUM_PLAT) += phytium_nand_plat.o
++
+ nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
+ nand-objs += nand_onfi.o
+ nand-objs += nand_jedec.o
diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile
index 653923896..ca91ca6b9 100644
--- a/drivers/mtd/spi-nor/Makefile
@@ -7557,6 +8120,66 @@ index 000000000..422a854eb
+ enum tc_setup_type type, void *type_data);
+
+#endif /* _MACB_TSN_H */
+diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
+index 13eda0c37..c4bae69c2 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
++++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
+@@ -117,6 +117,16 @@ config DWMAC_OXNAS
+ This selects the Oxford Semiconductor OXNASSoC glue layer support for
+ the stmmac device driver. This driver is used for OX820.
+
++config DWMAC_PHYTIUM
++ tristate "Phytium dwmac support"
++ default ARCH_PHYTIUM
++ depends on (OF || ACPI) && (ARCH_PHYTIUM || COMPILE_TEST)
++ help
++ Support for GMAC controller on Phytium SoCs.
++
++ This selects the Phytium GMAC glue layer support for the
++ stmmac device driver.
++
+ config DWMAC_QCOM_ETHQOS
+ tristate "Qualcomm ETHQOS support"
+ default ARCH_QCOM
+diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
+index 11ea4569c..540236c5d 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
++++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
+@@ -18,6 +18,7 @@ obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc18xx.o
+ obj-$(CONFIG_DWMAC_MEDIATEK) += dwmac-mediatek.o
+ obj-$(CONFIG_DWMAC_MESON) += dwmac-meson.o dwmac-meson8b.o
+ obj-$(CONFIG_DWMAC_OXNAS) += dwmac-oxnas.o
++obj-$(CONFIG_DWMAC_PHYTIUM) += dwmac-phytium.o
+ obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-ethqos.o
+ obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o
+ obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o
+diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
+index 698bea312..44056ad58 100644
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -314,6 +314,12 @@ config XILINX_GMII2RGMII
+ the Reduced Gigabit Media Independent Interface(RGMII) between
+ Ethernet physical media devices and the Gigabit Ethernet controller.
+
++config MOTORCOMM_PHY
++ tristate "Motorcomm PHYs"
++ help
++ Enables support for Motorcomm network PHYs.
++ Currently supports the YT8511 gigabit PHY.
++
+ endif # PHYLIB
+
+ config MICREL_KS8995MA
+diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
+index a13e40207..5418a896f 100644
+--- a/drivers/net/phy/Makefile
++++ b/drivers/net/phy/Makefile
+@@ -80,3 +80,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o
+ obj-$(CONFIG_TERANETICS_PHY) += teranetics.o
+ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
+ obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
++
++obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm.o
diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
index ac373510b..f5a17307b 100644
--- a/drivers/net/phy/at803x.c
@@ -7732,7 +8355,7 @@ index 75c6c72ec..ad7e9ce25 100644
out:
pci_config_pm_runtime_put(pdev);
diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
-index 2ff5724b8..6ac559346 100644
+index 358d7281f..59c4fd959 100644
--- a/drivers/pci/pcie/portdrv.h
+++ b/drivers/pci/pcie/portdrv.h
@@ -123,6 +123,19 @@ void pcie_port_bus_unregister(void);
@@ -7756,7 +8379,7 @@ index 2ff5724b8..6ac559346 100644
extern bool pcie_pme_msi_disabled;
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
-index 3779b264d..839e43c55 100644
+index 682c1cce5..a929b2294 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -25,6 +25,17 @@ struct portdrv_service_data {
@@ -7788,18 +8411,18 @@ index 3779b264d..839e43c55 100644
if (pcie_port_enable_irq_vec(dev, irqs, mask) == 0)
return 0;
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 21661feee..5af216b4e 100644
+index f7d98ba16..37bdae47b 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -30,6 +30,7 @@
- #include
+@@ -31,6 +31,7 @@
#include
+ #include
#include /* isa_dma_bridge_buggy */
+#include
#include "pci.h"
static ktime_t fixup_debug_start(struct pci_dev *dev,
-@@ -3878,12 +3879,12 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
+@@ -3939,12 +3940,12 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
void __iomem *bar;
u16 cmd;
u32 cfg;
@@ -7814,7 +8437,7 @@ index 21661feee..5af216b4e 100644
return 0;
bar = pci_iomap(dev, 0, NVME_REG_CC + sizeof(cfg));
-@@ -3937,7 +3938,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
+@@ -3998,7 +3999,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
pci_iounmap(dev, bar);
pcie_flr(dev);
@@ -7823,7 +8446,7 @@ index 21661feee..5af216b4e 100644
return 0;
}
-@@ -4033,6 +4034,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
+@@ -4094,6 +4095,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IVB_M2_VGA,
reset_ivb_igd },
{ PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr },
@@ -7831,7 +8454,7 @@ index 21661feee..5af216b4e 100644
{ PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr },
{ PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID,
reset_chelsio_generic_dev },
-@@ -4972,6 +4974,10 @@ static const struct pci_dev_acs_enabled {
+@@ -5033,6 +5035,10 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
/* Wangxun nics */
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
@@ -7842,7 +8465,7 @@ index 21661feee..5af216b4e 100644
{ 0 }
};
-@@ -5355,6 +5361,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags);
+@@ -5416,6 +5422,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);
@@ -7850,6 +8473,149 @@ index 21661feee..5af216b4e 100644
#ifdef CONFIG_PCI_ATS
static void quirk_no_ats(struct pci_dev *pdev)
+diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
+index 63be5362f..90c428634 100644
+--- a/drivers/pwm/Kconfig
++++ b/drivers/pwm/Kconfig
+@@ -570,4 +570,14 @@ config PWM_ZX
+ To compile this driver as a module, choose M here: the module
+ will be called pwm-zx.
+
++config PWM_PHYTIUM
++ tristate "Phytium PWM support"
++ depends on ARCH_PHYTIUM
++ help
++ Generic PWM framework driver for the PWM controller found on
++ Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the module
++ will be called pwm-phytium.
++
+ endif
+diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
+index cbdcd55d6..32efa3652 100644
+--- a/drivers/pwm/Makefile
++++ b/drivers/pwm/Makefile
+@@ -55,3 +55,5 @@ obj-$(CONFIG_PWM_TWL) += pwm-twl.o
+ obj-$(CONFIG_PWM_TWL_LED) += pwm-twl-led.o
+ obj-$(CONFIG_PWM_VT8500) += pwm-vt8500.o
+ obj-$(CONFIG_PWM_ZX) += pwm-zx.o
++
++obj-$(CONFIG_PWM_PHYTIUM) += pwm-phytium.o
+diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
+index d99548fb5..b714bf090 100644
+--- a/drivers/remoteproc/Kconfig
++++ b/drivers/remoteproc/Kconfig
+@@ -288,6 +288,12 @@ config TI_K3_R5_REMOTEPROC
+ It's safe to say N here if you're not interested in utilizing
+ a slave processor.
+
++config HOMO_REMOTEPROC
++ bool "homogeneous remoteproc support"
++ select RPMSG_VIRTIO
++ help
++ Say y here to support homogeneous processors via the remote processor framework.
++
+ endif # REMOTEPROC
+
+ endmenu
+diff --git a/drivers/remoteproc/Makefile b/drivers/remoteproc/Makefile
+index da2ace4ec..9a5540d9a 100644
+--- a/drivers/remoteproc/Makefile
++++ b/drivers/remoteproc/Makefile
+@@ -34,3 +34,4 @@ obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_slim_rproc.o
+ obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o
+ obj-$(CONFIG_TI_K3_DSP_REMOTEPROC) += ti_k3_dsp_remoteproc.o
+ obj-$(CONFIG_TI_K3_R5_REMOTEPROC) += ti_k3_r5_remoteproc.o
++obj-$(CONFIG_HOMO_REMOTEPROC) += homo_remoteproc.o
+diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
+old mode 100644
+new mode 100755
+index 54cf5ec8f..c1a385acd
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -701,6 +701,16 @@ config RTC_DRV_S5M
+ This driver can also be built as a module. If so, the module
+ will be called rtc-s5m.
+
++config RTC_DRV_SD3068
++ tristate "ZXW Shenzhen whwave SD3068"
++ select REGMAP_I2C
++ help
++ If you say yes here you get support for the ZXW Shenzhen whwave
++ SD3068 RTC chips.
++
++ This driver can also be built as a module. If so, the module
++ will be called rtc-sd3068
++
+ config RTC_DRV_SD3078
+ tristate "ZXW Shenzhen whwave SD3078"
+ select REGMAP_I2C
+diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
+old mode 100644
+new mode 100755
+index bfb574641..422182033
+--- a/drivers/rtc/Makefile
++++ b/drivers/rtc/Makefile
+@@ -153,6 +153,7 @@ obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o
+ obj-$(CONFIG_RTC_DRV_S5M) += rtc-s5m.o
+ obj-$(CONFIG_RTC_DRV_SA1100) += rtc-sa1100.o
+ obj-$(CONFIG_RTC_DRV_SC27XX) += rtc-sc27xx.o
++obj-$(CONFIG_RTC_DRV_SD3068) += rtc-sd3068.o
+ obj-$(CONFIG_RTC_DRV_SD3078) += rtc-sd3078.o
+ obj-$(CONFIG_RTC_DRV_SH) += rtc-sh.o
+ obj-$(CONFIG_RTC_DRV_SIRFSOC) += rtc-sirfsoc.o
+diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
+index 74ea6b6b5..e4d6be4e5 100644
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
+@@ -585,6 +585,31 @@ config SPI_ORION
+ This enables using the SPI master controller on the Orion
+ and MVEBU chips.
+
++config SPI_PHYTIUM
++ tristate
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++
++config SPI_PHYTIUM_PLAT
++ tristate "Phytium SPI controller platform support"
++ select SPI_PHYTIUM
++ help
++ This selects a platform driver for Phytium SPI controller.
++
++ If you say yes to this option, support will be included for
++ Pd1904 and pd2008 families of SPI controller.
++
++config SPI_PHYTIUM_PCI
++ tristate "Phytium SPI controller PCI support"
++ depends on PCI
++ select SPI_PHYTIUM
++ help
++ This selects a PCI driver for Phytium SPI controller.
++
++ If you say yes to this option, support will be included for
++ Phytium px210 chipset of SPI controller.
++
++ If unsure, say N.
++
+ config SPI_PIC32
+ tristate "Microchip PIC32 series SPI"
+ depends on MACH_PIC32 || COMPILE_TEST
+diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
+index 6fea58216..c5996a6d3 100644
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
+@@ -82,6 +82,10 @@ obj-$(CONFIG_SPI_OMAP_100K) += spi-omap-100k.o
+ obj-$(CONFIG_SPI_OMAP24XX) += spi-omap2-mcspi.o
+ obj-$(CONFIG_SPI_TI_QSPI) += spi-ti-qspi.o
+ obj-$(CONFIG_SPI_ORION) += spi-orion.o
++obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium.o spi-phytium-dma.o
++obj-$(CONFIG_SPI_PHYTIUM_PLAT) += spi-phytium-plat.o
++obj-$(CONFIG_SPI_PHYTIUM_PCI) += spi-phytium-pci.o
++obj-$(CONFIG_SPI_PHYTIUM_QSPI) += spi-phytium-qspi.o
+ obj-$(CONFIG_SPI_PIC32) += spi-pic32.o
+ obj-$(CONFIG_SPI_PIC32_SQI) += spi-pic32-sqi.o
+ obj-$(CONFIG_SPI_PL022) += spi-pl022.o
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 6ea80add7..b96f8e313 100644
--- a/drivers/tee/optee/core.c
@@ -7885,8 +8651,43 @@ index 6ea80add7..b96f8e313 100644
},
};
module_platform_driver(optee_driver);
+diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
+index 28f22e586..4d6ac2bc7 100644
+--- a/drivers/tty/serial/Kconfig
++++ b/drivers/tty/serial/Kconfig
+@@ -73,6 +73,17 @@ config SERIAL_AMBA_PL011_CONSOLE
+ your boot loader (lilo or loadlin) about how to pass options to the
+ kernel at boot time.)
+
++config SERIAL_PHYTIUM_PCI
++ tristate "Phytium PCI serial port support"
++ depends on PCI
++ select SERIAL_CORE
++ help
++ This driver supports the Phytium UART controller on PCI/PCIe adapters.
++ If you want to compile this driver into the kernel, say Y here. To
++ compile this driver as a module, choose M here.
++
++ If unsure, say N.
++
+ config SERIAL_EARLYCON_ARM_SEMIHOST
+ bool "Early console using ARM semihosting"
+ depends on ARM64 || ARM
+diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
+index caf167f0c..f215657dc 100644
+--- a/drivers/tty/serial/Makefile
++++ b/drivers/tty/serial/Makefile
+@@ -91,6 +91,8 @@ obj-$(CONFIG_SERIAL_RDA) += rda-uart.o
+ obj-$(CONFIG_SERIAL_MILBEAUT_USIO) += milbeaut_usio.o
+ obj-$(CONFIG_SERIAL_SIFIVE) += sifive.o
+
++obj-$(CONFIG_SERIAL_PHYTIUM_PCI) += phytium-uart.o
++
+ # GPIOLIB helpers for modem control lines
+ obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
+
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index 53f832787..96be5bc21 100644
+index 311e96b05..f9871d36f 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -72,6 +72,8 @@
@@ -7898,7 +8699,7 @@ index 53f832787..96be5bc21 100644
static const char hcd_name[] = "xhci_hcd";
static struct hc_driver __read_mostly xhci_pci_hc_driver;
-@@ -283,6 +285,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
+@@ -285,6 +287,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_VIA)
xhci->quirks |= XHCI_RESET_ON_RESUME;
@@ -7909,7 +8710,7 @@ index 53f832787..96be5bc21 100644
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
pdev->device == 0x3432)
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
-index e56a1fb97..65a019a4d 100644
+index 83c7dffa9..d64361116 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -137,6 +137,10 @@ static const struct xhci_plat_priv xhci_plat_brcm = {
@@ -7942,7 +8743,7 @@ index e56a1fb97..65a019a4d 100644
else
priv_match = dev_get_platdata(&pdev->dev);
-@@ -533,6 +542,7 @@ static const struct dev_pm_ops xhci_plat_pm_ops = {
+@@ -536,6 +545,7 @@ static const struct dev_pm_ops xhci_plat_pm_ops = {
static const struct acpi_device_id usb_xhci_acpi_match[] = {
/* XHCI-compliant USB Controller */
{ "PNP0D10", },
@@ -7950,6 +8751,37 @@ index e56a1fb97..65a019a4d 100644
{ }
};
MODULE_DEVICE_TABLE(acpi, usb_xhci_acpi_match);
+diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig
+index 24b9a8e05..8c2f6e045 100644
+--- a/drivers/w1/masters/Kconfig
++++ b/drivers/w1/masters/Kconfig
+@@ -74,5 +74,15 @@ config W1_MASTER_SGI
+ This support is also available as a module. If so, the module
+ will be called sgi_w1.
+
++config W1_MASTER_PHYTIUM
++ tristate "Phytium 1-wire driver"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ Say Y here if you want to get support for the 1-wire interface
++ on an Phytium SoC.
++
++ This driver can also be built as a module. If so, the module
++ will be called phytium-w1.
++
+ endmenu
+
+diff --git a/drivers/w1/masters/Makefile b/drivers/w1/masters/Makefile
+index dae629b7a..43a66fd6d 100644
+--- a/drivers/w1/masters/Makefile
++++ b/drivers/w1/masters/Makefile
+@@ -12,3 +12,5 @@ obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm.o
+ obj-$(CONFIG_W1_MASTER_GPIO) += w1-gpio.o
+ obj-$(CONFIG_HDQ_MASTER_OMAP) += omap_hdq.o
+ obj-$(CONFIG_W1_MASTER_SGI) += sgi_w1.o
++
++obj-$(CONFIG_W1_MASTER_PHYTIUM) += phytium_w1.o
+\ No newline at end of file
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index 5eb175933..dbdcd2f51 100644
--- a/include/acpi/acpi_drivers.h
@@ -7977,10 +8809,10 @@ index 1d68d5613..6b085710e 100644
enum arch_timer_ppi_nr {
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
-index 9c184dbce..5692707e0 100644
+index 01e44fde1..6df775971 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
-@@ -340,6 +340,16 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags,
+@@ -347,6 +347,16 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags,
const struct irq_domain_ops *ops,
void *host_data);
@@ -7998,10 +8830,10 @@ index 9c184dbce..5692707e0 100644
extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
#else
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
-index 088c835ac..fff4c30ba 100644
+index 80c351d0d..699843a3b 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
-@@ -198,6 +198,7 @@ enum cpuhp_state {
+@@ -199,6 +199,7 @@ enum cpuhp_state {
CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 30,
CPUHP_AP_X86_HPET_ONLINE,
CPUHP_AP_X86_KVM_CLK_ONLINE,
@@ -8010,10 +8842,10 @@ index 088c835ac..fff4c30ba 100644
CPUHP_ONLINE,
};
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
-index 1a41147b2..62c6786ce 100644
+index 450ae1042..2a26cfb97 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
-@@ -3141,4 +3141,6 @@
+@@ -3156,4 +3156,6 @@
#define PCI_VENDOR_ID_NCUBE 0x10ff
@@ -8089,10 +8921,10 @@ index 851b982f8..f08747fd2 100644
+
#endif /* _UAPILINUX_SERIAL_CORE_H */
diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
-index 522d18976..a019ad892 100644
+index da047c8bb..4caf82e04 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
-@@ -143,6 +143,9 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val)
+@@ -167,6 +167,9 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val)
{
unsigned int addr = azx_command_addr(val);
unsigned int wp, rp;
@@ -8102,7 +8934,7 @@ index 522d18976..a019ad892 100644
spin_lock_irq(&bus->reg_lock);
-@@ -169,6 +172,42 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val)
+@@ -193,6 +196,42 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val)
bus->corb.buf[wp] = cpu_to_le32(val);
snd_hdac_chip_writew(bus, CORBWP, wp);
@@ -8146,10 +8978,10 @@ index 522d18976..a019ad892 100644
return 0;
diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c
-index 557072245..84d5a9ca6 100644
+index 13d77ff04..904b2b2bf 100644
--- a/sound/hda/hdac_stream.c
+++ b/sound/hda/hdac_stream.c
-@@ -87,7 +87,11 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start)
+@@ -89,7 +89,11 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start)
trace_snd_hdac_stream_start(bus, azx_dev);
@@ -8158,10 +8990,10 @@ index 557072245..84d5a9ca6 100644
+#else
azx_dev->start_wallclk = snd_hdac_chip_readl(bus, WALLCLK);
+#endif
- if (!fresh_start)
+ if (!fresh_start && !(chip->driver_caps & AZX_DCAPS_LS2X_WORKAROUND))
azx_dev->start_wallclk -= azx_dev->period_wallclk;
-@@ -550,7 +554,11 @@ static u64 azx_cc_read(const struct cyclecounter *cc)
+@@ -596,7 +600,11 @@ static u64 azx_cc_read(const struct cyclecounter *cc)
{
struct hdac_stream *azx_dev = container_of(cc, struct hdac_stream, cc);
@@ -8173,8 +9005,52 @@ index 557072245..84d5a9ca6 100644
}
static void azx_timecounter_init(struct hdac_stream *azx_dev,
+diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
+index 77ee0b088..7cbbec237 100644
+--- a/sound/pci/hda/Kconfig
++++ b/sound/pci/hda/Kconfig
+@@ -26,6 +26,22 @@ config SND_HDA_INTEL
+ To compile this driver as a module, choose M here: the module
+ will be called snd-hda-intel.
+
++config SND_HDA_PHYTIUM
++ tristate "PHYTIUM HD Audio"
++ depends on SOUND
++ select SND_HDA
++ select SND_HDA_ALIGNED_MMIO
++ help
++ Say Y here to support the HDA controller present in PHYTIUM
++ SoCs
++
++ This options enables support for the HD Audio controller
++ present in some PHYTIUM SoCs, used to communicate audio
++ to the "High Definition Audio" codec.
++
++ To compile this driver as a module, choose M here: the module
++ will be called snd-hda-phytium.
++
+ config SND_HDA_TEGRA
+ tristate "NVIDIA Tegra HD Audio"
+ depends on ARCH_TEGRA
+diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile
+index 2b6d1b324..a0d5b7243 100644
+--- a/sound/pci/hda/Makefile
++++ b/sound/pci/hda/Makefile
+@@ -2,6 +2,7 @@
+ snd-hda-intel-objs := hda_intel.o
+ snd-hda-tegra-objs := hda_tegra.o
+ snd-hda-loongson-objs := hda_loongson.o
++snd-hda-phytium-objs := hda_phytium.o
+
+ snd-hda-codec-y := hda_bind.o hda_codec.o hda_jack.o hda_auto_parser.o hda_sysfs.o
+ snd-hda-codec-y += hda_controller.o
+@@ -50,3 +51,4 @@ obj-$(CONFIG_SND_HDA_CODEC_HDMI) += snd-hda-codec-hdmi.o
+ obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-intel.o
+ obj-$(CONFIG_SND_HDA_TEGRA) += snd-hda-tegra.o
+ obj-$(CONFIG_SND_HDA_LOONGSON) += snd-hda-loongson.o
++obj-$(CONFIG_SND_HDA_PHYTIUM) += snd-hda-phytium.o
diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c
-index ea76395d7..9bc0b6e24 100644
+index 02279958a..5990563d9 100644
--- a/sound/pci/hda/hda_controller.c
+++ b/sound/pci/hda/hda_controller.c
@@ -17,6 +17,8 @@
@@ -8237,3 +9113,57 @@ index 000000000..ec1f3e7f7
+};
+
+#endif
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index 71a6fe87d..ed286439e 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -77,6 +77,7 @@ source "sound/soc/ux500/Kconfig"
+ source "sound/soc/xilinx/Kconfig"
+ source "sound/soc/xtensa/Kconfig"
+ source "sound/soc/zte/Kconfig"
++source "sound/soc/phytium/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 04a7070c7..4558ee2b9 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -795,6 +795,15 @@ config SND_SOC_ES8328_SPI
+ depends on SPI_MASTER
+ select SND_SOC_ES8328
+
++config SND_SOC_ES8336
++ tristate "Everest Semi ES8336 CODEC"
++ depends on I2C
++ select GPIO_PHYTIUM_PCI
++
++config SND_SOC_ES8388
++ tristate "Everest Semi ES8388 CODEC"
++ depends on I2C
++
+ config SND_SOC_GTM601
+ tristate 'GTM601 UMTS modem audio codec'
+
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index 11ce98c25..f89e41e8b 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -90,6 +90,8 @@ snd-soc-es8316-objs := es8316.o
+ snd-soc-es8328-objs := es8328.o
+ snd-soc-es8328-i2c-objs := es8328-i2c.o
+ snd-soc-es8328-spi-objs := es8328-spi.o
++snd-soc-es8336-objs := es8336.o
++snd-soc-es8388-objs := es8388.o
+ snd-soc-gtm601-objs := gtm601.o
+ snd-soc-hdac-hdmi-objs := hdac_hdmi.o
+ snd-soc-hdac-hda-objs := hdac_hda.o
+@@ -399,6 +401,8 @@ obj-$(CONFIG_SND_SOC_ES8316) += snd-soc-es8316.o
+ obj-$(CONFIG_SND_SOC_ES8328) += snd-soc-es8328.o
+ obj-$(CONFIG_SND_SOC_ES8328_I2C)+= snd-soc-es8328-i2c.o
+ obj-$(CONFIG_SND_SOC_ES8328_SPI)+= snd-soc-es8328-spi.o
++obj-$(CONFIG_SND_SOC_ES8336) += snd-soc-es8336.o
++obj-$(CONFIG_SND_SOC_ES8388) += snd-soc-es8388.o
+ obj-$(CONFIG_SND_SOC_GTM601) += snd-soc-gtm601.o
+ obj-$(CONFIG_SND_SOC_HDAC_HDMI) += snd-soc-hdac-hdmi.o
+ obj-$(CONFIG_SND_SOC_HDAC_HDA) += snd-soc-hdac-hda.o
diff --git a/device_board_phytium/common/kernel_source/linux-5.10/phytium_standard_defconfig b/device_board_phytium/common/kernel_source/linux-5.10/phytium_standard_defconfig
index eec50eb983e8f0e5082417fd0583e52c0147d3ac..41ff2c7282de736e3471041f1197420fedeaac1a 100644
--- a/device_board_phytium/common/kernel_source/linux-5.10/phytium_standard_defconfig
+++ b/device_board_phytium/common/kernel_source/linux-5.10/phytium_standard_defconfig
@@ -265,7 +265,7 @@ CONFIG_THUNDER_NIC_PF=y
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
CONFIG_E1000=m
-CONFIG_E1000E=m
+CONFIG_E1000E=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IXGB=m
@@ -799,8 +799,8 @@ CONFIG_PSI=y
# CONFIG_SUSPEND is not set
CONFIG_VIDEO_PHYTIUM_VPU=y
-CONFIG_DRM_RADEON=y
-CONFIG_DRM_RADEON_USERPTR=y
+CONFIG_DRM_RADEON=n
+CONFIG_DRM_RADEON_USERPTR=n
CONFIG_DRM_AMDGPU=y
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
@@ -809,3 +809,12 @@ CONFIG_DRM_AMDGPU_GART_DEBUGFS=y
CONFIG_DRM_MWV207=y
CONFIG_OHOS_VENDOR=y
+
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
+CONFIG_PGTABLE_LEVELS=3
+
+CONFIG_ARM64_VA_BITS_39=y
+CONFIG_ARM64_VA_BITS=39
+
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PA_BITS=48
diff --git a/device_board_phytium/common/kernel_source/linux-6.6/phytium.patch b/device_board_phytium/common/kernel_source/linux-6.6/phytium.patch
index 1ba982532702f92bfc91f7fd72e3d9d4ab213eb4..bc0081e05f2c795c73c77944313d5d7ea9a17c25 100644
--- a/device_board_phytium/common/kernel_source/linux-6.6/phytium.patch
+++ b/device_board_phytium/common/kernel_source/linux-6.6/phytium.patch
@@ -2096,10 +2096,10 @@ index 000000000..caf762039
+ interrupts = ;
+ };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-index 573578db9..133cfb2bb 100644
+index 12a16031d..93258265c 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-@@ -1045,6 +1045,8 @@ patternProperties:
+@@ -1047,6 +1047,8 @@ patternProperties:
description: PHICOMM Co., Ltd.
"^phytec,.*":
description: PHYTEC Messtechnik GmbH
@@ -2185,10 +2185,10 @@ index 000000000..5fa43e064
+intended to be used by hardware managers in the kernel, while the copy interface
+make sense for developers (since it avoids problems with namespaces).
diff --git a/MAINTAINERS b/MAINTAINERS
-index 40312bb55..c8115f7cc 100644
+index ae4c0cec5..d265d1a06 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -17415,6 +17415,89 @@ F: include/sound/pxa2xx-lib.h
+@@ -17423,6 +17423,89 @@ F: include/sound/pxa2xx-lib.h
F: sound/arm/pxa*
F: sound/soc/pxa/
@@ -2279,10 +2279,10 @@ index 40312bb55..c8115f7cc 100644
M: Giovanni Cabiddu
L: qat-linux@intel.com
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
-index b5df38c2a..a31b60cae 100644
+index 658c6a61a..ba92cd6c7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -1434,6 +1434,17 @@ config HOTPLUG_CPU
+@@ -1473,6 +1473,17 @@ config HOTPLUG_CPU
Say Y here to experiment with turning CPUs off and on. CPUs
can be controlled through /sys/devices/system/cpu.
@@ -2334,10 +2334,10 @@ index 30dd6347a..b7af3d263 100644
subdir-y += renesas
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
deleted file mode 100644
-index a789119e6..000000000
+index 60af93c04..000000000
--- a/arch/arm64/configs/defconfig
+++ /dev/null
-@@ -1,1586 +0,0 @@
+@@ -1,1587 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_AUDIT=y
@@ -2963,6 +2963,7 @@ index a789119e6..000000000
-CONFIG_GPIO_UNIPHIER=y
-CONFIG_GPIO_VISCONTI=y
-CONFIG_GPIO_WCD934X=m
+-CONFIG_GPIO_VF610=y
-CONFIG_GPIO_XGENE=y
-CONFIG_GPIO_XGENE_SB=y
-CONFIG_GPIO_MAX732X=y
@@ -3992,7 +3993,7 @@ index c47c36f8f..000000000
-# CONFIG_SURFACE_PLATFORMS is not set
-# CONFIG_THERMAL is not set
diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
-index 52f076afe..18f70359a 100644
+index 488f8e751..8f7df4f2e 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -62,6 +62,7 @@
@@ -4003,9 +4004,9 @@ index 52f076afe..18f70359a 100644
#define ARM_CPU_PART_AEM_V8 0xD0F
#define ARM_CPU_PART_FOUNDATION 0xD00
-@@ -136,6 +137,13 @@
-
+@@ -146,6 +147,13 @@
#define AMPERE_CPU_PART_AMPERE1 0xAC3
+ #define AMPERE_CPU_PART_AMPERE1A 0xAC4
+#define PHYTIUM_CPU_PART_FTC310 0x660
+#define PHYTIUM_CPU_PART_FTC660 0x660
@@ -4017,9 +4018,9 @@ index 52f076afe..18f70359a 100644
#define MICROSOFT_CPU_PART_AZURE_COBALT_100 0xD49 /* Based on r0p0 of ARM Neoverse N2 */
#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
-@@ -197,6 +205,12 @@
- #define MIDR_APPLE_M2_AVALANCHE_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_AVALANCHE_MAX)
+@@ -217,6 +225,12 @@
#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)
+ #define MIDR_AMPERE1A MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1A)
#define MIDR_MICROSOFT_AZURE_COBALT_100 MIDR_CPU_MODEL(ARM_CPU_IMP_MICROSOFT, MICROSOFT_CPU_PART_AZURE_COBALT_100)
+#define MIDR_PHYTIUM_FTC310 MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_FTC310)
+#define MIDR_PHYTIUM_FTC660 MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_FTC660)
@@ -4091,7 +4092,7 @@ index d95b3d6b4..eca1f9012 100644
obj-$(CONFIG_ARM64_ACPI_PARKING_PROTOCOL) += acpi_parking_protocol.o
obj-$(CONFIG_PARAVIRT) += paravirt.o
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
-index 444a73c2e..abb864868 100644
+index 827782588..deb42097f 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -1686,6 +1686,12 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
@@ -4108,7 +4109,7 @@ index 444a73c2e..abb864868 100644
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
diff --git a/arch/arm64/kernel/proton-pack.c b/arch/arm64/kernel/proton-pack.c
-index 05f40c4e1..5854a5b3d 100644
+index 57503dc4b..19b1fa4ac 100644
--- a/arch/arm64/kernel/proton-pack.c
+++ b/arch/arm64/kernel/proton-pack.c
@@ -160,6 +160,7 @@ static enum mitigation_state spectre_v2_get_cpu_hw_mitigation_state(void)
@@ -4348,130 +4349,6 @@ index 8b70759cd..79935d0ad 100644
switch (aet) {
case ESR_ELx_AET_CE: /* corrected error */
-diff --git a/block/partitions/cmdline.c b/block/partitions/cmdline.c
-index c03bc105e..152c85df9 100644
---- a/block/partitions/cmdline.c
-+++ b/block/partitions/cmdline.c
-@@ -70,8 +70,8 @@ static int parse_subpart(struct cmdline_subpart **subpart, char *partdef)
- }
-
- if (*partdef == '(') {
-- int length;
-- char *next = strchr(++partdef, ')');
-+ partdef++;
-+ char *next = strsep(&partdef, ")");
-
- if (!next) {
- pr_warn("cmdline partition format is invalid.");
-@@ -79,11 +79,7 @@ static int parse_subpart(struct cmdline_subpart **subpart, char *partdef)
- goto fail;
- }
-
-- length = min_t(int, next - partdef,
-- sizeof(new_subpart->name) - 1);
-- strscpy(new_subpart->name, partdef, length);
--
-- partdef = ++next;
-+ strscpy(new_subpart->name, next, sizeof(new_subpart->name));
- } else
- new_subpart->name[0] = '\0';
-
-@@ -117,14 +113,12 @@ static void free_subpart(struct cmdline_parts *parts)
- }
- }
-
--static int parse_parts(struct cmdline_parts **parts, const char *bdevdef)
-+static int parse_parts(struct cmdline_parts **parts, char *bdevdef)
- {
- int ret = -EINVAL;
- char *next;
-- int length;
- struct cmdline_subpart **next_subpart;
- struct cmdline_parts *newparts;
-- char buf[BDEVNAME_SIZE + 32 + 4];
-
- *parts = NULL;
-
-@@ -132,28 +126,19 @@ static int parse_parts(struct cmdline_parts **parts, const char *bdevdef)
- if (!newparts)
- return -ENOMEM;
-
-- next = strchr(bdevdef, ':');
-+ next = strsep(&bdevdef, ":");
- if (!next) {
- pr_warn("cmdline partition has no block device.");
- goto fail;
- }
-
-- length = min_t(int, next - bdevdef, sizeof(newparts->name) - 1);
-- strscpy(newparts->name, bdevdef, length);
-+ strscpy(newparts->name, next, sizeof(newparts->name));
- newparts->nr_subparts = 0;
-
- next_subpart = &newparts->subpart;
-
-- while (next && *(++next)) {
-- bdevdef = next;
-- next = strchr(bdevdef, ',');
--
-- length = (!next) ? (sizeof(buf) - 1) :
-- min_t(int, next - bdevdef, sizeof(buf) - 1);
--
-- strscpy(buf, bdevdef, length);
--
-- ret = parse_subpart(next_subpart, buf);
-+ while ((next = strsep(&bdevdef, ","))) {
-+ ret = parse_subpart(next_subpart, next);
- if (ret)
- goto fail;
-
-@@ -199,24 +184,17 @@ static int cmdline_parts_parse(struct cmdline_parts **parts,
-
- *parts = NULL;
-
-- next = pbuf = buf = kstrdup(cmdline, GFP_KERNEL);
-+ pbuf = buf = kstrdup(cmdline, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- next_parts = parts;
-
-- while (next && *pbuf) {
-- next = strchr(pbuf, ';');
-- if (next)
-- *next = '\0';
--
-- ret = parse_parts(next_parts, pbuf);
-+ while ((next = strsep(&pbuf, ";"))) {
-+ ret = parse_parts(next_parts, next);
- if (ret)
- goto fail;
-
-- if (next)
-- pbuf = ++next;
--
- next_parts = &(*next_parts)->next_parts;
- }
-
-@@ -250,7 +228,6 @@ static struct cmdline_parts *bdev_parts;
- static int add_part(int slot, struct cmdline_subpart *subpart,
- struct parsed_partitions *state)
- {
-- int label_min;
- struct partition_meta_info *info;
- char tmp[sizeof(info->volname) + 4];
-
-@@ -262,9 +239,7 @@ static int add_part(int slot, struct cmdline_subpart *subpart,
-
- info = &state->parts[slot].info;
-
-- label_min = min_t(int, sizeof(info->volname) - 1,
-- sizeof(subpart->name));
-- strscpy(info->volname, subpart->name, label_min);
-+ strscpy(info->volname, subpart->name, sizeof(info->volname));
-
- snprintf(tmp, sizeof(tmp), "(%s)", info->volname);
- strlcat(state->pp_buf, tmp, PAGE_SIZE);
diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
index 80f945cbe..9e265b3ba 100644
--- a/drivers/acpi/acpi_apd.c
@@ -4529,7 +4406,7 @@ index 6b18f8bc7..49e181f5a 100644
bool "APEI memory error recovering support"
depends on ACPI_APEI && MEMORY_FAILURE
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
-index ab2a82cb1..2a7aa5e87 100644
+index 3aadc632d..f52b73294 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -148,6 +148,9 @@ static DEFINE_MUTEX(ghes_list_mutex);
@@ -4542,7 +4419,7 @@ index ab2a82cb1..2a7aa5e87 100644
/*
* Because the memory area used to transfer hardware error information
* from BIOS to Linux can be determined only in NMI, IRQ or timer
-@@ -534,9 +537,8 @@ static bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata,
+@@ -532,9 +535,8 @@ static bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata,
int sec_sev, i;
char *p;
@@ -4553,7 +4430,7 @@ index ab2a82cb1..2a7aa5e87 100644
if (sev != GHES_SEV_RECOVERABLE || sec_sev != GHES_SEV_RECOVERABLE)
return false;
-@@ -696,6 +698,11 @@ static bool ghes_do_proc(struct ghes *ghes,
+@@ -694,6 +696,11 @@ static bool ghes_do_proc(struct ghes *ghes,
if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) {
struct cper_sec_mem_err *mem_err = acpi_hest_get_payload(gdata);
@@ -4647,7 +4524,7 @@ index ab2a82cb1..2a7aa5e87 100644
ghes_nmi_remove(ghes);
break;
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
-index 866c7c4ed..19e7dd17c 100644
+index 1e8ee97fc..3642bd386 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -85,6 +85,18 @@ bool acpi_scan_is_offline(struct acpi_device *adev, bool uevent);
@@ -4849,6 +4726,107 @@ index aa1038b8a..3af04e839 100644
acpi_handle_debug(handle, "Link is referenced\n");
return link->irq.active;
}
+diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
+index 8de74dcfa..5950e4e2f 100644
+--- a/drivers/char/hw_random/Kconfig
++++ b/drivers/char/hw_random/Kconfig
+@@ -573,6 +573,18 @@ config HW_RANDOM_JH7110
+ To compile this driver as a module, choose M here.
+ The module will be called jh7110-trng.
+
++config HW_RANDOM_PHYTIUM
++ tristate "Phytium Random Number Generator support"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ This driver provides kernel-side support for the Random Number
++ Generator hardware found on Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium-rng.
++
++ If unsure, say Y.
++
+ endif # HW_RANDOM
+
+ config UML_RANDOM
+diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
+index 32549a118..7542784c6 100644
+--- a/drivers/char/hw_random/Makefile
++++ b/drivers/char/hw_random/Makefile
+@@ -49,3 +49,4 @@ obj-$(CONFIG_HW_RANDOM_ARM_SMCCC_TRNG) += arm_smccc_trng.o
+ obj-$(CONFIG_HW_RANDOM_CN10K) += cn10k-rng.o
+ obj-$(CONFIG_HW_RANDOM_POLARFIRE_SOC) += mpfs-rng.o
+ obj-$(CONFIG_HW_RANDOM_JH7110) += jh7110-trng.o
++obj-$(CONFIG_HW_RANDOM_PHYTIUM) += phytium-rng.o
+diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig
+index f4adc6feb..fe3b159c1 100644
+--- a/drivers/char/ipmi/Kconfig
++++ b/drivers/char/ipmi/Kconfig
+@@ -118,6 +118,27 @@ config ASPEED_KCS_IPMI_BMC
+ The driver implements the BMC side of the KCS contorller, it
+ provides the access of KCS IO space for BMC side.
+
++config PHYTIUM_KCS_IPMI_BMC
++ depends on ARCH_PHYTIUM
++ select IPMI_KCS_BMC
++ select REGMAP_MMIO
++ tristate "PHYTIUM KCS IPMI BMC driver"
++ help
++ Provides a driver for the KCS (Keyboard Controller Style) IPMI
++ interface found on Phytium SOCs.
++
++ The driver implements the BMC side of the KCS contorller, it
++ provides the access of KCS IO space for BMC side.
++
++config PHYTIUM_BT_IPMI_BMC
++ depends on ARCH_PHYTIUM
++ depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
++ tristate "PHYTIUM BT BMC driver"
++ help
++ Provides a driver for the BT (Block Transfer) interface found
++ on Phytium SOCs. The driver implements the BMC side of
++ the BT interface.
++
+ config NPCM7XX_KCS_IPMI_BMC
+ depends on ARCH_NPCM || COMPILE_TEST
+ select IPMI_KCS_BMC
+diff --git a/drivers/char/ipmi/Makefile b/drivers/char/ipmi/Makefile
+index cb6138b8d..e0f2d90e1 100644
+--- a/drivers/char/ipmi/Makefile
++++ b/drivers/char/ipmi/Makefile
+@@ -31,3 +31,5 @@ obj-$(CONFIG_ASPEED_KCS_IPMI_BMC) += kcs_bmc_aspeed.o
+ obj-$(CONFIG_NPCM7XX_KCS_IPMI_BMC) += kcs_bmc_npcm7xx.o
+ obj-$(CONFIG_IPMB_DEVICE_INTERFACE) += ipmb_dev_int.o
+ obj-$(CONFIG_SSIF_IPMI_BMC) += ssif_bmc.o
++obj-$(CONFIG_PHYTIUM_KCS_IPMI_BMC) += kcs_bmc_phytium.o
++obj-$(CONFIG_PHYTIUM_BT_IPMI_BMC) += bt_bmc_phytium.o
+diff --git a/drivers/char/phytnetled/Kconfig b/drivers/char/phytnetled/Kconfig
+new file mode 100644
+index 000000000..26691906d
+--- /dev/null
++++ b/drivers/char/phytnetled/Kconfig
+@@ -0,0 +1,13 @@
++# SPDX-License-Identifier: GPL-2.0-only
++#
++# PCMCIA character device configuration
++#
++config PHYTNET_LED
++ tristate "Phytium mac led control module"
++ depends on PHYTMAC
++ depends on GPIO_PHYTIUM_PLAT
++ default m
++ help
++ If you have a network (Ethernet) controller of this type and
++ want to use it control port led say Y or M here.
++
+diff --git a/drivers/char/phytnetled/Makefile b/drivers/char/phytnetled/Makefile
+new file mode 100644
+index 000000000..781bc90c1
+--- /dev/null
++++ b/drivers/char/phytnetled/Makefile
+@@ -0,0 +1 @@
++obj-$(CONFIG_PHYTNET_LED) += phytnet_led.o
+\ No newline at end of file
diff --git a/drivers/cpufreq/scpi-cpufreq.c b/drivers/cpufreq/scpi-cpufreq.c
index d33be5698..989f99e26 100644
--- a/drivers/cpufreq/scpi-cpufreq.c
@@ -4862,8 +4840,38 @@ index d33be5698..989f99e26 100644
return -EIO;
return 0;
+diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
+index 110e99b86..1cbc7b48a 100644
+--- a/drivers/edac/Kconfig
++++ b/drivers/edac/Kconfig
+@@ -505,6 +505,13 @@ config EDAC_TI
+ help
+ Support for error detection and correction on the TI SoCs.
+
++config EDAC_PHYTIUM
++ tristate "Phytium Pe220x SoC"
++ depends on (ARM64)
++ help
++ Support for error detection and correction on the
++ Phytium Pe220x family of SOCs.
++
+ config EDAC_QCOM
+ tristate "QCOM EDAC Controller"
+ depends on ARCH_QCOM && QCOM_LLCC
+diff --git a/drivers/edac/Makefile b/drivers/edac/Makefile
+index 446364264..766afe9db 100644
+--- a/drivers/edac/Makefile
++++ b/drivers/edac/Makefile
+@@ -82,6 +82,7 @@ obj-$(CONFIG_EDAC_ARMADA_XP) += armada_xp_edac.o
+ obj-$(CONFIG_EDAC_SYNOPSYS) += synopsys_edac.o
+ obj-$(CONFIG_EDAC_XGENE) += xgene_edac.o
+ obj-$(CONFIG_EDAC_TI) += ti_edac.o
++obj-$(CONFIG_EDAC_PHYTIUM) += phytium_edac.o
+ obj-$(CONFIG_EDAC_QCOM) += qcom_edac.o
+ obj-$(CONFIG_EDAC_ASPEED) += aspeed_edac.o
+ obj-$(CONFIG_EDAC_BLUEFIELD) += bluefield_edac.o
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
-index 87383c054..6a16007c6 100644
+index efa9698c8..8aa3cd001 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -51,6 +51,8 @@ static DEFINE_SPINLOCK(protocol_lock);
@@ -4875,7 +4883,7 @@ index 87383c054..6a16007c6 100644
/* Track the unique id for the transfers for debug & profiling purpose */
static atomic_t transfer_last_id;
-@@ -1030,6 +1032,7 @@ static int scmi_wait_for_reply(struct device *dev, const struct scmi_desc *desc,
+@@ -1035,6 +1037,7 @@ static int scmi_wait_for_reply(struct device *dev, const struct scmi_desc *desc,
struct scmi_xfer *xfer, unsigned int timeout_ms)
{
int ret = 0;
@@ -4883,7 +4891,7 @@ index 87383c054..6a16007c6 100644
if (xfer->hdr.poll_completion) {
/*
-@@ -1045,7 +1048,10 @@ static int scmi_wait_for_reply(struct device *dev, const struct scmi_desc *desc,
+@@ -1050,7 +1053,10 @@ static int scmi_wait_for_reply(struct device *dev, const struct scmi_desc *desc,
spin_until_cond(scmi_xfer_done_no_timeout(cinfo,
xfer, stop));
@@ -4895,7 +4903,7 @@ index 87383c054..6a16007c6 100644
dev_err(dev,
"timed out in resp(caller: %pS) - polling\n",
(void *)_RET_IP_);
-@@ -1211,8 +1217,11 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
+@@ -1216,8 +1222,11 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
*/
smp_mb();
@@ -4907,7 +4915,7 @@ index 87383c054..6a16007c6 100644
dev_dbg(dev, "Failed to send message %d\n", ret);
return ret;
}
-@@ -1228,6 +1237,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
+@@ -1233,6 +1242,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
if (info->desc->ops->mark_txdone)
info->desc->ops->mark_txdone(cinfo, ret, xfer);
@@ -4917,10 +4925,10 @@ index 87383c054..6a16007c6 100644
xfer->hdr.protocol_id, xfer->hdr.seq, ret);
diff --git a/drivers/firmware/arm_scmi/mailbox.c b/drivers/firmware/arm_scmi/mailbox.c
-index b8d470417..1a1580a8b 100644
+index 8e513f70b..bd5a21fb6 100644
--- a/drivers/firmware/arm_scmi/mailbox.c
+++ b/drivers/firmware/arm_scmi/mailbox.c
-@@ -167,6 +167,7 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
+@@ -169,6 +169,7 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
struct mbox_client *cl;
resource_size_t size;
struct resource res;
@@ -4928,12 +4936,12 @@ index b8d470417..1a1580a8b 100644
ret = mailbox_chan_validate(cdev, &a2p_rx_chan, &p2a_chan);
if (ret)
-@@ -226,6 +227,16 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
+@@ -227,6 +228,15 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
+ return ret;
}
}
-
+ ret = of_parse_phandle_with_args(cdev->of_node, "mboxes",
-+ "#mbox-cells", tx ? 0 : p2a_chan, &args);
++ "#mbox-cells", tx ? 0 : p2a_chan, &args);
+ if (ret) {
+ dev_err(cdev, "failed to get SCMI %s mailbox\n", desc);
+ return ret;
@@ -4941,10 +4949,87 @@ index b8d470417..1a1580a8b 100644
+
+ if (of_device_is_compatible(args.np, "phytium,mbox"))
+ cinfo->no_completion_irq = true;
-+
+
cinfo->transport_info = smbox;
smbox->cinfo = cinfo;
-
+diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
+index ebd4e113d..f068798ef 100644
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -105,6 +105,10 @@ config GPIO_REGMAP
+
+ # put drivers in the right section, in alphabetical order
+
++# This symbol is selected by both MMIO and PCI expanders
++config GPIO_PHYTIUM_CORE
++ tristate
++
+ # This symbol is selected by both I2C and SPI expanders
+ config GPIO_MAX730X
+ tristate
+@@ -495,6 +499,27 @@ config GPIO_OMAP
+ help
+ Say yes here to enable GPIO support for TI OMAP SoCs.
+
++config GPIO_PHYTIUM_PLAT
++ tristate "Phytium GPIO Platform support"
++ default y if ARCH_PHYTIUM
++ depends on ARM64
++ select GPIO_PHYTIUM_CORE
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ select GPIOLIB_IRQCHIP
++ help
++ Say yes here to support the on-chip GPIO controller for the
++ Phytium SoC family.
++
++config GPIO_PHYTIUM_SGPIO
++ tristate "Phytium SGPIO support"
++ default y if ARCH_PHYTIUM
++ depends on ARM64
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ help
++ Say yes here to enable SGPIO support for Phytium SoCs.
++
+ config GPIO_PL061
+ tristate "PrimeCell PL061 GPIO support"
+ depends on ARM_AMBA
+@@ -1680,6 +1705,19 @@ config GPIO_PCIE_IDIO_24
+ Input filter control is not supported by this driver, and the input
+ filters are deactivated by this driver.
+
++config GPIO_PHYTIUM_PCI
++ tristate "Phytium GPIO PCI support"
++ select GPIO_PHYTIUM_CORE
++ select IRQ_DOMAIN
++ select GENERIC_IRQ_CHIP
++ select GPIOLIB_IRQCHIP
++ help
++ Say Y here to support Phytium PCI GPIO controller on Px210 chipset.
++ An interrupt is generated when any of the inputs change state
++ (low to high or high to low).
++
++ This driver can be used for Phytium Px210.
++
+ config GPIO_RDC321X
+ tristate "RDC R-321x GPIO support"
+ select MFD_CORE
+diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
+index eb73b5d63..1b4888e64 100644
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -125,6 +125,10 @@ obj-$(CONFIG_GPIO_PCF857X) += gpio-pcf857x.o
+ obj-$(CONFIG_GPIO_PCH) += gpio-pch.o
+ obj-$(CONFIG_GPIO_PCIE_IDIO_24) += gpio-pcie-idio-24.o
+ obj-$(CONFIG_GPIO_PCI_IDIO_16) += gpio-pci-idio-16.o
++obj-$(CONFIG_GPIO_PHYTIUM_CORE) += gpio-phytium-core.o
++obj-$(CONFIG_GPIO_PHYTIUM_PCI) += gpio-phytium-pci.o
++obj-$(CONFIG_GPIO_PHYTIUM_PLAT) += gpio-phytium-platform.o
++obj-$(CONFIG_GPIO_PHYTIUM_SGPIO) += gpio-phytium-sgpio.o
+ obj-$(CONFIG_GPIO_PISOSR) += gpio-pisosr.o
+ obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o
+ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o
diff --git a/drivers/gpu/drm/amd/display/Kconfig b/drivers/gpu/drm/amd/display/Kconfig
index 901d1961b..74d45d9ae 100644
--- a/drivers/gpu/drm/amd/display/Kconfig
@@ -4958,6 +5043,124 @@ index 901d1961b..74d45d9ae 100644
help
Choose this option if you want to use the new display engine
support for AMDGPU. This adds required support for Vega and
+diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
+index a4c361b66..4e63c7528 100644
+--- a/drivers/hwmon/Kconfig
++++ b/drivers/hwmon/Kconfig
+@@ -414,6 +414,15 @@ config SENSORS_ASPEED
+ This driver can also be built as a module. If so, the module
+ will be called aspeed_pwm_tacho.
+
++config SENSORS_PHYTIUM
++ tristate "Phytium Fan tach and capture counter driver"
++ help
++ This driver provides support for Phytium Fan Tacho and capture
++ counter controllers.
++
++ This driver can also be built as a module. If so, the module
++ will be called tacho-phytium.
++
+ config SENSORS_ATXP1
+ tristate "Attansic ATXP1 VID controller"
+ depends on I2C
+diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
+index 4ac9452b5..2e948eae4 100644
+--- a/drivers/hwmon/Makefile
++++ b/drivers/hwmon/Makefile
+@@ -176,6 +176,7 @@ obj-$(CONFIG_SENSORS_OXP) += oxp-sensors.o
+ obj-$(CONFIG_SENSORS_PC87360) += pc87360.o
+ obj-$(CONFIG_SENSORS_PC87427) += pc87427.o
+ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
++obj-$(CONFIG_SENSORS_PHYTIUM) += tacho-phytium.o
+ obj-$(CONFIG_SENSORS_POWR1220) += powr1220.o
+ obj-$(CONFIG_SENSORS_PWM_FAN) += pwm-fan.o
+ obj-$(CONFIG_SENSORS_RASPBERRYPI_HWMON) += raspberrypi-hwmon.o
+diff --git a/drivers/hwspinlock/Kconfig b/drivers/hwspinlock/Kconfig
+index 3874d15b0..f4690adb5 100644
+--- a/drivers/hwspinlock/Kconfig
++++ b/drivers/hwspinlock/Kconfig
+@@ -17,6 +17,15 @@ config HWSPINLOCK_OMAP
+
+ If unsure, say N.
+
++config HWSPINLOCK_PHYTIUM
++ tristate "Phytium Hardware Spinlock device"
++ depends on HWSPINLOCK
++ depends on ARCH_PHYTIUM
++ help
++ Say y here to support the Phytium Hardware Spinlock device.
++
++ If unsure, say N.
++
+ config HWSPINLOCK_QCOM
+ tristate "Qualcomm Hardware Spinlock device"
+ depends on ARCH_QCOM || COMPILE_TEST
+diff --git a/drivers/hwspinlock/Makefile b/drivers/hwspinlock/Makefile
+index a0f16c9aa..d3ef14bc5 100644
+--- a/drivers/hwspinlock/Makefile
++++ b/drivers/hwspinlock/Makefile
+@@ -5,6 +5,7 @@
+
+ obj-$(CONFIG_HWSPINLOCK) += hwspinlock_core.o
+ obj-$(CONFIG_HWSPINLOCK_OMAP) += omap_hwspinlock.o
++obj-$(CONFIG_HWSPINLOCK_PHYTIUM) += phytium_hwspinlock.o
+ obj-$(CONFIG_HWSPINLOCK_QCOM) += qcom_hwspinlock.o
+ obj-$(CONFIG_HWSPINLOCK_SPRD) += sprd_hwspinlock.o
+ obj-$(CONFIG_HWSPINLOCK_STM32) += stm32_hwspinlock.o
+diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
+index 982007a11..78eaafffe 100644
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -940,6 +940,34 @@ config I2C_PCA_PLATFORM
+ This driver can also be built as a module. If so, the module
+ will be called i2c-pca-platform.
+
++config I2C_PHYTIUM_CORE
++ tristate
++
++config I2C_PHYTIUM_PCI
++ tristate "Phytium I2C PCI"
++ depends on PCI && ARCH_PHYTIUM
++ select I2C_PHYTIUM_CORE
++ select I2C_SMBUS
++ help
++ If you say yes to this option, support will be included for the
++ Phytium I2C adapter. Only master mode is supported.
++
++ This driver can also be built as a module. If so, the module
++ will be called i2c-phytium-pci.
++
++config I2C_PHYTIUM_PLATFORM
++ tristate "Phytium I2C Platform"
++ depends on (ACPI && COMMON_CLK) || !ACPI
++ select I2C_SLAVE
++ select I2C_PHYTIUM_CORE
++ select I2C_SMBUS
++ help
++ If you say yes to this option, support will be included for the
++ Phytium I2C adapter. Only master mode is supported.
++
++ This driver can also be built as a module. If so, the module
++ will be called i2c-phytium-platform.
++
+ config I2C_PNX
+ tristate "I2C bus support for Philips PNX and NXP LPC targets"
+ depends on ARCH_LPC32XX || COMPILE_TEST
+diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
+index 9be9fdb07..9d4fa0249 100644
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -93,6 +93,10 @@ obj-$(CONFIG_I2C_OWL) += i2c-owl.o
+ obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi-core.o i2c-pasemi-pci.o
+ obj-$(CONFIG_I2C_APPLE) += i2c-pasemi-core.o i2c-pasemi-platform.o
+ obj-$(CONFIG_I2C_PCA_PLATFORM) += i2c-pca-platform.o
++obj-$(CONFIG_I2C_PHYTIUM_CORE) += i2c-phytium-core.o
++i2c-phytium-core-objs := i2c-phytium-common.o i2c-phytium-master.o i2c-phytium-slave.o
++obj-$(CONFIG_I2C_PHYTIUM_PCI) += i2c-phytium-pci.o
++obj-$(CONFIG_I2C_PHYTIUM_PLATFORM) += i2c-phytium-platform.o
+ obj-$(CONFIG_I2C_PNX) += i2c-pnx.o
+ obj-$(CONFIG_I2C_PXA) += i2c-pxa.o
+ obj-$(CONFIG_I2C_PXA_PCI) += i2c-pxa-pci.o
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 855b698e9..6ab38151c 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -5106,7 +5309,7 @@ index 000000000..61fa62ff1
+
+#endif
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
-index 0e9ff5500..826f2877d 100644
+index c073ee74e..8d36964d6 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -5,6 +5,8 @@
@@ -5242,7 +5445,7 @@ index 0e9ff5500..826f2877d 100644
NULL,
};
ATTRIBUTE_GROUPS(i3c_device);
-@@ -1521,9 +1624,10 @@ i3c_master_register_new_i3c_devs(struct i3c_master_controller *master)
+@@ -1640,9 +1743,10 @@ i3c_master_register_new_i3c_devs(struct i3c_master_controller *master)
dev_set_name(&desc->dev->dev, "%d-%llx", master->bus.id,
desc->info.pid);
@@ -5255,7 +5458,7 @@ index 0e9ff5500..826f2877d 100644
ret = device_register(&desc->dev->dev);
if (ret) {
dev_err(&master->dev,
-@@ -2148,6 +2252,183 @@ static int of_populate_i3c_bus(struct i3c_master_controller *master)
+@@ -2287,6 +2391,183 @@ static int of_populate_i3c_bus(struct i3c_master_controller *master)
return 0;
}
@@ -5439,7 +5642,7 @@ index 0e9ff5500..826f2877d 100644
static int i3c_master_i2c_adapter_xfer(struct i2c_adapter *adap,
struct i2c_msg *xfers, int nxfers)
{
-@@ -2311,7 +2592,7 @@ static int i3c_master_i2c_adapter_init(struct i3c_master_controller *master)
+@@ -2450,7 +2731,7 @@ static int i3c_master_i2c_adapter_init(struct i3c_master_controller *master)
adap->dev.parent = master->dev.parent;
adap->owner = master->dev.parent->driver->owner;
adap->algo = &i3c_master_i2c_algo;
@@ -5448,7 +5651,7 @@ index 0e9ff5500..826f2877d 100644
/* FIXME: Should we allow i3c masters to override these values? */
adap->timeout = 1000;
-@@ -2616,6 +2897,7 @@ int i3c_master_register(struct i3c_master_controller *master,
+@@ -2755,6 +3036,7 @@ int i3c_master_register(struct i3c_master_controller *master,
master->dev.parent = parent;
master->dev.of_node = of_node_get(parent->of_node);
@@ -5456,7 +5659,7 @@ index 0e9ff5500..826f2877d 100644
master->dev.bus = &i3c_bus_type;
master->dev.type = &i3c_masterdev_type;
master->dev.release = i3c_masterdev_release;
-@@ -2634,7 +2916,9 @@ int i3c_master_register(struct i3c_master_controller *master,
+@@ -2773,7 +3055,9 @@ int i3c_master_register(struct i3c_master_controller *master,
ret = of_populate_i3c_bus(master);
if (ret)
goto err_put_dev;
@@ -5494,7 +5697,7 @@ index 3e9796016..3819a4dab 100644
obj-$(CONFIG_MIPI_I3C_HCI) += mipi-i3c-hci/
+obj-$(CONFIG_PHYTIUM_I3C_MASTER) += i3c-master-phytium.o
diff --git a/drivers/i3c/master/i3c-master-cdns.c b/drivers/i3c/master/i3c-master-cdns.c
-index fa5aaaf44..925deb746 100644
+index d8426847c..64eba655e 100644
--- a/drivers/i3c/master/i3c-master-cdns.c
+++ b/drivers/i3c/master/i3c-master-cdns.c
@@ -393,6 +393,7 @@ struct cdns_i3c_xfer {
@@ -7418,8 +7621,110 @@ index 000000000..50f3f6c98
+MODULE_DESCRIPTION("Phytium I3C master driver");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:phytium-i3c-master");
+diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
+index 6dee3b686..1b26ae3f2 100644
+--- a/drivers/iio/adc/Kconfig
++++ b/drivers/iio/adc/Kconfig
+@@ -886,6 +886,18 @@ config PALMAS_GPADC
+ is used in smartphones and tablets and supports a 16 channel
+ general purpose ADC.
+
++config PHYTIUM_ADC
++ tristate "Phytium ADC driver"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ select IIO_BUFFER
++ select IIO_TRIGGERED_BUFFER
++ help
++ Say yes here to build support for Phytium analog to digital
++ converters (ADC).
++
++ To compile this driver as a module, choose M here: the module
++ will be called phytium-adc.
++
+ config QCOM_VADC_COMMON
+ tristate
+
+diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile
+index 2facf9793..5b411b68b 100644
+--- a/drivers/iio/adc/Makefile
++++ b/drivers/iio/adc/Makefile
+@@ -82,6 +82,7 @@ obj-$(CONFIG_MXS_LRADC_ADC) += mxs-lradc-adc.o
+ obj-$(CONFIG_NAU7802) += nau7802.o
+ obj-$(CONFIG_NPCM_ADC) += npcm_adc.o
+ obj-$(CONFIG_PALMAS_GPADC) += palmas_gpadc.o
++obj-$(CONFIG_PHYTIUM_ADC) += phytium-adc.o
+ obj-$(CONFIG_QCOM_SPMI_ADC5) += qcom-spmi-adc5.o
+ obj-$(CONFIG_QCOM_SPMI_IADC) += qcom-spmi-iadc.o
+ obj-$(CONFIG_QCOM_SPMI_RRADC) += qcom-spmi-rradc.o
+diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
+index 1d0c5f4c0..bd943d967 100644
+--- a/drivers/input/keyboard/Kconfig
++++ b/drivers/input/keyboard/Kconfig
+@@ -809,4 +809,15 @@ config KEYBOARD_CYPRESS_SF
+ To compile this driver as a module, choose M here: the
+ module will be called cypress-sf.
+
++config KEYBOARD_PHYTIUM
++ tristate "Phytium keypad support"
++ depends on ARCH_PHYTIUM
++ select INPUT_MATRIXKMAP
++ help
++ Say Y here if you want to enable support for Phytium keypad
++ port.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium_keypad.
++
+ endif
+diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
+index aecef00c5..43ade5a0d 100644
+--- a/drivers/input/keyboard/Makefile
++++ b/drivers/input/keyboard/Makefile
+@@ -51,6 +51,7 @@ obj-$(CONFIG_KEYBOARD_NSPIRE) += nspire-keypad.o
+ obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
+ obj-$(CONFIG_KEYBOARD_OMAP4) += omap4-keypad.o
+ obj-$(CONFIG_KEYBOARD_OPENCORES) += opencores-kbd.o
++obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o
+ obj-$(CONFIG_KEYBOARD_PINEPHONE) += pinephone-keyboard.o
+ obj-$(CONFIG_KEYBOARD_PMIC8XXX) += pmic8xxx-keypad.o
+ obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keypad.o
+diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
+index 17edc1597..50b5da6b6 100644
+--- a/drivers/input/serio/Kconfig
++++ b/drivers/input/serio/Kconfig
+@@ -40,6 +40,18 @@ config SERIO_I8042
+ To compile this driver as a module, choose M here: the
+ module will be called i8042.
+
++config SERIO_PHYTIUM_PS2
++ depends on SERIO
++ tristate "PHYTIUM PS/2 (keyboard and mouse)"
++ default y if ARCH_PHYTIUM
++ depends on PCI
++ help
++ This selects support for the PS/2 Host Controller on
++ Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the
++ module will be called phytium-ps2.
++
+ config SERIO_SERPORT
+ tristate "Serial port line discipline"
+ default y
+diff --git a/drivers/input/serio/Makefile b/drivers/input/serio/Makefile
+index 6d97bad7b..958591822 100644
+--- a/drivers/input/serio/Makefile
++++ b/drivers/input/serio/Makefile
+@@ -7,6 +7,7 @@
+
+ obj-$(CONFIG_SERIO) += serio.o
+ obj-$(CONFIG_SERIO_I8042) += i8042.o
++obj-$(CONFIG_SERIO_PHYTIUM_PS2) += phytium-ps2.o
+ obj-$(CONFIG_SERIO_PARKBD) += parkbd.o
+ obj-$(CONFIG_SERIO_SERPORT) += serport.o
+ obj-$(CONFIG_SERIO_CT82C710) += ct82c710.o
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
-index bd0a596f9..6b96ac3b9 100644
+index 6cecbac0e..8f1403884 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
@@ -3154,6 +3154,13 @@ static void arm_smmu_write_msi_msg(struct msi_desc *desc, struct msi_msg *msg)
@@ -7437,7 +7742,7 @@ index bd0a596f9..6b96ac3b9 100644
writel_relaxed(msg->data, smmu->base + cfg[1]);
writel_relaxed(ARM_SMMU_MEMATTR_DEVICE_nGnRE, smmu->base + cfg[2]);
@@ -3196,11 +3203,53 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
- devm_add_action(dev, arm_smmu_free_msis, dev);
+ devm_add_action_or_reset(dev, arm_smmu_free_msis, dev);
}
-static void arm_smmu_setup_unique_irqs(struct arm_smmu_device *smmu)
@@ -7588,9 +7893,9 @@ index bd0a596f9..6b96ac3b9 100644
- ret = arm_smmu_device_reset(smmu, bypass);
+ ret = arm_smmu_device_reset(smmu, false);
if (ret)
- return ret;
+ goto err_disable;
-@@ -3928,6 +3996,16 @@ static const struct of_device_id arm_smmu_of_match[] = {
+@@ -3935,6 +4003,16 @@ static const struct of_device_id arm_smmu_of_match[] = {
};
MODULE_DEVICE_TABLE(of, arm_smmu_of_match);
@@ -7607,7 +7912,7 @@ index bd0a596f9..6b96ac3b9 100644
static void arm_smmu_driver_unregister(struct platform_driver *drv)
{
arm_smmu_sva_notifier_synchronize();
-@@ -3938,6 +4016,7 @@ static struct platform_driver arm_smmu_driver = {
+@@ -3945,6 +4023,7 @@ static struct platform_driver arm_smmu_driver = {
.driver = {
.name = "arm-smmu-v3",
.of_match_table = arm_smmu_of_match,
@@ -7629,10 +7934,10 @@ index 9915850dd..07f2b0941 100644
struct arm_smmu_stream {
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-smmu/arm-smmu.c
-index d6d1a2a55..ee910444b 100644
+index 42c5012ba..fb69d852b 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c
-@@ -1363,6 +1363,19 @@ static struct iommu_device *arm_smmu_probe_device(struct device *dev)
+@@ -1374,6 +1374,19 @@ static struct iommu_device *arm_smmu_probe_device(struct device *dev)
return ERR_PTR(-ENODEV);
}
@@ -7676,7 +7981,7 @@ index 703fd5817..723532e24 100644
#define ARM_SMMU_GR0_sCR0 0x0
#define ARM_SMMU_sCR0_VMID16EN BIT(31)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index 3a67e6362..3a7e65742 100644
+index 3f1029c08..a998f13ad 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -32,6 +32,9 @@
@@ -7725,11 +8030,58 @@ index 3a67e6362..3a7e65742 100644
if (pt)
iommu_set_default_passthrough(true);
else
+diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
+index e7b736800..160a670f5 100644
+--- a/drivers/irqchip/Kconfig
++++ b/drivers/irqchip/Kconfig
+@@ -56,6 +56,12 @@ config ARM_GIC_V3_ITS_FSL_MC
+ depends on FSL_MC_BUS
+ default ARM_GIC_V3_ITS
+
++config ARM_GIC_PHYTIUM_2500
++ bool
++ select IRQ_DOMAIN_HIERARCHY
++ select PARTITION_PERCPU
++ select GENERIC_IRQ_EFFECTIVE_AFF_MASK
++
+ config ARM_NVIC
+ bool
+ select IRQ_DOMAIN_HIERARCHY
+@@ -679,4 +685,12 @@ config SUNPLUS_SP7021_INTC
+ chained controller, routing all interrupt source in P-Chip to
+ the primary controller on C-Chip.
+
++config PHYTIUM_IXIC
++ bool "Phytium SoC PCI Legacy Interrupt Controller"
++ depends on ARCH_PHYTIUM
++ select IRQ_DOMAIN
++ select IRQ_DOMAIN_HIERARCHY
++ help
++ This enables support PCI Legacy Interrupt on Phytium SoC.
++
+ endmenu
+diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
+index ffd945fe7..7b04778db 100644
+--- a/drivers/irqchip/Makefile
++++ b/drivers/irqchip/Makefile
+@@ -34,6 +34,7 @@ obj-$(CONFIG_ARM_GIC_V3) += irq-gic-v3.o irq-gic-v3-mbi.o irq-gic-common.o
+ obj-$(CONFIG_ARM_GIC_V3_ITS) += irq-gic-v3-its.o irq-gic-v3-its-platform-msi.o irq-gic-v4.o
+ obj-$(CONFIG_ARM_GIC_V3_ITS_PCI) += irq-gic-v3-its-pci-msi.o
+ obj-$(CONFIG_ARM_GIC_V3_ITS_FSL_MC) += irq-gic-v3-its-fsl-mc-msi.o
++obj-$(CONFIG_ARM_GIC_PHYTIUM_2500) += irq-gic-phytium-2500.o irq-gic-phytium-2500-its.o
+ obj-$(CONFIG_PARTITION_PERCPU) += irq-partition-percpu.o
+ obj-$(CONFIG_HISILICON_IRQ_MBIGEN) += irq-mbigen.o
+ obj-$(CONFIG_ARM_NVIC) += irq-nvic.o
+@@ -120,3 +121,4 @@ obj-$(CONFIG_IRQ_IDT3243X) += irq-idt3243x.o
+ obj-$(CONFIG_APPLE_AIC) += irq-apple-aic.o
+ obj-$(CONFIG_MCHP_EIC) += irq-mchp-eic.o
+ obj-$(CONFIG_SUNPLUS_SP7021_INTC) += irq-sp7021-intc.o
++obj-$(CONFIG_PHYTIUM_IXIC) += irq-phytium-ixic.o
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
-index 676c9250d..6005e1bad 100644
+index a1934fe4a..7515e31b1 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
-@@ -1730,7 +1730,8 @@ static void its_irq_compose_msi_msg(struct irq_data *d, struct msi_msg *msg)
+@@ -1736,7 +1736,8 @@ static void its_irq_compose_msi_msg(struct irq_data *d, struct msi_msg *msg)
msg->address_hi = upper_32_bits(addr);
msg->data = its_get_event_id(d);
@@ -7739,7 +8091,7 @@ index 676c9250d..6005e1bad 100644
}
static int its_irq_set_irqchip_state(struct irq_data *d,
-@@ -4893,6 +4894,7 @@ static void its_restore_enable(void)
+@@ -4878,6 +4879,7 @@ static void its_restore_enable(void)
{
struct its_node *its;
int ret;
@@ -7747,7 +8099,7 @@ index 676c9250d..6005e1bad 100644
raw_spin_lock(&its_lock);
list_for_each_entry(its, &its_nodes, entry) {
-@@ -4946,6 +4948,23 @@ static void its_restore_enable(void)
+@@ -4931,6 +4933,23 @@ static void its_restore_enable(void)
GITS_TYPER_HCC(gic_read_typer(base + GITS_TYPER)))
its_cpu_init_collection(its);
}
@@ -7771,11 +8123,128 @@ index 676c9250d..6005e1bad 100644
raw_spin_unlock(&its_lock);
}
+diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig
+index bc2e265cb..771f8fabd 100644
+--- a/drivers/mailbox/Kconfig
++++ b/drivers/mailbox/Kconfig
+@@ -41,6 +41,15 @@ config IMX_MBOX
+ help
+ Mailbox implementation for i.MX Messaging Unit (MU).
+
++config PHYTIUM_MBOX
++ tristate "Phytium SoC Mailbox Support"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ Mailbox driver implementation for the Phytium platform. It is used
++ to send message between application processors and on-chip management
++ firmware. Say Y here if you want to build this mailbox controller
++ driver.
++
+ config PLATFORM_MHU
+ tristate "Platform MHU Mailbox"
+ depends on OF
+diff --git a/drivers/mailbox/Makefile b/drivers/mailbox/Makefile
+index fc9376117..487f62094 100644
+--- a/drivers/mailbox/Makefile
++++ b/drivers/mailbox/Makefile
+@@ -62,3 +62,5 @@ obj-$(CONFIG_SPRD_MBOX) += sprd-mailbox.o
+ obj-$(CONFIG_QCOM_IPCC) += qcom-ipcc.o
+
+ obj-$(CONFIG_APPLE_MAILBOX) += apple-mailbox.o
++
++obj-$(CONFIG_PHYTIUM_MBOX) += phytium_mailbox.o
+diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
+index 68d71b4b5..43e552602 100644
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -1107,6 +1107,21 @@ config PCF50633_GPIO
+ Say yes here if you want to include support GPIO for pins on
+ the PCF50633 chip.
+
++config MFD_PHYTIUM_I2S_LSD
++ bool "PHYTIUM Px210 I2S LSD MFD driver"
++ depends on (PCI && ARCH_PHYTIUM)
++ select MFD_CORE
++ help
++ This enables support for the Phytium Px210 LSD I2S controller.
++
++config MFD_PHYTIUM_I2S_MMD
++ bool "PHYTIUM Px210 I2S MMD MFD driver"
++ depends on (PCI && ARCH_PHYTIUM)
++ select MFD_CORE
++ help
++ This enables support for the Phytium Px210 MMD I2S controllers
++ for Display Port.
++
+ config MFD_PM8XXX
+ tristate "Qualcomm PM8xxx PMIC chips driver"
+ depends on (ARM || HEXAGON || COMPILE_TEST)
+diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
+index db1ba39de..392992127 100644
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -282,3 +282,6 @@ obj-$(CONFIG_MFD_ATC260X_I2C) += atc260x-i2c.o
+
+ obj-$(CONFIG_MFD_RSMU_I2C) += rsmu_i2c.o rsmu_core.o
+ obj-$(CONFIG_MFD_RSMU_SPI) += rsmu_spi.o rsmu_core.o
++
++obj-$(CONFIG_MFD_PHYTIUM_I2S_LSD) += phytium_px210_i2s_lsd.o
++obj-$(CONFIG_MFD_PHYTIUM_I2S_MMD) += phytium_px210_i2s_mmd.o
+diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
+index bc7e2ad37..a31cacc65 100644
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -1071,3 +1071,31 @@ config MMC_LITEX
+ module will be called litex_mmc.
+
+ If unsure, say N.
++
++config MMC_PHYTIUM_SDCI
++ tristate "Phytium SD Host Controller support"
++ depends on ARM64
++ help
++ This selects support for the Phytium SD Host Controller
++
++config MMC_PHYTIUM_MCI_PCI
++ tristate "Phytium PCI MultiMedia Card Interface support"
++ depends on ARCH_PHYTIUM
++ default y if ARCH_PHYTIUM
++ help
++ This selects support for the PCI MultiMedia Card Interface on Phytium
++ Px210 chipset.
++
++ If you have a controller with this interface, say Y or M here.
++
++ If unsure, say N.
++
++config MMC_PHYTIUM_MCI_PLTFM
++ tristate "Phytium MultiMedia Card Interface support"
++ depends on ARCH_PHYTIUM && OF
++ default y if ARCH_PHYTIUM
++ help
++ This selects support for the MultiMedia Card Interface on Phytium SoCs.
++ If you have a controller with this interface, say Y or M here.
++
++ If unsure, say N.
+diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
+index a693fa3d3..129010f63 100644
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
+@@ -70,6 +70,9 @@ obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6rol0.o
+ obj-$(CONFIG_MMC_TOSHIBA_PCI) += toshsd.o
+ obj-$(CONFIG_MMC_BCM2835) += bcm2835.o
+ obj-$(CONFIG_MMC_OWL) += owl-mmc.o
++obj-$(CONFIG_MMC_PHYTIUM_SDCI) += phytium-sdci.o
++obj-$(CONFIG_MMC_PHYTIUM_MCI_PCI) += phytium-mci-pci.o phytium-mci.o
++obj-$(CONFIG_MMC_PHYTIUM_MCI_PLTFM) += phytium-mci-plat.o phytium-mci.o
+
+ obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o
+ obj-$(CONFIG_MMC_REALTEK_USB) += rtsx_usb_sdmmc.o
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
-index 9bd661be3..a1911ac53 100644
+index 97ca2a897..c5a59c488 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -742,7 +742,8 @@ int add_mtd_device(struct mtd_info *mtd)
+@@ -743,7 +743,8 @@ int add_mtd_device(struct mtd_info *mtd)
dev_set_name(&mtd->dev, "mtd%d", i);
dev_set_drvdata(&mtd->dev, mtd);
mtd_check_of_node(mtd);
@@ -7785,7 +8254,7 @@ index 9bd661be3..a1911ac53 100644
error = device_register(&mtd->dev);
if (error) {
put_device(&mtd->dev);
-@@ -903,7 +904,8 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
+@@ -905,7 +906,8 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
config.ignore_wp = true;
config.reg_read = reg_read;
config.size = size;
@@ -7795,7 +8264,7 @@ index 9bd661be3..a1911ac53 100644
config.priv = mtd;
nvmem = nvmem_register(&config);
-@@ -911,7 +913,8 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
+@@ -913,7 +915,8 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
if (IS_ERR(nvmem) && PTR_ERR(nvmem) == -EOPNOTSUPP)
nvmem = NULL;
@@ -7918,6 +8387,50 @@ index 23483db8f..17a44b31c 100644
ret = mtd_part_of_parse(master, &pparts);
} else {
pr_debug("%s: parsing partitions %s\n", master->name,
+diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
+index 614257308..3d5730ead 100644
+--- a/drivers/mtd/nand/raw/Kconfig
++++ b/drivers/mtd/nand/raw/Kconfig
+@@ -150,6 +150,25 @@ config MTD_NAND_ORION
+ No board specific support is done by this driver, each board
+ must advertise a platform_device for the driver to attach.
+
++config MTD_NAND_PHYTIUM
++ tristate
++
++config MTD_NAND_PHYTIUM_PCI
++ tristate "Support Phytium NAND controller as a PCI device"
++ select MTD_NAND_PHYTIUM
++ depends on PCI
++ help
++ Enable the driver for NAND flash controller of Phytium Px210 chipset,
++ using the Phytium NAND controller core.
++
++config MTD_NAND_PHYTIUM_PLAT
++ tristate "Support Phytium NAND controller as a platform device"
++ select MTD_NAND_PHYTIUM
++ depends on ARCH_PHYTIUM
++ help
++ Enable the driver for NAND flash controller of Phytium CPU chipset,
++ using the Phytium NAND controller core.
++
+ config MTD_NAND_MARVELL
+ tristate "Marvell EBU NAND controller"
+ depends on PXA3xx || ARCH_MMP || PLAT_ORION || ARCH_MVEBU || \
+diff --git a/drivers/mtd/nand/raw/Makefile b/drivers/mtd/nand/raw/Makefile
+index 25120a4af..0898acbe1 100644
+--- a/drivers/mtd/nand/raw/Makefile
++++ b/drivers/mtd/nand/raw/Makefile
+@@ -57,6 +57,9 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += intel-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o
++obj-$(CONFIG_MTD_NAND_PHYTIUM) += phytium_nand.o
++obj-$(CONFIG_MTD_NAND_PHYTIUM_PCI) += phytium_nand_pci.o
++obj-$(CONFIG_MTD_NAND_PHYTIUM_PLAT) += phytium_nand_plat.o
+
+ nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
+ nand-objs += nand_onfi.o
diff --git a/drivers/mtd/parsers/Kconfig b/drivers/mtd/parsers/Kconfig
index 60738edcd..ae1870d27 100644
--- a/drivers/mtd/parsers/Kconfig
@@ -8223,7 +8736,7 @@ index 9217379b9..36252b89e 100644
extern const struct attribute_group *spi_nor_sysfs_groups[];
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
-index 78c972bb1..3a5441dcc 100644
+index 9fb5a18e0..7c50f571f 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -85,6 +85,7 @@
@@ -8358,11 +8871,11 @@ index 78c972bb1..3a5441dcc 100644
struct clk *rx_clk;
struct clk *tsu_clk;
struct net_device *dev;
-+ struct ncsi_dev *ndev;
++ struct ncsi_dev *ndev;
+ /* Protects hw_stats and ethtool_stats */
+ spinlock_t stats_lock;
union {
- struct macb_stats macb;
- struct gem_stats gem;
-@@ -1282,6 +1337,10 @@ struct macb {
+@@ -1284,6 +1339,10 @@ struct macb {
struct phylink_config phylink_config;
struct phylink_pcs phylink_usx_pcs;
struct phylink_pcs phylink_sgmii_pcs;
@@ -8373,7 +8886,7 @@ index 78c972bb1..3a5441dcc 100644
u32 caps;
unsigned int dma_burst_length;
-@@ -1330,6 +1389,8 @@ struct macb {
+@@ -1332,6 +1391,8 @@ struct macb {
struct macb_pm_data pm_data;
const struct macb_usrio_config *usrio;
@@ -8383,7 +8896,7 @@ index 78c972bb1..3a5441dcc 100644
#ifdef CONFIG_MACB_USE_HWSTAMP
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index b940dcd3a..683d2095c 100644
+index 4325d0ace..e71ebbf05 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -26,6 +26,7 @@
@@ -8873,7 +9386,7 @@ index b940dcd3a..683d2095c 100644
bp->phylink = phylink_create(&bp->phylink_config, bp->pdev->dev.fwnode,
bp->phy_interface, &macb_phylink_ops);
if (IS_ERR(bp->phylink)) {
-@@ -1316,6 +1585,7 @@ static void gem_rx_refill(struct macb_queue *queue)
+@@ -1324,6 +1593,7 @@ static void gem_rx_refill(struct macb_queue *queue)
/* Make hw descriptor updates visible to CPU */
rmb();
@@ -8881,7 +9394,7 @@ index b940dcd3a..683d2095c 100644
desc = macb_rx_desc(queue, entry);
if (!queue->rx_skbuff[entry]) {
-@@ -1354,7 +1624,6 @@ static void gem_rx_refill(struct macb_queue *queue)
+@@ -1362,7 +1632,6 @@ static void gem_rx_refill(struct macb_queue *queue)
dma_wmb();
desc->addr &= ~MACB_BIT(RX_USED);
}
@@ -8889,7 +9402,7 @@ index b940dcd3a..683d2095c 100644
}
/* Make descriptor updates visible to hardware */
-@@ -2473,27 +2742,48 @@ static void macb_free_rx_buffers(struct macb *bp)
+@@ -2483,27 +2752,48 @@ static void macb_free_rx_buffers(struct macb *bp)
static void macb_free_consistent(struct macb *bp)
{
@@ -8948,7 +9461,7 @@ index b940dcd3a..683d2095c 100644
}
}
-@@ -2533,17 +2823,87 @@ static int macb_alloc_rx_buffers(struct macb *bp)
+@@ -2543,17 +2833,87 @@ static int macb_alloc_rx_buffers(struct macb *bp)
return 0;
}
@@ -9040,7 +9553,7 @@ index b940dcd3a..683d2095c 100644
if (!queue->tx_ring)
goto out_err;
netdev_dbg(bp->dev,
-@@ -2552,13 +2912,12 @@ static int macb_alloc_consistent(struct macb *bp)
+@@ -2562,13 +2922,12 @@ static int macb_alloc_consistent(struct macb *bp)
queue->tx_ring);
size = bp->tx_ring_size * sizeof(struct macb_tx_skb);
@@ -9057,7 +9570,7 @@ index b940dcd3a..683d2095c 100644
if (!queue->rx_ring)
goto out_err;
netdev_dbg(bp->dev,
-@@ -2592,6 +2951,15 @@ static void gem_init_rings(struct macb *bp)
+@@ -2602,6 +2961,15 @@ static void gem_init_rings(struct macb *bp)
queue->tx_head = 0;
queue->tx_tail = 0;
@@ -9073,7 +9586,7 @@ index b940dcd3a..683d2095c 100644
queue->rx_tail = 0;
queue->rx_prepared_head = 0;
-@@ -2768,6 +3136,46 @@ static void macb_configure_dma(struct macb *bp)
+@@ -2778,6 +3146,46 @@ static void macb_configure_dma(struct macb *bp)
}
}
@@ -9120,7 +9633,7 @@ index b940dcd3a..683d2095c 100644
static void macb_init_hw(struct macb *bp)
{
u32 config;
-@@ -2796,11 +3204,24 @@ static void macb_init_hw(struct macb *bp)
+@@ -2806,11 +3214,24 @@ static void macb_init_hw(struct macb *bp)
if (bp->caps & MACB_CAPS_JUMBO)
bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
@@ -9149,7 +9662,7 @@ index b940dcd3a..683d2095c 100644
}
/* The hash address register is 64 bits long and takes up two
-@@ -2924,7 +3345,10 @@ static void macb_set_rx_mode(struct net_device *dev)
+@@ -2934,7 +3355,10 @@ static void macb_set_rx_mode(struct net_device *dev)
static int macb_open(struct net_device *dev)
{
@@ -9161,7 +9674,7 @@ index b940dcd3a..683d2095c 100644
struct macb *bp = netdev_priv(dev);
struct macb_queue *queue;
unsigned int q;
-@@ -2951,6 +3375,7 @@ static int macb_open(struct net_device *dev)
+@@ -2961,6 +3385,7 @@ static int macb_open(struct net_device *dev)
napi_enable(&queue->napi_tx);
}
@@ -9169,7 +9682,7 @@ index b940dcd3a..683d2095c 100644
macb_init_hw(bp);
err = phy_power_on(bp->sgmii_phy);
-@@ -3884,6 +4309,8 @@ static const struct net_device_ops macb_netdev_ops = {
+@@ -3899,6 +4324,8 @@ static const struct net_device_ops macb_netdev_ops = {
#endif
.ndo_set_features = macb_set_features,
.ndo_features_check = macb_features_check,
@@ -9178,7 +9691,7 @@ index b940dcd3a..683d2095c 100644
};
/* Configure peripheral capabilities according to device tree
-@@ -4048,6 +4475,97 @@ static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
+@@ -4063,6 +4490,97 @@ static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
return err;
}
@@ -9276,7 +9789,7 @@ index b940dcd3a..683d2095c 100644
static int macb_init(struct platform_device *pdev)
{
struct net_device *dev = platform_get_drvdata(pdev);
-@@ -4126,12 +4644,14 @@ static int macb_init(struct platform_device *pdev)
+@@ -4141,12 +4659,14 @@ static int macb_init(struct platform_device *pdev)
/* setup appropriated routines according to adapter type */
if (macb_is_gem(bp)) {
@@ -9291,7 +9804,7 @@ index b940dcd3a..683d2095c 100644
bp->macbgem_ops.mog_alloc_rx_buffers = macb_alloc_rx_buffers;
bp->macbgem_ops.mog_free_rx_buffers = macb_free_rx_buffers;
bp->macbgem_ops.mog_init_rings = macb_init_rings;
-@@ -4901,6 +5421,34 @@ static const struct macb_config versal_config = {
+@@ -4916,6 +5436,34 @@ static const struct macb_config versal_config = {
.usrio = &macb_default_usrio,
};
@@ -9326,7 +9839,7 @@ index b940dcd3a..683d2095c 100644
static const struct of_device_id macb_dt_ids[] = {
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
{ .compatible = "cdns,macb" },
-@@ -4924,11 +5472,25 @@ static const struct of_device_id macb_dt_ids[] = {
+@@ -4939,11 +5487,25 @@ static const struct of_device_id macb_dt_ids[] = {
{ .compatible = "xlnx,zynqmp-gem", .data = &zynqmp_config},
{ .compatible = "xlnx,zynq-gem", .data = &zynq_config },
{ .compatible = "xlnx,versal-gem", .data = &versal_config},
@@ -9352,7 +9865,7 @@ index b940dcd3a..683d2095c 100644
static const struct macb_config default_gem_config = {
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
MACB_CAPS_JUMBO |
-@@ -4940,6 +5502,32 @@ static const struct macb_config default_gem_config = {
+@@ -4955,6 +5517,32 @@ static const struct macb_config default_gem_config = {
.jumbo_max_len = 10240,
};
@@ -9385,7 +9898,7 @@ index b940dcd3a..683d2095c 100644
static int macb_probe(struct platform_device *pdev)
{
const struct macb_config *macb_config = &default_gem_config;
-@@ -4952,7 +5540,6 @@ static int macb_probe(struct platform_device *pdev)
+@@ -4967,7 +5555,6 @@ static int macb_probe(struct platform_device *pdev)
struct clk *tsu_clk = NULL;
unsigned int queue_mask, num_queues;
bool native_io;
@@ -9393,7 +9906,7 @@ index b940dcd3a..683d2095c 100644
struct net_device *dev;
struct resource *regs;
u32 wtrmrk_rst_val;
-@@ -4973,6 +5560,15 @@ static int macb_probe(struct platform_device *pdev)
+@@ -4988,6 +5575,15 @@ static int macb_probe(struct platform_device *pdev)
clk_init = macb_config->clk_init;
init = macb_config->init;
}
@@ -9409,7 +9922,7 @@ index b940dcd3a..683d2095c 100644
}
err = clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk);
-@@ -5021,6 +5617,9 @@ static int macb_probe(struct platform_device *pdev)
+@@ -5036,6 +5632,9 @@ static int macb_probe(struct platform_device *pdev)
if (macb_config)
bp->jumbo_max_len = macb_config->jumbo_max_len;
@@ -9419,7 +9932,7 @@ index b940dcd3a..683d2095c 100644
if (!hw_is_gem(bp->regs, bp->native_io))
bp->max_tx_length = MACB_MAX_TX_LEN;
else if (macb_config->max_tx_length)
-@@ -5029,7 +5628,7 @@ static int macb_probe(struct platform_device *pdev)
+@@ -5044,7 +5643,7 @@ static int macb_probe(struct platform_device *pdev)
bp->max_tx_length = GEM_MAX_TX_LEN;
bp->wol = 0;
@@ -9428,7 +9941,7 @@ index b940dcd3a..683d2095c 100644
bp->wol |= MACB_WOL_HAS_MAGIC_PACKET;
device_set_wakeup_capable(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET);
-@@ -5102,12 +5701,12 @@ static int macb_probe(struct platform_device *pdev)
+@@ -5118,12 +5717,12 @@ static int macb_probe(struct platform_device *pdev)
else if (err)
macb_get_hwaddr(bp);
@@ -9445,7 +9958,7 @@ index b940dcd3a..683d2095c 100644
/* IP specific init */
err = init(pdev);
-@@ -5118,6 +5717,20 @@ static int macb_probe(struct platform_device *pdev)
+@@ -5134,6 +5733,20 @@ static int macb_probe(struct platform_device *pdev)
if (err)
goto err_out_phy_exit;
@@ -9466,7 +9979,7 @@ index b940dcd3a..683d2095c 100644
netif_carrier_off(dev);
err = register_netdev(dev);
-@@ -5349,6 +5962,8 @@ static int __maybe_unused macb_resume(struct device *dev)
+@@ -5365,6 +5978,8 @@ static int __maybe_unused macb_resume(struct device *dev)
macb_set_rx_mode(netdev);
macb_restore_features(bp);
rtnl_lock();
@@ -9475,7 +9988,7 @@ index b940dcd3a..683d2095c 100644
phylink_start(bp->phylink);
rtnl_unlock();
-@@ -5402,6 +6017,7 @@ static struct platform_driver macb_driver = {
+@@ -5418,6 +6033,7 @@ static struct platform_driver macb_driver = {
.driver = {
.name = "macb",
.of_match_table = of_match_ptr(macb_dt_ids),
@@ -9484,7 +9997,7 @@ index b940dcd3a..683d2095c 100644
},
};
diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
-index 25f2d42de..bd1a3a9dd 100644
+index 92d7d5a00..eea267ecf 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
+++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
@@ -121,6 +121,16 @@ config DWMAC_MESON
@@ -9517,7 +10030,7 @@ index 5b57aee19..91b1cf9bc 100644
obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o
obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h
-index b0dd8adce..e4294c606 100644
+index 4dbc076f7..5a950cf07 100644
--- a/drivers/net/ethernet/stmicro/stmmac/common.h
+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -50,10 +50,10 @@
@@ -9805,81 +10318,86 @@ index b5f012619..fead84822 100644
+module_exit(phylink_exit);
MODULE_LICENSE("GPL v2");
-diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
-index 298663b03..0c1c1ff31 100644
---- a/drivers/net/wireless/realtek/rtw88/mac.c
-+++ b/drivers/net/wireless/realtek/rtw88/mac.c
-@@ -309,6 +309,13 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on)
- pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq;
- ret = rtw_pwr_seq_parser(rtwdev, pwr_seq);
-
-+ if (pwr_on && rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) {
-+ if (chip->id == RTW_CHIP_TYPE_8822C ||
-+ chip->id == RTW_CHIP_TYPE_8822B ||
-+ chip->id == RTW_CHIP_TYPE_8821C)
-+ rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0));
-+ }
-+
- if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO)
- rtw_write32(rtwdev, REG_SDIO_HIMR, imr);
-
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
-index 7a5cbdc31..e2c7d9f87 100644
+index a019f4085..7361913de 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
-@@ -9,24 +9,36 @@
- #include "usb.h"
-
- static const struct usb_device_id rtw_8821cu_id_table[] = {
-- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8731, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb820, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc80c, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc820, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82a, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
+@@ -31,6 +31,8 @@ static const struct usb_device_id rtw_8821cu_id_table[] = {
+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
{ USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82b, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */
-- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */
-- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */
-- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff),
-- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* TOTOLINK A650UA v3 */
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82c, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
-+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331d, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* D-Link */
-+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xc811, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */
-+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xd811, 0xff, 0xff, 0xff),
-+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */
- {},
- };
- MODULE_DEVICE_TABLE(usb, rtw_8821cu_id_table);
++ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331d, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* D-Link */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xc811, 0xff, 0xff, 0xff),
+diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
+index da9826acc..69e7c420b 100644
+--- a/drivers/of/Kconfig
++++ b/drivers/of/Kconfig
+@@ -102,4 +102,15 @@ config OF_OVERLAY
+ config OF_NUMA
+ bool
+
++config OF_DMA_DEFAULT_COHERENT
++ # arches should select this if DMA is coherent by default for OF devices
++ bool
++
++config OF_CONFIGFS
++ bool "Device Tree Overlay ConfigFS interface"
++ select CONFIGFS_FS
++ select OF_OVERLAY
++ help
++ Enable a simple user-space driven DT overlay interface.
++
+ endif # OF
+diff --git a/drivers/of/Makefile b/drivers/of/Makefile
+index eff624854..61bd05f08 100644
+--- a/drivers/of/Makefile
++++ b/drivers/of/Makefile
+@@ -1,6 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ obj-y = base.o cpu.o device.o module.o platform.o property.o
+ obj-$(CONFIG_OF_KOBJ) += kobj.o
++obj-$(CONFIG_OF_CONFIGFS) += configfs.o
+ obj-$(CONFIG_OF_DYNAMIC) += dynamic.o
+ obj-$(CONFIG_OF_FLATTREE) += fdt.o
+ obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
+diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
+index c0c3f2824..5701b4e44 100644
+--- a/drivers/pci/controller/Kconfig
++++ b/drivers/pci/controller/Kconfig
+@@ -231,6 +231,16 @@ config PCI_HYPERV_INTERFACE
+ drivers to have a common interface with the Hyper-V PCI frontend
+ driver.
+
++config PCIE_PHYTIUM_EP
++ tristate "Phytium PCIe endpoint controller"
++ depends on OF
++ depends on PCI_ENDPOINT
++ help
++ Say Y here if you want to support Phytium PCIe controller in
++ endpoint mode on Phytium SoC. The controller can act as Root Port
++ or End Point with different phytium firmware. But End Point mode only support
++ one physical function.
++
+ config PCI_TEGRA
+ bool "NVIDIA Tegra PCIe controller"
+ depends on ARCH_TEGRA || COMPILE_TEST
+diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
+index 37c8663de..74c69a5be 100644
+--- a/drivers/pci/controller/Makefile
++++ b/drivers/pci/controller/Makefile
+@@ -39,6 +39,7 @@ obj-$(CONFIG_PCI_LOONGSON) += pci-loongson.o
+ obj-$(CONFIG_PCIE_HISI_ERR) += pcie-hisi-error.o
+ obj-$(CONFIG_PCIE_APPLE) += pcie-apple.o
+ obj-$(CONFIG_PCIE_MT7621) += pcie-mt7621.o
++obj-$(CONFIG_PCIE_PHYTIUM_EP) += pcie-phytium-ep.o
+
+ # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW
+ obj-y += dwc/
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index b5b96d2a9..4a2c10df8 100644
+index 70f484b81..948160061 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -31,6 +31,7 @@
@@ -9890,7 +10408,7 @@ index b5b96d2a9..4a2c10df8 100644
#include "pci.h"
/*
-@@ -4047,7 +4048,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, bool probe)
+@@ -4062,7 +4063,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, bool probe)
pcie_reset_flr(dev, PCI_RESET_PROBE) || !pci_resource_start(dev, 0))
return -ENOTTY;
@@ -9899,7 +10417,7 @@ index b5b96d2a9..4a2c10df8 100644
return 0;
bar = pci_iomap(dev, 0, NVME_REG_CC + sizeof(cfg));
-@@ -4195,6 +4196,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
+@@ -4210,6 +4211,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IVB_M2_VGA,
reset_ivb_igd },
{ PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr },
@@ -9907,7 +10425,7 @@ index b5b96d2a9..4a2c10df8 100644
{ PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr },
{ PCI_VENDOR_ID_INTEL, 0x0a54, delay_250ms_after_flr },
{ PCI_VENDOR_ID_SOLIDIGM, 0xf1ac, delay_250ms_after_flr },
-@@ -5527,6 +5529,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags);
+@@ -5556,6 +5558,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);
@@ -9916,7 +10434,7 @@ index b5b96d2a9..4a2c10df8 100644
#ifdef CONFIG_PCI_ATS
static void quirk_no_ats(struct pci_dev *pdev)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
-index dae490f25..1d877793b 100644
+index 5a143ad5f..f8ce3f41f 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -576,6 +576,9 @@ static void pci_setup_bridge_io(struct pci_dev *bridge)
@@ -9949,8 +10467,41 @@ index dae490f25..1d877793b 100644
}
static void pci_setup_bridge_mmio(struct pci_dev *bridge)
+diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
+index 8ebcddf91..3bd556182 100644
+--- a/drivers/pwm/Kconfig
++++ b/drivers/pwm/Kconfig
+@@ -454,6 +454,16 @@ config PWM_PCA9685
+ To compile this driver as a module, choose M here: the module
+ will be called pwm-pca9685.
+
++config PWM_PHYTIUM
++ tristate "Phytium PWM support"
++ depends on ARCH_PHYTIUM
++ help
++ Generic PWM framework driver for the PWM controller found on
++ Phytium SoCs.
++
++ To compile this driver as a module, choose M here: the module
++ will be called pwm-phytium.
++
+ config PWM_PXA
+ tristate "PXA PWM support"
+ depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
+diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
+index c822389c2..e3fb6e95b 100644
+--- a/drivers/pwm/Makefile
++++ b/drivers/pwm/Makefile
+@@ -41,6 +41,7 @@ obj-$(CONFIG_PWM_MXS) += pwm-mxs.o
+ obj-$(CONFIG_PWM_NTXEC) += pwm-ntxec.o
+ obj-$(CONFIG_PWM_OMAP_DMTIMER) += pwm-omap-dmtimer.o
+ obj-$(CONFIG_PWM_PCA9685) += pwm-pca9685.o
++obj-$(CONFIG_PWM_PHYTIUM) += pwm-phytium.o
+ obj-$(CONFIG_PWM_PXA) += pwm-pxa.o
+ obj-$(CONFIG_PWM_RASPBERRYPI_POE) += pwm-raspberrypi-poe.o
+ obj-$(CONFIG_PWM_RCAR) += pwm-rcar.o
diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c
-index 8d1254761..0180ee80a 100644
+index 052ccadbd..ddb4ef55e 100644
--- a/drivers/pwm/sysfs.c
+++ b/drivers/pwm/sysfs.c
@@ -260,7 +260,7 @@ static int pwm_export_child(struct device *parent, struct pwm_device *pwm)
@@ -10022,6 +10573,69 @@ index 95540ea8d..e8094b931 100644
}
static int __init ras_init(void)
+diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
+index 48845dc8f..f118bfc4b 100644
+--- a/drivers/remoteproc/Kconfig
++++ b/drivers/remoteproc/Kconfig
+@@ -365,6 +365,12 @@ config XLNX_R5_REMOTEPROC
+
+ It's safe to say N if not interested in using RPU r5f cores.
+
++config HOMO_REMOTEPROC
++ bool "homogeneous remoteproc support"
++ select RPMSG_VIRTIO
++ help
++ Say y here to support homogeneous processors via the remote processor framework.
++
+ endif # REMOTEPROC
+
+ endmenu
+diff --git a/drivers/remoteproc/Makefile b/drivers/remoteproc/Makefile
+index 91314a9b4..87a388098 100644
+--- a/drivers/remoteproc/Makefile
++++ b/drivers/remoteproc/Makefile
+@@ -39,3 +39,4 @@ obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o
+ obj-$(CONFIG_TI_K3_DSP_REMOTEPROC) += ti_k3_dsp_remoteproc.o
+ obj-$(CONFIG_TI_K3_R5_REMOTEPROC) += ti_k3_r5_remoteproc.o
+ obj-$(CONFIG_XLNX_R5_REMOTEPROC) += xlnx_r5_remoteproc.o
++obj-$(CONFIG_HOMO_REMOTEPROC) += homo_remoteproc.o
+diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
+old mode 100644
+new mode 100755
+index 92f46a631..ee24c293e
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -708,6 +708,16 @@ config RTC_DRV_S5M
+ This driver can also be built as a module. If so, the module
+ will be called rtc-s5m.
+
++config RTC_DRV_SD3068
++ tristate "ZXW Shenzhen whwave SD3068"
++ select REGMAP_I2C
++ help
++ If you say yes here you get support for the ZXW Shenzhen whwave
++ SD3068 RTC chips.
++
++ This driver can also be built as a module. If so, the module
++ will be called rtc-sd3068
++
+ config RTC_DRV_SD3078
+ tristate "ZXW Shenzhen whwave SD3078"
+ select REGMAP_I2C
+diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
+old mode 100644
+new mode 100755
+index fd209883e..700d1e9d1
+--- a/drivers/rtc/Makefile
++++ b/drivers/rtc/Makefile
+@@ -158,6 +158,7 @@ obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o
+ obj-$(CONFIG_RTC_DRV_S5M) += rtc-s5m.o
+ obj-$(CONFIG_RTC_DRV_SA1100) += rtc-sa1100.o
+ obj-$(CONFIG_RTC_DRV_SC27XX) += rtc-sc27xx.o
++obj-$(CONFIG_RTC_DRV_SD3068) += rtc-sd3068.o
+ obj-$(CONFIG_RTC_DRV_SD3078) += rtc-sd3078.o
+ obj-$(CONFIG_RTC_DRV_SH) += rtc-sh.o
+ obj-$(CONFIG_RTC_DRV_SNVS) += rtc-snvs.o
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index 506b7d1c2..479706161 100644
--- a/drivers/rtc/rtc-ds1307.c
@@ -10081,6 +10695,91 @@ index 506b7d1c2..479706161 100644
},
.probe = ds1307_probe,
.id_table = ds1307_id,
+diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
+index 3ce0fd5df..03a3037b0 100644
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
+@@ -774,6 +774,44 @@ config SPI_PCI1XXXX
+ This driver can be built as module. If so, the module will be
+ called as spi-pci1xxxx.
+
++config SPI_PHYTIUM
++ tristate
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++
++config SPI_PHYTIUM_PLAT
++ tristate "Phytium SPI controller platform support"
++ select SPI_PHYTIUM
++ help
++ This selects a platform driver for Phytium SPI controller.
++
++ If you say yes to this option, support will be included for
++ Phytium SoC families of SPI controller.
++
++config SPI_PHYTIUM_PCI
++ tristate "Phytium SPI controller PCI support"
++ depends on PCI
++ select SPI_PHYTIUM
++ help
++ This selects a PCI driver for Phytium SPI controller.
++
++ If you say yes to this option, support will be included for
++ Phytium PCIe chipsets of SPI controller.
++
++ If unsure, say N.
++
++config SPI_PHYTIUM_QSPI
++ tristate "Phytium Quad SPI controller"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ depends on OF
++ depends on SPI_MEM
++ help
++ This enables support for Phytium Quad SPI flash controller.
++
++ This driver does not support generic SPI. The implementation only
++ supports spi-mem interface.
++
++ If unsure, say N.
++
+ config SPI_PIC32
+ tristate "Microchip PIC32 series SPI"
+ depends on MACH_PIC32 || COMPILE_TEST
+diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
+index 6af54842b..cfaf68b2d 100644
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
+@@ -101,6 +101,11 @@ obj-$(CONFIG_SPI_OMAP24XX) += spi-omap2-mcspi.o
+ obj-$(CONFIG_SPI_TI_QSPI) += spi-ti-qspi.o
+ obj-$(CONFIG_SPI_ORION) += spi-orion.o
+ obj-$(CONFIG_SPI_PCI1XXXX) += spi-pci1xxxx.o
++obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium.o
++obj-$(CONFIG_SPI_PHYTIUM_PLAT) += spi-phytium-plat.o
++obj-$(CONFIG_SPI_PHYTIUM_PCI) += spi-phytium-pci.o
++obj-$(CONFIG_SPI_PHYTIUM_QSPI) += spi-phytium-qspi.o
++obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium-dma.o
+ obj-$(CONFIG_SPI_PIC32) += spi-pic32.o
+ obj-$(CONFIG_SPI_PIC32_SQI) += spi-pic32-sqi.o
+ obj-$(CONFIG_SPI_PL022) += spi-pl022.o
+diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
+index 5dc634897..c86417920 100644
+--- a/drivers/staging/Kconfig
++++ b/drivers/staging/Kconfig
+@@ -87,4 +87,6 @@ source "drivers/staging/hisysevent/Kconfig"
+ source "drivers/staging/zerohung/Kconfig"
+
+ source "drivers/staging/hungtask/Kconfig"
++
++source "drivers/staging/android/Kconfig"
+ endif # STAGING
+diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
+index aec6e94a3..e37614535 100644
+--- a/drivers/staging/Makefile
++++ b/drivers/staging/Makefile
+@@ -33,3 +33,4 @@ obj-$(CONFIG_HIEVENT) += hievent/
+ obj-$(CONFIG_HISYSEVENT) += hisysevent/
+ obj-$(CONFIG_DFX_ZEROHUNG) += zerohung/
+ obj-$(CONFIG_DFX_HUNGTASK) += hungtask/
++obj-$(CONFIG_ANDROID) += android/
diff --git a/drivers/tee/optee/Kconfig b/drivers/tee/optee/Kconfig
index 70898bbd5..dc097c286 100644
--- a/drivers/tee/optee/Kconfig
@@ -10178,11 +10877,45 @@ index d5b28fd35..e2b16275d 100644
},
};
+diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
+index bdc568a4a..0f4b94a14 100644
+--- a/drivers/tty/serial/Kconfig
++++ b/drivers/tty/serial/Kconfig
+@@ -73,6 +73,17 @@ config SERIAL_AMBA_PL011_CONSOLE
+ your boot loader (lilo or loadlin) about how to pass options to the
+ kernel at boot time.)
+
++config SERIAL_PHYTIUM_PCI
++ tristate "Phytium PCI serial port support"
++ depends on PCI
++ select SERIAL_CORE
++ help
++ This driver supports the Phytium UART controller on PCI/PCIe adapters.
++ If you want to compile this driver into the kernel, say Y here. To
++ compile this driver as a module, choose M here.
++
++ If unsure, say N.
++
+ config SERIAL_EARLYCON_SEMIHOST
+ bool "Early console using Arm compatible semihosting"
+ depends on ARM64 || ARM || RISCV
+diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
+index 138abbc89..cd1d9c759 100644
+--- a/drivers/tty/serial/Makefile
++++ b/drivers/tty/serial/Makefile
+@@ -88,6 +88,7 @@ obj-$(CONFIG_SERIAL_MILBEAUT_USIO) += milbeaut_usio.o
+ obj-$(CONFIG_SERIAL_SIFIVE) += sifive.o
+ obj-$(CONFIG_SERIAL_LITEUART) += liteuart.o
+ obj-$(CONFIG_SERIAL_SUNPLUS) += sunplus-uart.o
++obj-$(CONFIG_SERIAL_PHYTIUM_PCI) += phytium-uart.o
+
+ # GPIOLIB helpers for modem control lines
+ obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index 0a37f0d51..0a6ca2e5f 100644
+index b0137eac7..d7f8986bf 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
-@@ -1996,6 +1996,10 @@ static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports,
+@@ -1998,6 +1998,10 @@ static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports,
return;
}
@@ -10194,10 +10927,10 @@ index 0a37f0d51..0a6ca2e5f 100644
temp = readl(addr + 2);
port_offset = XHCI_EXT_PORT_OFF(temp);
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index d6fc08e5d..c9c2e7062 100644
+index c1a172b6f..3392beb07 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -62,6 +62,8 @@
+@@ -65,6 +65,8 @@
#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI 0x51ed
#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI 0x54ed
@@ -10206,7 +10939,7 @@ index d6fc08e5d..c9c2e7062 100644
#define PCI_DEVICE_ID_AMD_RENOIR_XHCI 0x1639
#define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9
#define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba
-@@ -474,6 +476,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
+@@ -477,6 +479,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_VIA)
xhci->quirks |= XHCI_RESET_ON_RESUME;
@@ -10264,19 +10997,19 @@ index d68e9abcd..9420d7a56 100644
};
MODULE_DEVICE_TABLE(acpi, usb_xhci_acpi_match);
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
-index 31088602c..b3124c20b 100644
+index df87e8bcb..4a970882f 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1907,6 +1907,7 @@ struct xhci_hcd {
- #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
- #define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
- #define XHCI_ZHAOXIN_HOST BIT_ULL(46)
-+#define XHCI_SLOWDOWN_QUIRK BIT_ULL(47)
+@@ -1662,6 +1662,7 @@ struct xhci_hcd {
+ #define XHCI_WRITE_64_HI_LO BIT_ULL(47)
+ #define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
+ #define XHCI_ETRON_HOST BIT_ULL(49)
++#define XHCI_SLOWDOWN_QUIRK BIT_ULL(50)
unsigned int num_active_eps;
unsigned int limit_active_eps;
diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig
-index ad3165732..8f2675c38 100644
+index ad3165732..cf16129a2 100644
--- a/drivers/w1/masters/Kconfig
+++ b/drivers/w1/masters/Kconfig
@@ -58,6 +58,16 @@ config HDQ_MASTER_OMAP
@@ -10296,6 +11029,22 @@ index ad3165732..8f2675c38 100644
config W1_MASTER_SGI
tristate "SGI ASIC driver"
help
+@@ -67,5 +77,15 @@ config W1_MASTER_SGI
+ This support is also available as a module. If so, the module
+ will be called sgi_w1.
+
++config W1_MASTER_PHYTIUM
++ tristate "Phytium 1-wire driver"
++ depends on ARCH_PHYTIUM || COMPILE_TEST
++ help
++ Say Y here if you want to get support for the 1-wire interface
++ on an Phytium SoC.
++
++ This driver can also be built as a module. If so, the module
++ will be called phytium-w1.
++
+ endmenu
+
diff --git a/drivers/w1/masters/Makefile b/drivers/w1/masters/Makefile
index c5d85a827..60bf6070c 100644
--- a/drivers/w1/masters/Makefile
@@ -11068,736 +11817,6 @@ index 84dca3695..c444082e0 100644
.pm = pm_sleep_ptr(&dw_wdt_pm_ops),
},
};
-diff --git a/fs/hmdfs/comm/connection.c b/fs/hmdfs/comm/connection.c
-index 046688747..44a4cb933 100644
---- a/fs/hmdfs/comm/connection.c
-+++ b/fs/hmdfs/comm/connection.c
-@@ -640,11 +640,6 @@ void connection_handshake_recv_handler(struct connection *conn_impl, void *buf,
- hmdfs_info(
- "Recved handshake response: device_id = %llu, cmd->status = %hhu, tcp->fd = %d",
- conn_impl->node->device_id, status, fd);
-- if (status == CONNECT_STAT_WAIT_REQUEST) {
-- // must be 10.1 device, no need to set ktls
-- connection_to_working(conn_impl->node);
-- goto out;
-- }
-
- ret = hs_proc_msg_data(conn_impl, ops, data, data_len);
- if (ret)
-diff --git a/fs/hmdfs/comm/socket_adapter.c b/fs/hmdfs/comm/socket_adapter.c
-index 6ed430268..b9f35b9e1 100644
---- a/fs/hmdfs/comm/socket_adapter.c
-+++ b/fs/hmdfs/comm/socket_adapter.c
-@@ -281,7 +281,7 @@ static struct hmdfs_msg_parasite *mp_alloc(struct hmdfs_peer *peer,
- return ERR_PTR(-ENOMEM);
-
- ret = hmdfs_alloc_msg_idr(peer, MSG_IDR_MESSAGE_ASYNC, mp,
-- mp->head.send_cmd_operations);
-+ req->operations);
- if (unlikely(ret)) {
- kfree(mp);
- return ERR_PTR(ret);
-diff --git a/fs/hmdfs/file_merge.c b/fs/hmdfs/file_merge.c
-index 8fb439d3b..2a2998e32 100644
---- a/fs/hmdfs/file_merge.c
-+++ b/fs/hmdfs/file_merge.c
-@@ -19,12 +19,12 @@ struct hmdfs_iterate_callback_merge {
- /*
- * Record the return value of 'caller->actor':
- *
-- * -EINVAL, buffer is exhausted
-- * -EINTR, current task is pending
-- * -EFAULT, something is wrong
-- * 0, success and can do more
-+ * false, buffer is exhausted
-+ * false, current task is pending
-+ * false, something is wrong
-+ * true, success and can do more
- */
-- int result;
-+ bool result ;
- struct rb_root *root;
- uint64_t dev_id;
- };
-@@ -210,7 +210,7 @@ static bool hmdfs_actor_merge(struct dir_context *ctx, const char *name,
- int namelen, long long offset, unsigned long long ino,
- unsigned int d_type)
- {
-- int ret = 0;
-+ bool ret = true;
- int insert_res = 0;
- int max_devid_len = 2;
- char *dentry_name = NULL;
-@@ -219,14 +219,20 @@ static bool hmdfs_actor_merge(struct dir_context *ctx, const char *name,
- struct hmdfs_iterate_callback_merge *iterate_callback_merge = NULL;
- struct dir_context *org_ctx = NULL;
-
-- if (hmdfs_file_type(name) != HMDFS_TYPE_COMMON)
-- return 0;
-+ if (hmdfs_file_type(name) != HMDFS_TYPE_COMMON) {
-+ /*
-+ * return true here, so that the caller can continue to next
-+ * dentry even if failed on this dentry somehow.
-+ */
-+ return true;
-+ }
-+
-
- if (namelen > NAME_MAX)
-- return -EINVAL;
-+ return false;
- dentry_name = kzalloc(NAME_MAX + 1, GFP_KERNEL);
- if (!dentry_name)
-- return -ENOMEM;
-+ return false;
-
- strncpy(dentry_name, name, dentry_len);
-
-@@ -245,7 +251,7 @@ static bool hmdfs_actor_merge(struct dir_context *ctx, const char *name,
- } else if (d_type == DT_DIR &&
- (insert_res == DT_REG || insert_res == DT_LNK)) {
- if (strlen(CONFLICTING_DIR_SUFFIX) > NAME_MAX - dentry_len) {
-- ret = -ENAMETOOLONG;
-+ ret = false;
- goto delete;
- }
- rename_conflicting_directory(dentry_name, &dentry_len);
-@@ -253,7 +259,7 @@ static bool hmdfs_actor_merge(struct dir_context *ctx, const char *name,
- } else if ((d_type == DT_REG || d_type == DT_LNK) && insert_res > 0) {
- if (strlen(CONFLICTING_FILE_SUFFIX) + max_devid_len >
- NAME_MAX - dentry_len) {
-- ret = -ENAMETOOLONG;
-+ ret = false;
- goto delete;
- }
- rename_conflicting_file(dentry_name, &dentry_len,
-@@ -268,13 +274,12 @@ static bool hmdfs_actor_merge(struct dir_context *ctx, const char *name,
- * different situations.
- */
- iterate_callback_merge->result = ret;
-- ret = ret == 0 ? 0 : 1;
-- if (ret && d_type == DT_DIR && cache_entry->file_type == DT_DIR &&
-+ if (!ret && d_type == DT_DIR && cache_entry->file_type == DT_DIR &&
- (insert_res == DT_REG || insert_res == DT_LNK))
- cache_entry->file_type = DT_REG;
-
- delete:
-- if (ret && !insert_res)
-+ if (!ret && !insert_res)
- delete_filename(iterate_callback_merge->root, cache_entry);
- done:
- kfree(dentry_name);
-diff --git a/fs/hmdfs/hmdfs.h b/fs/hmdfs/hmdfs.h
-index 61da068bb..5d1eec787 100644
---- a/fs/hmdfs/hmdfs.h
-+++ b/fs/hmdfs/hmdfs.h
-@@ -43,7 +43,7 @@
-
- // 20 digits +'\0', Converted from a u64 integer
- #define HMDFS_ACCOUNT_HASH_MAX_LEN 21
--#define CTRL_PATH_MAX_LEN 21
-+#define CTRL_PATH_MAX_LEN 11
-
- #define HMDFS_SUPER_MAGIC 0x20200302
-
-diff --git a/fs/hmdfs/hmdfs_dentryfile.c b/fs/hmdfs/hmdfs_dentryfile.c
-index 2da6bd8ad..fda2f034b 100644
---- a/fs/hmdfs/hmdfs_dentryfile.c
-+++ b/fs/hmdfs/hmdfs_dentryfile.c
-@@ -26,17 +26,6 @@
- #define HMDFS_HASH_COL_BIT ((0x1ULL) << 63)
- #define DELTA 0x9E3779B9
-
--static bool is_dot_dotdot(const unsigned char *name, __u32 len)
--{
-- if (len == 1 && name[0] == '.')
-- return true;
--
-- if (len == 2 && name[0] == '.' && name[1] == '.')
-- return true;
--
-- return false;
--}
--
- static void str2hashbuf(const unsigned char *msg, size_t len, unsigned int *buf,
- int num, bool case_sense)
- {
-@@ -1827,25 +1816,25 @@ static bool cache_file_iterate(struct dir_context *ctx, const char *name,
-
- if (name_len > NAME_MAX) {
- hmdfs_err("name_len:%d NAME_MAX:%u", name_len, NAME_MAX);
-- return 0;
-+ return true;
- }
-
- if (d_type != DT_REG)
-- return 0;
-+ return true;
-
- cfi = kmalloc(sizeof(*cfi), GFP_KERNEL);
- if (!cfi)
-- return -ENOMEM;
-+ return false;
-
- cfi->name = kstrndup(name, name_len, GFP_KERNEL);
- if (!cfi->name) {
- kfree(cfi);
-- return -ENOMEM;
-+ return false;
- }
-
- list_add_tail(&cfi->list, &cb->list);
-
-- return 0;
-+ return true;
- }
-
- void hmdfs_do_load(struct hmdfs_sb_info *sbi, const char *fullname, bool server)
-diff --git a/fs/hmdfs/hmdfs_server.c b/fs/hmdfs/hmdfs_server.c
-index d7c4d98cf..b1217f476 100644
---- a/fs/hmdfs/hmdfs_server.c
-+++ b/fs/hmdfs/hmdfs_server.c
-@@ -1463,10 +1463,10 @@ static bool hmdfs_filldir_real(struct dir_context *ctx, const char *name,
-
- out:
- /*
-- * we always return 0 here, so that the caller can continue to next
-+ * we always return true here, so that the caller can continue to next
- * dentry even if failed on this dentry somehow.
- */
-- return 0;
-+ return true;
- }
-
- static void hmdfs_server_set_header(struct hmdfs_dcache_header *header,
-diff --git a/fs/hmdfs/inode_cloud.c b/fs/hmdfs/inode_cloud.c
-index 4f1caf7bd..6099f1336 100644
---- a/fs/hmdfs/inode_cloud.c
-+++ b/fs/hmdfs/inode_cloud.c
-@@ -286,6 +286,10 @@ static struct dentry *hmdfs_lookup_cloud_dentry(struct inode *parent_inode,
- if (in_share_dir(child_dentry))
- gdi->file_type = HM_SHARE;
- inode = fill_inode_cloud(sb, lookup_result, parent_inode);
-+ if (IS_ERR(inode)) {
-+ ret = ERR_CAST(inode);
-+ goto out;
-+ }
-
- check_and_fixup_ownership_remote(parent_inode,
- inode,
-@@ -296,7 +300,7 @@ static struct dentry *hmdfs_lookup_cloud_dentry(struct inode *parent_inode,
- } else {
- ret = ERR_PTR(-ENOENT);
- }
--
-+out:
- kfree(lookup_result);
- return ret;
- }
-diff --git a/fs/hmdfs/inode_local.c b/fs/hmdfs/inode_local.c
-index 4fd799a21..4509d3e40 100644
---- a/fs/hmdfs/inode_local.c
-+++ b/fs/hmdfs/inode_local.c
-@@ -38,7 +38,6 @@ int init_hmdfs_dentry_info(struct hmdfs_sb_info *sbi, struct dentry *dentry,
-
- if (!info)
- return -ENOMEM;
-- dentry->d_fsdata = info;
- INIT_LIST_HEAD(&info->cache_list_head);
- INIT_LIST_HEAD(&info->remote_cache_list_head);
- spin_lock_init(&info->cache_list_lock);
-@@ -47,6 +46,7 @@ int init_hmdfs_dentry_info(struct hmdfs_sb_info *sbi, struct dentry *dentry,
- spin_lock_init(&info->lock);
- info->dentry_type = dentry_type;
- info->device_id = 0;
-+ dentry->d_fsdata = info;
- if (dentry_type == HMDFS_LAYER_ZERO ||
- dentry_type == HMDFS_LAYER_FIRST_DEVICE ||
- dentry_type == HMDFS_LAYER_SECOND_LOCAL ||
-@@ -183,9 +183,9 @@ static bool hmdfs_name_match(struct dir_context *ctx, const char *name,
- memcpy(buf->name, name, namelen);
- buf->name[namelen] = 0;
- buf->found = true;
-- return 1;
-+ return false;
- }
-- return 0;
-+ return true;
- }
-
- static int __lookup_nosensitive(struct path *lower_parent_path,
-@@ -920,8 +920,13 @@ static int hmdfs_getattr_local(struct mnt_idmap *idmap, const struct path *path,
- struct path lower_path;
- int ret;
-
-+ if (path->dentry == NULL || hmdfs_d(path->dentry) == NULL) {
-+ hmdfs_err("dentry is NULL");
-+ return -ENOENT;
-+ }
-+
- hmdfs_get_lower_path(path->dentry, &lower_path);
-- ret = vfs_getattr(&lower_path, stat, request_mask, flags);
-+ ret = vfs_getattr_nosec(&lower_path, stat, request_mask, flags);
- stat->ino = d_inode(path->dentry)->i_ino;
- stat->uid = d_inode(path->dentry)->i_uid;
- stat->gid = d_inode(path->dentry)->i_gid;
-diff --git a/fs/hmdfs/inode_merge.c b/fs/hmdfs/inode_merge.c
-index f090de1e4..7c1e1e4f8 100644
---- a/fs/hmdfs/inode_merge.c
-+++ b/fs/hmdfs/inode_merge.c
-@@ -785,7 +785,7 @@ int hmdfs_getattr_merge(struct mnt_idmap *idmap, const struct path *path, struct
- goto out;
- }
-
-- ret = vfs_getattr(&lower_path, stat, request_mask, flags);
-+ ret = vfs_getattr_nosec(&lower_path, stat, request_mask, flags);
- out:
- dput(lower_path.dentry);
- return ret;
-diff --git a/fs/hmdfs/main.c b/fs/hmdfs/main.c
-index f08ed9fd9..7e0952990 100644
---- a/fs/hmdfs/main.c
-+++ b/fs/hmdfs/main.c
-@@ -865,7 +865,6 @@ static int hmdfs_fill_super(struct super_block *sb, void *data, int silent)
- struct super_block *lower_sb;
- struct dentry *root_dentry;
- char ctrl_path[CTRL_PATH_MAX_LEN];
-- uint64_t ctrl_hash;
-
- if (!raw_data)
- return -EINVAL;
-@@ -902,9 +901,8 @@ static int hmdfs_fill_super(struct super_block *sb, void *data, int silent)
- goto out_freesbi;
-
- // add ctrl sysfs node
-- ctrl_hash = path_hash(sbi->local_dst, strlen(sbi->local_dst), true);
-- scnprintf(ctrl_path, CTRL_PATH_MAX_LEN, "%llu", ctrl_hash);
-- hmdfs_debug("hash %llu", ctrl_hash);
-+ scnprintf(ctrl_path, CTRL_PATH_MAX_LEN, "%u", sb->s_dev);
-+ hmdfs_debug("s_dev %u", sb->s_dev);
- err = hmdfs_register_sysfs(ctrl_path, sbi);
- if (err)
- goto out_freesbi;
-diff --git a/fs/hmdfs/stash.c b/fs/hmdfs/stash.c
-index c6c88b026..21c5fac34 100644
---- a/fs/hmdfs/stash.c
-+++ b/fs/hmdfs/stash.c
-@@ -1022,10 +1022,10 @@ static bool hmdfs_has_stash_file(struct dir_context *dctx, const char *name,
- err = hmdfs_parse_stash_file_name(dctx, name, namelen,
- d_type, &stash_inum);
- if (!err)
-- return 0;
-+ return true;
-
- ctx->tbl->cnt++;
-- return 1;
-+ return false;
- }
-
- static bool hmdfs_fill_stash_file(struct dir_context *dctx, const char *name,
-@@ -1040,13 +1040,13 @@ static bool hmdfs_fill_stash_file(struct dir_context *dctx, const char *name,
- err = hmdfs_parse_stash_file_name(dctx, name, namelen,
- d_type, &stash_inum);
- if (!err)
-- return 0;
-+ return true;
- if (ctx->tbl->cnt >= ctx->tbl->max)
-- return 1;
-+ return false;
-
- ctx->tbl->inodes[ctx->tbl->cnt++] = stash_inum;
-
-- return 0;
-+ return true;
- }
-
- static int hmdfs_del_stash_file(struct dentry *parent, struct dentry *child)
-diff --git a/fs/sharefs/authentication.c b/fs/sharefs/authentication.c
-index bc6e82509..39997c632 100644
---- a/fs/sharefs/authentication.c
-+++ b/fs/sharefs/authentication.c
-@@ -95,4 +95,4 @@ void sharefs_revert_fsids(const struct cred *old_cred)
- revert_creds(old_cred);
- put_cred(cur_cred);
- }
--#endif
-+#endif
-\ No newline at end of file
-diff --git a/fs/sharefs/authentication.h b/fs/sharefs/authentication.h
-index 165b66fc9..c9875d376 100644
---- a/fs/sharefs/authentication.h
-+++ b/fs/sharefs/authentication.h
-@@ -4,6 +4,8 @@
- *
- * Copyright (c) 2023 Huawei Device Co., Ltd.
- */
-+#ifndef AUTHENTICATION_H
-+#define AUTHENTICATION_H
-
- #include "sharefs.h"
-
-@@ -73,3 +75,5 @@ static inline int get_bundle_uid(struct sharefs_sb_info *sbi, const char *bname)
- {
- return sbi->user_id * BASE_USER_RANGE + get_bid_config(bname);
- }
-+
-+#endif //_AUTHENTICATION_H_
-\ No newline at end of file
-diff --git a/fs/sharefs/file.c b/fs/sharefs/file.c
-index 97547da44..bf5dbb346 100644
---- a/fs/sharefs/file.c
-+++ b/fs/sharefs/file.c
-@@ -157,8 +157,7 @@ static loff_t sharefs_file_llseek(struct file *file, loff_t offset, int whence)
- /*
- * Sharefs read_iter, redirect modified iocb to lower read_iter
- */
--ssize_t
--sharefs_read_iter(struct kiocb *iocb, struct iov_iter *iter)
-+ssize_t sharefs_read_iter(struct kiocb *iocb, struct iov_iter *iter)
- {
- int err;
- struct file *file = iocb->ki_filp;
-@@ -188,8 +187,7 @@ sharefs_read_iter(struct kiocb *iocb, struct iov_iter *iter)
- /*
- * Sharefs write_iter, redirect modified iocb to lower write_iter
- */
--ssize_t
--sharefs_write_iter(struct kiocb *iocb, struct iov_iter *iter)
-+ssize_t sharefs_write_iter(struct kiocb *iocb, struct iov_iter *iter)
- {
- int err;
- struct file *file = iocb->ki_filp;
-diff --git a/fs/sharefs/inode.c b/fs/sharefs/inode.c
-index 79a3f841e..546082924 100644
---- a/fs/sharefs/inode.c
-+++ b/fs/sharefs/inode.c
-@@ -14,50 +14,6 @@
- #include "authentication.h"
- #endif
-
--static const char *sharefs_get_link(struct dentry *dentry, struct inode *inode,
-- struct delayed_call *done)
--{
-- DEFINE_DELAYED_CALL(lower_done);
-- struct dentry *lower_dentry;
-- struct path lower_path;
-- char *buf;
-- const char *lower_link;
--
-- if (!dentry)
-- return ERR_PTR(-ECHILD);
--
-- sharefs_get_lower_path(dentry, &lower_path);
-- lower_dentry = lower_path.dentry;
--
-- /*
-- * get link from lower file system, but use a separate
-- * delayed_call callback.
-- */
-- lower_link = vfs_get_link(lower_dentry, &lower_done);
-- if (IS_ERR(lower_link)) {
-- buf = ERR_CAST(lower_link);
-- goto out;
-- }
--
-- /*
-- * we can't pass lower link up: have to make private copy and
-- * pass that.
-- */
-- buf = kstrdup(lower_link, GFP_KERNEL);
-- do_delayed_call(&lower_done);
-- if (!buf) {
-- buf = ERR_PTR(-ENOMEM);
-- goto out;
-- }
--
-- fsstack_copy_attr_atime(d_inode(dentry), d_inode(lower_dentry));
--
-- set_delayed_call(done, kfree_link, buf);
--out:
-- sharefs_put_lower_path(dentry, &lower_path);
-- return buf;
--}
--
- static int sharefs_getattr(struct mnt_idmap *idmap, const struct path *path, struct kstat *stat,
- u32 request_mask, unsigned int flags)
- {
-@@ -65,7 +21,7 @@ static int sharefs_getattr(struct mnt_idmap *idmap, const struct path *path, str
- int ret;
-
- sharefs_get_lower_path(path->dentry, &lower_path);
-- ret = vfs_getattr(&lower_path, stat, request_mask, flags);
-+ ret = vfs_getattr_nosec(&lower_path, stat, request_mask, flags);
- stat->ino = d_inode(path->dentry)->i_ino;
- stat->uid = d_inode(path->dentry)->i_uid;
- stat->gid = d_inode(path->dentry)->i_gid;
-@@ -77,8 +33,7 @@ static int sharefs_getattr(struct mnt_idmap *idmap, const struct path *path, str
- return ret;
- }
-
--static ssize_t
--sharefs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
-+static ssize_t sharefs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
- {
- int err;
- struct dentry *lower_dentry;
-@@ -122,7 +77,7 @@ static int sharefs_permission(struct mnt_idmap *idmap, struct inode *inode, int
- }
-
- #ifdef CONFIG_SHAREFS_SUPPORT_WRITE
--static int sharefs_create(struct inode *dir, struct dentry *dentry,
-+static int sharefs_create(struct mnt_idmap *idmap, struct inode *dir, struct dentry *dentry,
- umode_t mode, bool want_excl)
- {
- int err;
-@@ -141,7 +96,7 @@ static int sharefs_create(struct inode *dir, struct dentry *dentry,
- sharefs_get_lower_path(dentry, &lower_path);
- lower_dentry = lower_path.dentry;
- lower_parent_dentry = lock_parent(lower_dentry);
-- err = vfs_create(d_inode(lower_parent_dentry), lower_dentry, mode,
-+ err = vfs_create(&nop_mnt_idmap, d_inode(lower_parent_dentry), lower_dentry, mode,
- want_excl);
- if (err)
- goto out;
-@@ -158,7 +113,7 @@ static int sharefs_create(struct inode *dir, struct dentry *dentry,
- return err;
- }
-
--static int sharefs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
-+static int sharefs_mkdir(struct mnt_idmap *idmap, struct inode *dir, struct dentry *dentry, umode_t mode)
- {
- int err;
- struct dentry *lower_dentry;
-@@ -176,7 +131,7 @@ static int sharefs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
- sharefs_get_lower_path(dentry, &lower_path);
- lower_dentry = lower_path.dentry;
- lower_parent_dentry = lock_parent(lower_dentry);
-- err = vfs_mkdir(d_inode(lower_parent_dentry), lower_dentry, mode);
-+ err = vfs_mkdir(&nop_mnt_idmap, d_inode(lower_parent_dentry), lower_dentry, mode);
- if (err)
- goto out;
-
-@@ -208,14 +163,14 @@ static int sharefs_unlink(struct inode *dir, struct dentry *dentry)
- lower_dentry = lower_path.dentry;
- dget(lower_dentry);
- lower_dir_dentry = lock_parent(lower_dentry);
-- err = vfs_unlink(lower_dir_inode, lower_dentry, NULL);
-+ err = vfs_unlink(&nop_mnt_idmap, lower_dir_inode, lower_dentry, NULL);
- if (err)
- goto out;
- fsstack_copy_attr_times(dir, lower_dir_inode);
- fsstack_copy_inode_size(dir, lower_dir_inode);
- set_nlink(dentry->d_inode,
- sharefs_lower_inode(dentry->d_inode)->i_nlink);
-- dentry->d_inode->i_ctime = dir->i_ctime;
-+ dentry->d_inode->__i_ctime = dir->__i_ctime;
- d_drop(dentry);
-
- out:
-@@ -235,7 +190,7 @@ static int sharefs_rmdir(struct inode *dir, struct dentry *dentry)
- sharefs_get_lower_path(dentry, &lower_path);
- lower_dentry = lower_path.dentry;
- lower_dir_dentry = lock_parent(lower_dentry);
-- err = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry);
-+ err = vfs_rmdir(&nop_mnt_idmap, lower_dir_dentry->d_inode, lower_dentry);
- if (err)
- goto out;
-
-@@ -252,7 +207,7 @@ static int sharefs_rmdir(struct inode *dir, struct dentry *dentry)
- return err;
- }
-
--static int sharefs_rename(struct inode *old_dir, struct dentry *old_dentry,
-+static int sharefs_rename(struct mnt_idmap *idmap, struct inode *old_dir, struct dentry *old_dentry,
- struct inode *new_dir, struct dentry *new_dentry,
- unsigned int flags)
- {
-@@ -263,6 +218,7 @@ static int sharefs_rename(struct inode *old_dir, struct dentry *old_dentry,
- struct dentry *lower_new_dir_dentry = NULL;
- struct dentry *trap = NULL;
- struct path lower_old_path, lower_new_path;
-+ struct renamedata rename_data;
-
- if (flags)
- return -EINVAL;
-@@ -285,9 +241,14 @@ static int sharefs_rename(struct inode *old_dir, struct dentry *old_dentry,
- goto out;
- }
-
-- err = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry,
-- lower_new_dir_dentry->d_inode, lower_new_dentry,
-- NULL, 0);
-+ rename_data.old_mnt_idmap = &nop_mnt_idmap;
-+ rename_data.old_dir = lower_old_dir_dentry->d_inode;
-+ rename_data.old_dentry = lower_old_dentry;
-+ rename_data.new_mnt_idmap = &nop_mnt_idmap;
-+ rename_data.new_dir = lower_new_dir_dentry->d_inode;
-+ rename_data.new_dentry = lower_new_dentry;
-+ rename_data.flags = flags;
-+ err = vfs_rename(&rename_data);
- if (err)
- goto out;
-
-@@ -308,8 +269,9 @@ static int sharefs_rename(struct inode *old_dir, struct dentry *old_dentry,
- sharefs_put_lower_path(new_dentry, &lower_new_path);
- return err;
- }
-+#endif
-
--static int sharefs_setattr(struct dentry *dentry, struct iattr *ia)
-+static int sharefs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, struct iattr *ia)
- {
- int err;
- struct dentry *lower_dentry;
-@@ -325,7 +287,7 @@ static int sharefs_setattr(struct dentry *dentry, struct iattr *ia)
- * calling notify_change on the lower inode.
- */
-
-- err = setattr_prepare(dentry, ia);
-+ err = setattr_prepare(&nop_mnt_idmap, dentry, ia);
- if (err)
- goto out_err;
-
-@@ -353,12 +315,7 @@ static int sharefs_setattr(struct dentry *dentry, struct iattr *ia)
- truncate_setsize(inode, ia->ia_size);
- }
-
-- /*
-- * mode change is for clearing setuid/setgid bits. Allow lower fs
-- * to interpret this in its own way.
-- */
-- if (lower_ia.ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
-- lower_ia.ia_valid &= ~ATTR_MODE;
-+ lower_ia.ia_valid &= ~(ATTR_MODE|ATTR_UID|ATTR_GID);
-
- /* notify the (possibly copied-up) lower inode */
- /*
-@@ -368,7 +325,7 @@ static int sharefs_setattr(struct dentry *dentry, struct iattr *ia)
- */
-
- inode_lock(d_inode(lower_dentry));
-- err = notify_change(lower_dentry, &lower_ia, /* note: lower_ia */
-+ err = notify_change(&nop_mnt_idmap, lower_dentry, &lower_ia, /* note: lower_ia */
- NULL);
- inode_unlock(d_inode(lower_dentry));
-
-@@ -388,12 +345,11 @@ static int sharefs_setattr(struct dentry *dentry, struct iattr *ia)
- out_err:
- return err;
- }
--#endif
-
- const struct inode_operations sharefs_symlink_iops = {
- .permission = sharefs_permission,
- .getattr = sharefs_getattr,
-- .get_link = sharefs_get_link,
-+ .get_link = NULL,
- .listxattr = sharefs_listxattr,
- };
-
-@@ -402,13 +358,13 @@ const struct inode_operations sharefs_dir_iops = {
- .permission = sharefs_permission,
- .getattr = sharefs_getattr,
- .listxattr = sharefs_listxattr,
-+ .setattr = sharefs_setattr,
- #ifdef CONFIG_SHAREFS_SUPPORT_WRITE
- .unlink = sharefs_unlink,
- .rmdir = sharefs_rmdir,
- .rename = sharefs_rename,
- .create = sharefs_create,
- .mkdir = sharefs_mkdir,
-- .setattr = sharefs_setattr,
- #endif
- };
-
-@@ -416,7 +372,5 @@ const struct inode_operations sharefs_main_iops = {
- .permission = sharefs_permission,
- .getattr = sharefs_getattr,
- .listxattr = sharefs_listxattr,
--#ifdef CONFIG_SHAREFS_SUPPORT_WRITE
- .setattr = sharefs_setattr,
--#endif
- };
-diff --git a/fs/sharefs/main.c b/fs/sharefs/main.c
-index 6a858b49f..f83d5e71d 100644
---- a/fs/sharefs/main.c
-+++ b/fs/sharefs/main.c
-@@ -145,7 +145,6 @@ static struct file_system_type sharefs_fs_type = {
- .kill_sb = generic_shutdown_super,
- .fs_flags = 0,
- };
--MODULE_ALIAS_FS(SHAREFS_NAME);
-
- static int __init init_sharefs_fs(void)
- {
-@@ -182,12 +181,13 @@ static void __exit exit_sharefs_fs(void)
- sharefs_destroy_inode_cache();
- sharefs_destroy_dentry_cache();
- unregister_filesystem(&sharefs_fs_type);
-+ sharefs_exit_configfs();
- pr_info("Completed sharefs module unload\n");
- }
-
--MODULE_AUTHOR("Jingjing Mao");
--MODULE_DESCRIPTION("Sharefs");
--MODULE_LICENSE("GPL");
--
- module_init(init_sharefs_fs);
- module_exit(exit_sharefs_fs);
-+
-+MODULE_LICENSE("GPL V2");
-+MODULE_DESCRIPTION("Share File System");
-+MODULE_ALIAS_FS("sharefs");
-\ No newline at end of file
-diff --git a/fs/sharefs/sharefs.h b/fs/sharefs/sharefs.h
-index 5ac090fc9..fe3067ce5 100644
---- a/fs/sharefs/sharefs.h
-+++ b/fs/sharefs/sharefs.h
-@@ -64,6 +64,8 @@ struct sharefs_sb_info {
- struct super_block *lower_sb;
- /* multi user */
- unsigned int user_id;
-+ bool override;
-+ bool override_support_delete;
- };
-
- /* operations vectors defined in specific files */
-diff --git a/fs/sharefs/super.c b/fs/sharefs/super.c
-index bbe659446..cba0d2206 100644
---- a/fs/sharefs/super.c
-+++ b/fs/sharefs/super.c
-@@ -13,12 +13,16 @@
-
- enum {
- OPT_USER_ID,
-- OPT_ERR,
-+ OPT_OVERRIDE,
-+ OPT_OVERRIDE_SUPPORT_DELETE,
-+ OPT_ERR,
- };
-
- static match_table_t sharefs_tokens = {
- { OPT_USER_ID, "user_id=%s" },
-- { OPT_ERR, NULL }
-+ { OPT_OVERRIDE, "override" },
-+ { OPT_OVERRIDE_SUPPORT_DELETE, "override_support_delete" },
-+ { OPT_ERR, NULL }
- };
-
- int sharefs_parse_options(struct sharefs_sb_info *sbi, const char *data)
-@@ -58,6 +62,12 @@ int sharefs_parse_options(struct sharefs_sb_info *sbi, const char *data)
- sbi->user_id = user_id;
- }
- break;
-+ case OPT_OVERRIDE:
-+ sbi->override = true;
-+ break;
-+ case OPT_OVERRIDE_SUPPORT_DELETE:
-+ sbi->override_support_delete = true;
-+ break;
- default:
- err = -EINVAL;
- goto out;
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index b14d16563..0feb61171 100644
--- a/include/acpi/acpi_drivers.h
@@ -11837,7 +11856,7 @@ index be1dd4c1a..e9180206d 100644
extern void ghes_register_report_chain(struct notifier_block *nb);
extern void ghes_unregister_report_chain(struct notifier_block *nb);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
-index afd94c9b8..78ff80550 100644
+index 1b76d2f83..cb1a465f1 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -358,6 +358,18 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags,
@@ -11860,10 +11879,10 @@ index afd94c9b8..78ff80550 100644
extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
#else
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
-index 624d4a38c..2f979c03d 100644
+index b205c4820..6a10cce1f 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
-@@ -256,6 +256,8 @@ enum cpuhp_state {
+@@ -259,6 +259,8 @@ enum cpuhp_state {
CPUHP_AP_MM_DEMOTION_ONLINE,
CPUHP_AP_X86_HPET_ONLINE,
CPUHP_AP_X86_KVM_CLK_ONLINE,
@@ -11872,30 +11891,8 @@ index 624d4a38c..2f979c03d 100644
CPUHP_AP_ACTIVE,
CPUHP_ONLINE,
};
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 62102f869..730f9088c 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -2838,6 +2838,17 @@ extern bool path_is_under(const struct path *, const struct path *);
-
- extern char *file_path(struct file *, char *, int);
-
-+/**
-+ * is_dot_dotdot - returns true only if @name is "." or ".."
-+ * @name: file name to check
-+ * @len: length of file name, in bytes
-+ */
-+static inline bool is_dot_dotdot(const char *name, size_t len)
-+{
-+ return len && unlikely(name[0] == '.') &&
-+ (len == 1 || (len == 2 && name[1] == '.'));
-+}
-+
- #include
-
- /* needed for stackable file system support */
diff --git a/include/linux/i3c/master.h b/include/linux/i3c/master.h
-index 0b52da4f2..c55be28cf 100644
+index f2eb2452f..30f0066b7 100644
--- a/include/linux/i3c/master.h
+++ b/include/linux/i3c/master.h
@@ -182,6 +182,7 @@ struct i3c_dev_boardinfo {
@@ -12573,6 +12570,59 @@ index 000000000..c80a65f28
+#endif
+
+#endif
+diff --git a/include/linux/memcg_policy.h b/include/linux/memcg_policy.h
+new file mode 100644
+index 000000000..232353277
+--- /dev/null
++++ b/include/linux/memcg_policy.h
+@@ -0,0 +1,47 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * include/linux/memcg_policy.h
++ *
++ * Copyright (c) 2020-2022 Huawei Technologies Co., Ltd.
++ *
++ */
++#ifndef _MEMCG_POLICY_H
++#define _MEMCG_POLICY_H
++
++struct mem_cgroup;
++struct pglist_data;
++struct scan_control;
++
++
++extern struct list_head score_head;
++extern bool score_head_inited;
++extern rwlock_t score_list_lock;
++extern struct cgroup_subsys memory_cgrp_subsys;
++#ifdef CONFIG_HYPERHOLD_FILE_LRU
++void shrink_anon_memcg(struct pglist_data *pgdat,
++ struct mem_cgroup *memcg, struct scan_control *sc,
++ unsigned long *nr);
++bool shrink_node_hyperhold(struct pglist_data *pgdat, struct scan_control *sc);
++#endif /* CONFIG_HYPERHOLD_FILE_LRU */
++
++#ifdef CONFIG_HYPERHOLD_MEMCG
++struct mem_cgroup *get_next_memcg(struct mem_cgroup *prev);
++void get_next_memcg_break(struct mem_cgroup *memcg);
++void memcg_app_score_update(struct mem_cgroup *target);
++
++struct memcg_reclaim {
++ atomic64_t app_score;
++ atomic64_t ub_ufs2zram_ratio;
++#ifdef CONFIG_HYPERHOLD_ZSWAPD
++ atomic_t ub_zram2ufs_ratio;
++ atomic_t ub_mem2zram_ratio;
++ atomic_t refault_threshold;
++ /* anon refault */
++ unsigned long long reclaimed_pagefault;
++#endif
++};
++#define MAX_APP_SCORE 1000
++#endif
++
++
++#endif /* _LINUX_MEMCG_POLICY_H */
diff --git a/include/linux/memcheck.h b/include/linux/memcheck.h
new file mode 100644
index 000000000..087cd760e
@@ -12601,6 +12651,89 @@ index 000000000..087cd760e
+#endif
+#endif /* _MEMCHECK_H */
+
+diff --git a/include/linux/mm_purgeable.h b/include/linux/mm_purgeable.h
+new file mode 100644
+index 000000000..57264d38d
+--- /dev/null
++++ b/include/linux/mm_purgeable.h
+@@ -0,0 +1,77 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * Copyright (c) 2022 Huawei Device Co., Ltd.
++ */
++
++#ifndef __MM_PURGEABLE_MEM_H
++#define __MM_PURGEABLE_MEM_H
++
++#ifdef CONFIG_MEM_PURGEABLE
++
++void mm_init_uxpgd(struct mm_struct *mm);
++void mm_clear_uxpgd(struct mm_struct *mm);
++bool lock_uxpte(struct vm_area_struct *vma, unsigned long addr);
++void unlock_uxpte(struct vm_area_struct *vma, unsigned long addr);
++vm_fault_t do_uxpte_page_fault(struct vm_fault *vmf, pte_t *entry);
++bool uxpte_set_present(struct vm_area_struct *vma, unsigned long addr);
++void uxpte_clear_present(struct vm_area_struct *vma, unsigned long addr);
++
++/*
++ * mm_purg_pages_info: get purgeable pages count of @mm
++ * @mm: [in] pointer to mm
++ * @total_purg_pages: [out] total purgeable pages of @mm
++ * @pined_purg_pages: [out] pined purgeable pages of @mm
++ * If @mm is NULL, return with doing nothing.
++ * If @total_purg_pages and @pined_purg_pages are both NULL, return with doing nothing.
++ * If one of @total_purg_pages and @pined_purg_pages is NULL, other one will be counted.
++ */
++void mm_purg_pages_info(struct mm_struct *mm, unsigned long *total_purg_pages,
++ unsigned long *pined_purg_pages);
++
++/*
++ * purg_pages_info: get global purgeable pages in system
++ * @total_purg_pages: [out] total purgeable pages in system
++ * @pined_purg_pages: [out] pined purgeable pages in system
++ * If @total_purg_pages and @pined_purg_pages are both NULL, return with doing nothing.
++ * If one of @total_purg_pages and @pined_purg_pages is NULL, other one will be counted.
++ */
++void purg_pages_info(unsigned long *total_purg_pages, unsigned long *pined_purg_pages);
++
++#else /* CONFIG_MEM_PURGEABLE */
++
++static inline void mm_init_uxpgd(struct mm_struct *mm) {}
++
++static inline void mm_clear_uxpgd(struct mm_struct *mm) {}
++
++static inline bool lock_uxpte(struct vm_area_struct *vma,
++ unsigned long addr)
++{
++ return false;
++}
++
++static inline void unlock_uxpte(struct vm_area_struct *vma,
++ unsigned long addr) {}
++
++static inline vm_fault_t do_uxpte_page_fault(struct vm_fault *vmf,
++ pte_t *entry)
++{
++ return 0;
++}
++
++static inline bool uxpte_set_present(struct vm_area_struct *vma,
++ unsigned long addr)
++{
++ return false;
++}
++
++static inline void uxpte_clear_present(struct vm_area_struct *vma,
++ unsigned long addr) {}
++
++static inline void mm_purg_pages_info(struct mm_struct *mm,
++ unsigned long *total_purg_pages, unsigned long *pined_purg_pages) {}
++
++static inline void purg_pages_info(unsigned long *total_purg_pages,
++ unsigned long *pined_purg_pages) {}
++#endif /* CONFIG_MEM_PURGEABLE */
++#endif /* __MM_PURGEABLE_MEM_H */
++
diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
index b74a539ec..73f16747d 100644
--- a/include/linux/mtd/partitions.h
@@ -12630,11 +12763,25 @@ index b74a539ec..73f16747d 100644
int (*parse_fn)(struct mtd_info *, const struct mtd_partition **,
struct mtd_part_parser_data *);
void (*cleanup)(const struct mtd_partition *pparts, int nr_parts);
+diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
+index 3ed1e637e30f..142622ae6587 100644
+--- a/include/linux/page-flags.h
++++ b/include/linux/page-flags.h
+@@ -511,9 +511,6 @@ PAGEFLAG(Checked, checked, PF_NO_COMPOUND) /* Used by some filesystems */
+ #ifdef CONFIG_SECURITY_XPM
+ PAGEFLAG(XPMReadonly, xpm_readonly, PF_HEAD)
+ PAGEFLAG(XPMWritetainted, xpm_writetainted, PF_HEAD)
+-#else
+-PAGEFLAG_FALSE(XPMReadonly)
+-PAGEFLAG_FALSE(XPMWritetainted)
+ #endif
+
+ /* Xen */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
-index a6c66ea80..b69da9209 100644
+index 3dce2be62..8520a5c68 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
-@@ -3213,4 +3213,6 @@
+@@ -3221,4 +3221,6 @@
#define PCI_VENDOR_ID_NCUBE 0x10ff
@@ -12674,6 +12821,143 @@ index 1f4048bf2..f695e7e76 100644
+#endif /* CONFIG_ARM || CONFIG_ARM64 */
+
#endif /* __RAS_H__ */
+diff --git a/include/linux/reclaim_acct.h b/include/linux/reclaim_acct.h
+new file mode 100644
+index 000000000..3f638cbec
+--- /dev/null
++++ b/include/linux/reclaim_acct.h
+@@ -0,0 +1,48 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * include/linux/reclaim_acct.h
++ *
++ * Copyright (c) 2022 Huawei Technologies Co., Ltd.
++ */
++
++#ifndef _RECLAIM_ACCT_H
++#define _RECLAIM_ACCT_H
++
++#include
++#include
++
++/* RA is the abbreviation of reclaim accouting */
++enum reclaimacct_stubs {
++ RA_RECLAIM = 0,
++ RA_DRAINALLPAGES,
++ RA_SHRINKFILE,
++ RA_SHRINKANON,
++ RA_SHRINKSLAB,
++ NR_RA_STUBS
++};
++
++enum reclaim_type {
++ DIRECT_RECLAIMS = 0,
++ KSWAPD_RECLAIM,
++ ZSWAPD_RECLAIM,
++ RECLAIM_TYPES
++};
++
++#ifdef CONFIG_RECLAIM_ACCT
++static inline bool is_system_reclaim(enum reclaim_type type)
++{
++ return (type == KSWAPD_RECLAIM || type == ZSWAPD_RECLAIM);
++}
++
++void reclaimacct_tsk_init(struct task_struct *tsk);
++void reclaimacct_init(void);
++
++void reclaimacct_start(enum reclaim_type type, struct reclaim_acct *ra);
++void reclaimacct_end(enum reclaim_type type);
++
++void reclaimacct_substage_start(enum reclaimacct_stubs stub);
++void reclaimacct_substage_end(enum reclaimacct_stubs stub, unsigned long freed,
++ const struct shrinker *shrinker);
++#endif
++
++#endif /* _RECLAIM_ACCT_H */
+diff --git a/include/linux/xpm_types.h b/include/linux/xpm_types.h
+new file mode 100644
+index 000000000..64cfc57d7
+--- /dev/null
++++ b/include/linux/xpm_types.h
+@@ -0,0 +1,21 @@
++/* SPDX-License-Identifier: GPL-2.0-or-later */
++/*
++ * Copyright (c) 2023 Huawei Device Co., Ltd.
++ */
++
++#ifndef _XPM_TYPES_H
++#define _XPM_TYPES_H
++
++#include
++
++struct xpm_region {
++ unsigned long addr_start; /* start adress of xpm region */
++ unsigned long addr_end; /* end address of xpm region */
++};
++
++struct cs_info {
++ uint32_t id_type;
++ uint32_t ownerid;
++};
++
++#endif /* _XPM_TYPES_H */
+diff --git a/include/linux/zswapd.h b/include/linux/zswapd.h
+new file mode 100644
+index 000000000..214fc061a
+--- /dev/null
++++ b/include/linux/zswapd.h
+@@ -0,0 +1,50 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * include/linux/zswapd.h
++ *
++ * Copyright (c) 2020-2022 Huawei Technologies Co., Ltd.
++ */
++
++#ifndef _ZSWAPD_H
++#define _ZSWAPD_H
++
++enum {
++ CACHE_SIZE,
++ SWAP_SIZE,
++ CACHE_PAGE,
++ SWAP_PAGE,
++ CACHE_FAULT,
++ SWAP_FAULT,
++ READ_SIZE,
++ WRITE_SIZE,
++};
++
++struct group_swap_ops {
++ u64 (*group_read)(u16 gid, u64 req_size, void *priv);
++ u64 (*group_write)(u16 gid, u64 req_size, void *priv);
++ u64 (*group_data_size)(u16 gid, int type, void *priv);
++};
++
++struct group_swap_device {
++ void *priv;
++ struct group_swap_ops *ops;
++ struct list_head list;
++};
++
++#ifdef CONFIG_HYPERHOLD_ZSWAPD
++extern int zswapd_run(int nid);
++extern void zswapd_stop(int nid);
++extern void zswapd_status_show(struct seq_file *m);
++extern void wake_all_zswapd(void);
++extern void set_snapshotd_init_flag(unsigned int val);
++extern pid_t get_zswapd_pid(void);
++extern unsigned long long get_free_swap_threshold(void);
++extern struct group_swap_device *register_group_swap(struct group_swap_ops *ops, void *priv);
++extern void unregister_group_swap(struct group_swap_device *gsdev);
++
++#ifdef CONFIG_HYPERHOLD_DEBUG
++extern void memcg_eswap_info_show(struct seq_file *m);
++#endif
++#endif
++
++#endif /* _LINUX_ZSWAPD_H */
diff --git a/include/ras/ras_event.h b/include/ras/ras_event.h
index cbd3ddd7c..417c7fb99 100644
--- a/include/ras/ras_event.h
@@ -12765,6 +13049,19 @@ index 32c59053b..65d58c647 100644
int poll_count;
+diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h
+index 5078d1dfc291..51bcc4598de4 100644
+--- a/include/trace/events/mmflags.h
++++ b/include/trace/events/mmflags.h
+@@ -139,8 +139,6 @@ IF_HAVE_PG_IDLE(idle) \
+ IF_HAVE_PG_IDLE(young) \
+ IF_HAVE_PG_ARCH_X(arch_2) \
+ IF_HAVE_PG_ARCH_X(arch_3) \
+-IF_HAVE_PG_ARCH_X(xpm_readonly) \
+-IF_HAVE_PG_ARCH_X(xpm_writetainted)
+
+ #define show_page_flags(flags) \
+ (flags) ? __print_flags(flags, "|", \
diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h
index add349889..3db2a19df 100644
--- a/include/uapi/linux/serial_core.h
@@ -12875,6 +13172,50 @@ index fe0958f99..21a9435fb 100644
}
static void azx_timecounter_init(struct hdac_stream *azx_dev,
+diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
+index bc32a2e34..2f8c8ed57 100644
+--- a/sound/pci/hda/Kconfig
++++ b/sound/pci/hda/Kconfig
+@@ -26,6 +26,22 @@ config SND_HDA_INTEL
+ To compile this driver as a module, choose M here: the module
+ will be called snd-hda-intel.
+
++config SND_HDA_PHYTIUM
++ tristate "PHYTIUM HD Audio"
++ depends on SOUND
++ select SND_HDA
++ select SND_HDA_ALIGNED_MMIO
++ help
++ Say Y here to support the HDA controller present in PHYTIUM
++ SoCs
++
++ This options enables support for the HD Audio controller
++ present in some PHYTIUM SoCs, used to communicate audio
++ to the "High Definition Audio" codec.
++
++ To compile this driver as a module, choose M here: the module
++ will be called snd-hda-phytium.
++
+ config SND_HDA_TEGRA
+ tristate "NVIDIA Tegra HD Audio"
+ depends on ARCH_TEGRA
+diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile
+index f00fc9ed6..5671283da 100644
+--- a/sound/pci/hda/Makefile
++++ b/sound/pci/hda/Makefile
+@@ -1,6 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ snd-hda-intel-objs := hda_intel.o
+ snd-hda-tegra-objs := hda_tegra.o
++snd-hda-phytium-objs := hda_phytium.o
+
+ snd-hda-codec-y := hda_bind.o hda_codec.o hda_jack.o hda_auto_parser.o hda_sysfs.o
+ snd-hda-codec-y += hda_controller.o
+@@ -70,3 +71,4 @@ obj-$(CONFIG_SND_HDA_SCODEC_TAS2781_I2C) += snd-hda-scodec-tas2781-i2c.o
+ # when built in kernel
+ obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-intel.o
+ obj-$(CONFIG_SND_HDA_TEGRA) += snd-hda-tegra.o
++obj-$(CONFIG_SND_HDA_PHYTIUM) += snd-hda-phytium.o
diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c
index 406779625..86aa86e0c 100644
--- a/sound/pci/hda/hda_controller.c
@@ -12938,3 +13279,57 @@ index 000000000..ec1f3e7f7
+};
+
+#endif
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index 439fa631c..e70e61755 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -96,6 +96,7 @@ source "sound/soc/intel/Kconfig"
+ source "sound/soc/mediatek/Kconfig"
+ source "sound/soc/meson/Kconfig"
+ source "sound/soc/mxs/Kconfig"
++source "sound/soc/phytium/Kconfig"
+ source "sound/soc/pxa/Kconfig"
+ source "sound/soc/qcom/Kconfig"
+ source "sound/soc/rockchip/Kconfig"
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 6d105a23c..810c18314 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -1071,6 +1071,15 @@ config SND_SOC_ES8328_SPI
+ depends on SPI_MASTER
+ select SND_SOC_ES8328
+
++config SND_SOC_ES8336
++ tristate "Everest Semi ES8336 CODEC"
++ depends on I2C
++ select GPIO_PHYTIUM_PCI
++
++config SND_SOC_ES8388
++ tristate "Everest Semi ES8388 CODEC"
++ depends on I2C
++
+ config SND_SOC_GTM601
+ tristate 'GTM601 UMTS modem audio codec'
+
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index a87e56938..52d5ba02c 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -119,6 +119,8 @@ snd-soc-es8326-objs := es8326.o
+ snd-soc-es8328-objs := es8328.o
+ snd-soc-es8328-i2c-objs := es8328-i2c.o
+ snd-soc-es8328-spi-objs := es8328-spi.o
++snd-soc-es8336-objs := es8336.o
++snd-soc-es8388-objs := es8388.o
+ snd-soc-gtm601-objs := gtm601.o
+ snd-soc-hdac-hdmi-objs := hdac_hdmi.o
+ snd-soc-hdac-hda-objs := hdac_hda.o
+@@ -505,6 +507,8 @@ obj-$(CONFIG_SND_SOC_ES8326) += snd-soc-es8326.o
+ obj-$(CONFIG_SND_SOC_ES8328) += snd-soc-es8328.o
+ obj-$(CONFIG_SND_SOC_ES8328_I2C)+= snd-soc-es8328-i2c.o
+ obj-$(CONFIG_SND_SOC_ES8328_SPI)+= snd-soc-es8328-spi.o
++obj-$(CONFIG_SND_SOC_ES8336) += snd-soc-es8336.o
++obj-$(CONFIG_SND_SOC_ES8388) += snd-soc-es8388.o
+ obj-$(CONFIG_SND_SOC_GTM601) += snd-soc-gtm601.o
+ obj-$(CONFIG_SND_SOC_HDAC_HDMI) += snd-soc-hdac-hdmi.o
+ obj-$(CONFIG_SND_SOC_HDAC_HDA) += snd-soc-hdac-hda.o
diff --git a/device_board_phytium/common/kernel_source/linux-6.6/phytium_standard_defconfig b/device_board_phytium/common/kernel_source/linux-6.6/phytium_standard_defconfig
index a34d01d0bd0fb037a47e389257380e94d184fe07..1a11b7cf087fbc25c78e7bde5955b3252efc0d57 100644
--- a/device_board_phytium/common/kernel_source/linux-6.6/phytium_standard_defconfig
+++ b/device_board_phytium/common/kernel_source/linux-6.6/phytium_standard_defconfig
@@ -286,7 +286,7 @@ CONFIG_ARM64_PAGE_SHIFT=12
CONFIG_ARM64_CONT_PTE_SHIFT=4
CONFIG_ARM64_CONT_PMD_SHIFT=4
CONFIG_ARCH_MMAP_RND_BITS_MIN=18
-CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_STACKTRACE_SUPPORT=y
@@ -300,7 +300,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_SMP=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
+CONFIG_PGTABLE_LEVELS=3
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
@@ -410,9 +410,9 @@ CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
CONFIG_ARM64_4K_PAGES=y
# CONFIG_ARM64_16K_PAGES is not set
# CONFIG_ARM64_64K_PAGES is not set
-# CONFIG_ARM64_VA_BITS_39 is not set
-CONFIG_ARM64_VA_BITS_48=y
-CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_VA_BITS_39=y
+# CONFIG_ARM64_VA_BITS_48 is not set
+CONFIG_ARM64_VA_BITS=39
CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARM64_PA_BITS=48
# CONFIG_CPU_BIG_ENDIAN is not set
@@ -4263,9 +4263,9 @@ CONFIG_MFD_PHYTIUM_I2S_MMD=y
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RT5120 is not set
# CONFIG_MFD_RC5T583 is not set
-CONFIG_MFD_RK8XX=y
-CONFIG_MFD_RK8XX_I2C=y
-CONFIG_MFD_RK8XX_SPI=y
+# CONFIG_MFD_RK8XX is not set
+# CONFIG_MFD_RK8XX_I2C is not set
+# CONFIG_MFD_RK8XX_SPI is not set
# CONFIG_MFD_RN5T618 is not set
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
@@ -5106,7 +5106,7 @@ CONFIG_DRM_TI_SN65DSI86=m
# 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=m
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511_CEC=y
@@ -8835,3 +8835,5 @@ CONFIG_VIDEO_PHYTIUM_VPU=y
CONFIG_OHOS_VENDOR=n
CONFIG_DRM_MWV207=y
+
+CONFIG_MEM_PURGEABLE=y
diff --git a/device_board_phytium/common/patch/0001=build=add_phytium_whitelist.patch b/device_board_phytium/common/patch/0001=build=add_phytium_whitelist.patch
index 42cb7ce5e9d293f2c3d24fd11c368ca81fbbbe3c..d6c318a9d7231d86985709565a7b7584f00f6e3c 100755
--- a/device_board_phytium/common/patch/0001=build=add_phytium_whitelist.patch
+++ b/device_board_phytium/common/patch/0001=build=add_phytium_whitelist.patch
@@ -1,5 +1,5 @@
diff --git a/compile_standard_whitelist.json b/compile_standard_whitelist.json
-index 6a5175cb..09cf38e8 100644
+index a99942a7..941f27d4 100644
--- a/compile_standard_whitelist.json
+++ b/compile_standard_whitelist.json
@@ -6,6 +6,9 @@
@@ -12,7 +12,7 @@ index 6a5175cb..09cf38e8 100644
"vendor/hihope/ipcamera/ohos.build"
],
"subsystem_components": [],
-@@ -22,6 +25,7 @@
+@@ -21,6 +24,7 @@
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2/pipeline_core:camera_pipeline_core",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2:camera_host_vdi_impl_1.0",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2:camera_pipeline_config",
@@ -20,7 +20,7 @@ index 6a5175cb..09cf38e8 100644
"//device/soc/rockchip/rk3568/hardware/codec/jpeg:libjpeg_vdi_impl",
"//device/soc/rockchip/rk3568/hardware/codec:libcodec_oem_interface",
"//device/soc/rockchip/rk3568/hardware/display:display_composer_vendor",
-@@ -29,6 +33,12 @@
+@@ -28,6 +32,12 @@
"//device/soc/rockchip/rk3568/hardware/display:libdisplay_buffer_vdi_impl",
"//device/soc/rockchip/rk3568/hardware/display:libdisplay_buffer_vendor",
"//device/soc/rockchip/rk3568/hardware/display:libdisplay_composer_vdi_impl",
@@ -33,7 +33,7 @@ index 6a5175cb..09cf38e8 100644
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/legacy:librockchip_vpu",
"//device/soc/rockchip/rk3568/hardware/omx_il/component/common:libRkOMX_Resourcemanager",
"//device/soc/rockchip/rk3568/hardware/omx_il/component/video/dec:libomxvpu_dec",
-@@ -116,12 +126,19 @@
+@@ -106,12 +116,19 @@
"//developtools/syscap_codec:syscap_tool_bin",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2/pipeline_core:camera_pipeline_core",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2:camera_host_vdi_impl_1.0",
@@ -53,7 +53,7 @@ index 6a5175cb..09cf38e8 100644
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/hdi_mpp:hdi_mpp",
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/legacy:librockchip_vpu",
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/legacy:rockchip_vpu_src",
-@@ -405,6 +422,7 @@
+@@ -382,6 +399,7 @@
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2/pipeline_core:camera_ipp_algo_example",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2/pipeline_core:camera_pipeline_core",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2:camera_host_vdi_impl_1.0",
@@ -61,7 +61,7 @@ index 6a5175cb..09cf38e8 100644
"//device/soc/rockchip/rk3568/hardware/codec/jpeg:libjpeg_vdi_impl",
"//device/soc/rockchip/rk3568/hardware/codec:libcodec_oem_interface",
"//device/soc/rockchip/rk3568/hardware/display:display_composer_vendor",
-@@ -413,6 +431,12 @@
+@@ -390,6 +408,12 @@
"//device/soc/rockchip/rk3568/hardware/display:libdisplay_buffer_vendor",
"//device/soc/rockchip/rk3568/hardware/display:libdisplay_composer_vdi_impl",
"//device/soc/rockchip/rk3568/hardware/display:libhigbm_vendor",
@@ -74,9 +74,9 @@ index 6a5175cb..09cf38e8 100644
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/hdi_mpp:hdi_mpp",
"//device/soc/rockchip/rk3568/hardware/mpp/mpp/legacy:rockchip_vpu_src",
"//device/soc/rockchip/rk3568/hardware/omx_il/component/common:RkOMX_Basecomponent",
-@@ -459,9 +483,16 @@
- "//base/update/updateservice/services/engine:updateservice",
- "//developtools/hdc/test:hdc_common",
+@@ -483,9 +507,16 @@
+ "//base/security/huks/interfaces/inner_api/huks_lite:huks_server",
+ "//base/security/huks/utils/crypto_adapter:libhuks_utils_client_service_adapter_static",
"//device/board/hihope/rk3568/camera/vdi_impl/v4l2/pipeline_core:camera_pipeline_core",
+ "//device/board/phytium/common/wifi/rtw8821:rtw88",
"//device/soc/rockchip/rk3568/hardware/display:display_composer_vendor",
diff --git a/device_board_phytium/common/patch/0002=base-startup-appspawn=fix-define-error.patch b/device_board_phytium/common/patch/0002=base-startup-appspawn=fix-define-error.patch
index 9921c9253c21953ddea35ab7ff5dbfb1d4f10d44..84025df80836755308cc4fe8d9b24d7f398f45b7 100755
--- a/device_board_phytium/common/patch/0002=base-startup-appspawn=fix-define-error.patch
+++ b/device_board_phytium/common/patch/0002=base-startup-appspawn=fix-define-error.patch
@@ -1,19 +1,19 @@
diff --git a/modules/common/appspawn_adapter.cpp b/modules/common/appspawn_adapter.cpp
-index 50dbcba..d8b14f4 100644
+index 67bc381..15b02dd 100644
--- a/modules/common/appspawn_adapter.cpp
+++ b/modules/common/appspawn_adapter.cpp
-@@ -61,9 +61,9 @@ int SetAppAccessToken(const AppSpawnMgr *content, const AppSpawningCtx *property
+@@ -65,9 +65,9 @@ int SetAppAccessToken(const AppSpawnMgr *content, const AppSpawningCtx *property
return 0;
}
+#if defined(WITH_SELINUX) && !defined(APPSPAWN_TEST)
- APPSPAWN_STATIC int SetSelinuxConNweb(const AppSpawnMgr *content, const AppSpawningCtx *property)
+ int SetSelinuxConNweb(const AppSpawnMgr *content, const AppSpawningCtx *property)
{
-#if defined(WITH_SELINUX) && !defined(APPSPAWN_TEST)
uint32_t len = 0;
std::string processType =
reinterpret_cast(GetAppPropertyExt(property, MSG_EXT_NAME_PROCESS_TYPE, &len));
-@@ -74,9 +74,9 @@ APPSPAWN_STATIC int SetSelinuxConNweb(const AppSpawnMgr *content, const AppSpawn
+@@ -78,9 +78,9 @@ int SetSelinuxConNweb(const AppSpawnMgr *content, const AppSpawningCtx *property
ret = setcon("u:r:isolated_gpu:s0");
}
APPSPAWN_CHECK_ONLY_LOG(ret == 0, "Setcon failed, errno: %{public}d", errno);
@@ -22,5 +22,5 @@ index 50dbcba..d8b14f4 100644
}
+#endif
- int SetSelinuxCon(const AppSpawnMgr *content, const AppSpawningCtx *property)
- {
+ #ifdef WITH_SELINUX
+ void SetHapDomainInfo(HapDomainInfo *hapDomainInfo, const AppSpawningCtx *property,
diff --git a/device_board_phytium/common/patch/0004=drivers-peripheral=support_alsa.patch b/device_board_phytium/common/patch/0004=drivers-peripheral=support_alsa.patch
index 6b74ca9d171b0c1a5c9ee78cee4ee45b94228bfb..1be5ac23e45075858ffae4398483879e5b397882 100755
--- a/device_board_phytium/common/patch/0004=drivers-peripheral=support_alsa.patch
+++ b/device_board_phytium/common/patch/0004=drivers-peripheral=support_alsa.patch
@@ -1,24 +1,24 @@
diff --git a/audio/bundle.json b/audio/bundle.json
-index 24baed4d0..2b7e7011e 100755
+index e013a0b88..8deaa8c6e 100755
--- a/audio/bundle.json
+++ b/audio/bundle.json
-@@ -45,7 +45,8 @@
- "build": {
+@@ -52,7 +52,8 @@
"sub_component": [
"//drivers/peripheral/audio:hdi_audio",
-- "//drivers/peripheral/audio/effect:effect_model"
-+ "//drivers/peripheral/audio/effect:effect_model",
+ "//drivers/peripheral/audio/effect:effect_model",
+- "//drivers/peripheral/audio:libaudio_header_static"
++ "//drivers/peripheral/audio:libaudio_header_static",
+ "//third_party/alsa-utils:alsa-utils"
],
- "test": [
- "//drivers/peripheral/audio/test:audio_test_entry",
+ "inner_kits": [
+ {
diff --git a/audio/hdi_service/supportlibs/BUILD.gn b/audio/hdi_service/supportlibs/BUILD.gn
-index 080713fca..d0086955c 100644
+index 43913338d..5242e0bae 100644
--- a/audio/hdi_service/supportlibs/BUILD.gn
+++ b/audio/hdi_service/supportlibs/BUILD.gn
-@@ -84,7 +84,9 @@ if (defined(ohos_lite)) {
- "//device/hmos_emulator/hardware/audio/audio_alsa/vendor_capture.c",
- ]
+@@ -82,7 +82,9 @@ if (defined(ohos_lite)) {
+ sources +=
+ [ "$hdf_audio_path/supportlibs/alsa_adapter/src/vendor_capture.c" ]
} else {
- sources += [ "//device/board/${product_company}/${device_name}/audio_alsa/vendor_capture.c" ]
+ sources += [ "//device/board/${product_company}/common/audio_alsa/vendor_capture.c",
@@ -27,17 +27,9 @@ index 080713fca..d0086955c 100644
}
} else {
sources += [
-@@ -154,7 +156,6 @@ if (defined(ohos_lite)) {
- "$hdf_audio_path/supportlibs/alsa_adapter/src/alsa_lib_render.c",
- "$hdf_audio_path/supportlibs/alsa_adapter/src/alsa_snd_render.c",
- "$hdf_audio_path/supportlibs/alsa_adapter/src/alsa_soundcard.c",
-- "//device/board/${product_company}/${device_name}/audio_alsa/vendor_render.c",
- "//third_party/cJSON/cJSON.c",
- ]
- if (defined(is_emulator) && is_emulator) {
-@@ -162,7 +163,9 @@ if (defined(ohos_lite)) {
- "//device/hmos_emulator/hardware/audio/audio_alsa/vendor_render.c",
- ]
+@@ -156,7 +158,9 @@ if (defined(ohos_lite)) {
+ sources +=
+ [ "$hdf_audio_path/supportlibs/alsa_adapter/src/vendor_render.c" ]
} else {
- sources += [ "//device/board/${product_company}/${device_name}/audio_alsa/vendor_render.c" ]
+ sources += [ "//device/board/${product_company}/common/audio_alsa/vendor_render.c",
@@ -67,10 +59,10 @@ index 850408a66..ab4c87bc1 100755
\ No newline at end of file
+#endif /* ALSA_SOUNDCARD_H */
diff --git a/audio/supportlibs/alsa_adapter/src/alsa_soundcard.c b/audio/supportlibs/alsa_adapter/src/alsa_soundcard.c
-index dab1bdb30..159eb3ae9 100644
+index e6bd6ebf1..31c3049cf 100644
--- a/audio/supportlibs/alsa_adapter/src/alsa_soundcard.c
+++ b/audio/supportlibs/alsa_adapter/src/alsa_soundcard.c
-@@ -887,6 +887,48 @@ static int32_t SetElementInfo(snd_ctl_t *alsaHandle, const struct AlsaMixerCtlEl
+@@ -873,6 +873,48 @@ static int32_t SetElementInfo(snd_ctl_t *alsaHandle, const struct AlsaMixerCtlEl
return HDF_SUCCESS;
}
@@ -119,20 +111,20 @@ index dab1bdb30..159eb3ae9 100644
int32_t SndElementReadInt(struct AlsaSoundCard *cardIns,
const struct AlsaMixerCtlElement *ctlElem, long *value)
{
-@@ -1098,6 +1140,7 @@ int32_t SndElementWriteInt(
+@@ -1075,6 +1117,7 @@ int32_t SndElementReadSwitch(
+ int32_t SndElementWriteInt(
struct AlsaSoundCard *cardIns, const struct AlsaMixerCtlElement *ctlElem, long value)
{
- int ret;
+ unsigned int i,count;
snd_ctl_t *alsaHandle = NULL;
- snd_ctl_elem_id_t *elem_id;
- snd_ctl_elem_info_t *elem_info;
-@@ -1128,11 +1171,14 @@ int32_t SndElementWriteInt(
+ snd_ctl_elem_id_t *elem_id = NULL;
+ snd_ctl_elem_info_t *elem_info = NULL;
+@@ -1104,11 +1147,14 @@ int32_t SndElementWriteInt(
}
snd_ctl_elem_value_set_id(elem_value, elem_id);
+ count = snd_ctl_elem_info_get_count(elem_info);
- type = snd_ctl_elem_info_get_type(elem_info);
+ snd_ctl_elem_type_t type = snd_ctl_elem_info_get_type(elem_info);
if (type == SND_CTL_ELEM_TYPE_INTEGER) {
- snd_ctl_elem_value_set_integer(elem_value, 0, value);
+ for(i=0; i < count; i++)
diff --git a/device_board_phytium/common/patch/0005=foundation-ability-ability_runtime=ability_runtime.patch b/device_board_phytium/common/patch/0005=foundation-ability-ability_runtime=ability_runtime.patch
old mode 100755
new mode 100644
index 990cd62d805198d46e19ad73abec1c493d11877d..3ae35d14d94763e095178303449b3e4848677e79
--- a/device_board_phytium/common/patch/0005=foundation-ability-ability_runtime=ability_runtime.patch
+++ b/device_board_phytium/common/patch/0005=foundation-ability-ability_runtime=ability_runtime.patch
@@ -1,9 +1,9 @@
diff --git a/frameworks/native/appkit/app/main_thread.cpp b/frameworks/native/appkit/app/main_thread.cpp
-index bf5ec9c..198dace 100644
+index 92355cbe0e..c5aa602c33 100644
--- a/frameworks/native/appkit/app/main_thread.cpp
+++ b/frameworks/native/appkit/app/main_thread.cpp
-@@ -168,6 +168,46 @@ const int32_t TYPE_RESERVE = 1;
- const int32_t TYPE_OTHERS = 2;
+@@ -194,6 +194,46 @@ constexpr int32_t PRELOAD_TASK_DELAY_TIME = 2000; //millisecond
+ #endif
extern "C" int DFX_SetAppRunningUniqueId(const char* appRunningId, size_t len) __attribute__((weak));
+
@@ -49,12 +49,11 @@ index bf5ec9c..198dace 100644
} // namespace
void MainThread::GetNativeLibPath(const BundleInfo &bundleInfo, const HspList &hspList, AppLibPathMap &appLibPaths)
-@@ -1374,7 +1414,8 @@ void MainThread::HandleLaunchApplication(const AppLaunchData &appLaunchData, con
- #ifdef SUPPORT_GRAPHICS
- TAG_LOGD(
- AAFwkTag::APPKIT, "HandleLaunchApplication cacheDir: %{public}s", applicationContext->GetCacheDir().c_str());
+@@ -1446,7 +1486,7 @@ void MainThread::HandleLaunchApplication(const AppLaunchData &appLaunchData, con
+ application_->SetApplicationContext(applicationContext);
+
+ #ifdef SUPPORT_SCREEN
- OHOS::EglSetCacheDir(applicationContext->GetCacheDir());
-+ // OHOS::EglSetCacheDir(applicationContext->GetCacheDir());
+ SetCacheDir(applicationContext->GetCacheDir());
#endif
diff --git a/device_board_phytium/common/patch/0009=foundation-filemanagement-storage_service=auto_mount_usb_storage_device.patch b/device_board_phytium/common/patch/0009=foundation-filemanagement-storage_service=auto_mount_usb_storage_device.patch
index 10f2e6be1fb5734e4a5306a4c81b861b2b1cba30..17094cc728e8cb70d0533f9100524be3f7e654bc 100755
--- a/device_board_phytium/common/patch/0009=foundation-filemanagement-storage_service=auto_mount_usb_storage_device.patch
+++ b/device_board_phytium/common/patch/0009=foundation-filemanagement-storage_service=auto_mount_usb_storage_device.patch
@@ -1,13 +1,11 @@
diff --git a/services/storage_daemon/disk_config b/services/storage_daemon/disk_config
-index 8b65c1b6..8e1cf764 100644
+index 4395ebef..873560fb 100644
--- a/services/storage_daemon/disk_config
+++ b/services/storage_daemon/disk_config
-@@ -4,4 +4,8 @@ sysPattern /devices/platform/fd800000.usb/* label disk flag 0
- sysPattern /devices/platform/soc/f9890000.ehci/* label disk flag 0
- sysPattern /devices/platform/hi_mci.1/mmc_host/mmc1/* label disk flag 0
+@@ -6,3 +6,8 @@ sysPattern /devices/platform/hi_mci.1/mmc_host/mmc1/* label disk flag 0
sysPattern /devices/platform/hisi_usb/f8600000.dwc3/* label disk flag 0
--sysPattern /devices/platform/hiusb/hiusb_port/* label disk flag 0
-\ No newline at end of file
+ sysPattern /devices/platform/hiusb/hiusb_port/* label disk flag 0
+ sysPattern /devices/platform/hisi_usb/f8400000.dwc3/* label disk flag 0
+sysPattern /devices/platform/hiusb/hiusb_port/* label disk flag 0
+sysPattern /devices/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:02.0/* label disk flag 0
+sysPattern /devices/platform/soc/40000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:02.0/* label disk flag 0
diff --git a/device_board_phytium/common/patch/0013=foundation-bundlemanager-bundle_framework=wukong_run.patch b/device_board_phytium/common/patch/0013=foundation-bundlemanager-bundle_framework=wukong_run.patch
index 07410aa837b15a48159272193e69935f25560fde..21ba0b8c0f0e3b6b6525027a0aba35e824a6a1b1 100755
--- a/device_board_phytium/common/patch/0013=foundation-bundlemanager-bundle_framework=wukong_run.patch
+++ b/device_board_phytium/common/patch/0013=foundation-bundlemanager-bundle_framework=wukong_run.patch
@@ -1,16 +1,16 @@
diff --git a/services/bundlemgr/src/bundle_mgr_host_impl.cpp b/services/bundlemgr/src/bundle_mgr_host_impl.cpp
-index 291b57c5c..3b922573d 100644
+index 374e29444..64a6094fc 100644
--- a/services/bundlemgr/src/bundle_mgr_host_impl.cpp
+++ b/services/bundlemgr/src/bundle_mgr_host_impl.cpp
-@@ -76,6 +76,7 @@ const std::string FUNCATION_GET_SHARED_BUNDLE_INFO_BY_SELF = "BundleMgrHostImpl:
- const std::string FUNCATION_GET_HAP_MODULE_INFO = "BundleMgrHostImpl::GetHapModuleInfo";
- const std::string FUNCATION_BATCH_BUNDLE_INFO = "BundleMgrHostImpl::BatchGetBundleInfo";
- const std::string FUNCATION_GET_BUNDLE_INFO = "BundleMgrHostImpl::GetBundleInfo";
+@@ -72,6 +72,7 @@ const std::string PLUS = "+";
+ const std::string AUTH_TITLE = " ";
+ const uint64_t BAD_CONTEXT_ID = 0;
+ const uint64_t VECTOR_SIZE_MAX = 200;
+const int USE_ID = 100;
}
bool BundleMgrHostImpl::GetApplicationInfo(
-@@ -436,8 +437,10 @@ bool BundleMgrHostImpl::GetBundleInfos(int32_t flags, std::vector &b
+@@ -434,8 +435,10 @@ bool BundleMgrHostImpl::GetBundleInfos(int32_t flags, std::vector &b
return true;
}
if (!BundlePermissionMgr::VerifyCallingPermissionForAll(Constants::PERMISSION_GET_BUNDLE_INFO_PRIVILEGED)) {
@@ -23,7 +23,7 @@ index 291b57c5c..3b922573d 100644
}
LOG_D(BMS_TAG_QUERY, "verify permission success, begin to GetBundleInfos");
if (!BundlePermissionMgr::IsNativeTokenType() &&
-@@ -921,8 +924,10 @@ bool BundleMgrHostImpl::QueryAllAbilityInfos(const Want &want, int32_t userId, s
+@@ -1042,8 +1045,10 @@ bool BundleMgrHostImpl::QueryAllAbilityInfos(const Want &want, int32_t userId, s
return true;
}
if (!BundlePermissionMgr::VerifyCallingPermissionForAll(Constants::PERMISSION_GET_BUNDLE_INFO_PRIVILEGED)) {
diff --git a/device_board_phytium/common/patch/0014=foundation-multimedia-player_framework=disable-decoding-in-avmetadata.patch b/device_board_phytium/common/patch/0014=foundation-multimedia-player_framework=disable-decoding-in-avmetadata.patch
index 1f85f4908f789f79bd3108796b628dd832eef04c..e45b8b4810ad30d791aee389d23542f4b992059a 100755
--- a/device_board_phytium/common/patch/0014=foundation-multimedia-player_framework=disable-decoding-in-avmetadata.patch
+++ b/device_board_phytium/common/patch/0014=foundation-multimedia-player_framework=disable-decoding-in-avmetadata.patch
@@ -1,8 +1,8 @@
diff --git a/services/engine/histreamer/avmetadatahelper/av_thumbnail_generator.cpp b/services/engine/histreamer/avmetadatahelper/av_thumbnail_generator.cpp
-index 1c26d266c..f4c6dd2d4 100644
+index ccb98d1a0..52d423b4c 100644
--- a/services/engine/histreamer/avmetadatahelper/av_thumbnail_generator.cpp
+++ b/services/engine/histreamer/avmetadatahelper/av_thumbnail_generator.cpp
-@@ -99,7 +99,16 @@ Status AVThumbnailGenerator::InitDecoder()
+@@ -130,7 +130,16 @@ Status AVThumbnailGenerator::InitDecoder()
videoDecoder_->Start();
return Status::OK;
}
@@ -20,8 +20,8 @@ index 1c26d266c..f4c6dd2d4 100644
CHECK_AND_RETURN_RET_LOG(videoDecoder_ != nullptr, Status::ERROR_NO_MEMORY, "Create videoDecoder_ is nullptr");
Format trackFormat{};
trackFormat.SetMeta(GetVideoTrackInfo());
-@@ -627,4 +636,4 @@ void AVThumbnailGenerator::PauseFetchFrame()
- videoDecoder_->Flush();
+@@ -817,4 +826,4 @@ void AVThumbnailGenerator::PauseFetchFrame()
+ FlushBufferQueue();
}
} // namespace Media
-} // namespace OHOS
diff --git a/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=close-av_codec_service-sandbox.patch b/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=close-av_codec_service-sandbox.patch
index 8bb1d90cd3fa51018ad9c11dde5141e30ccce3c0..558ccaad6cca37fdb2458b4de4ecc5e412e1e7be 100755
--- a/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=close-av_codec_service-sandbox.patch
+++ b/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=close-av_codec_service-sandbox.patch
@@ -1,7 +1,7 @@
-diff --git a/services/etc/av_codec_service.cfg b/services/etc/av_codec_service.cfg
+diff --git a/services/etc/process.cfg b/services/etc/process.cfg
index f72c618f4..ab40e51f5 100644
---- a/services/etc/av_codec_service.cfg
-+++ b/services/etc/av_codec_service.cfg
+--- a/services/etc/process.cfg
++++ b/services/etc/process.cfg
@@ -2,6 +2,7 @@
"services" : [{
"name" : "av_codec_service",
diff --git a/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=modify-hcodec-for-histreamer.patch b/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=modify-hcodec-for-histreamer.patch
index c8f3dfa9e3d997bbcd137e5475f8200107cd69bc..d0a68c25e8f86b88ac68a4c7144ffe3e99d61b57 100755
--- a/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=modify-hcodec-for-histreamer.patch
+++ b/device_board_phytium/common/patch/0015=foundation-multimedia-av_codec=modify-hcodec-for-histreamer.patch
@@ -1,20 +1,20 @@
diff --git a/services/engine/codec/video/fcodec/fcodec.cpp b/services/engine/codec/video/fcodec/fcodec.cpp
-index e6d27e8db..e12dda69c 100644
+index f80fd0efb..d0827e541 100644
--- a/services/engine/codec/video/fcodec/fcodec.cpp
+++ b/services/engine/codec/video/fcodec/fcodec.cpp
-@@ -62,6 +62,7 @@ constexpr struct {
+@@ -69,6 +69,7 @@ constexpr struct {
const bool isEncoder;
} SUPPORT_VCODEC[] = {
{AVCodecCodecName::VIDEO_DECODER_AVC_NAME, CodecMimeType::VIDEO_AVC, "h264", false},
+ {AVCodecCodecName::VIDEO_DECODER_HEVC_NAME, CodecMimeType::VIDEO_HEVC, "hevc", false},
- };
- constexpr uint32_t SUPPORT_VCODEC_NUM = sizeof(SUPPORT_VCODEC) / sizeof(SUPPORT_VCODEC[0]);
- } // namespace
+ {AVCodecCodecName::VIDEO_DECODER_H263_NAME, CodecMimeType::VIDEO_H263, "h263", false},
+ {AVCodecCodecName::VIDEO_DECODER_MPEG2_NAME, CodecMimeType::VIDEO_MPEG2, "mpeg2video", false},
+ {AVCodecCodecName::VIDEO_DECODER_MPEG4_NAME, CodecMimeType::VIDEO_MPEG4, "mpeg4", false},
diff --git a/services/engine/codec/video/hcodec/hcodec.cpp b/services/engine/codec/video/hcodec/hcodec.cpp
-index edee5452f..c41e6c39e 100644
+index a8db886a6..752d0bf38 100644
--- a/services/engine/codec/video/hcodec/hcodec.cpp
+++ b/services/engine/codec/video/hcodec/hcodec.cpp
-@@ -429,6 +429,7 @@ bool HCodec::GetPixelFmtFromUser(const Format &format)
+@@ -471,6 +471,7 @@ bool HCodec::GetPixelFmtFromUser(const Format &format)
} else {
HLOGI("user don't set VideoPixelFormat, use default");
for (int32_t f : caps_.port.video.supportPixFmts) {
@@ -22,15 +22,15 @@ index edee5452f..c41e6c39e 100644
fmt = TypeConverter::GraphicFmtToFmt(static_cast(f));
if (fmt.has_value()) {
break;
-@@ -900,6 +901,7 @@ void HCodec::OnQueueInputBuffer(BufferOperationMode mode, BufferInfo* info)
+@@ -949,6 +950,7 @@ int32_t HCodec::OnQueueInputBuffer(BufferOperationMode mode, BufferInfo* info)
if (eos) {
inputPortEos_ = true;
}
+ info->omxBuffer->flag |= OMX_BUFFERFLAG_ENDOFFRAME;
- int32_t ret = NotifyOmxToEmptyThisInBuffer(*info);
- if (ret != AVCS_ERR_OK) {
- SignalError(AVCODEC_ERROR_INTERNAL, AVCS_ERR_UNKNOWN);
-@@ -1366,4 +1368,4 @@ const char* HCodec::ToString(MsgWhat what)
+ return NotifyOmxToEmptyThisInBuffer(*info);
+ }
+ default: {
+@@ -1441,4 +1443,4 @@ const char* HCodec::ToString(MsgWhat what)
}
return "UNKNOWN";
}
@@ -38,22 +38,22 @@ index edee5452f..c41e6c39e 100644
\ No newline at end of file
+} // namespace OHOS::MediaAVCodec
diff --git a/services/media_engine/modules/sink/video_sink.cpp b/services/media_engine/modules/sink/video_sink.cpp
-index 95e35a1c1..9761eabcd 100644
+index ebf6e4d26..522fc94a7 100644
--- a/services/media_engine/modules/sink/video_sink.cpp
+++ b/services/media_engine/modules/sink/video_sink.cpp
-@@ -184,6 +184,7 @@ int64_t VideoSink::CheckBufferLatenessMayWait(const std::shared_ptrflag_ & BUFFER_FLAG_KEY_FRAME) == 0); // buffer is too late, drop it
+ dropFlag = false;
return dropFlag ? -1 : waitTimeUs;
}
diff --git a/services/media_engine/plugins/ffmpeg_adapter/demuxer/ffmpeg_demuxer_plugin.cpp b/services/media_engine/plugins/ffmpeg_adapter/demuxer/ffmpeg_demuxer_plugin.cpp
-index 3344adae0..559a47f59 100644
+index 96afa5bfd..5a57d3fc0 100644
--- a/services/media_engine/plugins/ffmpeg_adapter/demuxer/ffmpeg_demuxer_plugin.cpp
+++ b/services/media_engine/plugins/ffmpeg_adapter/demuxer/ffmpeg_demuxer_plugin.cpp
-@@ -81,6 +81,7 @@ static const std::map g_seekModeToFFmpegSeekFlags = {
+@@ -97,6 +97,7 @@ static const std::map g_seekModeToFFmpegSeekFlags = {
static const std::map g_bitstreamFilterMap = {
{ AV_CODEC_ID_H264, "h264_mp4toannexb" },
@@ -61,12 +61,12 @@ index 3344adae0..559a47f59 100644
};
static const std::map g_streamParserMap = {
-@@ -851,7 +852,7 @@ void FFmpegDemuxerPlugin::ConvertPacketToAnnexb(std::shared_ptr sample
+@@ -567,7 +568,7 @@ Status FFmpegDemuxerPlugin::ConvertPacketToAnnexb(std::shared_ptr samp
SetDropTag(*srcAVPacket, sample, AV_CODEC_ID_HEVC);
} else if (codecId == AV_CODEC_ID_VVC && streamParser_ != nullptr && streamParserInited_) {
- ConvertVvcToAnnexb(*srcAVPacket, dstSamplePacket);
+ ret = ConvertVvcToAnnexb(*srcAVPacket, dstSamplePacket);
- } else if (codecId == AV_CODEC_ID_H264 && avbsfContext_ != nullptr) {
+ } else if ((codecId == AV_CODEC_ID_H264 || codecId == AV_CODEC_ID_HEVC) && avbsfContext_ != nullptr) {
- ConvertAvcToAnnexb(*srcAVPacket);
+ ret = ConvertAvcToAnnexb(*srcAVPacket);
SetDropTag(*srcAVPacket, sample, AV_CODEC_ID_H264);
}
diff --git a/device_board_phytium/common/patch/0017=foundation-graphic-graphic_2d=modify-bootanimation-for-histreamer.patch b/device_board_phytium/common/patch/0017=foundation-graphic-graphic_2d=modify-bootanimation-for-histreamer.patch
index 24fc4b9c06c72e0fe3bcaeed1fd99b82bd263930..ecc14b7fd0b4b8f161933eb44708d15e58a8983b 100755
--- a/device_board_phytium/common/patch/0017=foundation-graphic-graphic_2d=modify-bootanimation-for-histreamer.patch
+++ b/device_board_phytium/common/patch/0017=foundation-graphic-graphic_2d=modify-bootanimation-for-histreamer.patch
@@ -1,20 +1,20 @@
diff --git a/frameworks/bootanimation/src/boot_animation_strategy.cpp b/frameworks/bootanimation/src/boot_animation_strategy.cpp
-index 569e8577c5..a75613571c 100644
+index 429a0860cd..61832c6d8e 100644
--- a/frameworks/bootanimation/src/boot_animation_strategy.cpp
+++ b/frameworks/bootanimation/src/boot_animation_strategy.cpp
-@@ -33,6 +33,7 @@ bool BootAnimationStrategy::CheckExitAnimation()
+@@ -34,6 +34,7 @@ bool BootAnimationStrategy::CheckExitAnimation()
{
if (!isAnimationEnd_) {
LOGI("boot animation is end");
+ usleep(SLEEP_TIME_US);
- system::SetParameter(BOOT_ANIMATION_FINISHED, "true");
- isAnimationEnd_ = true;
- }
+ if (!system::GetBoolParameter(BOOT_ANIMATION_STARTED, false)) {
+ system::SetParameter(BOOT_ANIMATION_STARTED, "true");
+ }
diff --git a/frameworks/bootanimation/src/boot_video_player.cpp b/frameworks/bootanimation/src/boot_video_player.cpp
-index 70c0b2fbd3..d99386a128 100644
+index 7f5d4cea47..af7588afdd 100644
--- a/frameworks/bootanimation/src/boot_video_player.cpp
+++ b/frameworks/bootanimation/src/boot_video_player.cpp
-@@ -130,6 +130,15 @@ std::shared_ptr BootVideoPlayer::GetMediaPlayer() const
+@@ -148,6 +148,14 @@ std::shared_ptr BootVideoPlayer::GetMediaPlayer() const
void BootVideoPlayer::StopVideo()
{
@@ -26,7 +26,13 @@ index 70c0b2fbd3..d99386a128 100644
+ LOGI("PlayVideo release");
+ }
+#endif
-+
vSyncCallback_(userData_);
}
+@@ -242,4 +250,4 @@ void VideoPlayerCallback::OnOperateInfo(Media::PlayerOnInfoType type, int32_t ex
+ break;
+ }
+ }
+-#endif
+\ No newline at end of file
++#endif
diff --git a/device_board_phytium/common/patch/0018=third_party-ffmpeg=enable-hevc-related-compilation-for-histreamer.patch b/device_board_phytium/common/patch/0018=third_party-ffmpeg=enable-hevc-related-compilation-for-histreamer.patch
index e5d2a20c3ce40b748d86dd227dd23c101f9316e6..bf3f0e583617b55f044e83e3be2e3c9688210821 100755
--- a/device_board_phytium/common/patch/0018=third_party-ffmpeg=enable-hevc-related-compilation-for-histreamer.patch
+++ b/device_board_phytium/common/patch/0018=third_party-ffmpeg=enable-hevc-related-compilation-for-histreamer.patch
@@ -1,8 +1,8 @@
diff --git a/BUILD.gn b/BUILD.gn
-index 8b1d21c959..6675fa300f 100644
+index b055e9faa8..b79a089c0d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
-@@ -32,6 +32,9 @@ libffmpeg_media_aarch64_sources = [
+@@ -38,6 +38,9 @@ libffmpeg_media_aarch64_sources = [
"//third_party/ffmpeg/libavcodec/aarch64/h264pred_neon.S",
"//third_party/ffmpeg/libavcodec/aarch64/h264qpel_init_aarch64.c",
"//third_party/ffmpeg/libavcodec/aarch64/h264qpel_neon.S",
@@ -12,7 +12,7 @@ index 8b1d21c959..6675fa300f 100644
"//third_party/ffmpeg/libavcodec/aarch64/hpeldsp_init_aarch64.c",
"//third_party/ffmpeg/libavcodec/aarch64/hpeldsp_neon.S",
"//third_party/ffmpeg/libavcodec/aarch64/idctdsp_init_aarch64.c",
-@@ -415,7 +418,9 @@ ohos_source_set("ffmpeg_dynamic") {
+@@ -439,7 +442,9 @@ ohos_source_set("ffmpeg_dynamic") {
# "//third_party/ffmpeg/libavcodec/dvenc.c",
# "//third_party/ffmpeg/libavcodec/dxtory.c",
# "//third_party/ffmpeg/libavcodec/dxv.c",
@@ -22,8 +22,8 @@ index 8b1d21c959..6675fa300f 100644
+ "//third_party/ffmpeg/libavcodec/dynamic_hdr10_plus.c",
# "//third_party/ffmpeg/libavcodec/eac3_core_bsf.c",
# "//third_party/ffmpeg/libavcodec/eac3_data.c",
- # "//third_party/ffmpeg/libavcodec/eac3enc.c",
-@@ -530,26 +535,26 @@ ohos_source_set("ffmpeg_dynamic") {
+
+@@ -556,26 +561,26 @@ ohos_source_set("ffmpeg_dynamic") {
"//third_party/ffmpeg/libavcodec/h264qpel.c",
# "//third_party/ffmpeg/libavcodec/h265_metadata_bsf.c",
@@ -64,7 +64,7 @@ index 8b1d21c959..6675fa300f 100644
"//third_party/ffmpeg/libavcodec/hpeldsp.c",
# "//third_party/ffmpeg/libavcodec/hq_hqa.c",
-@@ -1214,7 +1219,7 @@ ohos_source_set("ffmpeg_dynamic") {
+@@ -1243,7 +1248,7 @@ ohos_source_set("ffmpeg_dynamic") {
# "//third_party/ffmpeg/libavformat/hdsenc.c",
"//third_party/ffmpeg/libavformat/hevc.c",
@@ -73,7 +73,7 @@ index 8b1d21c959..6675fa300f 100644
# "//third_party/ffmpeg/libavformat/hls.c",
# "//third_party/ffmpeg/libavformat/hlsenc.c",
# "//third_party/ffmpeg/libavformat/hlsplaylist.c",
-@@ -1599,6 +1604,7 @@ ohos_source_set("ffmpeg_dynamic") {
+@@ -1631,6 +1636,7 @@ ohos_source_set("ffmpeg_dynamic") {
"//third_party/ffmpeg/libavutil/frame.c",
"//third_party/ffmpeg/libavutil/hash.c",
"//third_party/ffmpeg/libavutil/hdr_dynamic_metadata.c",
@@ -81,20 +81,39 @@ index 8b1d21c959..6675fa300f 100644
"//third_party/ffmpeg/libavutil/hmac.c",
"//third_party/ffmpeg/libavutil/hwcontext.c",
"//third_party/ffmpeg/libavutil/imgutils.c",
+diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
+index c09873c967..946db687d8 100644
+--- a/libavcodec/hevcdec.c
++++ b/libavcodec/hevcdec.c
+@@ -628,10 +628,10 @@ static int hls_slice_header(HEVCContext *s)
+
+ if (s->ps.pps->dependent_slice_segments_enabled_flag)
+ sh->dependent_slice_segment_flag = get_bits1(gb);
+- if (sh->dependent_slice_segment_flag && !s->slice_initialized) {
+- av_log(s->avctx, AV_LOG_ERROR, "Independent slice segment missing.\n");
+- return AVERROR_INVALIDDATA;
+- }
++ if (sh->dependent_slice_segment_flag && !s->slice_initialized) {
++ av_log(s->avctx, AV_LOG_ERROR, "Independent slice segment missing.\n");
++ return AVERROR_INVALIDDATA;
++ }
+
+ slice_address_length = av_ceil_log2(s->ps.sps->ctb_width *
+ s->ps.sps->ctb_height);
diff --git a/ohos_config.sh b/ohos_config.sh
-index cd7e9ce554..f5585cf640 100755
+index 64880d438f..5719b36469 100755
--- a/ohos_config.sh
+++ b/ohos_config.sh
-@@ -52,14 +52,14 @@ FF_CONFIG_OPTIONS="
+@@ -55,14 +55,14 @@ FF_CONFIG_OPTIONS="
--disable-vulkan
- --enable-demuxer=mp3,aac,ape,flac,ogg,wav,mov,mpegts,amr,amrnb,amrwb,matroska,flv,mpegps,asf,asf_o,srt,h264,webvtt
- --enable-muxer=mp4,h264,ipod,amr,mpegts,mp3,wav,flac
+ --enable-demuxer=mp3,aac,ape,flac,ogg,wav,mov,mpegts,amr,amrnb,amrwb,matroska,flv,mpegps,asf,asf_o,srt,h264,webvtt,av3a,avi,mpegvideo
+ --enable-muxer=mp4,h264,ipod,amr,mpegts,mp3,wav,flac,av3a,adts
- --enable-parser=h263,h264,mpeg4video,vp8,vp9,mpegvideo
+ --enable-parser=h263,h264,hevc,mpeg4video,vp8,vp9,mpegvideo
--enable-parser=mpegaudio,aac,aac_latm,av3a,amr,opus
- --enable-decoder=h263,h264,mpeg2video,mpeg4,vp8,vp9
+ --enable-decoder=h263,h264,hevc,mpeg2video,mpeg4,vp8,vp9
- --enable-decoder=mp3,mp3float,aac,aac_latm,ape,flac,vorbis,opus,amrnb,amrwb
+ --enable-decoder=mp2,mp3,mp3float,aac,aac_latm,ape,flac,vorbis,opus,amrnb,amrwb
--enable-decoder=png,bmp
--enable-encoder=aac,aac_latm,opus,flac
--enable-encoder=mpeg4,h263
diff --git a/device_board_phytium/common/patch/0020=build=ramdisk_image_conf.patch b/device_board_phytium/common/patch/0020=build=ramdisk_image_conf.patch
index b91585c1aae62e91fba8471bb94b595d1355b02e..9f5fa6b04147c31fe756ccfc0f2528b6d85eeeea 100755
--- a/device_board_phytium/common/patch/0020=build=ramdisk_image_conf.patch
+++ b/device_board_phytium/common/patch/0020=build=ramdisk_image_conf.patch
@@ -5,6 +5,6 @@ index a5993a6b..f3c3b1f6 100755
@@ -1,4 +1,4 @@
/ramdisk
-4718592
-+57185920
++1073741824
--fs_type=cpio
--dac_config ../../build/ohos/images/mkimage/dac.txt
diff --git a/device_board_phytium/common/patch/0023=third_party-elfutils=build-libelf-so.patch b/device_board_phytium/common/patch/0023=third_party-elfutils=build-libelf-so.patch
old mode 100755
new mode 100644
index e2b5e799b9f068456359058e8a16298de3f1db72..742ee23107b92b7fa8918b3c7fd24c84d8573644
--- a/device_board_phytium/common/patch/0023=third_party-elfutils=build-libelf-so.patch
+++ b/device_board_phytium/common/patch/0023=third_party-elfutils=build-libelf-so.patch
@@ -1,27 +1,28 @@
-From dfc01849cf16f22b4542297ac5c21b36108535df Mon Sep 17 00:00:00 2001
-From: tangkaiwen
-Date: Fri, 25 Oct 2024 13:54:28 +0800
+From 9c5db9602142b2b6548fe01e12367843e071e168 Mon Sep 17 00:00:00 2001
+From: fovt
+Date: Tue, 22 Apr 2025 13:51:23 +0800
Subject: [PATCH] build libelf so
-Change-Id: I9866d68801c2173f8c4202107d9255ac1d5ad059
+Signed-off-by: fovt
+Change-Id: I637659ba27222e4660fc9cd02452a7d8a23f955c
---
BUILD.gn | 44 ++-
- bundle.json | 8 +-
+ bundle.json | 4 +-
config.h | 2 +-
include/error.h | 60 +++
include/sys/cdefs.h | 891 ++++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 1001 insertions(+), 4 deletions(-)
+ 5 files changed, 998 insertions(+), 3 deletions(-)
create mode 100644 include/error.h
create mode 100644 include/sys/cdefs.h
diff --git a/BUILD.gn b/BUILD.gn
-index 66650948..cd9ec49d 100644
+index b689ad14..084007ed 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -21,7 +21,12 @@ config("elfutils_defaults") {
"NMNES=1000",
]
-
+
- cflags = [ "-std=gnu99" ]
+ cflags = [
+ "-std=gnu99" ,
@@ -30,12 +31,12 @@ index 66650948..cd9ec49d 100644
+ "-Wno-implicit-function-declaration",
+ ]
}
-
+
config("elfutils_public_config") {
-@@ -47,6 +52,43 @@ ohos_static_library("libelf_static") {
+@@ -49,6 +54,43 @@ ohos_static_library("libelf_static") {
part_name = "elfutils"
}
-
+
+# Build libelf
+ohos_shared_library("libelf") {
+
@@ -77,18 +78,14 @@ index 66650948..cd9ec49d 100644
ohos_static_library("libdw_static") {
configs = [ ":elfutils_defaults" ]
diff --git a/bundle.json b/bundle.json
-index c1b82294..6dc60f74 100644
+index f8febdae..6dc60f74 100644
--- a/bundle.json
+++ b/bundle.json
-@@ -22,8 +22,12 @@
- "rom": "",
- "ram": "",
- "deps": {
-- "components": [],
+@@ -25,7 +25,9 @@
+ "components": [
+ "zlib"
+ ],
- "third_party": []
-+ "components": [
-+ "zlib"
-+ ],
+ "third_party": [
+ "zlib"
+ ]
@@ -100,12 +97,12 @@ index 5030ef03..d7dadb7d 100644
--- a/config.h
+++ b/config.h
@@ -49,7 +49,7 @@
-
+
/* Define to 1 if you have the declaration of `rawmemchr', and to 0 if you
don't. */
-#define HAVE_DECL_RAWMEMCHR 1
+// #define HAVE_DECL_RAWMEMCHR 1
-
+
/* Define to 1 if you have the declaration of `reallocarray', and to 0 if you
don't. */
diff --git a/include/error.h b/include/error.h
@@ -176,7 +173,7 @@ index 00000000..75a2c1a3
+#endif /* error.h */
diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h
new file mode 100644
-index 00000000..9b7e179e
+index 00000000..dba9d73a
--- /dev/null
+++ b/include/sys/cdefs.h
@@ -0,0 +1,891 @@
@@ -1071,6 +1068,6 @@ index 00000000..9b7e179e
+#endif
+
+#endif /* !_SYS_CDEFS_H_ */
---
+--
2.25.1
diff --git a/device_board_phytium/common/patch/0024=build=vendor_image_conf.patch b/device_board_phytium/common/patch/0024=build=vendor_image_conf.patch
index 3ea7e4b606983f64def0a4896e3510493583bf21..12a5d676561e4a22b1e091a10b6a486fb39ad049 100755
--- a/device_board_phytium/common/patch/0024=build=vendor_image_conf.patch
+++ b/device_board_phytium/common/patch/0024=build=vendor_image_conf.patch
@@ -5,7 +5,7 @@ index 5897e178..4f0b5c44 100644
@@ -1,5 +1,5 @@
/vendor
-268434944
-+768434944
++1073741824
--fs_type=ext4
--dac_config ../../build/ohos/images/mkimage/dac.txt
--file_context obj/base/security/selinux_adapter/file_contexts.bin
diff --git a/device_board_phytium/common/patch/0025=build=add_execscripts.patch b/device_board_phytium/common/patch/0025=build=add_execscripts.patch
old mode 100755
new mode 100644
index a17960ff79eae99e2fefddaf146d29fa59cae435..d39087323bf3940222a9d2e976be014053d636a9
--- a/device_board_phytium/common/patch/0025=build=add_execscripts.patch
+++ b/device_board_phytium/common/patch/0025=build=add_execscripts.patch
@@ -1,13 +1,14 @@
diff --git a/core/gn/ohos_exec_script_allowlist.gni b/core/gn/ohos_exec_script_allowlist.gni
-index 8b97f4a1..aa4e7e65 100644
+index 8b97f4a1..be9df5c1 100644
--- a/core/gn/ohos_exec_script_allowlist.gni
+++ b/core/gn/ohos_exec_script_allowlist.gni
-@@ -199,5 +199,8 @@ ohos_exec_script_config = {
+@@ -199,5 +199,9 @@ ohos_exec_script_config = {
"//build_plugins/config/ios/ios_sdk.gni",
"//build_plugins/templates/java/rules.gni",
"//build_plugins/templates/java/internal_rules.gni",
+ "//vendor/phytium/tenglong_e/hdf_config/uhdf/BUILD.gn",
+ "//vendor/phytium/tengrui_d/hdf_config/uhdf/BUILD.gn",
++ "//vendor/phytium/tengrui_m/hdf_config/uhdf/BUILD.gn",
+ "//vendor/phytium/phytiumpi-firefly/hdf_config/uhdf/BUILD.gn",
]
}
diff --git a/device_board_phytium/common/patch/0027=foundation-graphic-graphic_2d=multi-gpu-support.patch b/device_board_phytium/common/patch/0027=foundation-graphic-graphic_2d=multi-gpu-support.patch
index e5a7c2e6e3d869fc337bf7abe520b3586f4537f1..078e59a55379e6ed6b47ca402b202107f037f962 100755
--- a/device_board_phytium/common/patch/0027=foundation-graphic-graphic_2d=multi-gpu-support.patch
+++ b/device_board_phytium/common/patch/0027=foundation-graphic-graphic_2d=multi-gpu-support.patch
@@ -1,11 +1,11 @@
diff --git a/bundle.json b/bundle.json
-index 663faa6a1e..8d4232905b 100644
+index 2e4f7275a6..aea99d15a5 100644
--- a/bundle.json
+++ b/bundle.json
-@@ -103,12 +103,15 @@
+@@ -116,12 +116,15 @@
+ "graphic_2d_ext"
],
"third_party": [
- "flutter",
- "skia"
+ "skia",
+ "libdrm",
@@ -20,7 +20,7 @@ index 663faa6a1e..8d4232905b 100644
"//foundation/graphic/graphic_2d/interfaces/kits/napi:napi_packages",
"//foundation/graphic/graphic_2d/interfaces/kits/cj:ffi_packages",
diff --git a/frameworks/opengl_wrapper/BUILD.gn b/frameworks/opengl_wrapper/BUILD.gn
-index 3ef38985f8..df1ff18187 100644
+index 327af5e868..24206125d7 100644
--- a/frameworks/opengl_wrapper/BUILD.gn
+++ b/frameworks/opengl_wrapper/BUILD.gn
@@ -35,6 +35,7 @@ config("egl_config") {
@@ -31,7 +31,7 @@ index 3ef38985f8..df1ff18187 100644
]
}
-@@ -113,6 +114,14 @@ if (current_os != "ohos") {
+@@ -118,6 +119,14 @@ if (current_os != "ohos") {
if (is_emulator) {
defines += [ "IS_EMULATOR" ]
}
@@ -46,7 +46,7 @@ index 3ef38985f8..df1ff18187 100644
output_name = "EGL"
output_extension = "so"
-@@ -123,6 +132,13 @@ if (current_os != "ohos") {
+@@ -128,6 +137,13 @@ if (current_os != "ohos") {
## Build libEGL.so }}}
@@ -89,7 +89,7 @@ index 167e01fae1..aeb7e910f4 100644
WLOGE("EglWrapperLoader Load Failed.");
return false;
diff --git a/frameworks/opengl_wrapper/src/EGL/egl_wrapper_entry.cpp b/frameworks/opengl_wrapper/src/EGL/egl_wrapper_entry.cpp
-index af40b70efd..5566ea59af 100644
+index 3ab9c8cbf7..a72a374106 100644
--- a/frameworks/opengl_wrapper/src/EGL/egl_wrapper_entry.cpp
+++ b/frameworks/opengl_wrapper/src/EGL/egl_wrapper_entry.cpp
@@ -24,7 +24,11 @@
@@ -104,7 +104,7 @@ index af40b70efd..5566ea59af 100644
#include "thread_private_data_ctl.h"
#include "window.h"
#include "wrapper_log.h"
-@@ -325,7 +329,11 @@ __eglMustCastToProperFunctionPointerType EglGetProcAddressImpl(const char *procn
+@@ -328,7 +332,11 @@ __eglMustCastToProperFunctionPointerType EglGetProcAddressImpl(const char *procn
return __eglMustCastToProperFunctionPointerType(addr);
}
@@ -116,14 +116,15 @@ index af40b70efd..5566ea59af 100644
void *func = loader.GetProcAddrFromDriver(procname);
if (!func) {
-diff --git a/rosen/modules/render_service/core/pipeline/rs_base_render_util.cpp b/rosen/modules/render_service/core/pipeline/rs_base_render_util.cpp
-index 6b3bcb295a..b03a8f2e31 100644
---- a/rosen/modules/render_service/core/pipeline/rs_base_render_util.cpp
-+++ b/rosen/modules/render_service/core/pipeline/rs_base_render_util.cpp
-@@ -848,6 +848,51 @@ bool RSBaseRenderUtil::IsNeedClient(RSRenderNode& node, const ComposeInfo& info)
+diff --git a/rosen/modules/render_service/core/pipeline/render_thread/rs_base_render_util.cpp b/rosen/modules/render_service/core/pipeline/render_thread/rs_base_render_util.cpp
+index 5129d634fa..2940fd51bf 100644
+--- a/rosen/modules/render_service/core/pipeline/render_thread/rs_base_render_util.cpp
++++ b/rosen/modules/render_service/core/pipeline/render_thread/rs_base_render_util.cpp
+@@ -864,6 +864,53 @@ bool RSBaseRenderUtil::IsNeedClient(RSRenderNode& node, const ComposeInfo& info)
return false;
}
++
+static char *gpu_env_path = nullptr;
+static int ginit_gpu = -1;
+static bool isJMgpu(){
@@ -169,18 +170,19 @@ index 6b3bcb295a..b03a8f2e31 100644
+ return false;
+}
+
- BufferRequestConfig RSBaseRenderUtil::GetFrameBufferRequestConfig(const ScreenInfo& screenInfo, bool isPhysical,
++
+ BufferRequestConfig RSBaseRenderUtil::GetFrameBufferRequestConfig(const ScreenInfo& screenInfo,
bool isProtected, GraphicColorGamut colorGamut, GraphicPixelFormat pixelFormat)
{
-@@ -858,6 +903,11 @@ BufferRequestConfig RSBaseRenderUtil::GetFrameBufferRequestConfig(const ScreenIn
+@@ -874,6 +921,11 @@ BufferRequestConfig RSBaseRenderUtil::GetFrameBufferRequestConfig(const ScreenIn
config.height = static_cast(height);
config.strideAlignment = 0x8; // default stride is 8 Bytes.
- config.colorGamut = isPhysical ? colorGamut : static_cast(screenInfo.colorGamut);
+ config.colorGamut = colorGamut;
+ if(isJMgpu()){
+ pixelFormat = GRAPHIC_PIXEL_FMT_BGRA_8888;
+ }else{
+ pixelFormat = GRAPHIC_PIXEL_FMT_RGBA_8888;
+ }
- config.format = isPhysical ? pixelFormat : screenInfo.pixelFormat;
+ config.format = pixelFormat;
config.usage = BUFFER_USAGE_CPU_READ | BUFFER_USAGE_MEM_DMA | BUFFER_USAGE_MEM_FB;
if (isProtected) {
diff --git a/device_board_phytium/common/patch/0029=base-theme-screenlock_mgr=add_retrytimes.patch b/device_board_phytium/common/patch/0029=base-theme-screenlock_mgr=add_retrytimes.patch
index ed4f14c250225818eaccbf57f40c4a7ed71c9361..bffc729d60f0502a5857d463453d3b05c0b07004 100755
--- a/device_board_phytium/common/patch/0029=base-theme-screenlock_mgr=add_retrytimes.patch
+++ b/device_board_phytium/common/patch/0029=base-theme-screenlock_mgr=add_retrytimes.patch
@@ -1,8 +1,8 @@
diff --git a/services/src/screenlock_system_ability.cpp b/services/src/screenlock_system_ability.cpp
-index 307f447..abda996 100644
+index c605423..994c3fa 100644
--- a/services/src/screenlock_system_ability.cpp
+++ b/services/src/screenlock_system_ability.cpp
-@@ -222,7 +222,7 @@ void ScreenLockSystemAbility::OnSystemReady()
+@@ -366,7 +366,7 @@ void ScreenLockSystemAbility::OnSystemReady()
{
SCLOCK_HILOGI("ScreenLockSystemAbility OnSystemReady started.");
bool isExitFlag = false;
@@ -11,10 +11,3 @@ index 307f447..abda996 100644
int minTryTime = 0;
while (!isExitFlag && (tryTime > minTryTime)) {
if (systemEventListener_ != nullptr && systemReady_) {
-@@ -613,4 +613,4 @@ bool ScreenLockSystemAbility::CheckPermission(const std::string &permissionName)
- return true;
- }
- } // namespace ScreenLock
--} // namespace OHOS
-\ No newline at end of file
-+} // namespace OHOS
diff --git a/device_board_phytium/common/patch/0030=foundation-multimedia-av_codec=modify-fcodec-for-histreamer.patch b/device_board_phytium/common/patch/0030=foundation-multimedia-av_codec=modify-fcodec-for-histreamer.patch
old mode 100755
new mode 100644
index 0ceb94c39dbd0a0dc1a1646c9ec28ce8ff011f81..e9da600a4984d98939d3534727713b08dafa36c6
--- a/device_board_phytium/common/patch/0030=foundation-multimedia-av_codec=modify-fcodec-for-histreamer.patch
+++ b/device_board_phytium/common/patch/0030=foundation-multimedia-av_codec=modify-fcodec-for-histreamer.patch
@@ -1,10 +1,10 @@
diff --git a/services/engine/codec/video/fcodec/fcodec.cpp b/services/engine/codec/video/fcodec/fcodec.cpp
-index e6d27e8db..ca0a98cad 100644
+index 57e1dffe7..7ed2a4877 100644
--- a/services/engine/codec/video/fcodec/fcodec.cpp
+++ b/services/engine/codec/video/fcodec/fcodec.cpp
-@@ -639,7 +639,8 @@ int32_t FCodec::SetSurfaceCfg(int32_t bufferCnt)
- CHECK_AND_RETURN_RET_LOG(sInfo_.surface->SetQueueSize(bufferCnt) == OHOS::SurfaceError::SURFACE_ERROR_OK,
- AVCS_ERR_NO_MEMORY, "Surface set QueueSize=%{public}d failed", bufferCnt);
+@@ -705,7 +705,8 @@ int32_t FCodec::AllocateInputBuffer(int32_t bufferCnt, int32_t inBufferSize)
+ int32_t FCodec::SetSurfaceCfg()
+ {
if (outputPixelFmt_ == VideoPixelFormat::UNKNOWN) {
- format_.PutIntValue(MediaDescriptionKey::MD_KEY_PIXEL_FORMAT, static_cast(VideoPixelFormat::NV12));
+ outputPixelFmt_ = VideoPixelFormat::RGBA;
diff --git a/device_board_phytium/common/patch/0031=third_party-alsa-lib=add-alsa-lib-feature.patch b/device_board_phytium/common/patch/0031=third_party-alsa-lib=add-alsa-lib-feature.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5aa09ea21bb0c0eb86012fa2db143454df6fb048
--- /dev/null
+++ b/device_board_phytium/common/patch/0031=third_party-alsa-lib=add-alsa-lib-feature.patch
@@ -0,0 +1,45 @@
+diff --git a/BUILD.gn b/BUILD.gn
+index 23a8e720..17a28fd3 100644
+--- a/BUILD.gn
++++ b/BUILD.gn
+@@ -13,6 +13,10 @@
+
+ import("//build/ohos.gni")
+
++declare_args() {
++ alsa_lib_feature_config_enable = false
++}
++
+ config("alsa_lib_header") {
+ include_dirs = [
+ "//third_party/alsa-lib/include",
+@@ -183,10 +187,12 @@ ohos_shared_library("libasound") {
+ ]
+
+ configs = [ ":alsa_lib_config" ]
+- deps = [
+- # conf files
+- "src/conf:alsa-lib-prebuilt-all",
+- ]
++ if (alsa_lib_feature_config_enable) {
++ deps = [
++ # conf files
++ "src/conf:alsa-lib-prebuilt-all",
++ ]
++ }
+ public_configs = [ ":alsa_lib_header" ]
+ output_extension = "so"
+ install_images = [ chipset_base_dir ]
+diff --git a/bundle.json b/bundle.json
+index 1db6e75d..bdb211ea 100644
+--- a/bundle.json
++++ b/bundle.json
+@@ -18,7 +18,7 @@
+ "name": "alsa-lib",
+ "subsystem": "thirdparty",
+ "syscap": [],
+- "features": [],
++ "features": [ "alsa_lib_feature_config_enable" ],
+ "adapted_system_type": [ "standard" ],
+ "rom": "950KB",
+ "ram": "988KB",
diff --git a/device_board_phytium/common/patch/0033=foundation-communication-wifi=disable-p2p.patch b/device_board_phytium/common/patch/0033=foundation-communication-wifi=disable-p2p.patch
index 0275065d393fa1e77b0e7f7564486c6d99b0eebe..3bc18a6b24b4f6c910e8328e25cd5f863fd1f746 100755
--- a/device_board_phytium/common/patch/0033=foundation-communication-wifi=disable-p2p.patch
+++ b/device_board_phytium/common/patch/0033=foundation-communication-wifi=disable-p2p.patch
@@ -1,13 +1,13 @@
diff --git a/wifi/wifi.gni b/wifi/wifi.gni
-index 5cd865d71..5a8f75df5 100644
+index e54029250..71dc49163 100644
--- a/wifi/wifi.gni
+++ b/wifi/wifi.gni
-@@ -19,7 +19,7 @@ DHCP_ROOT_DIR = "$SUBSYSTEM_DIR/dhcp"
- CONFIG_CTRL_IFACE = "unix"
+@@ -19,7 +19,7 @@ CONFIG_CTRL_IFACE = "unix"
declare_args() {
+ wifi_feature_dynamic_unload_sa = false
- wifi_feature_with_p2p = true
+ wifi_feature_with_p2p = false
+ wifi_feature_with_rpt = true
wifi_feature_with_ap_intf = "wlan"
wifi_feature_with_ap_num = 1
- wifi_feature_with_sta_num = 1
diff --git a/device_board_phytium/common/patch/0034=foundation-communication-wifi=disable-hdi-chip-supported.patch b/device_board_phytium/common/patch/0034=foundation-communication-wifi=disable-hdi-chip-supported.patch
index a944c4ae573bd07997095d817b63cc7a353035d2..fb63f382c287ebd9ea9bbe09b2896b3e1526b799 100755
--- a/device_board_phytium/common/patch/0034=foundation-communication-wifi=disable-hdi-chip-supported.patch
+++ b/device_board_phytium/common/patch/0034=foundation-communication-wifi=disable-hdi-chip-supported.patch
@@ -1,16 +1,16 @@
diff --git a/wifi/wifi.gni b/wifi/wifi.gni
-index 5a8f75df5..9cf531294 100644
+index 71dc49163..b245261cd 100644
--- a/wifi/wifi.gni
+++ b/wifi/wifi.gni
-@@ -48,10 +48,7 @@ declare_args() {
+@@ -52,10 +52,7 @@ declare_args() {
wifi_feature_p2p_random_mac_addr = true
- wifi_feature_powermgr_support = false
+ wifi_feature_with_hdi_chip_supported = false
wifi_feature_with_sta_asset = true
- if (defined(global_parts_info) &&
- defined(global_parts_info.hdf_drivers_interface_wlan)) {
- wifi_feature_with_hdi_chip_supported = true
- }
-+ wifi_feature_with_hdi_chip_supported = false
++ wifi_feature_with_hdi_chip_supported = true
+ wifi_feature_with_vap_manager = true
+ wifi_feature_with_wifi_oeminfo_mac = false
}
-
- memory_optimization_cflags = [
diff --git a/device_board_phytium/common/patch/0036=build=updater_ramdisk_image_conf_size.patch b/device_board_phytium/common/patch/0036=build=updater_ramdisk_image_conf_size.patch
index a907becfedb1b0129b43bacf36b06b721de0c421..3935b17bb2962cd8626fb59d1aff5d752558c6b7 100644
--- a/device_board_phytium/common/patch/0036=build=updater_ramdisk_image_conf_size.patch
+++ b/device_board_phytium/common/patch/0036=build=updater_ramdisk_image_conf_size.patch
@@ -5,7 +5,7 @@ index 18705178..8dbbfb17 100644
@@ -1,5 +1,5 @@
/updater
-33554432
-+46573375
++1073741824
--fs_type=cpio
--dac_config ../../build/ohos/images/mkimage/dac.txt
--file_context obj/base/security/selinux_adapter/file_contexts.bin
diff --git a/device_board_phytium/common/patch/0037=build=add_thirdparty_whitelist.patch b/device_board_phytium/common/patch/0037=build=add_thirdparty_whitelist.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f0df036f973887a2de327a9136d1eb6b50ecccd2
--- /dev/null
+++ b/device_board_phytium/common/patch/0037=build=add_thirdparty_whitelist.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party_allow_list.json b/third_party_allow_list.json
+index 0db5a6da..5309db22 100644
+--- a/third_party_allow_list.json
++++ b/third_party_allow_list.json
+@@ -54,7 +54,7 @@
+ "harfbuzz",
+ "qrcodegen",
+ "jerryscript",
+-
++ "elfutils",
+ "resource_schedule_service",
+ "hilog",
+
diff --git a/device_board_phytium/phytiumpi-firefly/cfg/init.phytiumpi-firefly.cfg b/device_board_phytium/phytiumpi-firefly/cfg/init.phytiumpi-firefly.cfg
index dd3c6c923973b5545c2a26dd8304a4f89006e58d..0e0cbb6bba1827f0bc280542402617362e598509 100755
--- a/device_board_phytium/phytiumpi-firefly/cfg/init.phytiumpi-firefly.cfg
+++ b/device_board_phytium/phytiumpi-firefly/cfg/init.phytiumpi-firefly.cfg
@@ -37,7 +37,9 @@
"setparam persist.hdc.port 8710",
"setparam persist.hdc.root 1",
"setparam persist.hdc.mode.tcp enable",
- "setparam const.security.developermode.state true"
+ "setparam const.security.developermode.state true",
+ "setparam persist.multimedia.audio.ringtonevolume 15",
+ "setparam ohos.boot.reboot_reason UNKNOWN"
]
}, {
"name" : "post-fs-data",
diff --git a/device_board_phytium/tenglong_e/cfg/init.tenglong_e.cfg b/device_board_phytium/tenglong_e/cfg/init.tenglong_e.cfg
index 42586573f1965303d5ba5a567a6a380a5560e56d..649a0c9b28f4548dccccfe081c9a6cfa17bdb48d 100755
--- a/device_board_phytium/tenglong_e/cfg/init.tenglong_e.cfg
+++ b/device_board_phytium/tenglong_e/cfg/init.tenglong_e.cfg
@@ -37,7 +37,9 @@
"setparam persist.hdc.port 8710",
"setparam persist.hdc.root 1",
"setparam persist.hdc.mode.tcp enable",
- "setparam const.security.developermode.state true"
+ "setparam const.security.developermode.state true",
+ "setparam persist.multimedia.audio.ringtonevolume 15",
+ "setparam ohos.boot.reboot_reason UNKNOWN"
]
}, {
"name" : "post-fs-data",
diff --git a/device_board_phytium/tengrui_d/cfg/init.tengrui_d.cfg b/device_board_phytium/tengrui_d/cfg/init.tengrui_d.cfg
index 1e6c85aa96b48e6f5db3de8f05db2fa90f9f5f0c..cdfe4f3fb56fa20991154441a0dad1e8d8ceb8ea 100755
--- a/device_board_phytium/tengrui_d/cfg/init.tengrui_d.cfg
+++ b/device_board_phytium/tengrui_d/cfg/init.tengrui_d.cfg
@@ -37,7 +37,9 @@
"setparam persist.hdc.port 8710",
"setparam persist.hdc.root 1",
"setparam persist.hdc.mode.tcp enable",
- "setparam const.security.developermode.state true"
+ "setparam const.security.developermode.state true",
+ "setparam persist.multimedia.audio.ringtonevolume 15",
+ "setparam ohos.boot.reboot_reason UNKNOWN"
]
}, {
"name" : "post-fs-data",
diff --git a/device_soc_phytium/common/hardware/display/BUILD.gn b/device_soc_phytium/common/hardware/display/BUILD.gn
index 03afbf5ae64c208c58e47f9c3e20f09addf7bc40..20d8800870ec1ef36621e16a796cf9208ceeb972 100755
--- a/device_soc_phytium/common/hardware/display/BUILD.gn
+++ b/device_soc_phytium/common/hardware/display/BUILD.gn
@@ -64,6 +64,7 @@ ohos_shared_library("libdisplay_buffer_vdi_impl") {
install_enable = true
install_images = [ chipset_base_dir ]
innerapi_tags = [ "passthrough" ]
+ subsystem_name = "hdf"
part_name = "device_${device_name}"
}
@@ -162,6 +163,7 @@ ohos_shared_library("libdisplay_composer_vdi_impl") {
external_deps = [
"c_utils:utils",
"drivers_interface_display:display_composer_idl_headers",
+ "drivers_interface_display:libdisplay_composer_proxy_1.2",
"graphic_surface:buffer_handle",
"hilog:libhilog",
"ipc:ipc_single",
diff --git a/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.cpp b/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.cpp
index 74d94fdb6b9fe74117dd9ab7a9ada3f0a315b81e..4600c57c0b62929397e53141a52adbce64bdf45c 100755
--- a/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.cpp
+++ b/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.cpp
@@ -23,8 +23,6 @@ namespace HDI {
namespace DISPLAY {
DisplayComposerVdiImpl::DisplayComposerVdiImpl()
{
- DISPLAY_LOGD();
- composerModel_ = &HdiSession::GetInstance();
}
DisplayComposerVdiImpl::~DisplayComposerVdiImpl()
@@ -33,28 +31,24 @@ DisplayComposerVdiImpl::~DisplayComposerVdiImpl()
int32_t DisplayComposerVdiImpl::RegHotPlugCallback(HotPlugCallback cb, void* data)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- composerModel_->RegHotPlugCallback(cb, data);
+ HdiSession::GetInstance().RegHotPlugCallback(cb, data);
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::GetDisplayCapability(uint32_t devId, DisplayCapability& info)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayCapability, &info);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayCapability, &info);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::GetDisplaySupportedModes(uint32_t devId, std::vector& modes)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
+ std::lock_guard lock(mMutex);
DisplayModeInfo* placeHoler = nullptr;
uint32_t num = 0;
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplaySupportedModes,
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplaySupportedModes,
&num, placeHoler);
if (ec != DISPLAY_SUCCESS) {
DISPLAY_LOGE("failed, ec=%{public}d", ec);
@@ -62,7 +56,8 @@ int32_t DisplayComposerVdiImpl::GetDisplaySupportedModes(uint32_t devId, std::ve
}
if (num != 0) {
modes.resize(num);
- ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplaySupportedModes, &num, modes.data());
+ ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplaySupportedModes, &num,
+ modes.data());
}
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -70,76 +65,72 @@ int32_t DisplayComposerVdiImpl::GetDisplaySupportedModes(uint32_t devId, std::ve
int32_t DisplayComposerVdiImpl::GetDisplayMode(uint32_t devId, uint32_t& modeId)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayMode, &modeId);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayMode, &modeId);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetDisplayMode(uint32_t devId, uint32_t modeId)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::SetDisplayMode, modeId);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetDisplayMode, modeId);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::GetDisplayPowerStatus(uint32_t devId, DispPowerStatus& status)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayPowerStatus, &status);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayPowerStatus, &status);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetDisplayPowerStatus(uint32_t devId, DispPowerStatus status)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::SetDisplayPowerStatus, status);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetDisplayPowerStatus, status);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::GetDisplayBacklight(uint32_t devId, uint32_t& level)
{
- DISPLAY_LOGD();
- DISPLAY_LOGD("%{public}s is not supported", __func__);
- return HDF_ERR_NOT_SUPPORT;
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayBacklight, &level);
+ DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
+ return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetDisplayBacklight(uint32_t devId, uint32_t level)
{
- DISPLAY_LOGD();
- DISPLAY_LOGD("%{public}s is not supported", __func__);
- return HDF_ERR_NOT_SUPPORT;
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetDisplayBacklight, level);
+ DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
+ return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::GetDisplayProperty(uint32_t devId, uint32_t id, uint64_t& value)
{
- DISPLAY_LOGD();
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::GetDisplayCompChange(uint32_t devId, std::vector& layers,
std::vector& types)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
+ std::lock_guard lock(mMutex);
uint32_t* layersHoler = nullptr;
int32_t* typesHoler = nullptr;
uint32_t num = 0;
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayCompChange, &num, layersHoler,
- typesHoler);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayCompChange, &num,
+ layersHoler, typesHoler);
if (ec == HDF_SUCCESS && num != 0) {
layers.resize(num);
types.resize(num);
- ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayCompChange, &num, layers.data(),
- types.data());
+ ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayCompChange, &num,
+ layers.data(), types.data());
}
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -147,41 +138,37 @@ int32_t DisplayComposerVdiImpl::GetDisplayCompChange(uint32_t devId, std::vector
int32_t DisplayComposerVdiImpl::SetDisplayClientCrop(uint32_t devId, const IRect& rect)
{
- DISPLAY_LOGD();
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetDisplayClientBuffer(uint32_t devId, const BufferHandle& buffer, int32_t fence)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::SetDisplayClientBuffer, &buffer, fence);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetDisplayClientBuffer, &buffer,
+ fence);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetDisplayClientDamage(uint32_t devId, std::vector& rects)
{
- DISPLAY_LOGD();
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetDisplayVsyncEnabled(uint32_t devId, bool enabled)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::SetDisplayVsyncEnabled, enabled);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetDisplayVsyncEnabled, enabled);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::RegDisplayVBlankCallback(uint32_t devId, VBlankCallback cb, void* data)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::RegDisplayVBlankCallback, cb, data);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::RegDisplayVBlankCallback, cb, data);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
@@ -189,18 +176,17 @@ int32_t DisplayComposerVdiImpl::RegDisplayVBlankCallback(uint32_t devId, VBlankC
int32_t DisplayComposerVdiImpl::GetDisplayReleaseFence(uint32_t devId, std::vector& layers,
std::vector& fences)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
+ std::lock_guard lock(mMutex);
uint32_t* layersHoler = nullptr;
int32_t* typesHoler = nullptr;
uint32_t num = 0;
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayReleaseFence, &num, layersHoler,
- typesHoler);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayReleaseFence, &num,
+ layersHoler, typesHoler);
if (ec == HDF_SUCCESS && num != 0) {
layers.resize(num);
fences.resize(num);
- ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::GetDisplayReleaseFence, &num, layers.data(),
- fences.data());
+ ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::GetDisplayReleaseFence, &num,
+ layers.data(), fences.data());
}
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -208,69 +194,64 @@ int32_t DisplayComposerVdiImpl::GetDisplayReleaseFence(uint32_t devId, std::vect
int32_t DisplayComposerVdiImpl::CreateVirtualDisplay(uint32_t width, uint32_t height, int32_t& format, uint32_t& devId)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::DestroyVirtualDisplay(uint32_t devId)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetVirtualDisplayBuffer(uint32_t devId, const BufferHandle& buffer, const int32_t fence)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetDisplayProperty(uint32_t devId, uint32_t id, uint64_t value)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::Commit(uint32_t devId, int32_t& fence)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::Commit, &fence);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::Commit, &fence);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::CreateLayer(uint32_t devId, const LayerInfo& layerInfo, uint32_t& layerId)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::CreateLayer, &layerInfo, &layerId);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::CreateLayer, &layerInfo, &layerId);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::DestroyLayer(uint32_t devId, uint32_t layerId)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::DestroyLayer, layerId);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::DestroyLayer, layerId);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::PrepareDisplayLayers(uint32_t devId, bool& needFlushFb)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::PrepareDisplayLayers, &needFlushFb);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::PrepareDisplayLayers, &needFlushFb);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerAlpha(uint32_t devId, uint32_t layerId, const LayerAlpha& alpha)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerAlpha,
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerAlpha,
const_cast(&alpha));
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -278,9 +259,8 @@ int32_t DisplayComposerVdiImpl::SetLayerAlpha(uint32_t devId, uint32_t layerId,
int32_t DisplayComposerVdiImpl::SetLayerRegion(uint32_t devId, uint32_t layerId, const IRect& rect)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerRegion,
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerRegion,
const_cast(&rect));
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -288,45 +268,41 @@ int32_t DisplayComposerVdiImpl::SetLayerRegion(uint32_t devId, uint32_t layerId,
int32_t DisplayComposerVdiImpl::SetLayerCrop(uint32_t devId, uint32_t layerId, const IRect& rect)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerCrop, const_cast(&rect));
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerCrop,
+ const_cast(&rect));
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerZorder(uint32_t devId, uint32_t layerId, uint32_t zorder)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallDisplayFunction(devId, &HdiDisplay::SetLayerZorder, layerId, zorder);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallDisplayFunction(devId, &HdiDisplay::SetLayerZorder, layerId, zorder);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerPreMulti(uint32_t devId, uint32_t layerId, bool preMul)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerPreMulti, preMul);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerPreMulti, preMul);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerTransformMode(uint32_t devId, uint32_t layerId, TransformType type)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerTransformMode, type);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerTransformMode, type);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerDirtyRegion(uint32_t devId, uint32_t layerId, const std::vector& rects)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerDirtyRegion,
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerDirtyRegion,
const_cast(rects.data()));
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
@@ -334,49 +310,59 @@ int32_t DisplayComposerVdiImpl::SetLayerDirtyRegion(uint32_t devId, uint32_t lay
int32_t DisplayComposerVdiImpl::SetLayerVisibleRegion(uint32_t devId, uint32_t layerId, std::vector& rects)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetLayerBuffer(uint32_t devId, uint32_t layerId, const BufferHandle& buffer,
int32_t fence)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
+ std::lock_guard lock(mMutex);
const BufferHandle* holder = &buffer;
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerBuffer, holder, fence);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerBuffer, holder, fence);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerCompositionType(uint32_t devId, uint32_t layerId, CompositionType type)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerCompositionType, type);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerCompositionType, type);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerBlendType(uint32_t devId, uint32_t layerId, BlendType type)
{
- DISPLAY_LOGD();
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- int32_t ec = composerModel_->CallLayerFunction(devId, layerId, &HdiLayer::SetLayerBlendType, type);
+ std::lock_guard lock(mMutex);
+ int32_t ec = HdiSession::GetInstance().CallLayerFunction(devId, layerId, &HdiLayer::SetLayerBlendType, type);
DISPLAY_CHK_RETURN(ec != DISPLAY_SUCCESS, HDF_FAILURE, DISPLAY_LOGE("failed, ec=%{public}d", ec));
return HDF_SUCCESS;
}
int32_t DisplayComposerVdiImpl::SetLayerMaskInfo(uint32_t devId, uint32_t layerId, const MaskInfo maskInfo)
{
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
int32_t DisplayComposerVdiImpl::SetLayerColor(uint32_t devId, uint32_t layerId, const LayerColor& layerColor)
{
- CHECK_NULLPOINTER_RETURN_VALUE(composerModel_, HDF_FAILURE);
- DISPLAY_LOGD("%{public}s is not supported", __func__);
+ DISPLAY_LOGE("%s layerColor: r=%{public}d, g=%{public}d, b=%{public}d, a=%{public}d",
+ __func__, layerColor.r, layerColor.g, layerColor.b, layerColor.a);
+ DISPLAY_LOGE("%s is not supported", __func__);
+ return HDF_ERR_NOT_SUPPORT;
+}
+
+int32_t GetDumpInfo(std::string& result)
+{
+ DISPLAY_LOGI("%s is not supported", __func__);
+ return HDF_ERR_NOT_SUPPORT;
+}
+
+int32_t UpdateConfig(std::string& result)
+{
+ DISPLAY_LOGI("%s is not supported", __func__);
return HDF_ERR_NOT_SUPPORT;
}
@@ -389,6 +375,203 @@ extern "C" void DestroyComposerVdi(IDisplayComposerVdi* vdi)
{
delete vdi;
}
+
+DisplayComposerVdiImpl& DisplayComposerVdiImpl::GetVdiInstance()
+{
+ static DisplayComposerVdiImpl vdiImpl;
+ return vdiImpl;
+}
+
+extern "C" int32_t RegHotPlugCallback(HotPlugCallback cb, void* data)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().RegHotPlugCallback(cb, data);
+}
+
+extern "C" int32_t GetDisplayCapability(uint32_t devId, V1_0::DisplayCapability& info)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayCapability(devId, info);
+}
+
+extern "C" int32_t GetDisplaySupportedModes(uint32_t devId, std::vector& modes)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplaySupportedModes(devId, modes);
+}
+
+extern "C" int32_t GetDisplayMode(uint32_t devId, uint32_t& modeId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayMode(devId, modeId);
+}
+
+extern "C" int32_t SetDisplayMode(uint32_t devId, uint32_t modeId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayMode(devId, modeId);
+}
+
+extern "C" int32_t GetDisplayPowerStatus(uint32_t devId, V1_0::DispPowerStatus& status)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayPowerStatus(devId, status);
+}
+
+extern "C" int32_t SetDisplayPowerStatus(uint32_t devId, V1_0::DispPowerStatus status)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayPowerStatus(devId, status);
+}
+
+extern "C" int32_t GetDisplayBacklight(uint32_t devId, uint32_t& level)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayBacklight(devId, level);
+}
+
+extern "C" int32_t SetDisplayBacklight(uint32_t devId, uint32_t level)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayBacklight(devId, level);
+}
+
+extern "C" int32_t GetDisplayProperty(uint32_t devId, uint32_t id, uint64_t& value)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayProperty(devId, id, value);
+}
+
+extern "C" int32_t GetDisplayCompChange(uint32_t devId, std::vector& layers, std::vector& types)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayCompChange(devId, layers, types);
+}
+
+extern "C" int32_t SetDisplayClientCrop(uint32_t devId, const V1_0::IRect& rect)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayClientCrop(devId, rect);
+}
+
+extern "C" int32_t SetDisplayClientBuffer(uint32_t devId, const BufferHandle& buffer, int32_t fence)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayClientBuffer(devId, buffer, fence);
+}
+
+extern "C" int32_t SetDisplayClientDamage(uint32_t devId, std::vector& rects)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayClientDamage(devId, rects);
+}
+
+extern "C" int32_t SetDisplayVsyncEnabled(uint32_t devId, bool enabled)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayVsyncEnabled(devId, enabled);
+}
+
+extern "C" int32_t RegDisplayVBlankCallback(uint32_t devId, VBlankCallback cb, void* data)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().RegDisplayVBlankCallback(devId, cb, data);
+}
+
+extern "C" int32_t GetDisplayReleaseFence(uint32_t devId, std::vector& layers, std::vector& fences)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().GetDisplayReleaseFence(devId, layers, fences);
+}
+
+extern "C" int32_t CreateVirtualDisplay(uint32_t width, uint32_t height, int32_t& format, uint32_t& devId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().CreateVirtualDisplay(width, height, format, devId);
+}
+
+extern "C" int32_t DestroyVirtualDisplay(uint32_t devId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().DestroyVirtualDisplay(devId);
+}
+
+extern "C" int32_t SetVirtualDisplayBuffer(uint32_t devId, const BufferHandle& buffer, const int32_t fence)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetVirtualDisplayBuffer(devId, buffer, fence);
+}
+
+extern "C" int32_t SetDisplayProperty(uint32_t devId, uint32_t id, uint64_t value)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetDisplayProperty(devId, id, value);
+}
+
+extern "C" int32_t Commit(uint32_t devId, int32_t& fence)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().Commit(devId, fence);
+}
+
+extern "C" int32_t CreateLayer(uint32_t devId, const V1_0::LayerInfo& layerInfo, uint32_t& layerId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().CreateLayer(devId, layerInfo, layerId);
+}
+
+extern "C" int32_t DestroyLayer(uint32_t devId, uint32_t layerId)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().DestroyLayer(devId, layerId);
+}
+
+extern "C" int32_t PrepareDisplayLayers(uint32_t devId, bool& needFlushFb)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().PrepareDisplayLayers(devId, needFlushFb);
+}
+
+extern "C" int32_t SetLayerAlpha(uint32_t devId, uint32_t layerId, const V1_0::LayerAlpha& alpha)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerAlpha(devId, layerId, alpha);
+}
+
+extern "C" int32_t SetLayerRegion(uint32_t devId, uint32_t layerId, const V1_0::IRect& rect)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerRegion(devId, layerId, rect);
+}
+
+extern "C" int32_t SetLayerCrop(uint32_t devId, uint32_t layerId, const V1_0::IRect& rect)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerCrop(devId, layerId, rect);
+}
+
+extern "C" int32_t SetLayerZorder(uint32_t devId, uint32_t layerId, uint32_t zorder)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerZorder(devId, layerId, zorder);
+}
+
+extern "C" int32_t SetLayerPreMulti(uint32_t devId, uint32_t layerId, bool preMul)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerPreMulti(devId, layerId, preMul);
+}
+
+extern "C" int32_t SetLayerTransformMode(uint32_t devId, uint32_t layerId, V1_0::TransformType type)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerTransformMode(devId, layerId, type);
+}
+
+extern "C" int32_t SetLayerDirtyRegion(uint32_t devId, uint32_t layerId, const std::vector& rects)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerDirtyRegion(devId, layerId, rects);
+}
+
+extern "C" int32_t SetLayerVisibleRegion(uint32_t devId, uint32_t layerId, std::vector& rects)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerVisibleRegion(devId, layerId, rects);
+}
+
+extern "C" int32_t SetLayerBuffer(uint32_t devId, uint32_t layerId, const BufferHandle& buffer, int32_t fence)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerBuffer(devId, layerId, buffer, fence);
+}
+
+extern "C" int32_t SetLayerCompositionType(uint32_t devId, uint32_t layerId, V1_0::CompositionType type)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerCompositionType(devId, layerId, type);
+}
+
+extern "C" int32_t SetLayerBlendType(uint32_t devId, uint32_t layerId, V1_0::BlendType type)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerBlendType(devId, layerId, type);
+}
+
+extern "C" int32_t SetLayerMaskInfo(uint32_t devId, uint32_t layerId, const V1_0::MaskInfo maskInfo)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerMaskInfo(devId, layerId, maskInfo);
+}
+
+extern "C" int32_t SetLayerColor(uint32_t devId, uint32_t layerId, const V1_0::LayerColor& layerColor)
+{
+ return DisplayComposerVdiImpl::GetVdiInstance().SetLayerColor(devId, layerId, layerColor);
+}
+
} // DISPLAY
} // HDI
} // OHOS
diff --git a/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.h b/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.h
index 15443154f2e9792eb6cc882474898d40caa6dd23..744c43d46c2124047fa9c4d6bac900607d6a0253 100755
--- a/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.h
+++ b/device_soc_phytium/common/hardware/display/src/display_device/display_composer_vdi_impl.h
@@ -29,6 +29,7 @@ using namespace OHOS::HDI::Display::Composer::V1_0;
class DisplayComposerVdiImpl : public IDisplayComposerVdi {
public:
+ static DisplayComposerVdiImpl& GetVdiInstance();
DisplayComposerVdiImpl();
virtual ~DisplayComposerVdiImpl();
virtual int32_t RegHotPlugCallback(HotPlugCallback cb, void* data) override;
@@ -73,8 +74,11 @@ public:
virtual int32_t SetLayerMaskInfo(uint32_t devId, uint32_t layerId, const MaskInfo maskInfo) override;
virtual int32_t SetLayerColor(uint32_t devId, uint32_t layerId, const LayerColor& layerColor) override;
private:
- HdiSession* composerModel_;
+ std::mutex mMutex;
};
+
+extern "C" int32_t GetDumpInfo(std::string& result);
+extern "C" int32_t UpdateConfig(std::string& result);
} // DISPLAY
} // HDI
} // OHOS
diff --git a/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.cpp b/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.cpp
index ddb7f1cb2f417b19770b30ada91b7858b69cd9a0..583d3bb7e7a4c27cf441091d529a01029e4825ee 100755
--- a/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.cpp
+++ b/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.cpp
@@ -24,6 +24,7 @@ namespace OHOS {
namespace HDI {
namespace DISPLAY {
using namespace OHOS::HDI::Display::Composer::V1_0;
+using namespace OHOS::HDI::Display::Buffer::V1_2;
DisplayBufferVdiImpl::DisplayBufferVdiImpl()
{
diff --git a/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.h b/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.h
index c66b74cea35571908665fa7057075e304c918b61..5bf4cf166d7c571a8794b8eeaa741abdb780a867 100755
--- a/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.h
+++ b/device_soc_phytium/common/hardware/display/src/display_gralloc/display_buffer_vdi_impl.h
@@ -19,11 +19,11 @@
#include "buffer_handle.h"
#include "idisplay_buffer_vdi.h"
#include "v1_0/display_buffer_type.h"
+#include "v1_2/display_buffer_type.h"
namespace OHOS {
namespace HDI {
namespace DISPLAY {
-using namespace OHOS::HDI::Display::Buffer::V1_0;
using namespace OHOS::HDI::Display::Buffer::V1_2;
class DisplayBufferVdiImpl : public IDisplayBufferVdi {
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Kconfig
deleted file mode 100644
index d820d6ea46bcb82ca25bd9a5d47b1bd38543527e..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config HW_RANDOM_PHYTIUM
- tristate "Phytium Random Number Generator support"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Phytium SoCs.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium-rng.
-
- If unsure, say Y.
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Makefile
deleted file mode 100644
index 5571b11e1a98c5d251a793e485ae9013a0d50bed..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/hw_random/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HW_RANDOM_PHYTIUM) += phytium-rng.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Kconfig
deleted file mode 100644
index e1c26928c397d4cbb5bccdba30fde8c2ea889b68..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Kconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-config PHYTIUM_KCS_IPMI_BMC
- depends on ARCH_PHYTIUM
- select IPMI_KCS_BMC
- select REGMAP_MMIO
- tristate "PHYTIUM KCS IPMI BMC driver"
- help
- Provides a driver for the KCS (Kerboard Controller Style) IPMI
- interface found on Phytium SOCs.
-
- The driver implements the BMC side of the KCS controller, it
- provides the access of KCS IO space for BMC side.
-
-config PHYTIUM_BT_IPMI_BMC
- depends on ARCH_PHYTIUM
- depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
- tristate "PHYTIUM BT BMC driver"
- help
- Provides a driver for the BT (Block Transfer) IPMI interface
- found on Phytium SOCs. The driver implements the BMC
- side of the BT interface.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Makefile
deleted file mode 100644
index 949b07180e80669a0284afb55f11aadc0658317b..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/char/ipmi/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-obj-$(CONFIG_PHYTIUM_KCS_IPMI_BMC) += kcs_bmc_phytium.o
-obj-$(CONFIG_PHYTIUM_BT_IPMI_BMC) += bt_bmc_phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Kconfig
deleted file mode 100644
index 2fea29350907c31d418cddd792c50f65c717569a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Kconfig
+++ /dev/null
@@ -1,36 +0,0 @@
-# This symbol is selected by both MMIO and PCI expanders
-config GPIO_PHYTIUM_CORE
- tristate
-
-config GPIO_PHYTIUM_PLAT
- tristate "Phytium GPIO Platform support"
- default y if ARCH_PHYTIUM
- depends on ARM64
- select GPIO_PHYTIUM_CORE
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- select GPIOLIB_IRQCHIP
- help
- Say yes here to enable GPIO support for Phytium SoCs.
-
-config GPIO_PHYTIUM_SGPIO
- tristate "Phytium SGPIO support"
- default y if ARCH_PHYTIUM
- depends on ARM64
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- help
- Say yes here to enable SGPIO support for Phytium SoCs.
-
-config GPIO_PHYTIUM_PCI
- tristate "Phytium GPIO PCI support"
- select GPIO_PHYTIUM_CORE
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- select GPIOLIB_IRQCHIP
- help
- Say Y here to support Phytium PCI GPIO controller on px210 chipset.
- An interrupt is generated when any of the inputs change state
- (low to high or high to low).
-
- This driver can be used for Phytium px210.
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Makefile
deleted file mode 100644
index f97ee48808be16dc40bd4c8a090e346e3004853b..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/gpio/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# generic gpio support: platform drivers, dedicated expander chips, etc
-
-obj-$(CONFIG_GPIO_PHYTIUM_CORE) += gpio-phytium-core.o
-obj-$(CONFIG_GPIO_PHYTIUM_PCI) += gpio-phytium-pci.o
-obj-$(CONFIG_GPIO_PHYTIUM_PLAT) += gpio-phytium-platform.o
-obj-$(CONFIG_GPIO_PHYTIUM_SGPIO) += gpio-phytium-sgpio.o
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Kconfig
deleted file mode 100755
index 8cb5b6c96668f4143f53ad8b100b6736aee143c4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config SENSORS_PHYTIUM
- tristate "Phytium Fan tach and capture counter driver"
- help
- This driver provides support for Phytium Fan Tacho and capture
- counter controllers.
-
- This driver can also be built as a module. If so, the module
- will be called tacho-phytium.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Makefile
deleted file mode 100755
index 0023d8f1206dc17c93fb451beb90aee1805368e6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwmon/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SENSORS_PHYTIUM) += tacho-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Kconfig
deleted file mode 100755
index 9671c560beffe94878e6dec4780f7696f5d170cd..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config HWSPINLOCK_PHYTIUM
- tristate "Phytium Hardware Spinlock device"
- depends on HWSPINLOCK
- depends on ARCH_PHYTIUM
- help
- Say y here to support the Phytium Hardware Spinlock device.
-
- If unsure, say N.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Makefile
deleted file mode 100755
index 16c328e1ccae5a7c171a6c2655f1c7633bed2b0a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/hwspinlock/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HWSPINLOCK_PHYTIUM) += phytium_hwspinlock.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Kconfig
deleted file mode 100755
index 7ebaef6574c45971d5c71497b15d99f2a89e23c8..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Kconfig
+++ /dev/null
@@ -1,29 +0,0 @@
-config I2C_PHYTIUM_CORE
- tristate
-
-config I2C_PHYTIUM_PCI
- tristate "Phytium I2C PCI"
- depends on PCI && ARCH_PHYTIUM
- select I2C_PHYTIUM_CORE
- select I2C_SMBUS
- help
- If you say yes to this option, support will be included for the
- Phytium I2C adapter. Only master mode is supported.
-
- This driver can also be built as a module. If so, the module
- will be called i2c-phytium-pci.
-
-config I2C_PHYTIUM_PLATFORM
- tristate "Phytium I2C Platform"
- depends on (ACPI && COMMON_CLK) || !ACPI
- select I2C_SLAVE
- select I2C_PHYTIUM_CORE
- select I2C_SMBUS
- help
- If you say yes to this option, support will be included for the
- Phytium I2C adapter. Only master mode is supported.
-
- This driver can also be built as a module. If so, the module
- will be called i2c-phytium-platform.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Makefile
deleted file mode 100755
index 7c84153daf0961ae12fdaacafab0db8a861bda6c..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/i2c/busses/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-obj-$(CONFIG_I2C_PHYTIUM_CORE) += i2c-phytium-core.o
-i2c-phytium-core-objs := i2c-phytium-common.o i2c-phytium-master.o i2c-phytium-slave.o
-obj-$(CONFIG_I2C_PHYTIUM_PCI) += i2c-phytium-pci.o
-obj-$(CONFIG_I2C_PHYTIUM_PLATFORM) += i2c-phytium-platform.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Kconfig
deleted file mode 100755
index edd18f92d08407d3ed5fbdf288a7d07f870c43fb..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-config PHYTIUM_ADC
- tristate "Phytium ADC driver"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- select IIO_BUFFER
- select IIO_TRIGGERED_BUFFER
- help
- Say yes here to build support for Phytium analog to digital
- converters (ADC).
-
- To compile this driver as a module, choose M here: the module
- will be called phytium-adc.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Makefile
deleted file mode 100755
index 5047e36da2d3eaa296bf63be0407dc71905a66ad..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/iio/adc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTIUM_ADC) += phytium-adc.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Kconfig
deleted file mode 100755
index 6851cd0f226487df68b4aa04ada7c38cd87f17f2..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config KEYBOARD_PHYTIUM
- tristate "Phytium keypad support"
- depends on ARCH_PHYTIUM
- select INPUT_MATRIXKMAP
- help
- Say Y here if you want to enable support for Phytium keypad
- port.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium_keypad.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Makefile
deleted file mode 100755
index bae46ed876c265a29de845a7ec94d78f8ba74281..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/keyboard/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Kconfig
deleted file mode 100644
index 25c414a10541c8cd3cb56f50d453936046b64b1f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-config SERIO_PHYTIUM_PS2
- depends on SERIO
- tristate "PHYTIUM PS/2 (keyboard and mouse)"
- default y if ARCH_PHYTIUM
- depends on PCI
- help
- This selects support for the PS/2 Host Controller on
- Phytium SoCs.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium-ps2.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Makefile
deleted file mode 100644
index 09ab3c8f5df431cadc513f387c7376213cb1be97..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/input/serio/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SERIO_PHYTIUM_PS2) += phytium-ps2.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Kconfig
deleted file mode 100644
index c574d405e3df266bab2119d4c629b00f699708ff..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Kconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-config PHYTIUM_IXIC
- bool "Phytium SoC PCI Legacy Interrupt Controller"
- depends on ARCH_PHYTIUM
- select IRQ_DOMAIN
- select IRQ_DOMAIN_HIERARCHY
- help
- This enables support PCI Legacy Interrupt on Phytium SoC.
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Makefile
deleted file mode 100644
index cb297747e0a4fe4153a2a668e6f471403d4002e9..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/irqchip/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTIUM_IXIC) += irq-phytium-ixic.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Kconfig
deleted file mode 100755
index 6d47b0c3b2994bea040fb3143ba304729d9b46e6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config PHYTIUM_MBOX
- tristate "Phytium SoC Mailbox Support"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- Mailbox driver implementation for the Phytium platform. It is used
- to send message between application processors and on-chip management
- firmware. Say Y here if you want to build this mailbox controller
- driver.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Makefile
deleted file mode 100755
index 28a202ca66b1dccf1469f24cff3938a2497d0ac0..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mailbox/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTIUM_MBOX) += phytium-mailbox.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Kconfig
deleted file mode 100755
index 5bd33c533e04b717e99b5ca5c3e9d99a10d347ec..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Kconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-config MFD_PHYTIUM_I2S_LSD
- tristate "PHYTIUM px210 I2S LSD MFD driver"
- depends on (PCI && ARCH_PHYTIUM)
- select MFD_CORE
- help
- This enables support for the Phytium px210 LSD I2S controller.
-
-config MFD_PHYTIUM_I2S_MMD
- tristate "PHYTIUM px210 I2S MMD MFD driver"
- depends on (PCI && ARCH_PHYTIUM)
- select MFD_CORE
- help
- This enables support for the Phytium px210 MMD I2S controllers
- for Display Port.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Makefile
deleted file mode 100755
index 279f0d88af6bcd2861eff2024aefa7b2f0f9c296..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mfd/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-obj-$(CONFIG_MFD_PHYTIUM_I2S_LSD) += phytium_px210_i2s_lsd.o
-obj-$(CONFIG_MFD_PHYTIUM_I2S_MMD) += phytium_px210_i2s_mmd.o
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Kconfig
deleted file mode 100644
index feb25db4d874ef7cc69ed03ba5622168c5719f11..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Kconfig
+++ /dev/null
@@ -1,34 +0,0 @@
-config MMC_PHYTIUM_SDCI
- tristate "Phytium SD Host Controller support"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- default y if ARCH_PHYTIUM
- help
- This selects support for the SD/MMC Host Controller on
- Phytium SoC family.
-
- If you have a controller with this interface, say Y or M here.
-
- If unsure, say N.
-
-config MMC_PHYTIUM_MCI_PCI
- tristate "Phytium octopus PCI MultiMedia Card Interface support"
- depends on ARCH_PHYTIUM
- default y if ARCH_PHYTIUM
- help
- This selects support for the PCI MultiMedia Card Interface on Phytium
- px210 chipset.
-
- If you have a controller with this interface, say Y or M here.
-
- If unsure, say N.
-
-config MMC_PHYTIUM_MCI_PLTFM
- tristate "Phytium MultiMedia Card Interface support"
- depends on ARCH_PHYTIUM && OF
- default y if ARCH_PHYTIUM
- help
- This selects support for the MultiMedia Card Interface on Phytium SoCs.
- If you have a controller with this interface, say Y or M here.
-
- If unsure, say N.
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Makefile
deleted file mode 100644
index 6d8510cf5597387f8174e9c22f056f22d3bbd44a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mmc/host/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-obj-$(CONFIG_MMC_PHYTIUM_SDCI) += phytium-sdci.o
-obj-$(CONFIG_MMC_PHYTIUM_MCI_PCI) += phytium-mci-pci.o phytium-mci.o
-obj-$(CONFIG_MMC_PHYTIUM_MCI_PLTFM) += phytium-mci-plat.o phytium-mci.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/Makefile
deleted file mode 100755
index 6be02bc9739c64e7a05c7cd5de26403db351b58a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += raw/
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Kconfig
deleted file mode 100755
index 522662b15edaa10ed175772bc9df6fbeebef5230..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Kconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-config MTD_NAND_PHYTIUM
- tristate
-
-config MTD_NAND_PHYTIUM_PCI
- tristate "Support Phytium NAND controller as a PCI device"
- select MTD_NAND_PHYTIUM
- depends on PCI
- help
- Enable the driver for NAND flash controller of Phytium Px210 chipset,
- using the Phytium NAND controller core.
-
-config MTD_NAND_PHYTIUM_PLAT
- tristate "Support Phytium NAND controller as a platform device"
- select MTD_NAND_PHYTIUM
- depends on ARCH_PHYTIUM
- help
- Enable the driver for NAND flash controller of Phytium CPU chipset,
- using the Phytium NAND controller core.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Makefile
deleted file mode 100755
index 77ecd2beb72f440e5cdd00500f542137edf69946..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/nand/raw/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-obj-$(CONFIG_MTD_NAND_PHYTIUM) += phytium_nand.o
-obj-$(CONFIG_MTD_NAND_PHYTIUM_PCI) += phytium_nand_pci.o
-obj-$(CONFIG_MTD_NAND_PHYTIUM_PLAT) += phytium_nand_plat.o
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/Makefile
deleted file mode 100755
index 5e603be9d985471c24f46cd8650d2a5bb8c6da2d..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += controllers/
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Kconfig
deleted file mode 100644
index 5991937154405625bf58a70b940469f6c40cb19f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Kconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-config SPI_PHYTIUM_QUADSPI
- tristate "Phytium Quad SPI Controller"
- depends on ARCH_PHYTIUM || ARM
- depends on OF && HAS_IOMEM
- help
- This enables support for the Quad SPI controller in master mode.
- This driver does not support generic SPI. The implementation only
- supports SPI NOR.
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Makefile
deleted file mode 100644
index ad7bd05c71795e986a412a67e2b7c7d79367b5c6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/mtd/spi-nor/controllers/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SPI_PHYTIUM_QUADSPI) += phytium-quadspi.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Kconfig
deleted file mode 100644
index 7b63f74763a9e67a90ec7f50fbd763b432e554b8..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Kconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-config MACB_TSN
- bool "TSN supports"
- depends on MACB
- help
- This is TSN supports for MACB driver.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Makefile
deleted file mode 100644
index 9c5e45d5b876cf993811b95cd589db9e99ba89b8..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/cadence/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(CONFIG_MACB_TSN),y)
-macb-y += macb_tsn.o
-endif
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/Makefile
deleted file mode 100644
index 66e8c9c99a96663940048402bea767a3d809cfa7..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += stmmac/
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Kconfig
deleted file mode 100644
index f7a887acdd88b6d74981cbac01e94f4e98090745..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Kconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-config DWMAC_PHYTIUM
- tristate "Phytium dwmac support"
- default ARCH_PHYTIUM
- depends on (OF || ACPI) && (ARCH_PHYTIUM || COMPILE_TEST)
- help
- Support for GMAC controller on Phytium SoCs.
-
- This selects the Phytium GMAC glue layer support for the
- stmmac device driver.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Makefile
deleted file mode 100644
index b87bcab827abb728e9638fca50457c55920b94ff..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_DWMAC_PHYTIUM) += dwmac-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Kconfig
deleted file mode 100644
index 2e83f9642cd8c4825919a1d0eb2835bed2875e1d..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Kconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-config MOTORCOMM_PHY
- tristate "Motorcomm PHYs"
- help
- Enables support for Motorcomm network PHYs.
- Currently supports the YT8511 gigabit PHY.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Makefile
deleted file mode 100644
index cc43a4284088400827d2f8419419a892c8dbdee7..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/net/phy/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Kconfig
deleted file mode 100644
index 67592f72fa91b53248cb61a494d54932071087e4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Kconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-config PWM_PHYTIUM
- tristate "Phytium PWM support"
- depends on ARCH_PHYTIUM
- help
- Generic PWM framework driver for the PWM controller found on
- Phytium SoCs.
-
- To compile this driver as a module, choose M here: the module
- will be called pwm-phytium.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Makefile
deleted file mode 100644
index b3d6fbbbfdcc0d79035227b1b04b9d153fe4d654..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/pwm/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PWM_PHYTIUM) += pwm-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Kconfig
deleted file mode 100644
index d21959ab1d3a089804eb70614bee2657350680d4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Kconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-config HOMO_REMOTEPROC
- bool "homogeneous remoteproc support"
- select RPMSG_VIRTIO
- help
- Say y here to support homogeneous processors via the remote processor framework.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Makefile
deleted file mode 100644
index 1314f9cae6364ee101c7dfcee8a3c8687145ac0e..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/remoteproc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HOMO_REMOTEPROC) += homo_remoteproc.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Kconfig
deleted file mode 100755
index 6567a16253b1449c935b99d266c8ac3aeefc2740..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config RTC_DRV_SD3068
- tristate "ZXW Shenzhen whwave SD3068"
- select REGMAP_I2C
- help
- If you say yes here you get support for the ZXW Shenzhen whwave
- SD3068 RTC chips.
-
- This driver can also be built as a module. If so, the module
- will be called rtc-sd3068
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Makefile
deleted file mode 100755
index 1b2c1e9da89989c1a9e151f272b9d2c2db0aa1e0..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/rtc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_RTC_DRV_SD3068) += rtc-sd3068.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Kconfig
deleted file mode 100644
index cb9b9baef4b353fcb1410d99ddb97fc22bea7dbd..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Kconfig
+++ /dev/null
@@ -1,26 +0,0 @@
-config SPI_PHYTIUM
- tristate
- depends on ARCH_PHYTIUM || COMPILE_TEST
-
-config SPI_PHYTIUM_PLAT
- tristate "Phytium SPI controller platform support"
- select SPI_PHYTIUM
- help
- This selects a platform driver for Phytium SPI controller.
-
- If you say yes to this option, support will be included for
- Pd1904 and pd2008 families of SPI controller.
-
-config SPI_PHYTIUM_PCI
- tristate "Phytium SPI controller PCI support"
- depends on PCI
- select SPI_PHYTIUM
- help
- This selects a PCI driver for Phytium SPI controller.
-
- If you say yes to this option, support will be included for
- Phytium px210 chipset of SPI controller.
-
- If unsure, say N.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Makefile
deleted file mode 100644
index 99d75cc6a327348b8dc71c358015ca54da0c3e9f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/spi/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium.o spi-phytium-dma.o
-obj-$(CONFIG_SPI_PHYTIUM_PLAT) += spi-phytium-plat.o
-obj-$(CONFIG_SPI_PHYTIUM_PCI) += spi-phytium-pci.o
-obj-$(CONFIG_SPI_PHYTIUM_QSPI) += spi-phytium-qspi.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Kconfig
deleted file mode 100755
index faf0ce58dd076efb84447f13dac241afbf6b5ff4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config SERIAL_PHYTIUM_PCI
- tristate "Phytium PCI serial port support"
- depends on PCI
- select SERIAL_CORE
- help
- This driver supports the Phytium UART controller on PCI/PCIe adapters.
- If you want to compile this driver into the kernel, say Y here. To
- compile this driver as a module, choose M here.
-
- If unsure, say N.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Makefile
deleted file mode 100755
index 766f23a0295bb1a03dbc3d866970b7ba50830220..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/tty/serial/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SERIAL_PHYTIUM_PCI) += phytium-uart.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Kconfig
deleted file mode 100755
index afc204376c862e91753496193937aac2b2bba376..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config W1_MASTER_PHYTIUM
- tristate "Phytium 1-wire driver"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- Say Y here if you want to get support for the 1-wire interface
- on an Phytium SoC.
-
- This driver can also be built as a module. If so, the module
- will be called phytium-w1.
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Makefile b/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Makefile
deleted file mode 100755
index b85e48ffde2b1c93b74ee0659052bad52dae0b8d..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/drivers/w1/masters/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_W1_MASTER_PHYTIUM) += phytium_w1.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Kconfig
deleted file mode 100644
index 31e43c59c0a78057a74793a73b94aa2413fae33a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Kconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-config SND_HDA_PHYTIUM
- tristate "PHYTIUM HD Audio"
- depends on SOUND
- select SND_HDA
- select SND_HDA_ALIGNED_MMIO
- help
- Say Y here to support the HDA controller present in PHYTIUM
- SoCs
-
- This options enables support for the HD Audio controller
- present in some PHYTIUM SoCs, used to communicate audio
- to the "High Definition Audio" codec.
-
- To compile this driver as a module, choose M here: the module
- will be called snd-hda-phytium.
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Makefile b/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Makefile
deleted file mode 100644
index 37f17b56b4f367046a5bf2c4a66d6e4867773cbe..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/sound/pci/hda/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-snd-hda-phytium-objs := hda_phytium.o
-obj-$(CONFIG_SND_HDA_PHYTIUM) += snd-hda-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/sound/soc/Kconfig
deleted file mode 100644
index 2ab9eefb8c73190e19b3cf4f28e93425d0c39595..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/Kconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# SoC audio configuration
-#
-
-source "sound/soc/phytium/Kconfig"
-# Supported codecs
-source "sound/soc/codecs/Kconfig"
-
diff --git a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Kconfig b/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Kconfig
deleted file mode 100644
index d9aee6b5dac3d2d1bf5d7cb845cb5e95c17d88fe..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Kconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Helper to resolve issues with configs that have SPI enabled but I2C
-# modular, meaning we can't build the codec driver in with I2C support.
-# We use an ordered list of conditional defaults to pick the appropriate
-# setting - SPI can't be modular so that case doesn't need to be covered.
-
-menu "CODEC drivers"
-
-config SND_SOC_ES8336
- tristate "Everest Semi ES8336 CODEC"
- depends on I2C
- select GPIO_PHYTIUM_PCI
-
-config SND_SOC_ES8388
- tristate "Everest Semi ES8388 CODEC"
- depends on I2C
-
-endmenu
diff --git a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Makefile b/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Makefile
deleted file mode 100644
index 07ee92fca5ff0b664c00e6984dea8f66e8c343d6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-5.10/sound/soc/codecs/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-
-snd-soc-es8336-objs := es8336.o
-snd-soc-es8388-objs := es8388.o
-
-obj-$(CONFIG_SND_SOC_ES8336) += snd-soc-es8336.o
-obj-$(CONFIG_SND_SOC_ES8388) += snd-soc-es8388.o
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Kconfig
deleted file mode 100644
index d820d6ea46bcb82ca25bd9a5d47b1bd38543527e..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config HW_RANDOM_PHYTIUM
- tristate "Phytium Random Number Generator support"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Phytium SoCs.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium-rng.
-
- If unsure, say Y.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Makefile
deleted file mode 100644
index 5571b11e1a98c5d251a793e485ae9013a0d50bed..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/hw_random/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HW_RANDOM_PHYTIUM) += phytium-rng.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Kconfig
deleted file mode 100644
index e1c26928c397d4cbb5bccdba30fde8c2ea889b68..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Kconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-config PHYTIUM_KCS_IPMI_BMC
- depends on ARCH_PHYTIUM
- select IPMI_KCS_BMC
- select REGMAP_MMIO
- tristate "PHYTIUM KCS IPMI BMC driver"
- help
- Provides a driver for the KCS (Kerboard Controller Style) IPMI
- interface found on Phytium SOCs.
-
- The driver implements the BMC side of the KCS controller, it
- provides the access of KCS IO space for BMC side.
-
-config PHYTIUM_BT_IPMI_BMC
- depends on ARCH_PHYTIUM
- depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
- tristate "PHYTIUM BT BMC driver"
- help
- Provides a driver for the BT (Block Transfer) IPMI interface
- found on Phytium SOCs. The driver implements the BMC
- side of the BT interface.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Makefile
deleted file mode 100644
index 949b07180e80669a0284afb55f11aadc0658317b..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/ipmi/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-obj-$(CONFIG_PHYTIUM_KCS_IPMI_BMC) += kcs_bmc_phytium.o
-obj-$(CONFIG_PHYTIUM_BT_IPMI_BMC) += bt_bmc_phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Kconfig
deleted file mode 100644
index 26691906dbf4db150ccd0a133dee4c1c1ec4872b..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# PCMCIA character device configuration
-#
-config PHYTNET_LED
- tristate "Phytium mac led control module"
- depends on PHYTMAC
- depends on GPIO_PHYTIUM_PLAT
- default m
- help
- If you have a network (Ethernet) controller of this type and
- want to use it control port led say Y or M here.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Makefile
deleted file mode 100644
index 781bc90c1b9c30d7f909b8fad54cd88eb2a01894..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/char/phytnetled/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTNET_LED) += phytnet_led.o
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Kconfig
deleted file mode 100644
index b362a8aa2cd6b390e3254c1d9dc672166f92b4e0..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Kconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-config EDAC_PHYTIUM
- tristate "Phytium Pe220x SoC"
- depends on (ARM64)
- help
- Support for error detection and correction on the
- Phytium Pe220x family of SOCs.
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Makefile
deleted file mode 100644
index ae89fc2b7b656a4a96b5bfb2dec7328c4b360e36..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/edac/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_EDAC_PHYTIUM) += phytium_edac.o
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Kconfig
deleted file mode 100644
index b9ccfe673063f4fc6a78c60e1dccc66880687671..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Kconfig
+++ /dev/null
@@ -1,37 +0,0 @@
-# This symbol is selected by both MMIO and PCI expanders
-config GPIO_PHYTIUM_CORE
- tristate
-
-config GPIO_PHYTIUM_PLAT
- tristate "Phytium GPIO Platform support"
- default y if ARCH_PHYTIUM
- depends on ARM64
- select GPIO_PHYTIUM_CORE
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- select GPIOLIB_IRQCHIP
- help
- Say yes here to support the on-chip GPIO controller for the
- Phytium SoC family.
-
-config GPIO_PHYTIUM_SGPIO
- tristate "Phytium SGPIO support"
- default y if ARCH_PHYTIUM
- depends on ARM64
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- help
- Say yes here to enable SGPIO support for Phytium SoCs.
-
-config GPIO_PHYTIUM_PCI
- tristate "Phytium GPIO PCI support"
- select GPIO_PHYTIUM_CORE
- select IRQ_DOMAIN
- select GENERIC_IRQ_CHIP
- select GPIOLIB_IRQCHIP
- help
- Say Y here to support Phytium PCI GPIO controller on px210 chipset.
- An interrupt is generated when any of the inputs change state
- (low to high or high to low).
-
- This driver can be used for Phytium px210.
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Makefile
deleted file mode 100644
index f97ee48808be16dc40bd4c8a090e346e3004853b..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/gpio/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# generic gpio support: platform drivers, dedicated expander chips, etc
-
-obj-$(CONFIG_GPIO_PHYTIUM_CORE) += gpio-phytium-core.o
-obj-$(CONFIG_GPIO_PHYTIUM_PCI) += gpio-phytium-pci.o
-obj-$(CONFIG_GPIO_PHYTIUM_PLAT) += gpio-phytium-platform.o
-obj-$(CONFIG_GPIO_PHYTIUM_SGPIO) += gpio-phytium-sgpio.o
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Kconfig
deleted file mode 100755
index 8cb5b6c96668f4143f53ad8b100b6736aee143c4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config SENSORS_PHYTIUM
- tristate "Phytium Fan tach and capture counter driver"
- help
- This driver provides support for Phytium Fan Tacho and capture
- counter controllers.
-
- This driver can also be built as a module. If so, the module
- will be called tacho-phytium.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Makefile
deleted file mode 100755
index 0023d8f1206dc17c93fb451beb90aee1805368e6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwmon/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SENSORS_PHYTIUM) += tacho-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Kconfig
deleted file mode 100755
index 9671c560beffe94878e6dec4780f7696f5d170cd..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config HWSPINLOCK_PHYTIUM
- tristate "Phytium Hardware Spinlock device"
- depends on HWSPINLOCK
- depends on ARCH_PHYTIUM
- help
- Say y here to support the Phytium Hardware Spinlock device.
-
- If unsure, say N.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Makefile
deleted file mode 100755
index 16c328e1ccae5a7c171a6c2655f1c7633bed2b0a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/hwspinlock/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HWSPINLOCK_PHYTIUM) += phytium_hwspinlock.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Kconfig
deleted file mode 100755
index 7ebaef6574c45971d5c71497b15d99f2a89e23c8..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Kconfig
+++ /dev/null
@@ -1,29 +0,0 @@
-config I2C_PHYTIUM_CORE
- tristate
-
-config I2C_PHYTIUM_PCI
- tristate "Phytium I2C PCI"
- depends on PCI && ARCH_PHYTIUM
- select I2C_PHYTIUM_CORE
- select I2C_SMBUS
- help
- If you say yes to this option, support will be included for the
- Phytium I2C adapter. Only master mode is supported.
-
- This driver can also be built as a module. If so, the module
- will be called i2c-phytium-pci.
-
-config I2C_PHYTIUM_PLATFORM
- tristate "Phytium I2C Platform"
- depends on (ACPI && COMMON_CLK) || !ACPI
- select I2C_SLAVE
- select I2C_PHYTIUM_CORE
- select I2C_SMBUS
- help
- If you say yes to this option, support will be included for the
- Phytium I2C adapter. Only master mode is supported.
-
- This driver can also be built as a module. If so, the module
- will be called i2c-phytium-platform.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Makefile
deleted file mode 100755
index 7c84153daf0961ae12fdaacafab0db8a861bda6c..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/i2c/busses/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-obj-$(CONFIG_I2C_PHYTIUM_CORE) += i2c-phytium-core.o
-i2c-phytium-core-objs := i2c-phytium-common.o i2c-phytium-master.o i2c-phytium-slave.o
-obj-$(CONFIG_I2C_PHYTIUM_PCI) += i2c-phytium-pci.o
-obj-$(CONFIG_I2C_PHYTIUM_PLATFORM) += i2c-phytium-platform.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Kconfig
deleted file mode 100755
index edd18f92d08407d3ed5fbdf288a7d07f870c43fb..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-config PHYTIUM_ADC
- tristate "Phytium ADC driver"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- select IIO_BUFFER
- select IIO_TRIGGERED_BUFFER
- help
- Say yes here to build support for Phytium analog to digital
- converters (ADC).
-
- To compile this driver as a module, choose M here: the module
- will be called phytium-adc.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Makefile
deleted file mode 100755
index 5047e36da2d3eaa296bf63be0407dc71905a66ad..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/iio/adc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTIUM_ADC) += phytium-adc.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Kconfig
deleted file mode 100755
index 6851cd0f226487df68b4aa04ada7c38cd87f17f2..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config KEYBOARD_PHYTIUM
- tristate "Phytium keypad support"
- depends on ARCH_PHYTIUM
- select INPUT_MATRIXKMAP
- help
- Say Y here if you want to enable support for Phytium keypad
- port.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium_keypad.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Makefile
deleted file mode 100755
index bae46ed876c265a29de845a7ec94d78f8ba74281..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/keyboard/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Kconfig
deleted file mode 100644
index 25c414a10541c8cd3cb56f50d453936046b64b1f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-config SERIO_PHYTIUM_PS2
- depends on SERIO
- tristate "PHYTIUM PS/2 (keyboard and mouse)"
- default y if ARCH_PHYTIUM
- depends on PCI
- help
- This selects support for the PS/2 Host Controller on
- Phytium SoCs.
-
- To compile this driver as a module, choose M here: the
- module will be called phytium-ps2.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Makefile
deleted file mode 100644
index 09ab3c8f5df431cadc513f387c7376213cb1be97..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/input/serio/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SERIO_PHYTIUM_PS2) += phytium-ps2.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Kconfig
deleted file mode 100644
index 42d0bc50511372433cd0ef0a8a599a49f043669f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-config ARM_GIC_PHYTIUM_2500
- bool
- select IRQ_DOMAIN_HIERARCHY
- select PARTITION_PERCPU
- select GENERIC_IRQ_EFFECTIVE_AFF_MASK
-
-config PHYTIUM_IXIC
- bool "Phytium SoC PCI Legacy Interrupt Controller"
- depends on ARCH_PHYTIUM
- select IRQ_DOMAIN
- select IRQ_DOMAIN_HIERARCHY
- help
- This enables support PCI Legacy Interrupt on Phytium SoC.
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Makefile
deleted file mode 100644
index 0f79bc14a9e1201dc0b6b4bd4a49a1c9b66b3a12..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/irqchip/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-obj-$(CONFIG_ARM_GIC_PHYTIUM_2500) += irq-gic-phytium-2500.o irq-gic-phytium-2500-its.o
-obj-$(CONFIG_PHYTIUM_IXIC) += irq-phytium-ixic.o
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Kconfig
deleted file mode 100755
index 6d47b0c3b2994bea040fb3143ba304729d9b46e6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config PHYTIUM_MBOX
- tristate "Phytium SoC Mailbox Support"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- Mailbox driver implementation for the Phytium platform. It is used
- to send message between application processors and on-chip management
- firmware. Say Y here if you want to build this mailbox controller
- driver.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Makefile
deleted file mode 100755
index 1e576a5426ba27e2b7f5bda89d76f9ecb5dbae68..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mailbox/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PHYTIUM_MBOX) += phytium_mailbox.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Kconfig
deleted file mode 100755
index 5bd33c533e04b717e99b5ca5c3e9d99a10d347ec..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Kconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-config MFD_PHYTIUM_I2S_LSD
- tristate "PHYTIUM px210 I2S LSD MFD driver"
- depends on (PCI && ARCH_PHYTIUM)
- select MFD_CORE
- help
- This enables support for the Phytium px210 LSD I2S controller.
-
-config MFD_PHYTIUM_I2S_MMD
- tristate "PHYTIUM px210 I2S MMD MFD driver"
- depends on (PCI && ARCH_PHYTIUM)
- select MFD_CORE
- help
- This enables support for the Phytium px210 MMD I2S controllers
- for Display Port.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Makefile
deleted file mode 100755
index 279f0d88af6bcd2861eff2024aefa7b2f0f9c296..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mfd/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-obj-$(CONFIG_MFD_PHYTIUM_I2S_LSD) += phytium_px210_i2s_lsd.o
-obj-$(CONFIG_MFD_PHYTIUM_I2S_MMD) += phytium_px210_i2s_mmd.o
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Kconfig
deleted file mode 100644
index 45668507ed5f488a7f0688ff6d998e7cc6dcbd4f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Kconfig
+++ /dev/null
@@ -1,29 +0,0 @@
-config MMC_PHYTIUM_SDCI
- tristate "Phytium SD Host Controller support"
- depends on ARM64
- help
- This selects support for the Phytium SD Host Controller
-
-
-config MMC_PHYTIUM_MCI_PCI
- tristate "Phytium PCI MultiMedia Card Interface support"
- depends on ARCH_PHYTIUM
- default y if ARCH_PHYTIUM
- help
- This selects support for the PCI MultiMedia Card Interface on Phytium
- px210 chipset.
-
- If you have a controller with this interface, say Y or M here.
-
- If unsure, say N.
-
-config MMC_PHYTIUM_MCI_PLTFM
- tristate "Phytium MultiMedia Card Interface support"
- depends on ARCH_PHYTIUM && OF
- default y if ARCH_PHYTIUM
- help
- This selects support for the MultiMedia Card Interface on Phytium SoCs.
- If you have a controller with this interface, say Y or M here.
-
- If unsure, say N.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Makefile
deleted file mode 100644
index 6d8510cf5597387f8174e9c22f056f22d3bbd44a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mmc/host/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-obj-$(CONFIG_MMC_PHYTIUM_SDCI) += phytium-sdci.o
-obj-$(CONFIG_MMC_PHYTIUM_MCI_PCI) += phytium-mci-pci.o phytium-mci.o
-obj-$(CONFIG_MMC_PHYTIUM_MCI_PLTFM) += phytium-mci-plat.o phytium-mci.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Kconfig
deleted file mode 100755
index 522662b15edaa10ed175772bc9df6fbeebef5230..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Kconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-config MTD_NAND_PHYTIUM
- tristate
-
-config MTD_NAND_PHYTIUM_PCI
- tristate "Support Phytium NAND controller as a PCI device"
- select MTD_NAND_PHYTIUM
- depends on PCI
- help
- Enable the driver for NAND flash controller of Phytium Px210 chipset,
- using the Phytium NAND controller core.
-
-config MTD_NAND_PHYTIUM_PLAT
- tristate "Support Phytium NAND controller as a platform device"
- select MTD_NAND_PHYTIUM
- depends on ARCH_PHYTIUM
- help
- Enable the driver for NAND flash controller of Phytium CPU chipset,
- using the Phytium NAND controller core.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Makefile
deleted file mode 100755
index 77ecd2beb72f440e5cdd00500f542137edf69946..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/mtd/nand/raw/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-obj-$(CONFIG_MTD_NAND_PHYTIUM) += phytium_nand.o
-obj-$(CONFIG_MTD_NAND_PHYTIUM_PCI) += phytium_nand_pci.o
-obj-$(CONFIG_MTD_NAND_PHYTIUM_PLAT) += phytium_nand_plat.o
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Kconfig
deleted file mode 100644
index 5c3c14711954a8bb376cd8bb222c1e628f95886c..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config OF_DMA_DEFAULT_COHERENT
- # arches should select this if DMA is coherent by default for OF devices
- bool
-
-config OF_CONFIGFS
- bool "Device Tree Overlay ConfigFS interface"
- select CONFIGFS_FS
- select OF_OVERLAY
- help
- Enable a simple user-space driven DT overlay interface.
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Makefile
deleted file mode 100644
index 097ed2887e20e29495954aab4eaae7546ca0261f..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/of/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_OF_CONFIGFS) += configfs.o
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Kconfig
deleted file mode 100644
index aa7dacaa7d5baf54251eee576d2da9e92d548617..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Kconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-config PCIE_PHYTIUM_EP
- tristate "Phytium PCIe endpoint controller"
- depends on OF
- depends on PCI_ENDPOINT
- help
- Say Y here if you want to support Phytium PCIe controller in
- endpoint mode on Phytium SoC. The controller can act as Root Port
- or End Point with different phytium firmware. But End Point mode only support
- one physical function.
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Makefile
deleted file mode 100644
index 13a7e2d96d88727d843a438d2b67087718c61932..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/pci/controller/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PCIE_PHYTIUM_EP) += pcie-phytium-ep.o
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Kconfig
deleted file mode 100644
index 67592f72fa91b53248cb61a494d54932071087e4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Kconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-config PWM_PHYTIUM
- tristate "Phytium PWM support"
- depends on ARCH_PHYTIUM
- help
- Generic PWM framework driver for the PWM controller found on
- Phytium SoCs.
-
- To compile this driver as a module, choose M here: the module
- will be called pwm-phytium.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Makefile
deleted file mode 100644
index b3d6fbbbfdcc0d79035227b1b04b9d153fe4d654..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/pwm/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_PWM_PHYTIUM) += pwm-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Kconfig
deleted file mode 100644
index d21959ab1d3a089804eb70614bee2657350680d4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Kconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-config HOMO_REMOTEPROC
- bool "homogeneous remoteproc support"
- select RPMSG_VIRTIO
- help
- Say y here to support homogeneous processors via the remote processor framework.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Makefile
deleted file mode 100644
index 1314f9cae6364ee101c7dfcee8a3c8687145ac0e..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/remoteproc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_HOMO_REMOTEPROC) += homo_remoteproc.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Kconfig
deleted file mode 100755
index 6567a16253b1449c935b99d266c8ac3aeefc2740..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config RTC_DRV_SD3068
- tristate "ZXW Shenzhen whwave SD3068"
- select REGMAP_I2C
- help
- If you say yes here you get support for the ZXW Shenzhen whwave
- SD3068 RTC chips.
-
- This driver can also be built as a module. If so, the module
- will be called rtc-sd3068
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Makefile
deleted file mode 100755
index 1b2c1e9da89989c1a9e151f272b9d2c2db0aa1e0..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/rtc/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_RTC_DRV_SD3068) += rtc-sd3068.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Kconfig
deleted file mode 100644
index be4c4be3bb6c486a31606799055e71eab5dbffbd..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Kconfig
+++ /dev/null
@@ -1,38 +0,0 @@
-config SPI_PHYTIUM
- tristate
- depends on ARCH_PHYTIUM || COMPILE_TEST
-
-config SPI_PHYTIUM_PLAT
- tristate "Phytium SPI controller platform support"
- select SPI_PHYTIUM
- help
- This selects a platform driver for Phytium SPI controller.
-
- If you say yes to this option, support will be included for
- Pd1904 and pd2008 families of SPI controller.
-
-config SPI_PHYTIUM_PCI
- tristate "Phytium SPI controller PCI support"
- depends on PCI
- select SPI_PHYTIUM
- help
- This selects a PCI driver for Phytium SPI controller.
-
- If you say yes to this option, support will be included for
- Phytium px210 chipset of SPI controller.
-
- If unsure, say N.
-
-config SPI_PHYTIUM_QSPI
- tristate "Phytium Quad SPI controller"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- depends on OF
- depends on SPI_MEM
- help
- This enables support for Phytium Quad SPI flash controller.
-
- This driver does not support generic SPI. The implementation only
- supports spi-mem interface.
-
- If unsure, say N.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Makefile
deleted file mode 100644
index fb9d9df9088a7bfe04c942ac13a8c229c5f92474..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/spi/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium.o
-obj-$(CONFIG_SPI_PHYTIUM_PLAT) += spi-phytium-plat.o
-obj-$(CONFIG_SPI_PHYTIUM_PCI) += spi-phytium-pci.o
-obj-$(CONFIG_SPI_PHYTIUM_QSPI) += spi-phytium-qspi.o
-obj-$(CONFIG_SPI_PHYTIUM) += spi-phytium-dma.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/staging/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/staging/Makefile
deleted file mode 100644
index 9de946cba80a74991ee16e06d00553151f53877a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/staging/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ANDROID) += android/
\ No newline at end of file
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Kconfig
deleted file mode 100755
index faf0ce58dd076efb84447f13dac241afbf6b5ff4..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-config SERIAL_PHYTIUM_PCI
- tristate "Phytium PCI serial port support"
- depends on PCI
- select SERIAL_CORE
- help
- This driver supports the Phytium UART controller on PCI/PCIe adapters.
- If you want to compile this driver into the kernel, say Y here. To
- compile this driver as a module, choose M here.
-
- If unsure, say N.
-
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Makefile
deleted file mode 100755
index 766f23a0295bb1a03dbc3d866970b7ba50830220..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/tty/serial/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_SERIAL_PHYTIUM_PCI) += phytium-uart.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Kconfig
deleted file mode 100755
index 5be3069c6b248440254cdf107bef78f550af8385..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-config W1_MASTER_PHYTIUM
- bool "Phytium 1-wire driver"
- depends on ARCH_PHYTIUM || COMPILE_TEST
- help
- Say Y here if you want to get support for the 1-wire interface
- on an Phytium SoC.
-
- This driver can also be built as a module. If so, the module
- will be called phytium-w1.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Makefile b/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Makefile
deleted file mode 100755
index b85e48ffde2b1c93b74ee0659052bad52dae0b8d..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/drivers/w1/masters/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_W1_MASTER_PHYTIUM) += phytium_w1.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Kconfig
deleted file mode 100644
index 31e43c59c0a78057a74793a73b94aa2413fae33a..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Kconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-config SND_HDA_PHYTIUM
- tristate "PHYTIUM HD Audio"
- depends on SOUND
- select SND_HDA
- select SND_HDA_ALIGNED_MMIO
- help
- Say Y here to support the HDA controller present in PHYTIUM
- SoCs
-
- This options enables support for the HD Audio controller
- present in some PHYTIUM SoCs, used to communicate audio
- to the "High Definition Audio" codec.
-
- To compile this driver as a module, choose M here: the module
- will be called snd-hda-phytium.
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Makefile b/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Makefile
deleted file mode 100644
index 37f17b56b4f367046a5bf2c4a66d6e4867773cbe..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/sound/pci/hda/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-snd-hda-phytium-objs := hda_phytium.o
-obj-$(CONFIG_SND_HDA_PHYTIUM) += snd-hda-phytium.o
diff --git a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/sound/soc/Kconfig
deleted file mode 100644
index 2ab9eefb8c73190e19b3cf4f28e93425d0c39595..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/Kconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# SoC audio configuration
-#
-
-source "sound/soc/phytium/Kconfig"
-# Supported codecs
-source "sound/soc/codecs/Kconfig"
-
diff --git a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Kconfig b/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Kconfig
deleted file mode 100644
index d9aee6b5dac3d2d1bf5d7cb845cb5e95c17d88fe..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Kconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Helper to resolve issues with configs that have SPI enabled but I2C
-# modular, meaning we can't build the codec driver in with I2C support.
-# We use an ordered list of conditional defaults to pick the appropriate
-# setting - SPI can't be modular so that case doesn't need to be covered.
-
-menu "CODEC drivers"
-
-config SND_SOC_ES8336
- tristate "Everest Semi ES8336 CODEC"
- depends on I2C
- select GPIO_PHYTIUM_PCI
-
-config SND_SOC_ES8388
- tristate "Everest Semi ES8388 CODEC"
- depends on I2C
-
-endmenu
diff --git a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Makefile b/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Makefile
deleted file mode 100644
index 07ee92fca5ff0b664c00e6984dea8f66e8c343d6..0000000000000000000000000000000000000000
--- a/device_soc_phytium/common/kernel/linux-6.6/sound/soc/codecs/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-
-snd-soc-es8336-objs := es8336.o
-snd-soc-es8388-objs := es8388.o
-
-obj-$(CONFIG_SND_SOC_ES8336) += snd-soc-es8336.o
-obj-$(CONFIG_SND_SOC_ES8388) += snd-soc-es8388.o
-
-
diff --git a/phytium_env.sh b/phytium_env.sh
index 7238b44dcbbb993413addea5b17b58647f5655ef..7313ab2bf82bb2c6d863ef4afbed173b99cc965c 100755
--- a/phytium_env.sh
+++ b/phytium_env.sh
@@ -100,12 +100,17 @@ fi
#apply patch for openharmony
####get_git_path(patch_name) get git path from patch name to git apply
-function get_git_path(){
- local path=$1
- path=${path#*=}
+function get_git_path() {
+ local -A SPECIAL_MAPPINGS=(
+ ["third_party-alsa-lib"]="third_party/alsa-lib"
+ )
+
+ local path=${1#*=}
path=${path%=*}
- path=${path//-/\/}
- echo $path
+
+ [[ -n "${SPECIAL_MAPPINGS[$path]}" ]] && \
+ echo "${SPECIAL_MAPPINGS[$path]}" || \
+ echo "${path//-/\/}"
}
####apply_git_patch(patch_path) apply git patch in patch_path
diff --git a/vendor_phytium/gpu_model/amd/gpu/lib/libEGL.so.1.0.0 b/vendor_phytium/gpu_model/amd/gpu/lib/libEGL.so.1.0.0
index 5e73562b0a6b785a730fdf3433bc6c5670a26d93..9250c4d396df630eeb5e4aeccd25f110ee23a5e4 100755
Binary files a/vendor_phytium/gpu_model/amd/gpu/lib/libEGL.so.1.0.0 and b/vendor_phytium/gpu_model/amd/gpu/lib/libEGL.so.1.0.0 differ
diff --git a/vendor_phytium/gpu_model/jm/gpu/mesa3d_jm9100/libEGL.so.1.0.0 b/vendor_phytium/gpu_model/jm/gpu/mesa3d_jm9100/libEGL.so.1.0.0
index 5e73562b0a6b785a730fdf3433bc6c5670a26d93..9250c4d396df630eeb5e4aeccd25f110ee23a5e4 100755
Binary files a/vendor_phytium/gpu_model/jm/gpu/mesa3d_jm9100/libEGL.so.1.0.0 and b/vendor_phytium/gpu_model/jm/gpu/mesa3d_jm9100/libEGL.so.1.0.0 differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/kms_swrast_dri.so b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/kms_swrast_dri.so
index ccd0a26bc4efaf4a1d4bf28380954710baf1ef84..9401fd7faa0594515986fc68df0e127a1158ad1a 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/kms_swrast_dri.so and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/kms_swrast_dri.so differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libEGL.so.1.0.0 b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libEGL.so.1.0.0
index 139b3495374b45526dac0c1e5ac0023c239c859a..8038d9d9d5a7f850b0444248265a9eb7f19b7d99 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libEGL.so.1.0.0 and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libEGL.so.1.0.0 differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv1_CM.so.1.1.0 b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv1_CM.so.1.1.0
index 320197833507485890c5a2233c51683121185993..78d6c78dde6ca8873abe5e5fa5fe39ce8d5e9624 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv1_CM.so.1.1.0 and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv1_CM.so.1.1.0 differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv2.so.2.0.0 b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv2.so.2.0.0
index 175de8bf3b3fb1e9962a41cc99c3cdcf6afb0111..9bf9caa923cb3a803a21429352d936c0543b4be0 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv2.so.2.0.0 and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libGLESv2.so.2.0.0 differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libgbm.so.1.0.0 b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libgbm.so.1.0.0
index 1706561f95f32b2ad0604f96f06c1cd29aab05fa..900e0a10c891769816f3bb4f738cb7f4a97c458f 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libgbm.so.1.0.0 and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libgbm.so.1.0.0 differ
diff --git a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libglapi.so.0.0.0 b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libglapi.so.0.0.0
index 20bf3dc7bce340d66af1bd052d0ae71e4eb07727..c55fc884be3aba586d0ca112d2261f3c80566fee 100755
Binary files a/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libglapi.so.0.0.0 and b/vendor_phytium/gpu_model/sw/gpu/mesa3d_swrast/libglapi.so.0.0.0 differ
diff --git a/vendor_phytium/phytiumpi-firefly/bundle.json b/vendor_phytium/phytiumpi-firefly/bundle.json
index a7c6085c10bdd265dec907c47cc5e2c599cdfea4..1f8753103fcaf8bfa2e750114d8964df2fe9eb4a 100755
--- a/vendor_phytium/phytiumpi-firefly/bundle.json
+++ b/vendor_phytium/phytiumpi-firefly/bundle.json
@@ -1,6 +1,6 @@
{
"name": "@ohos/phytium_phytiumpi-firefly",
- "version": "4.1",
+ "version": "5.1",
"license": "Apache License 2.0",
"private": false,
"scripts": {},
diff --git a/vendor_phytium/phytiumpi-firefly/config.json b/vendor_phytium/phytiumpi-firefly/config.json
index 052508845d91ee89617057e318ef755d5169c9c9..666beb26e235090b3a8bd363fce700d749d71415 100755
--- a/vendor_phytium/phytiumpi-firefly/config.json
+++ b/vendor_phytium/phytiumpi-firefly/config.json
@@ -51,9 +51,30 @@
}
]
},
+ {
+ "subsystem": "tee",
+ "components": [
+ {
+ "component": "tee_client",
+ "features": []
+ }
+ ]
+ },
{
"subsystem": "hdf",
"components": [
+ {
+ "component": "drivers_interface_ril",
+ "features": []
+ },
+ {
+ "component": "drivers_peripheral_ril",
+ "features":[]
+ },
+ {
+ "component": "drivers_interface_bluetooth",
+ "features": []
+ },
{
"component": "drivers_interface_audio",
"features": []
@@ -66,6 +87,12 @@
"drivers_peripheral_audio_feature_effect = false"
]
},
+ {
+ "component": "alsa-lib",
+ "features": [
+ "alsa_lib_feature_config_enable = true"
+ ]
+ },
{
"component": "drivers_peripheral_display",
"features": [
@@ -81,8 +108,7 @@
{
"component": "init",
"features": [
- "init_feature_ab_partition = true",
- "init_feature_loader = true"
+ "init_feature_ab_partition = true"
]
}
]
@@ -174,6 +200,7 @@
{
"component": "hiview",
"features": [
+ "hiview_feature_bbox_userspace = true",
"hiview_enable_leak_detector = true",
"hiview_enable_performance_monitor = true"
]
diff --git a/vendor_phytium/phytiumpi-firefly/hals/audio/config/audio_policy_config.xml b/vendor_phytium/phytiumpi-firefly/hals/audio/config/audio_policy_config.xml
index 3b7f7830bf48b1d4ff19ce3439706182d8055530..baef65d292a17d392f0d0bb05ca76a68f7c0dc3d 100755
--- a/vendor_phytium/phytiumpi-firefly/hals/audio/config/audio_policy_config.xml
+++ b/vendor_phytium/phytiumpi-firefly/hals/audio/config/audio_policy_config.xml
@@ -12,24 +12,28 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
+
-
+
+
-
+
+
+
+
@@ -45,10 +49,13 @@
-
-
-
+
+
+
+
+
+
@@ -60,14 +67,20 @@
-
+
+
+
+
-
+
+
+
+
@@ -94,6 +107,8 @@
+
+
@@ -101,14 +116,5 @@
-
-
-
-
-
-
-
diff --git a/vendor_phytium/phytiumpi-firefly/preinstall-config/BUILD.gn b/vendor_phytium/phytiumpi-firefly/preinstall-config/BUILD.gn
old mode 100755
new mode 100644
diff --git a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list.json b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list.json
old mode 100755
new mode 100644
index bcd127ac0b07f91eb4a711e5a0bbc2b84d04cdcf..2380f11feaadbcc3c586db84e5aa9ccc4e00b8a9
--- a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list.json
+++ b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list.json
@@ -72,6 +72,10 @@
"app_dir" : "/system/app/com.ohos.medialibrary.MediaLibraryData",
"removable" : false
},
+ {
+ "app_dir" : "/system/app/com.ohos.ringtonelibrary.RingtoneLibraryData",
+ "removable" : false
+ },
{
"app_dir" : "/system/app/com.ohos.callui",
"removable" : false
@@ -113,7 +117,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/com.ohos.nweb",
+ "app_dir" : "/system/app/com.ohos.arkwebcore",
"removable" : false
},
{
@@ -137,7 +141,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/ohos.backgroundtaskmgr.resources",
+ "app_dir" : "/system/app/com.ohos.backgroundtaskmgr.resources",
"removable" : false
},
{
@@ -149,7 +153,7 @@
"removable" : true
},
{
- "app_dir" : "/system/app/cn.openharmony.inputmethodchoosedialog",
+ "app_dir" : "/system/app/com.ohos.inputmethodchoosedialog",
"removable" : false
},
{
@@ -157,7 +161,7 @@
"removable": false
},
{
- "app_dir" : "/system/app/cn.openharmony.pasteboarddialog",
+ "app_dir" : "/system/app/com.ohos.pasteboarddialog",
"removable" : true
},
{
@@ -197,8 +201,20 @@
"removable": false
},
{
- "app_dir": "/system/app/ohos.samples.browser1",
+ "app_dir": "/system/app/com.usb.function",
+ "removable": true
+ },
+ {
+ "app_dir": "/system/app/VpnDialog",
"removable": false
+ },
+ {
+ "app_dir" : "/system/app/com.ohos.dhardwareui",
+ "removable" : true
+ },
+ {
+ "app_dir": "/system/app/com.ohos.security.privacycenter",
+ "removable": true
}
]
}
diff --git a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_capability.json b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_capability.json
old mode 100755
new mode 100644
index b75b2043640ba1a626029b53404b595f05dd5989..5186cbb0f24ac0b35cf62b192ac0450435a7a562
--- a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_capability.json
+++ b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_capability.json
@@ -2,7 +2,6 @@
"install_list": [
{
"bundleName": "com.example.kikakeyboard",
- "singleton": true,
"runningResourcesApply": false,
"associatedWakeUp": false,
"app_signature" : ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
@@ -42,12 +41,17 @@
{
"bundleName": "com.ohos.settingsdata",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowCommonEvent" : [
+ "usual.event.USER_ADDED",
+ "usual.event.USER_REMOVED"
+ ],
"singleton": true,
"keepAlive": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
- "bundleName": "ohos.backgroundtaskmgr.resources",
+ "bundleName": "com.ohos.backgroundtaskmgr.resources",
"app_signature" : ["72BE2C651A9E0C57B4BB67825BA6F8180FC883858434712150A55C17C7E1A6F7"],
"singleton": true,
"allowAppDesktopIconHide": true
@@ -62,6 +66,10 @@
"bundleName": "com.ohos.devicetest",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"runningResourcesApply": true,
+ "resourcesApply": [
+ 0,
+ 100
+ ],
"associatedWakeUp": true,
"allowAppUsePrivilegeExtension": true
},
@@ -69,7 +77,8 @@
"bundleName": "com.ohos.contactsdataability",
"app_signature" : ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
"associatedWakeUp": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.telephonydataability",
@@ -86,19 +95,19 @@
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.pasteboarddialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.pasteboarddialog",
+ "app_signature": ["96BC128A658C8AA7A3C6601791F109E975CBBCDE37067725C240875E98CB99C8"],
"allowAppUsePrivilegeExtension": true
},
{
"bundleName": "com.ohos.amsdialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature": ["A004990956B96A415E849F6050AE472EE0B85F15E1928AE2CEFB49419BD2D074"],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -111,7 +120,8 @@
{
"bundleName": "com.ohos.launcher",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppRunWhenDeviceFirstLocked": true
},
{
"bundleName": "com.ohos.medialibrary.medialibrarydata",
@@ -119,6 +129,12 @@
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
+ {
+ "bundleName": "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature": ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
{
"bundleName": "com.ohos.permissionmanager",
"app_signature": ["68079CC9CB1BD69283D70790305645FFF61CD1E46CAFD7AA53B9FA8540432B81"],
@@ -130,12 +146,14 @@
"E3F4322139E0109BAFAD8DA4096762068E31708C3CF201780E736D377D60B639",
"5FEDFF587F4109E565B96512404D606D539C8DFFCE1424ACBD1B2A7D3E843D4D"
],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.photos",
"app_signature": ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowFormVisibleNotify": true
},
{
"bundleName": "com.ohos.powerdialog",
@@ -156,7 +174,7 @@
},
{
"bundleName": "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -190,7 +208,7 @@
{
"bundleName": "com.ohos.formrenderservice",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "singleton": true,
+ "singleton": false,
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -201,20 +219,56 @@
},
{
"bundleName": "com.ohos.spooler",
- "app_signature" : ["B68D7BE6599CA7ADEDBC95CD1CE176AA96D996D3F41588A487E5F5C4E5DC9427"],
+ "app_signature" : ["0B0289F397E77F1D28B5AF426BEA72C53FB963CCC45BA193F6CB4A52CAB5987A"],
"allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.calendardata",
- "app_signature" : ["1C6905C65DE22F5160790D34ADA462EE9ED3D9EEAA4FCBD4FEC7FFEE7D1D4FD2"],
+ "app_signature" : ["CC249153FA175206B1427C71DB0F2232D91FA4B2ED7955AE1D6EBA4C362D359A"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature": ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "ohos.samples.distributedmusicplayer",
+ "app_signature" : ["CE457F6ACB11F9406B393AF490E6DEFAA4DD1CA7AB6F694EA6119EE18DDF4BBE"],
+ "allowAppUsePrivilegeExtension": true
+ },
+ {
+ "bundleName": "com.usb.function",
+ "app_signature": ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.vpndialog",
+ "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"allowAppUsePrivilegeExtension": true,
- "allowAppDesktopIconHide": false
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature": ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.arkwebcore",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.filepicker",
+ "app_signature": ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.locationdialog",
+ "app_signature": ["8FD346D9BF992BE6CD80BFB4F1E60EF0D50BC9E04593AF1D47714E339B44268D"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "ohos.telephony.resources",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
}
]
}
diff --git a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_permissions.json b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_permissions.json
old mode 100755
new mode 100644
index f04487fad738142b71b9d9270d05f71ff78fccce..6aa30ee6a85c6c734c0a003b753482a8479ff136
--- a/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_permissions.json
+++ b/vendor_phytium/phytiumpi-firefly/preinstall-config/install_list_permissions.json
@@ -1,7 +1,7 @@
[
{
"bundleName" : "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"permissions" : [
{
"name" : "ohos.permission.MEDIA_LOCATION",
@@ -14,6 +14,10 @@
{
"name" : "ohos.permission.WRITE_MEDIA",
"userCancellable" : true
+ },
+ {
+ "name" : "ohos.permission.WRITE_IMAGEVIDEO",
+ "userCancellable" : true
}
]
},
@@ -24,6 +28,20 @@
{
"name" : "ohos.permission.DISTRIBUTED_DATASYNC",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_IMAGEVIDEO",
+ "userCancellable" : false
+ }
+ ]
+ },
+ {
+ "bundleName" : "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature" : ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "permissions" : [
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -143,7 +161,7 @@
},
{
"bundleName": "com.ohos.filepicker",
- "app_signature" : ["C902DDEE3286715B8BA26175A1EF967985D22AEF44BE747702B604D956A76CFA"],
+ "app_signature" : ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
"permissions" : [
{
"name" : "ohos.permission.READ_MEDIA",
@@ -156,6 +174,14 @@
{
"name" : "ohos.permission.MEDIA_LOCATION",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.WRITE_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -202,8 +228,8 @@
]
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"permissions" : [
{
"name" : "ohos.permission.CONNECT_IME_ABILITY",
@@ -318,45 +344,13 @@
]
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature" : ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature" : ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
"permissions" : [
{
- "name" : "ohos.permission.GET_INSTALLED_BUNDLE_LIST",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.READ_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.WRITE_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.ACCESS_DLP_FILE",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.FILE_ACCESS_MANAGER",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.START_ABILIIES_FROM_BACKGROUND",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "name" : "ohos.permission.ACCESS_DISTRIBUTED_HARDWARE",
"userCancellable" : false
- },
- {
- "name": "ohos.permission.MEDIA_LOCATION",
- "userCancellable" : false
- }
-]
+ }
+ ]
}
]
diff --git a/vendor_phytium/phytiumpi-firefly/preinstall-config/uninstall_list.json b/vendor_phytium/phytiumpi-firefly/preinstall-config/uninstall_list.json
old mode 100755
new mode 100644
diff --git a/vendor_phytium/phytiumpi-firefly/resourceschedule/ressched/res_sched_plugin_switch.xml b/vendor_phytium/phytiumpi-firefly/resourceschedule/ressched/res_sched_plugin_switch.xml
index 8a534ad80331762c6a2e7d4ec2fd65b01311a280..5d1aa11402a2b04bc6415c5a438190c03a12c092 100755
--- a/vendor_phytium/phytiumpi-firefly/resourceschedule/ressched/res_sched_plugin_switch.xml
+++ b/vendor_phytium/phytiumpi-firefly/resourceschedule/ressched/res_sched_plugin_switch.xml
@@ -17,4 +17,5 @@
+
diff --git a/vendor_phytium/tenglong_e/bundle.json b/vendor_phytium/tenglong_e/bundle.json
index 1b2c12f76dab7bff2dda3f7fe3fa28a4cb92e598..9b140c4c66363198e6216c79a9aafd9059501ac8 100755
--- a/vendor_phytium/tenglong_e/bundle.json
+++ b/vendor_phytium/tenglong_e/bundle.json
@@ -1,6 +1,6 @@
{
"name": "@ohos/phytium_tenglong_e",
- "version": "4.1",
+ "version": "5.1",
"license": "Apache License 2.0",
"private": false,
"scripts": {},
diff --git a/vendor_phytium/tenglong_e/config.json b/vendor_phytium/tenglong_e/config.json
index 8fc68521d26dea652b9180b34b6edd8be0de7d93..2ff6f52aa185f4a2c535992b0d9f94d8b4df83fa 100755
--- a/vendor_phytium/tenglong_e/config.json
+++ b/vendor_phytium/tenglong_e/config.json
@@ -51,9 +51,30 @@
}
]
},
+ {
+ "subsystem": "tee",
+ "components": [
+ {
+ "component": "tee_client",
+ "features": []
+ }
+ ]
+ },
{
"subsystem": "hdf",
"components": [
+ {
+ "component": "drivers_interface_ril",
+ "features": []
+ },
+ {
+ "component": "drivers_peripheral_ril",
+ "features":[]
+ },
+ {
+ "component": "drivers_interface_bluetooth",
+ "features": []
+ },
{
"component": "drivers_interface_audio",
"features": []
@@ -66,6 +87,12 @@
"drivers_peripheral_audio_feature_effect = false"
]
},
+ {
+ "component": "alsa-lib",
+ "features": [
+ "alsa_lib_feature_config_enable = true"
+ ]
+ },
{
"component": "drivers_peripheral_display",
"features": [
@@ -81,8 +108,7 @@
{
"component": "init",
"features": [
- "init_feature_ab_partition = true",
- "init_feature_loader = true"
+ "init_feature_ab_partition = true"
]
}
]
@@ -174,6 +200,7 @@
{
"component": "hiview",
"features": [
+ "hiview_feature_bbox_userspace = true",
"hiview_enable_leak_detector = true",
"hiview_enable_performance_monitor = true"
]
diff --git a/vendor_phytium/tenglong_e/hals/audio/config/audio_policy_config.xml b/vendor_phytium/tenglong_e/hals/audio/config/audio_policy_config.xml
index 3b7f7830bf48b1d4ff19ce3439706182d8055530..baef65d292a17d392f0d0bb05ca76a68f7c0dc3d 100755
--- a/vendor_phytium/tenglong_e/hals/audio/config/audio_policy_config.xml
+++ b/vendor_phytium/tenglong_e/hals/audio/config/audio_policy_config.xml
@@ -12,24 +12,28 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
+
-
+
+
-
+
+
+
+
@@ -45,10 +49,13 @@
-
-
-
+
+
+
+
+
+
@@ -60,14 +67,20 @@
-
+
+
+
+
-
+
+
+
+
@@ -94,6 +107,8 @@
+
+
@@ -101,14 +116,5 @@
-
-
-
-
-
-
-
diff --git a/vendor_phytium/tenglong_e/preinstall-config/BUILD.gn b/vendor_phytium/tenglong_e/preinstall-config/BUILD.gn
old mode 100755
new mode 100644
diff --git a/vendor_phytium/tenglong_e/preinstall-config/install_list.json b/vendor_phytium/tenglong_e/preinstall-config/install_list.json
old mode 100755
new mode 100644
index bcd127ac0b07f91eb4a711e5a0bbc2b84d04cdcf..2380f11feaadbcc3c586db84e5aa9ccc4e00b8a9
--- a/vendor_phytium/tenglong_e/preinstall-config/install_list.json
+++ b/vendor_phytium/tenglong_e/preinstall-config/install_list.json
@@ -72,6 +72,10 @@
"app_dir" : "/system/app/com.ohos.medialibrary.MediaLibraryData",
"removable" : false
},
+ {
+ "app_dir" : "/system/app/com.ohos.ringtonelibrary.RingtoneLibraryData",
+ "removable" : false
+ },
{
"app_dir" : "/system/app/com.ohos.callui",
"removable" : false
@@ -113,7 +117,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/com.ohos.nweb",
+ "app_dir" : "/system/app/com.ohos.arkwebcore",
"removable" : false
},
{
@@ -137,7 +141,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/ohos.backgroundtaskmgr.resources",
+ "app_dir" : "/system/app/com.ohos.backgroundtaskmgr.resources",
"removable" : false
},
{
@@ -149,7 +153,7 @@
"removable" : true
},
{
- "app_dir" : "/system/app/cn.openharmony.inputmethodchoosedialog",
+ "app_dir" : "/system/app/com.ohos.inputmethodchoosedialog",
"removable" : false
},
{
@@ -157,7 +161,7 @@
"removable": false
},
{
- "app_dir" : "/system/app/cn.openharmony.pasteboarddialog",
+ "app_dir" : "/system/app/com.ohos.pasteboarddialog",
"removable" : true
},
{
@@ -197,8 +201,20 @@
"removable": false
},
{
- "app_dir": "/system/app/ohos.samples.browser1",
+ "app_dir": "/system/app/com.usb.function",
+ "removable": true
+ },
+ {
+ "app_dir": "/system/app/VpnDialog",
"removable": false
+ },
+ {
+ "app_dir" : "/system/app/com.ohos.dhardwareui",
+ "removable" : true
+ },
+ {
+ "app_dir": "/system/app/com.ohos.security.privacycenter",
+ "removable": true
}
]
}
diff --git a/vendor_phytium/tenglong_e/preinstall-config/install_list_capability.json b/vendor_phytium/tenglong_e/preinstall-config/install_list_capability.json
old mode 100755
new mode 100644
index b75b2043640ba1a626029b53404b595f05dd5989..5186cbb0f24ac0b35cf62b192ac0450435a7a562
--- a/vendor_phytium/tenglong_e/preinstall-config/install_list_capability.json
+++ b/vendor_phytium/tenglong_e/preinstall-config/install_list_capability.json
@@ -2,7 +2,6 @@
"install_list": [
{
"bundleName": "com.example.kikakeyboard",
- "singleton": true,
"runningResourcesApply": false,
"associatedWakeUp": false,
"app_signature" : ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
@@ -42,12 +41,17 @@
{
"bundleName": "com.ohos.settingsdata",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowCommonEvent" : [
+ "usual.event.USER_ADDED",
+ "usual.event.USER_REMOVED"
+ ],
"singleton": true,
"keepAlive": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
- "bundleName": "ohos.backgroundtaskmgr.resources",
+ "bundleName": "com.ohos.backgroundtaskmgr.resources",
"app_signature" : ["72BE2C651A9E0C57B4BB67825BA6F8180FC883858434712150A55C17C7E1A6F7"],
"singleton": true,
"allowAppDesktopIconHide": true
@@ -62,6 +66,10 @@
"bundleName": "com.ohos.devicetest",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"runningResourcesApply": true,
+ "resourcesApply": [
+ 0,
+ 100
+ ],
"associatedWakeUp": true,
"allowAppUsePrivilegeExtension": true
},
@@ -69,7 +77,8 @@
"bundleName": "com.ohos.contactsdataability",
"app_signature" : ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
"associatedWakeUp": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.telephonydataability",
@@ -86,19 +95,19 @@
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.pasteboarddialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.pasteboarddialog",
+ "app_signature": ["96BC128A658C8AA7A3C6601791F109E975CBBCDE37067725C240875E98CB99C8"],
"allowAppUsePrivilegeExtension": true
},
{
"bundleName": "com.ohos.amsdialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature": ["A004990956B96A415E849F6050AE472EE0B85F15E1928AE2CEFB49419BD2D074"],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -111,7 +120,8 @@
{
"bundleName": "com.ohos.launcher",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppRunWhenDeviceFirstLocked": true
},
{
"bundleName": "com.ohos.medialibrary.medialibrarydata",
@@ -119,6 +129,12 @@
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
+ {
+ "bundleName": "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature": ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
{
"bundleName": "com.ohos.permissionmanager",
"app_signature": ["68079CC9CB1BD69283D70790305645FFF61CD1E46CAFD7AA53B9FA8540432B81"],
@@ -130,12 +146,14 @@
"E3F4322139E0109BAFAD8DA4096762068E31708C3CF201780E736D377D60B639",
"5FEDFF587F4109E565B96512404D606D539C8DFFCE1424ACBD1B2A7D3E843D4D"
],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.photos",
"app_signature": ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowFormVisibleNotify": true
},
{
"bundleName": "com.ohos.powerdialog",
@@ -156,7 +174,7 @@
},
{
"bundleName": "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -190,7 +208,7 @@
{
"bundleName": "com.ohos.formrenderservice",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "singleton": true,
+ "singleton": false,
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -201,20 +219,56 @@
},
{
"bundleName": "com.ohos.spooler",
- "app_signature" : ["B68D7BE6599CA7ADEDBC95CD1CE176AA96D996D3F41588A487E5F5C4E5DC9427"],
+ "app_signature" : ["0B0289F397E77F1D28B5AF426BEA72C53FB963CCC45BA193F6CB4A52CAB5987A"],
"allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.calendardata",
- "app_signature" : ["1C6905C65DE22F5160790D34ADA462EE9ED3D9EEAA4FCBD4FEC7FFEE7D1D4FD2"],
+ "app_signature" : ["CC249153FA175206B1427C71DB0F2232D91FA4B2ED7955AE1D6EBA4C362D359A"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature": ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "ohos.samples.distributedmusicplayer",
+ "app_signature" : ["CE457F6ACB11F9406B393AF490E6DEFAA4DD1CA7AB6F694EA6119EE18DDF4BBE"],
+ "allowAppUsePrivilegeExtension": true
+ },
+ {
+ "bundleName": "com.usb.function",
+ "app_signature": ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.vpndialog",
+ "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"allowAppUsePrivilegeExtension": true,
- "allowAppDesktopIconHide": false
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature": ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.arkwebcore",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.filepicker",
+ "app_signature": ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.locationdialog",
+ "app_signature": ["8FD346D9BF992BE6CD80BFB4F1E60EF0D50BC9E04593AF1D47714E339B44268D"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "ohos.telephony.resources",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
}
]
}
diff --git a/vendor_phytium/tenglong_e/preinstall-config/install_list_permissions.json b/vendor_phytium/tenglong_e/preinstall-config/install_list_permissions.json
old mode 100755
new mode 100644
index f04487fad738142b71b9d9270d05f71ff78fccce..6aa30ee6a85c6c734c0a003b753482a8479ff136
--- a/vendor_phytium/tenglong_e/preinstall-config/install_list_permissions.json
+++ b/vendor_phytium/tenglong_e/preinstall-config/install_list_permissions.json
@@ -1,7 +1,7 @@
[
{
"bundleName" : "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"permissions" : [
{
"name" : "ohos.permission.MEDIA_LOCATION",
@@ -14,6 +14,10 @@
{
"name" : "ohos.permission.WRITE_MEDIA",
"userCancellable" : true
+ },
+ {
+ "name" : "ohos.permission.WRITE_IMAGEVIDEO",
+ "userCancellable" : true
}
]
},
@@ -24,6 +28,20 @@
{
"name" : "ohos.permission.DISTRIBUTED_DATASYNC",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_IMAGEVIDEO",
+ "userCancellable" : false
+ }
+ ]
+ },
+ {
+ "bundleName" : "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature" : ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "permissions" : [
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -143,7 +161,7 @@
},
{
"bundleName": "com.ohos.filepicker",
- "app_signature" : ["C902DDEE3286715B8BA26175A1EF967985D22AEF44BE747702B604D956A76CFA"],
+ "app_signature" : ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
"permissions" : [
{
"name" : "ohos.permission.READ_MEDIA",
@@ -156,6 +174,14 @@
{
"name" : "ohos.permission.MEDIA_LOCATION",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.WRITE_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -202,8 +228,8 @@
]
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"permissions" : [
{
"name" : "ohos.permission.CONNECT_IME_ABILITY",
@@ -318,45 +344,13 @@
]
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature" : ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature" : ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
"permissions" : [
{
- "name" : "ohos.permission.GET_INSTALLED_BUNDLE_LIST",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.READ_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.WRITE_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.ACCESS_DLP_FILE",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.FILE_ACCESS_MANAGER",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.START_ABILIIES_FROM_BACKGROUND",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "name" : "ohos.permission.ACCESS_DISTRIBUTED_HARDWARE",
"userCancellable" : false
- },
- {
- "name": "ohos.permission.MEDIA_LOCATION",
- "userCancellable" : false
- }
-]
+ }
+ ]
}
]
diff --git a/vendor_phytium/tenglong_e/preinstall-config/uninstall_list.json b/vendor_phytium/tenglong_e/preinstall-config/uninstall_list.json
old mode 100755
new mode 100644
diff --git a/vendor_phytium/tenglong_e/resourceschedule/ressched/res_sched_plugin_switch.xml b/vendor_phytium/tenglong_e/resourceschedule/ressched/res_sched_plugin_switch.xml
index 8a534ad80331762c6a2e7d4ec2fd65b01311a280..5d1aa11402a2b04bc6415c5a438190c03a12c092 100755
--- a/vendor_phytium/tenglong_e/resourceschedule/ressched/res_sched_plugin_switch.xml
+++ b/vendor_phytium/tenglong_e/resourceschedule/ressched/res_sched_plugin_switch.xml
@@ -17,4 +17,5 @@
+
diff --git a/vendor_phytium/tengrui_d/bundle.json b/vendor_phytium/tengrui_d/bundle.json
index 122dd57a0154bea3d76add7752d7fa19fe528f40..2c46e6f1e39537a4f3526b3b482a7de0d00d284c 100644
--- a/vendor_phytium/tengrui_d/bundle.json
+++ b/vendor_phytium/tengrui_d/bundle.json
@@ -1,6 +1,6 @@
{
"name": "@ohos/phytium_tengrui_d",
- "version": "4.1",
+ "version": "5.1",
"license": "Apache License 2.0",
"private": false,
"scripts": {},
diff --git a/vendor_phytium/tengrui_d/config.json b/vendor_phytium/tengrui_d/config.json
index dcfb8bb76fc0096e7092a1953875b3712ae30f99..1a137576b43f8a341b33e93177a5dbde2eda4d64 100755
--- a/vendor_phytium/tengrui_d/config.json
+++ b/vendor_phytium/tengrui_d/config.json
@@ -51,9 +51,30 @@
}
]
},
+ {
+ "subsystem": "tee",
+ "components": [
+ {
+ "component": "tee_client",
+ "features": []
+ }
+ ]
+ },
{
"subsystem": "hdf",
"components": [
+ {
+ "component": "drivers_interface_ril",
+ "features": []
+ },
+ {
+ "component": "drivers_peripheral_ril",
+ "features":[]
+ },
+ {
+ "component": "drivers_interface_bluetooth",
+ "features": []
+ },
{
"component": "drivers_interface_audio",
"features": []
@@ -66,6 +87,12 @@
"drivers_peripheral_audio_feature_effect = false"
]
},
+ {
+ "component": "alsa-lib",
+ "features": [
+ "alsa_lib_feature_config_enable = true"
+ ]
+ },
{
"component": "drivers_peripheral_display",
"features": [
@@ -81,8 +108,7 @@
{
"component": "init",
"features": [
- "init_feature_ab_partition = true",
- "init_feature_loader = true"
+ "init_feature_ab_partition = true"
]
}
]
@@ -174,6 +200,7 @@
{
"component": "hiview",
"features": [
+ "hiview_feature_bbox_userspace = true",
"hiview_enable_leak_detector = true",
"hiview_enable_performance_monitor = true"
]
diff --git a/vendor_phytium/tengrui_d/hals/audio/config/audio_policy_config.xml b/vendor_phytium/tengrui_d/hals/audio/config/audio_policy_config.xml
index 3b7f7830bf48b1d4ff19ce3439706182d8055530..baef65d292a17d392f0d0bb05ca76a68f7c0dc3d 100644
--- a/vendor_phytium/tengrui_d/hals/audio/config/audio_policy_config.xml
+++ b/vendor_phytium/tengrui_d/hals/audio/config/audio_policy_config.xml
@@ -12,24 +12,28 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
+
-
+
+
-
+
+
+
+
@@ -45,10 +49,13 @@
-
-
-
+
+
+
+
+
+
@@ -60,14 +67,20 @@
-
+
+
+
+
-
+
+
+
+
@@ -94,6 +107,8 @@
+
+
@@ -101,14 +116,5 @@
-
-
-
-
-
-
-
diff --git a/vendor_phytium/tengrui_d/preinstall-config/install_list.json b/vendor_phytium/tengrui_d/preinstall-config/install_list.json
index bcd127ac0b07f91eb4a711e5a0bbc2b84d04cdcf..2380f11feaadbcc3c586db84e5aa9ccc4e00b8a9 100644
--- a/vendor_phytium/tengrui_d/preinstall-config/install_list.json
+++ b/vendor_phytium/tengrui_d/preinstall-config/install_list.json
@@ -72,6 +72,10 @@
"app_dir" : "/system/app/com.ohos.medialibrary.MediaLibraryData",
"removable" : false
},
+ {
+ "app_dir" : "/system/app/com.ohos.ringtonelibrary.RingtoneLibraryData",
+ "removable" : false
+ },
{
"app_dir" : "/system/app/com.ohos.callui",
"removable" : false
@@ -113,7 +117,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/com.ohos.nweb",
+ "app_dir" : "/system/app/com.ohos.arkwebcore",
"removable" : false
},
{
@@ -137,7 +141,7 @@
"removable" : false
},
{
- "app_dir" : "/system/app/ohos.backgroundtaskmgr.resources",
+ "app_dir" : "/system/app/com.ohos.backgroundtaskmgr.resources",
"removable" : false
},
{
@@ -149,7 +153,7 @@
"removable" : true
},
{
- "app_dir" : "/system/app/cn.openharmony.inputmethodchoosedialog",
+ "app_dir" : "/system/app/com.ohos.inputmethodchoosedialog",
"removable" : false
},
{
@@ -157,7 +161,7 @@
"removable": false
},
{
- "app_dir" : "/system/app/cn.openharmony.pasteboarddialog",
+ "app_dir" : "/system/app/com.ohos.pasteboarddialog",
"removable" : true
},
{
@@ -197,8 +201,20 @@
"removable": false
},
{
- "app_dir": "/system/app/ohos.samples.browser1",
+ "app_dir": "/system/app/com.usb.function",
+ "removable": true
+ },
+ {
+ "app_dir": "/system/app/VpnDialog",
"removable": false
+ },
+ {
+ "app_dir" : "/system/app/com.ohos.dhardwareui",
+ "removable" : true
+ },
+ {
+ "app_dir": "/system/app/com.ohos.security.privacycenter",
+ "removable": true
}
]
}
diff --git a/vendor_phytium/tengrui_d/preinstall-config/install_list_capability.json b/vendor_phytium/tengrui_d/preinstall-config/install_list_capability.json
index b75b2043640ba1a626029b53404b595f05dd5989..5186cbb0f24ac0b35cf62b192ac0450435a7a562 100644
--- a/vendor_phytium/tengrui_d/preinstall-config/install_list_capability.json
+++ b/vendor_phytium/tengrui_d/preinstall-config/install_list_capability.json
@@ -2,7 +2,6 @@
"install_list": [
{
"bundleName": "com.example.kikakeyboard",
- "singleton": true,
"runningResourcesApply": false,
"associatedWakeUp": false,
"app_signature" : ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
@@ -42,12 +41,17 @@
{
"bundleName": "com.ohos.settingsdata",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowCommonEvent" : [
+ "usual.event.USER_ADDED",
+ "usual.event.USER_REMOVED"
+ ],
"singleton": true,
"keepAlive": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
- "bundleName": "ohos.backgroundtaskmgr.resources",
+ "bundleName": "com.ohos.backgroundtaskmgr.resources",
"app_signature" : ["72BE2C651A9E0C57B4BB67825BA6F8180FC883858434712150A55C17C7E1A6F7"],
"singleton": true,
"allowAppDesktopIconHide": true
@@ -62,6 +66,10 @@
"bundleName": "com.ohos.devicetest",
"app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"runningResourcesApply": true,
+ "resourcesApply": [
+ 0,
+ 100
+ ],
"associatedWakeUp": true,
"allowAppUsePrivilegeExtension": true
},
@@ -69,7 +77,8 @@
"bundleName": "com.ohos.contactsdataability",
"app_signature" : ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
"associatedWakeUp": true,
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.telephonydataability",
@@ -86,19 +95,19 @@
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "cn.openharmony.pasteboarddialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.pasteboarddialog",
+ "app_signature": ["96BC128A658C8AA7A3C6601791F109E975CBBCDE37067725C240875E98CB99C8"],
"allowAppUsePrivilegeExtension": true
},
{
"bundleName": "com.ohos.amsdialog",
- "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature": ["A004990956B96A415E849F6050AE472EE0B85F15E1928AE2CEFB49419BD2D074"],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -111,7 +120,8 @@
{
"bundleName": "com.ohos.launcher",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppRunWhenDeviceFirstLocked": true
},
{
"bundleName": "com.ohos.medialibrary.medialibrarydata",
@@ -119,6 +129,12 @@
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
+ {
+ "bundleName": "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature": ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
{
"bundleName": "com.ohos.permissionmanager",
"app_signature": ["68079CC9CB1BD69283D70790305645FFF61CD1E46CAFD7AA53B9FA8540432B81"],
@@ -130,12 +146,14 @@
"E3F4322139E0109BAFAD8DA4096762068E31708C3CF201780E736D377D60B639",
"5FEDFF587F4109E565B96512404D606D539C8DFFCE1424ACBD1B2A7D3E843D4D"
],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.photos",
"app_signature": ["9AED2A79925ECA050CD2BB9D2A7F694E49E5E135D28EBDCE53836DE76B5080ED"],
- "allowAppUsePrivilegeExtension": true
+ "allowAppUsePrivilegeExtension": true,
+ "allowFormVisibleNotify": true
},
{
"bundleName": "com.ohos.powerdialog",
@@ -156,7 +174,7 @@
},
{
"bundleName": "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -190,7 +208,7 @@
{
"bundleName": "com.ohos.formrenderservice",
"app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
- "singleton": true,
+ "singleton": false,
"allowAppUsePrivilegeExtension": true,
"allowAppDesktopIconHide": true
},
@@ -201,20 +219,56 @@
},
{
"bundleName": "com.ohos.spooler",
- "app_signature" : ["B68D7BE6599CA7ADEDBC95CD1CE176AA96D996D3F41588A487E5F5C4E5DC9427"],
+ "app_signature" : ["0B0289F397E77F1D28B5AF426BEA72C53FB963CCC45BA193F6CB4A52CAB5987A"],
"allowAppDesktopIconHide": true
},
{
"bundleName": "com.ohos.calendardata",
- "app_signature" : ["1C6905C65DE22F5160790D34ADA462EE9ED3D9EEAA4FCBD4FEC7FFEE7D1D4FD2"],
+ "app_signature" : ["CC249153FA175206B1427C71DB0F2232D91FA4B2ED7955AE1D6EBA4C362D359A"],
"allowAppDesktopIconHide": true,
"allowAppUsePrivilegeExtension": true
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature": ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "ohos.samples.distributedmusicplayer",
+ "app_signature" : ["CE457F6ACB11F9406B393AF490E6DEFAA4DD1CA7AB6F694EA6119EE18DDF4BBE"],
+ "allowAppUsePrivilegeExtension": true
+ },
+ {
+ "bundleName": "com.usb.function",
+ "app_signature": ["D729F438E1EF2E154994E2B077F6C0CD592BA9F9C938BB428FCDA564FF805EE4"],
+ "allowAppUsePrivilegeExtension": true,
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.vpndialog",
+ "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
"allowAppUsePrivilegeExtension": true,
- "allowAppDesktopIconHide": false
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature": ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.arkwebcore",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.filepicker",
+ "app_signature": ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "com.ohos.locationdialog",
+ "app_signature": ["8FD346D9BF992BE6CD80BFB4F1E60EF0D50BC9E04593AF1D47714E339B44268D"],
+ "allowAppDesktopIconHide": true
+ },
+ {
+ "bundleName": "ohos.telephony.resources",
+ "app_signature": ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "allowAppDesktopIconHide": true
}
]
}
diff --git a/vendor_phytium/tengrui_d/preinstall-config/install_list_permissions.json b/vendor_phytium/tengrui_d/preinstall-config/install_list_permissions.json
index d5b95845a89b650a97d9f8bd7aa327ab4f5207b0..6aa30ee6a85c6c734c0a003b753482a8479ff136 100644
--- a/vendor_phytium/tengrui_d/preinstall-config/install_list_permissions.json
+++ b/vendor_phytium/tengrui_d/preinstall-config/install_list_permissions.json
@@ -1,7 +1,7 @@
[
{
"bundleName" : "com.ohos.screenshot",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "app_signature" : ["com.ohos.screenshot_BPgjq9cj5JyweCCfYME1bzHG1/mf3O8o3TRauZBbLY88KQDsXTsuFVd36R3cnIdxpOosELsi0BKxgowdI7IOBUU="],
"permissions" : [
{
"name" : "ohos.permission.MEDIA_LOCATION",
@@ -14,6 +14,10 @@
{
"name" : "ohos.permission.WRITE_MEDIA",
"userCancellable" : true
+ },
+ {
+ "name" : "ohos.permission.WRITE_IMAGEVIDEO",
+ "userCancellable" : true
}
]
},
@@ -24,6 +28,20 @@
{
"name" : "ohos.permission.DISTRIBUTED_DATASYNC",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_IMAGEVIDEO",
+ "userCancellable" : false
+ }
+ ]
+ },
+ {
+ "bundleName" : "com.ohos.ringtonelibrary.ringtonelibrarydata",
+ "app_signature" : ["8C6B95137E594835B00A60DF8DC1350D040D58624F17F4E841246B97B9A7A9FD"],
+ "permissions" : [
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -143,7 +161,7 @@
},
{
"bundleName": "com.ohos.filepicker",
- "app_signature" : ["C902DDEE3286715B8BA26175A1EF967985D22AEF44BE747702B604D956A76CFA"],
+ "app_signature" : ["799EAC4119A566D438C1AB0199D9401D77176C368A334F33C03DBB21E54F970E"],
"permissions" : [
{
"name" : "ohos.permission.READ_MEDIA",
@@ -156,6 +174,14 @@
{
"name" : "ohos.permission.MEDIA_LOCATION",
"userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.READ_AUDIO",
+ "userCancellable" : false
+ },
+ {
+ "name" : "ohos.permission.WRITE_AUDIO",
+ "userCancellable" : false
}
]
},
@@ -202,8 +228,8 @@
]
},
{
- "bundleName": "cn.openharmony.inputmethodchoosedialog",
- "app_signature" : ["8E93863FC32EE238060BF69A9B37E2608FFFB21F93C862DD511CBAC9F30024B5"],
+ "bundleName": "com.ohos.inputmethodchoosedialog",
+ "app_signature" : ["CE4D01EF424B829E13652BB1743E18B8E4542DD5A7BBA7D7D472F727FA6F8A9D"],
"permissions" : [
{
"name" : "ohos.permission.CONNECT_IME_ABILITY",
@@ -318,43 +344,11 @@
]
},
{
- "bundleName": "ohos.samples.browser1",
- "app_signature" : ["208850C05E411A1EA7B1F26B4D5865208415D8D878D6CA42F9290BF6D6CA6D8A"],
+ "bundleName": "com.ohos.dhardwareui",
+ "app_signature" : ["D8B95864BA867BE8299BEB45CEC85B6905D59FD726D43C3AE60E051E9E658738"],
"permissions" : [
{
- "name" : "ohos.permission.GET_INSTALLED_BUNDLE_LIST",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.READ_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.WRITE_MEDIA",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.ACCESS_DLP_FILE",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.FILE_ACCESS_MANAGER",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.START_ABILIIES_FROM_BACKGROUND",
- "userCancellable" : false
- },
- {
- "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
- "userCancellable" : false
- },
- {
- "name": "ohos.permission.MEDIA_LOCATION",
+ "name" : "ohos.permission.ACCESS_DISTRIBUTED_HARDWARE",
"userCancellable" : false
}
]
diff --git a/vendor_phytium/tengrui_d/resourceschedule/ressched/res_sched_plugin_switch.xml b/vendor_phytium/tengrui_d/resourceschedule/ressched/res_sched_plugin_switch.xml
index 8a534ad80331762c6a2e7d4ec2fd65b01311a280..5d1aa11402a2b04bc6415c5a438190c03a12c092 100644
--- a/vendor_phytium/tengrui_d/resourceschedule/ressched/res_sched_plugin_switch.xml
+++ b/vendor_phytium/tengrui_d/resourceschedule/ressched/res_sched_plugin_switch.xml
@@ -17,4 +17,5 @@
+