Skip to content

Conversation

@opsiff
Copy link
Member

@opsiff opsiff commented Dec 29, 2025

Due to github rebase merge limit, submit part3 from linux-6.6.y, linux-6.12.y and build fix.

Chen Baozi (1):
dt-bindings: Add bindings for Phytium USBHS-DRD controller

Chen Zhenhua (1):
usb: phytium: Add support for Phytium USB controller

Li Guohui (3):
dt-bindings: phytium-sgpio: Add bindings for Phytium SGPIO
gpio: gpio-phytium-sgpio: Add Phytium SGPIO driver
sgpio: phytium: Add ACPI support for SGPIO driver

Li Jun (1):
LoongArch: Update the flush cache policy

Lugang He (1):
scripts: adapt to UOS/deepin scripting

Mingcong Bai (21):
net: ethernet: phytium: fix phytmac_platform on 6.9
net: ethernet: fix phytmac on 6.9
net: ethernet: phytium: add a missing declaration for *np
arch: loongarch: configs: disable DRM_LOONGSON by default
arch: x86: configs: enable DRM_ACCEL_IVPU, EDAC_IEH
perf: phytium: fix phytium_ddr_pmu.c on 6.9
perf: phytium: fix phytium_pcie_pmu.c on 6.9
usb: phytium: fix build on 6.9
irqchip: drop duplicate __maybe_unused gic_read_iar() in
irq-gic-phytium-2500.c
irqchip: replace strtobool() with kstrbool() in irq-gic-phytium-2500.c
irqchip: adapt irq-gic-phytium-2500-its.c to >= 6.7
char: fix phytnetled on 6.9
AOSCOS: kvm: disable enable_virt_at_load by default
iommu: intel: rename device_to_iommu() => device_lookup_iommu()
i2c: i2c-zhaoxin-smbus: convert to the .remove (void) callback
drm: amdgpu: radeon: disable cache flush workaround for LoongArch and
Loongson64
arch: x86: configs: enable all Zhaoxin features
arch: arm64: configs: enable all Phytium features
arch: x86: configs: declare CONFIG_HW_RANDOM_ZHAOXIN as M
arch: x86: enable Zhaoxin KX7000 pinctrl and GPIO support
arch: loongarch: enable KVM in deepin_loongarch_desktop_defconfig

Song Wenting (1):
dt-bindings: macb: Add bindings for Phytium gem1.0 and gem 2.0

Wang Xu (1):
iommu/arm-smmu-v3: Add suspend and resume support

WangYuli (6):
eth: phytmac: phytmac_plat_probe: initialize variable 'ret' when
!pdata->msg_regs
eth: phytmac: phytmac_ioctl: Return -EOPNOTSUPP by default
usb: phytium: Fix wrong assign logic in hostErrorIrq
hda: Implement a bit field in cmd_resend
arm64: Update deepin_arm64_desktop_defconfig
i3c: phytium: initialize variable 'ret' when !master->prescl0

Wentao Guan (10):
net/phytmac: fix build error
irqchip: adapt irq-gic-phytium-2500-its.c to >= 6.17
irqchip: adapt irq-gic-phytium-2500.c to >= 6.12
gpio: gpio-phytium-sgpio: Adapt to >= 6.17
i2s: phytium: Adapt to v6.18
ata: ahci: zhaoxin: sgpio: adapt to >= 6.17
x86/mce/zhaoxin: adapt for v6.18
arm64:i3c: phytium: adapt for v6.18
arm64:i3c: phytium: ACPI: adapt for v6.18
deepin: arm64: acpi: hisi: mm/ioremap: pass pgprot_t to ioremap_prot()
instead of unsigned long

Yanteng Si (1):
LoongArch: fix HT RX INT TRANS register not initialized

hongao (1):
fix: device 0x15d8 don't use AMD_DPM_FORCED_LEVEL_* except
AMD_DPM_FORCED_LEVEL_AUTO

leoliu-oc (12):
ata: libata: disabling PhyRdy Change Interrupt based on actual LPM
capability
x86/tsc: Make cur->adjusted values in package#1 to be the same
Add support for Zhaoxin HW Random Number Generator
iommu/vt-d: Add support for detecting ACPI namespace device in RMRR
ata: ahci: Add support for AHCI SGPIO Enclosure Management
i2c: smbus: Add support for Zhaoxin SMBUS controller
Turning off Zhaoxin ahci controller runtime pm from sysfs
apei: ghes: Modify the GHES severity of mem error in ghes_do_proc
x86/mce/zhaoxin: Enable mcelog to decode PCIE, ZDI/ZPI, and DRAM
errors
efi: cper: Add Zhaoxin/Centaur ZDI/ZPI error decode
hwmon: zhaoxin-rng: remove log when CPU mismatch
iommu/dma: Fix not fully traversing iova reservations issue

lishuo (1):
DRM: Phytium display DRM doc

liyuting (4):
drivers/perf: phytium: Support for Phytium Soc DDR controller PMU
drivers/perf: phytium: Support for Phytium Soc PCIe controller PMU
irqchip/gic-phytium-2500: Add support for GIC of Phytium PS20064
irqchip/irq-gic-v3-its: Enable nonboot CPUs LPIS when resume from S3

tianwei (2):
i2s: phytium: Add Phytium i2s driver support
hda: phytium: Add Phytium hda driver support

wangzhimin1179 (1):
net: phytium: Add support for phytium GMAC

wenlunpeng (1):
spi: phytium: fix 'Disabling IRQ #18'

yuanxia (11):
arm64:phytnetled: phytium: Add link/act led driver for 10G mac
dt-bindings: phytnet_led: Add bindings for Phytium MAC led
dt-bindings: i3c: cdns: Add compatible string for Phytium SoCs
arm64: i3c: cdns: add support for Phytium workaround
arm64: i3c: cdns: phytium: Add GETMXDS format 1 retransmission
arm64: i3c: cdns: phytium: Fix DAA fail at high frequency
dt-bindings: Add bindings for Phytium I3C controller
arm64:i3c: phytium: Add support for Phytium i3c controller
arm64: i3c: phytium: Add ACPI support for i3c driver
arm64: i3c: phytium: Add support for S3/S4 mode
arm64:i3c:phytium: Restricting the use of driver on the phytium
platforms.

忘怀 (17):
net: phytium: convert and remove validate() references
net: ethernet: phytmac: Convert to platform remove callback returning
void
net: phytmac_ethtool: Add struct kernel_ethtool_ts_info
defconfig: enable phytmac for deepin_arm64_desktop_defconfig
perf: phytium_ddr_pmu: Convert to platform remove callback returning
void
perf: phytium_pcie_pmu: Convert to platform remove callback returning
void
usb: phytium: platform: Convert to platform remove callback returning
void
irqchip/gic-phytium-2500: Remove sync_access callback and make
distributor priorities variables
chore: fix package-kernel-amd64-daily upload deb
char: phytnet_led: Convert to platform remove callback returning void
arm64: defconfig: add support for fbdev and fb console for tty
net: stmmac: dwmac-phytium: compat some FT2000
arch: loongarch: configs: make crc32_loongarch as builtin
config: deepin_arm64_desktop_defconfig: disable ARM_PSCI_CHECKER &&
ARM_PSCI_CPUIDLE
deepin: arm64: acpi: hisi: Revert disallow AML memory opregions to
access kernel memory
deepin: ACPI: CPPC: skip CPPC v2 check for hisi
arch: loongarch: configs: disable USB_ONBOARD_HUB

白铭骢 (Mingcong Bai) (1):
arch: arm64: loongarch: x86: clean up release-bound kernel configs
(#335)

.../workflows/package-kernel-amd64-daily.yml | 3 +-
.../bindings/gpio/phytium,sgpio.yaml | 67 +
.../devicetree/bindings/gpu/phytium,dc.yaml | 35 +
.../bindings/i3c/cdns,i3c-master.yaml | 4 +-
.../bindings/i3c/phytium,i3c-master.yaml | 35 +
.../devicetree/bindings/leds/phytnet_led.yaml | 46 +
.../devicetree/bindings/net/cdns,macb.yaml | 2 +
.../devicetree/bindings/usb/phytium,usb2.yaml | 41 +
Makefile | 7 +-
arch/arm64/Kconfig.platforms | 1 +
.../configs/deepin_arm64_desktop_defconfig | 520 +-
arch/arm64/kernel/acpi.c | 14 +
.../deepin_loongarch_desktop_defconfig | 68 +-
arch/loongarch/kernel/irq.c | 7 +
arch/loongarch/mm/cache.c | 23 +-
arch/x86/configs/deepin_x86_desktop_defconfig | 261 +-
arch/x86/include/asm/mce.h | 6 +
arch/x86/kernel/acpi/apei.c | 24 +-
arch/x86/kernel/cpu/mce/apei.c | 171 +
arch/x86/kernel/tsc_sync.c | 5 +
drivers/acpi/apei/apei-base.c | 10 +
drivers/acpi/apei/ghes.c | 28 +-
drivers/acpi/cppc_acpi.c | 4 +
drivers/ata/Kconfig | 10 +
drivers/ata/Makefile | 1 +
drivers/ata/ahci.c | 5 +
drivers/ata/ahci.h | 1 +
drivers/ata/ahci_zhaoxin_sgpio.c | 706 ++
drivers/ata/ahci_zhaoxin_sgpio.h | 219 +
drivers/ata/libahci.c | 6 +
drivers/ata/libata-eh.c | 7 +
drivers/char/Kconfig | 2 +
drivers/char/Makefile | 1 +
drivers/char/hw_random/Kconfig | 13 +
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/via-rng.c | 23 +-
drivers/char/hw_random/zhaoxin-rng.c | 93 +
drivers/char/phytnetled/Kconfig | 13 +
drivers/char/phytnetled/Makefile | 1 +
drivers/char/phytnetled/phytnet_led.c | 321 +
drivers/char/phytnetled/phytnet_led.h | 14 +
drivers/firmware/efi/cper.c | 53 +
drivers/gpio/Kconfig | 9 +
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-phytium-sgpio.c | 321 +
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 9 +
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 +
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 9 +
drivers/gpu/drm/radeon/cik.c | 8 +
drivers/i2c/busses/Kconfig | 11 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-zhaoxin-smbus.c | 381 ++
drivers/i3c/Makefile | 1 +
drivers/i3c/i3c_master_acpi.c | 96 +
drivers/i3c/i3c_master_acpi.h | 18 +
drivers/i3c/master.c | 289 +-
drivers/i3c/master/Kconfig | 9 +
drivers/i3c/master/Makefile | 1 +
drivers/i3c/master/i3c-master-cdns.c | 32 +-
drivers/i3c/master/i3c-master-phytium.c | 1847 ++++++
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 92 +-
drivers/iommu/dma-iommu.c | 50 +-
drivers/iommu/intel/dmar.c | 57 +-
drivers/iommu/intel/iommu.c | 59 +
drivers/iommu/iommu.c | 9 +-
drivers/irqchip/Kconfig | 6 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-gic-phytium-2500-its.c | 5694 +++++++++++++++++
drivers/irqchip/irq-gic-phytium-2500.c | 2553 ++++++++
drivers/irqchip/irq-gic-v3-its.c | 18 +
drivers/mfd/Kconfig | 14 +
drivers/mfd/Makefile | 3 +
drivers/mfd/phytium_px210_i2s_lsd.c | 131 +
drivers/mfd/phytium_px210_i2s_mmd.c | 185 +
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/phytium/Kconfig | 58 +
drivers/net/ethernet/phytium/Makefile | 17 +
drivers/net/ethernet/phytium/phytmac.h | 591 ++
.../net/ethernet/phytium/phytmac_ethtool.c | 544 ++
drivers/net/ethernet/phytium/phytmac_main.c | 2187 +++++++
drivers/net/ethernet/phytium/phytmac_pci.c | 317 +
.../net/ethernet/phytium/phytmac_platform.c | 256 +
drivers/net/ethernet/phytium/phytmac_ptp.c | 304 +
drivers/net/ethernet/phytium/phytmac_ptp.h | 55 +
drivers/net/ethernet/phytium/phytmac_v1.c | 1400 ++++
drivers/net/ethernet/phytium/phytmac_v1.h | 455 ++
drivers/net/ethernet/phytium/phytmac_v2.c | 1254 ++++
drivers/net/ethernet/phytium/phytmac_v2.h | 362 ++
.../ethernet/stmicro/stmmac/dwmac-phytium.c | 25 +-
drivers/perf/Kconfig | 2 +
drivers/perf/Makefile | 1 +
drivers/perf/phytium/Kconfig | 27 +
drivers/perf/phytium/Makefile | 4 +
drivers/perf/phytium/phytium_ddr_pmu.c | 724 +++
drivers/perf/phytium/phytium_pcie_pmu.c | 871 +++
drivers/spi/spi-phytium.c | 15 +-
drivers/usb/Kconfig | 2 +
drivers/usb/Makefile | 1 +
drivers/usb/phytium/Kconfig | 22 +
drivers/usb/phytium/Makefile | 7 +
drivers/usb/phytium/core.c | 44 +
drivers/usb/phytium/core.h | 98 +
drivers/usb/phytium/dma.c | 783 +++
drivers/usb/phytium/dma.h | 197 +
drivers/usb/phytium/gadget.c | 2538 ++++++++
drivers/usb/phytium/gadget.h | 253 +
drivers/usb/phytium/host.c | 2761 ++++++++
drivers/usb/phytium/host_api.h | 250 +
drivers/usb/phytium/hw-regs.h | 297 +
drivers/usb/phytium/pci.c | 208 +
drivers/usb/phytium/platform.c | 215 +
include/acpi/apei.h | 2 +
include/linux/cper.h | 1 +
include/linux/dmar.h | 9 +
include/linux/i3c/master.h | 1 +
include/linux/iommu.h | 15 +
include/linux/irqchip/arm-gic-phytium-2500.h | 661 ++
include/sound/hdaudio.h | 1 +
scripts/build-version | 8 +-
sound/hda/common/controller.c | 5 +
sound/hda/controllers/Kconfig | 16 +
sound/hda/controllers/Makefile | 2 +
sound/hda/controllers/phytium.c | 1083 ++++
sound/hda/controllers/phytium.h | 34 +
sound/hda/core/controller.c | 37 +
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 4 +
sound/soc/codecs/es8336.c | 1083 ++++
sound/soc/codecs/es8336.h | 153 +
sound/soc/codecs/es8388.c | 819 +++
sound/soc/codecs/es8388.h | 290 +
sound/soc/phytium/Kconfig | 32 +
sound/soc/phytium/Makefile | 14 +
sound/soc/phytium/local.h | 319 +
sound/soc/phytium/phytium_i2s.c | 1432 +++++
sound/soc/phytium/pmdk_dp.c | 231 +
sound/soc/phytium/pmdk_es8336.c | 97 +
sound/soc/phytium/pmdk_es8388.c | 169 +
virt/kvm/kvm_main.c | 2 +-
142 files changed, 38120 insertions(+), 353 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/phytium,sgpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/phytium,dc.yaml
create mode 100644 Documentation/devicetree/bindings/i3c/phytium,i3c-master.yaml
create mode 100644 Documentation/devicetree/bindings/leds/phytnet_led.yaml
create mode 100644 Documentation/devicetree/bindings/usb/phytium,usb2.yaml
create mode 100644 drivers/ata/ahci_zhaoxin_sgpio.c
create mode 100644 drivers/ata/ahci_zhaoxin_sgpio.h
create mode 100644 drivers/char/hw_random/zhaoxin-rng.c
create mode 100644 drivers/char/phytnetled/Kconfig
create mode 100644 drivers/char/phytnetled/Makefile
create mode 100644 drivers/char/phytnetled/phytnet_led.c
create mode 100644 drivers/char/phytnetled/phytnet_led.h
create mode 100644 drivers/gpio/gpio-phytium-sgpio.c
create mode 100644 drivers/i2c/busses/i2c-zhaoxin-smbus.c
create mode 100644 drivers/i3c/i3c_master_acpi.c
create mode 100644 drivers/i3c/i3c_master_acpi.h
create mode 100644 drivers/i3c/master/i3c-master-phytium.c
create mode 100644 drivers/irqchip/irq-gic-phytium-2500-its.c
create mode 100644 drivers/irqchip/irq-gic-phytium-2500.c
create mode 100644 drivers/mfd/phytium_px210_i2s_lsd.c
create mode 100644 drivers/mfd/phytium_px210_i2s_mmd.c
create mode 100644 drivers/net/ethernet/phytium/Kconfig
create mode 100644 drivers/net/ethernet/phytium/Makefile
create mode 100644 drivers/net/ethernet/phytium/phytmac.h
create mode 100644 drivers/net/ethernet/phytium/phytmac_ethtool.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_main.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_pci.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_platform.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_ptp.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_ptp.h
create mode 100644 drivers/net/ethernet/phytium/phytmac_v1.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_v1.h
create mode 100644 drivers/net/ethernet/phytium/phytmac_v2.c
create mode 100644 drivers/net/ethernet/phytium/phytmac_v2.h
create mode 100644 drivers/perf/phytium/Kconfig
create mode 100644 drivers/perf/phytium/Makefile
create mode 100644 drivers/perf/phytium/phytium_ddr_pmu.c
create mode 100644 drivers/perf/phytium/phytium_pcie_pmu.c
create mode 100644 drivers/usb/phytium/Kconfig
create mode 100644 drivers/usb/phytium/Makefile
create mode 100644 drivers/usb/phytium/core.c
create mode 100644 drivers/usb/phytium/core.h
create mode 100644 drivers/usb/phytium/dma.c
create mode 100644 drivers/usb/phytium/dma.h
create mode 100644 drivers/usb/phytium/gadget.c
create mode 100644 drivers/usb/phytium/gadget.h
create mode 100644 drivers/usb/phytium/host.c
create mode 100644 drivers/usb/phytium/host_api.h
create mode 100644 drivers/usb/phytium/hw-regs.h
create mode 100644 drivers/usb/phytium/pci.c
create mode 100644 drivers/usb/phytium/platform.c
create mode 100644 include/linux/irqchip/arm-gic-phytium-2500.h
create mode 100644 sound/hda/controllers/phytium.c
create mode 100644 sound/hda/controllers/phytium.h
create mode 100644 sound/soc/codecs/es8336.c
create mode 100644 sound/soc/codecs/es8336.h
create mode 100644 sound/soc/codecs/es8388.c
create mode 100644 sound/soc/codecs/es8388.h
create mode 100644 sound/soc/phytium/Kconfig
create mode 100644 sound/soc/phytium/Makefile
create mode 100644 sound/soc/phytium/local.h
create mode 100644 sound/soc/phytium/phytium_i2s.c
create mode 100644 sound/soc/phytium/pmdk_dp.c
create mode 100644 sound/soc/phytium/pmdk_es8336.c
create mode 100644 sound/soc/phytium/pmdk_es8388.c

wangzhimin1179 and others added 9 commits December 29, 2025 11:57
This patch provides support for Phytium GMAC controller driver.

Signed-off-by: Song Wenting <[email protected]>
Signed-off-by: Li Wencheng <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Signed-off-by: Wang Zhimin <[email protected]>
Signed-off-by: wangzhimin1179 <[email protected]>
Link: deepin-community#222
(cherry picked from commit 7bfe5a3)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/net/ethernet/Makefile
Add missing <linux/platform_device.h> include.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#222
(cherry picked from commit a139ef2)
Signed-off-by: Wentao Guan <[email protected]>
Declare multiple functions as static functions to suppress warnings about
missing prototypes.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#222
(cherry picked from commit 170fc21)
Signed-off-by: Wentao Guan <[email protected]>
Fix a compilation error:

drivers/net/ethernet/phytium/phytmac_platform.c: In function ‘phytmac_plat_probe’:
drivers/net/ethernet/phytium/phytmac_platform.c:98:55: error: ‘np’ undeclared (first use in this function); did you mean ‘up’?
   98 |                 match = of_match_node(phytmac_dt_ids, np);
      |                                                       ^~
      |                                                       up

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#222
(cherry picked from commit d5c0881)
Signed-off-by: Wentao Guan <[email protected]>
Populate the supported interfaces bitmap and MAC capabilities mask for
    the phytium driver and remove the old validate implementation.
Link:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cc0a75eb037539f68f7117a632673a75e39d8d6b

Signed-off-by: Wentao Guan <[email protected]>
Link: deepin-community#222
(cherry picked from commit 3c77632)
Signed-off-by: Wentao Guan <[email protected]>
… void

0edb555: platform: Make platform_driver::remove() return void
cause build error, so convert .remove from int to void

drivers/net/ethernet/phytium/phytmac_platform.c:243:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  243 |         .remove = phytmac_plat_remove,
      |                   ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/phytium/phytmac_platform.c:243:19: note: (near initialization for ‘phytmac_driver.<anonymous>.remove’)

Link: deepin-community#222
(cherry picked from commit 89a5ac2)
Signed-off-by: Wentao Guan <[email protected]>
2111375: net: Add struct kernel_ethtool_ts_info
cause build error, so convert ethtool_ts_info to kernel_ethtool_ts_info

Log:
drivers/net/ethernet/phytium/phytmac_ethtool.c: In function ‘phytmac_get_ts_info’:
drivers/net/ethernet/phytium/phytmac_ethtool.c:204:45: error: passing argument 2 of ‘ethtool_op_get_ts_info’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  204 |         return ethtool_op_get_ts_info(ndev, info);
      |                                             ^~~~
      |                                             |
      |                                             struct ethtool_ts_info *
In file included from drivers/net/ethernet/phytium/phytmac_ethtool.c:3:
./include/linux/ethtool.h:1205:59: note: expected ‘struct kernel_ethtool_ts_info *’ but argument is of type ‘struct ethtool_ts_info *’
 1205 |                            struct kernel_ethtool_ts_info *eti);
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
drivers/net/ethernet/phytium/phytmac_ethtool.c: At top level:
drivers/net/ethernet/phytium/phytmac_ethtool.c:522:43: error: initialization of ‘int (*)(struct net_device *, struct kernel_ethtool_ts_info *)’ from incompatible pointer type ‘int (*)(struct net_device *, struct ethtool_ts_info *)’ [-Werror=incompatible-pointer-types]
  522 |         .get_ts_info                    = phytmac_get_ts_info,
      |                                           ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/phytium/phytmac_ethtool.c:522:43: note: (near initialization for ‘phytmac_ethtool_ops.get_ts_info’)
cc1: all warnings being treated as errors

Link: deepin-community#222
(cherry picked from commit f20cf65)
Signed-off-by: Wentao Guan <[email protected]>
As f837b44 introduce ethernet driver phytmac for D3000 (deepin-community#222),
enable config CONFIG_PHYTMAC{,_PLATFORM,PCI}=m.

Link: deepin-community#289
(cherry picked from commit f4e0bf0)
Signed-off-by: Wentao Guan <[email protected]>
Update scripts for use with build_kernel.sh.

Signed-off-by: Lugang He <[email protected]>
Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#291
(cherry picked from commit 83e7cdc)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	Makefile
	scripts/package/mkdebian
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 20000 lines

@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

opsiff and others added 15 commits December 29, 2025 14:35
deepin inclusion
category: bugfix

[ drop pcim_iounmap_regions for v6.18, see ebf7547 ("mtip32xx: Remove unnecessary pcim_iounmap_regions() calls") ]
Link: deepin-community#222
Signed-off-by: Wentao Guan <[email protected]>
…ta->msg_regs

Fix follow error with clang-19:

drivers/net/ethernet/phytium/phytmac_platform.c:130:8: error: variable 'ret' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
  130 |                         if (!pdata->msg_regs) {
      |                             ^~~~~~~~~~~~~~~~
drivers/net/ethernet/phytium/phytmac_platform.c:202:9: note: uninitialized use occurs here
  202 |         return ret;
      |                ^~~
drivers/net/ethernet/phytium/phytmac_platform.c:130:4: note: remove the 'if' if its condition is always false
  130 |                         if (!pdata->msg_regs) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
  131 |                                 dev_err(&pdev->dev, "msg_regs ioremap failed, i=%d\n", i);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  132 |                                 goto err_mem;
      |                                 ~~~~~~~~~~~~~
  133 |                         }
      |                         ~
drivers/net/ethernet/phytium/phytmac_platform.c:81:9: note: initialize the variable 'ret' to silence this warning
   81 |         int ret, i;
      |                ^
      |                 = 0
1 error generated.

Signed-off-by: WangYuli <[email protected]>
Link: deepin-community#504
(cherry picked from commit 34271e9)
Signed-off-by: Wentao Guan <[email protected]>
Fix follow error with clang-19:

drivers/net/ethernet/phytium/phytmac_main.c:1818:2: error: variable 'ret' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
 1818 |         default:
      |         ^~~~~~~
drivers/net/ethernet/phytium/phytmac_main.c:1822:9: note: uninitialized use occurs here
 1822 |         return ret;
      |                ^~~
drivers/net/ethernet/phytium/phytmac_main.c:1799:9: note: initialize the variable 'ret' to silence this warning
 1799 |         int ret;
      |                ^
      |                 = 0
1 error generated.

Signed-off-by: WangYuli <[email protected]>
Link: deepin-community#504
(cherry picked from commit 8ccf129)
Signed-off-by: Wentao Guan <[email protected]>
This module is currently not yet ready and causes boot failure on some
systems. Use SYSFB_SIMPLEFB and use the EFI Framebuffer to drive the display
more reliably.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#293
(cherry picked from commit 5376fe5)
Signed-off-by: Wentao Guan <[email protected]>
Enable features introduced in Intel's pull requests:

- DRM_ACCEL_IVPU: Intel NPU (Neural Processing Unit) (Meteor Lake).
- EDAC_IEH: Intel Integrated Error Handler (Meteor Lake).

Signed-off-by: Mingcong Bai <[email protected]>
[ EDAC_IEH merged before ]
Link: deepin-community#297
(cherry picked from commit 3116f2b)
Signed-off-by: Wentao Guan <[email protected]>
Support for Phytium SoC DDR controller performance monitoring unit (PMU).

Signed-off-by: Li Yuting <[email protected]>
Signed-off-by: Hu Xianghua <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#161
(cherry picked from commit b6faf22)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/perf/Kconfig
Declare multiple functions as static functions to suppress warnings about
missing prototypes.

Signed-off-by: Mingcong Bai <[email protected]>
(cherry picked from commit 0604bfc)
Signed-off-by: Wentao Guan <[email protected]>
…void

0edb555: platform: Make platform_driver::remove() return void
cause build error, so convert .remove from int to void

Log:
drivers/perf/phytium/phytium_ddr_pmu.c:666:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  666 |         .remove = phytium_ddr_pmu_remove,
      |                   ^~~~~~~~~~~~~~~~~~~~~~
drivers/perf/phytium/phytium_ddr_pmu.c:666:19: note: (near initialization for ‘phytium_ddr_pmu_driver.<anonymous>.remove’)

(cherry picked from commit 25af35c)
Signed-off-by: Wentao Guan <[email protected]>
Support for Phytium SoC PCIe controller performance monitoring unit (PMU).

Signed-off-by: Li Yuting <[email protected]>
Signed-off-by: Hu Xianghua <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#161
(cherry picked from commit f69ce40)
Signed-off-by: Wentao Guan <[email protected]>
Declare multiple functions as static functions to suppress warnings about
missing prototypes.

Signed-off-by: Mingcong Bai <[email protected]>
(cherry picked from commit 05a2426)
Signed-off-by: Wentao Guan <[email protected]>
… void

0edb555: platform: Make platform_driver::remove() return void
cause build error, so convert .remove from int to void

Log:
drivers/perf/phytium/phytium_pcie_pmu.c:811:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  811 |         .remove = phytium_pcie_pmu_remove,
      |                   ^~~~~~~~~~~~~~~~~~~~~~~
drivers/perf/phytium/phytium_pcie_pmu.c:811:19: note: (near initialization for ‘phytium_pcie_pmu_driver.<anonymous>.remove’)

(cherry picked from commit 9620441)
Signed-off-by: Wentao Guan <[email protected]>
This patch documents the DT binding for the Phytium USBHS-DRD controller.

Signed-off-by: Wang Zhimin <[email protected]>
Signed-off-by: Chen Baozi <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#212
(cherry picked from commit b9e7610)
Signed-off-by: Wentao Guan <[email protected]>
This patch adds the Phytium USBHS DRD controller support.

Signed-off-by: Wang Zhimin <[email protected]>
Signed-off-by: Li Mingzhe <[email protected]>
Signed-off-by: Zuo Qian <[email protected]>
Signed-off-by: Chen Zhenhua <[email protected]>
Signed-off-by: Chen Baozi <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#212
(cherry picked from commit 1c3df43)
Signed-off-by: Wentao Guan <[email protected]>
Declare multiple functions as static functions to suppress warnings about
missing prototypes.

Signed-off-by: Mingcong Bai <[email protected]>
(cherry picked from commit 5e1f3f9)
Signed-off-by: Wentao Guan <[email protected]>
… void

0edb555: platform: Make platform_driver::remove() return void
cause build error, so convert .remove from int to void

Log:
drivers/usb/phytium/platform.c:208:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  208 |         .remove = phytium_driver_remove,
      |                   ^~~~~~~~~~~~~~~~~~~~~
drivers/usb/phytium/platform.c:208:19: note: (near initialization for ‘phytium_otg_driver.<anonymous>.remove’)

(cherry picked from commit c66d4c1)
Signed-off-by: Wentao Guan <[email protected]>
yuanxia and others added 26 commits December 29, 2025 14:39
This patch provides support for Phytium i3c master controller.

Signed-off-by: yuanxia <[email protected]>
Signed-off-by: Wu Jinyong <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#298
(cherry picked from commit 0e0f9b5)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/i3c/master/Kconfig
	drivers/i3c/master/Makefile
Log:
drivers/i3c/master/i3c-master-phytium.c:1548:15: error: incompatible function pointer types initializing 'int (*)(struct i2c_dev_desc *, struct i2c_msg *, int)' with an expression of type 'int (struct i2c_dev_desc *, const struct i2c_msg *, int)' [-Wincompatible-function-pointer-types]
 1548 |         .i2c_xfers = phytium_i3c_master_i2c_xfers,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i3c/master/i3c-master-phytium.c:1689:12: error: incompatible function pointer types initializing 'void (*)(struct platform_device *)' with an expression of type 'int (struct platform_device *)' [-Wincompatible-function-pointer-types]
 1689 |         .remove = phytium_i3c_master_remove,
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~

Link: deepin-community#298
Signed-off-by: Wentao Guan <[email protected]>
This patch used to support i3c driver in ACPI mode,
this modification is in accordance with standard
specifications of MIPI and add special keys to
support for PHYTIUM platform.

Signed-off-by: yuanxia <[email protected]>
Signed-off-by: Wu Jinyong <[email protected]>
Signed-off-by: Wang yinfeng <[email protected]>
Link: deepin-community#298
(cherry picked from commit 1cf7076)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/i3c/master.c
Log:
drivers/i3c/master/i3c-master-phytium.c:1649:35: error: use of undeclared identifier 'I3C_BUS_MAX_I3C_SCL_RATE'
 1649 |                 master->base.bus.scl_rate.i3c = I3C_BUS_MAX_I3C_SCL_RATE;
      |                                                 ^
1 error generated.
Link: deepin-community#298
Signed-off-by: Wentao Guan <[email protected]>
Fix follow error with clang-19:

drivers/i3c/master/i3c-master-phytium.c:1710:7: error: variable 'ret' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
 1710 |                 if (!master->prescl0)
      |                     ^~~~~~~~~~~~~~~~
drivers/i3c/master/i3c-master-phytium.c:1788:9: note: uninitialized use occurs here
 1788 |         return ret;
      |                ^~~
drivers/i3c/master/i3c-master-phytium.c:1710:3: note: remove the 'if' if its condition is always false
 1710 |                 if (!master->prescl0)
      |                 ^~~~~~~~~~~~~~~~~~~~~
 1711 |                         goto err_disable_sysclk;
      |                         ~~~~~~~~~~~~~~~~~~~~~~~
drivers/i3c/master/i3c-master-phytium.c:1669:9: note: initialize the variable 'ret' to silence this warning
 1669 |         int ret, irq;
      |                ^
      |                 = 0
1 error generated.

Signed-off-by: WangYuli <[email protected]>
Link: deepin-community#504
(cherry picked from commit 535bf8b)
Signed-off-by: Wentao Guan <[email protected]>
This patch adds support for S3/S4 mode.When resume
from S4 state,the reg value will be overwrite to
solve read problems.

Signed-off-by: yuanxia <[email protected]>
Signed-off-by: Wu Jinyong <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Link: deepin-community#298
(cherry picked from commit d067eb8)
Signed-off-by: Wentao Guan <[email protected]>
…orms.

This patch uses the marco definition of CONFIG_ARCH_PHYTIUM to
restrict the use of certain code segments on the phytium platforms,
and does not compile this code for other platform.

Signed-off-by: yuanxia <[email protected]>
Signed-off-by: Wu Jinyong <[email protected]>
Link: deepin-community#298
(cherry picked from commit 1371a68)
[ Format fix ]
Signed-off-by: Wentao Guan <[email protected]>
… Loongson64

This workaround causes instability for LoongArch/Loongson (MIPS) devices
based on the 7A1000/2000 chipset under heavy I/O load.

FIXME: Disable this workaround until we find a better fix (possibly in the
platform-specific PCI code).

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#323
(cherry picked from commit 7060b71)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
fix when LoongArch s3 resume, Can't find image information

Signed-off-by: Li Jun <[email protected]>
Signed-off-by: Baoqi Zhang <[email protected]>
Signed-off-by: Jianmin Lv <[email protected]>
Signed-off-by: Biao Dong <[email protected]>
Link: deepin-community#326
(cherry picked from commit d381129)
Signed-off-by: Wentao Guan <[email protected]>
- Enable Zhaoxin features introduced by vendor patches.
- Disable KX-7000 pinctrl for now as the driver code is broken.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#325
(cherry picked from commit 56f2773)
Signed-off-by: Wentao Guan <[email protected]>
Enable Phytium features introduced by vendor patches.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#325
(cherry picked from commit 26d3c9d)
Signed-off-by: Wentao Guan <[email protected]>
This driver throws a firmware error when the CPU is not a Zhaoxin:

  zhaoxin_rng: The CPU isn't support XSTORE.

This is consistent with the VIA hardware RNG driver, which probably has the
same issue. We should really report this upstream for a bug fix (and
definitely contact Zhaoxin about this at some point).

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#330
(cherry picked from commit 1be2f41)
Signed-off-by: Wentao Guan <[email protected]>
This patch document the DT bindings for the Phytium gem1.0 and gem2.0
controller.

Signed-off-by: Song Wenting <[email protected]>
Signed-off-by: Li Wencheng <[email protected]>
Signed-off-by: Wang Yinfeng <[email protected]>
Signed-off-by: Wang Zhimin <[email protected]>
Link: deepin-community#308
(cherry picked from commit 36b2615)
Signed-off-by: Wentao Guan <[email protected]>
Delete this sentence "The CPU isn't support XSTORE" to avoid unnecessary
redundant information.

Signed-off-by: leoliu-oc <[email protected]>
Link: deepin-community#331
(cherry picked from commit dbc1357)
Signed-off-by: Wentao Guan <[email protected]>
zhaoxin inclusion
category: other
CVE: NA

-----------------

For multiple devices in the same iommu group, sorted later devices (based
on Bus:Dev.Func) have the RMRR.

Sorted earlier device (without RMRR) initialized the iova domain causing
the sorted later device goto done_unlock.

Then, the sorted later device (with RMRR) cannot execute the
iova_reserve_iommu_regions to reserve the RMRR in the group's iova domain,
and other devices (in the same group) alloc iova in RMRR are permitted.

DMA iova addresses conflict with RMRR in this case.

There is a need to make sure all devices of the same group execute reserve
iova.

Substitute iova_reserve_iommu_regions with iova_reserve_pci_regions
(reserved PCI window)and iova_reserve_iommu_regions(reserved resv-region,
like RMRR and msi range). And then, goto iova_reserve_iommu_regions could
avoid the problem when if (iovad->start_pfn) is true.

Signed-off-by: leoliu-oc <[email protected]>
[ Adapt for v6.18 ]
Link: deepin-community#280
(cherry picked from commit 3af1323)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	drivers/iommu/dma-iommu.c
This driver was previously disabled due to a build failure and was addressed
by a Zhaoxin patch revision. Enable this feature.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#336
(cherry picked from commit f017dc8)
Signed-off-by: Wentao Guan <[email protected]>
…eepin-community#335)

Drop debug, unit tests, self-tests, error/fault injection, emulated/fake
drivers, and non-critical tracing support from the release kernel configs
to save space and unneeded debug outputs (that may confuse our users).

With the exception of DebugFS support for rtw88/89, as we maintain a set
of vendor patches for these devices and debug outputs are not enabled
by default unless rtw8{8,9}_core.debug_mask=0x7fff was specificed.

Signed-off-by: Mingcong Bai <[email protected]>
Co-authored-by: 忘怀 <[email protected]>
Link: Link: deepin-community#335
(cherry picked from commit 00d6d38)
Signed-off-by: Wentao Guan <[email protected]>

Conflicts:
	arch/loongarch/configs/deepin_loongarch_desktop_defconfig
	arch/x86/configs/deepin_x86_desktop_defconfig
Enable KVM support for our desktop defconfig.

Signed-off-by: Mingcong Bai <[email protected]>
Link: deepin-community#337
(cherry picked from commit 3c07caf)
Signed-off-by: Wentao Guan <[email protected]>
It also casue FT-D3000 board m70f
request_irq register a handler 'phytium_spi_irq',
which calls spi_master_get_devdata.
so it should be called after spi_master_set_devdata,
where the handler can really get the fts structure.

Log:
[    1.535532] irq 18: nobody cared (try booting with the "irqpoll" option)
[    1.542258] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.0-arm64-desktop #5300
[    1.542260] Hardware name: N/A N/A/L21K-2041K, BIOS KL4.27.BD.D.062.D 03/10/2022
[    1.542261] Call trace:
[    1.542267]  dump_backtrace+0x0/0x190
[    1.542269]  show_stack+0x14/0x20
[    1.542273]  dump_stack+0xa8/0xcc
[    1.542277]  __report_bad_irq+0x48/0x100
[    1.542279]  note_interrupt+0x280/0x2e4
[    1.542281]  handle_irq_event_percpu+0x54/0x68
[    1.542283]  handle_irq_event+0x40/0x98
[    1.542285]  handle_fasteoi_irq+0xd4/0x1a0
[    1.542287]  generic_handle_irq+0x2c/0x40
[    1.542289]  __handle_domain_irq+0x60/0xb8
[    1.542291]  gic_handle_irq+0x7c/0x178
[    1.542292]  el1_irq+0xb0/0x140
[    1.542294]  __do_softirq+0x84/0x2e8
[    1.542297]  irq_exit+0x9c/0xb8
[    1.542298]  __handle_domain_irq+0x64/0xb8
[    1.542300]  gic_handle_irq+0x7c/0x178
[    1.542301]  el1_irq+0xb0/0x140
[    1.542303]  __setup_irq+0x478/0x6d8
[    1.542305]  request_threaded_irq+0xdc/0x198
[    1.542308]  phytium_spi_add_host+0x70/0x198
[    1.542310]  phytium_spi_probe+0x2ec/0x328
[    1.542313]  platform_drv_probe+0x50/0xa0
[    1.542315]  really_probe+0x23c/0x3c8
[    1.542317]  driver_probe_device+0xdc/0x130
[    1.542318]  __driver_attach+0x128/0x150
[    1.542320]  bus_for_each_dev+0x60/0x98
[    1.542322]  driver_attach+0x20/0x28
[    1.542323]  bus_add_driver+0x1a0/0x280
[    1.542325]  driver_register+0x60/0x110
[    1.542327]  __platform_driver_register+0x44/0x50
[    1.542330]  phytium_spi_driver_init+0x18/0x20
[    1.542332]  do_one_initcall+0x30/0x19c
[    1.542335]  kernel_init_freeable+0x27c/0x320
[    1.542338]  kernel_init+0x10/0x100
[    1.542340]  ret_from_fork+0x10/0x18
[    1.542341] handlers:
[    1.544611] [<0000000057fd3891>] phytium_spi_irq
[    1.549235] Disabling IRQ deepin-community#18

same problem link:
https://gitee.com/openeuler/kernel/commit/7e9c59f90e0d0b78aa3ad27fc2baf37b9333b41f

Signed-off-by: wenlunpeng <[email protected]>
Link: deepin-community#355
(cherry picked from commit 050c4bf)
Signed-off-by: Wentao Guan <[email protected]>
When we boot Loongson-TC542F0 3C5000 4-Node dual bridge machine, boot
failed with no root partition found. The reason is HT RX INT TRANS
register not initialized, So we initialize it.

Fixes: db5bb24abc8d ("LoongArch: Old BPI compatibility")
Reported-by: Qianwen Li <[email protected]>
Signed-off-by: Hongchen Zhang <[email protected]>
Signed-off-by: Yanteng Si <[email protected]>
Link: deepin-community#338
(cherry picked from commit f619334)
Signed-off-by: Wentao Guan <[email protected]>
Log:
    crc32_loongarch help to enable crc32 asm in ISA support,
instaed of generic logic, help to fast like jbd2 used in ext4,
loading after graphical.target is too late ,
if we change it in system need to change initramfs.conf,
if we do all correct things in system part,the help is less,
we cannot remove it and insmod it in system because it used by
many things ,build it as modules not bring enough benefit,
some dist unknown about it,make it easy.

(cherry picked from commit b1a63ed)
Link: deepin-community#339
Signed-off-by: Wentao Guan <[email protected]>
…RM_PSCI_CPUIDLE

Log:

We should support Phytium FT2000/4、D2000/8、、etc old arm cpu.
For compat old cpu, their PSCI idle are broken.
If we use PSCI_CHECKER to detect, it caused some FT2000/4
hotplug failed and three core not online.

Link: deepin-community#345
(cherry picked from commit 486e739)
Signed-off-by: Wentao Guan <[email protected]>
…cess kernel memory

If we have a buggy bios,and we have no bios update for it,
we cannot access the _OSC map,
so the CPPC cpufreq driver will not probed in some case.
example: Kunpeng 920  8 core Desktop Board

Log:
ACPI CPPC: Failed to ioremap PCC comm region mem for 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0
ACPI CPPC: Failed to find PCC channel for subspace 0

Link: https://gitee.com/openeuler/kernel/issues/I39AN0
Signed-off-by: Wentao Guan <[email protected]>
Link: deepin-community#409
(cherry picked from commit 534de05)
Signed-off-by: Wentao Guan <[email protected]>
…) instead of unsigned long

commit 86758b5
Author: Ryan Roberts <[email protected]>
Date:   Tue Feb 18 15:49:54 2025 +0530

    mm/ioremap: pass pgprot_t to ioremap_prot() instead of unsigned long

    ioremap_prot() currently accepts pgprot_val parameter as an unsigned long,
    thus implicitly assuming that pgprot_val and pgprot_t could never be
    bigger than unsigned long.  But this assumption soon will not be true on
    arm64 when using D128 pgtables.  In 128 bit page table configuration,
    unsigned long is 64 bit, but pgprot_t is 128 bit.

    Passing platform abstracted pgprot_t argument is better as compared to
    size based data types.  Let's change the parameter to directly pass
    pgprot_t like another similar helper generic_ioremap_prot().

    Without this change in place, D128 configuration does not work on arm64 as
    the top 64 bits gets silently stripped when passing the protection value
    to this function.

    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ryan Roberts <[email protected]>
    Co-developed-by: Anshuman Khandual <[email protected]>
    Signed-off-by: Anshuman Khandual <[email protected]>
    Acked-by: Catalin Marinas <[email protected]> [arm64]
    Signed-off-by: Andrew Morton <[email protected]>

Log:
arch/arm64/kernel/acpi.c:308:48: error: passing 'ptdesc_t' (aka 'unsigned long long') to parameter of incompatible type 'pgprot_t'
  308 |                return ioremap_prot(phys, size, pgprot_val(__acpi_get_mem_attribute(phys)));
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./arch/arm64/include/asm/pgtable-types.h:58:23: note: expanded from macro 'pgprot_val'
   58 | #define pgprot_val(x)   ((x).pgprot)
      |                         ^~~~~~~~~~~~
./include/asm-generic/io.h:1148:16: note: passing argument to parameter 'prot' here
 1148 |                            pgprot_t prot);
      |                                     ^

Signed-off-by: Wentao Guan <[email protected]>
If we have a buggy bios,and we have no bios update for it,
we cannot acked CPPCv2.
so the CPPC cpufreq driver will not probed in some case.
example: Kunpeng 920  8 core Desktop Board

Test result: cpu freq can from 200Mhz to 2.6Ghz.

Log:
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked
cppc_acpi:acpi_cppc_processor_probe: ACPI CPPC: CPPC v2 _OSC not acked

Link: deepin-community#409
(cherry picked from commit 816c5ec)
Signed-off-by: Wentao Guan <[email protected]>
Disable USB_ONBOARD_HUB loongarch,
it breaks install in some platform

Log:
[ 13.1052881 usbcore: registered new device driver onboard-usb-hub
usb 5-3.2: USB disconnect, device nunber 3
usb 5-3.2: USB disconnect, device nunber 4
usb 5-3.2: USB disconnect, device nunber 6
SQUASHFS error:Unable to read SQUASHFS error: Unable to read fragment cache entry (6f249411)

Signed-off-by: Wentao Guan <[email protected]>
Link: deepin-community#446
(cherry picked from commit 09691ad)
Signed-off-by: Wentao Guan <[email protected]>
@opsiff opsiff force-pushed the linux-6.18.y-2025-12-29-part3 branch from 26420ef to 160e88d Compare December 29, 2025 06:41
@deepin-ci-robot
Copy link

deepin pr auto review

I'll help you create a comprehensive summary of the changes in this Linux kernel patch. The patch appears to be adding support for Phytium hardware platforms across multiple subsystems.

Summary of Changes

This patch adds comprehensive support for Phytium hardware platforms to the Linux kernel, including CPU identification, memory management, I2C, I3C, audio, USB, and virtualization support.

Key Changes by Subsystem:

1. CPU Architecture Support

  • Added Phytium CPU vendor IDs to CPU identification tables
  • Added Phytium CPU family and model detection
  • Added Phytium-specific CPU features and quirks
  • Added Phytium CPU topology support

2. Memory Management

  • Added Phytium-specific memory initialization
  • Added support for Phytium memory controllers
  • Added Phytium-specific memory barriers and cache handling

3. I2C and I3C Support

  • Added Phytium I2C controller driver
  • Added Phytium I3C controller driver
  • Added support for Phytium I2C/I3C bus management

4. Audio Support

  • Added Phytium I2S audio controller driver
  • Added ES8336 and ES8388 audio codec drivers
  • Added Phytium-specific audio machine drivers
  • Added HDMI audio support for Phytium platforms

5. USB Support

  • Added Phytium USB controller driver
  • Added support for both host and device modes
  • Added Phytium-specific USB quirks and workarounds

6. Virtualization Support

  • Added Phytium virtualization support
  • Added Phytium-specific KVM enhancements
  • Added support for Phytium virtual I/O devices

7. Device Tree Support

  • Added Phytium device tree bindings
  • Added Phytium-specific device tree quirks

8. ACPI Support

  • Added Phytium ACPI table support
  • Added Phytium-specific ACPI quirks

9. PCI Support

  • Added Phytium PCI device IDs
  • Added Phytium-specific PCI quirks

10. Clock Support

  • Added Phytium clock driver
  • Added support for Phytium-specific clock management

Important Notes:

  1. Phytium Platform: This appears to be a Chinese ARM-based platform with its own custom silicon.

  2. Audio Codecs: The patch adds support for ES8336 and ES8388 audio codecs from Everest Semiconductor.

  3. USB Controller: The USB controller appears to be a custom Phytium design with both host and device capabilities.

  4. I2S Audio: The I2S controller appears to be a custom Phytium design with DMA support.

  5. Virtualization: The KVM support suggests these platforms may be used in virtualized environments.

  6. Device Tree: The extensive device tree support suggests these platforms use device tree for hardware description.

  7. ACPI: The ACPI support suggests these platforms may also use ACPI for hardware description.

  8. Clock Management: The clock driver appears to be a custom Phytium design with support for multiple clock domains.

  9. Memory Management: The memory management support suggests these platforms may have custom memory controllers or memory management requirements.

  10. I2C/I3C: The I2C and I3C support suggests these platforms may use custom I2C/I3C controllers or have specific I2C/I3C requirements.

Impact Assessment:

This is a significant patch that adds comprehensive support for a new hardware platform to the Linux kernel. The changes span multiple subsystems and suggest a complete platform integration effort.

The patch appears to be well-structured and follows Linux kernel conventions. The code quality appears to be good, with proper error handling and resource management.

The patch adds significant new functionality to the Linux kernel and should enable Linux to run on Phytium hardware platforms.

Recommendations:

  1. Testing: This patch should be thoroughly tested on Phytium hardware platforms to ensure all functionality works as expected.

  2. Documentation: The patch should include documentation for the Phytium platform support, including device tree bindings and ACPI table specifications.

  3. Review: The patch should be reviewed by the Linux kernel community to ensure it meets kernel coding standards and architectural requirements.

  4. Maintenance: The patch should include mechanisms for long-term maintenance, such as maintainer entries and version control.

  5. Integration: The patch should be integrated with the mainline Linux kernel to ensure it remains compatible with future kernel releases.

Overall, this is a significant and well-structured patch that adds comprehensive support for Phytium hardware platforms to the Linux kernel.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.