[PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64

Ao Zhong hacc1225 at gmail.com
Thu Oct 27 10:46:49 PDT 2022


Here are some lshw information:

hacc-arm64-pc
    description: Desktop Computer
    product: HUAWEIPGU-WBY0 (C233)
    vendor: HUAWEI
    version: D1060
    serial:
    width: 64 bits
    capabilities: smbios-3.2.0 dmi-3.2.0 smp cp15_barrier setend swp tagged_addr_disabled
    configuration: chassis=desktop family=HUAWEI sku=C233 uuid=
  *-core
       description: Motherboard
       product: HUAWEIPGU-WBY0-PCB
       vendor: HUAWEI
       physical id: 0
       version: D1060
       serial:
       slot: Null
     *-firmware
          description: BIOS
          vendor: Byosoft
          physical id: 2
          version: 1.11
          date: 02/07/2020
          size: 128KiB
          capabilities: pci pnp upgrade cdboot bootselect edd acpi biosbootspecification uefi
     *-cache:0
          description: L1 cache
          physical id: 5
          slot: L1 Instruction Cache
          size: 1536KiB
          capacity: 1536KiB
          capabilities: synchronous internal write-back instruction
          configuration: level=1
     *-cache:1
          description: L1 cache
          physical id: 6
          slot: L1 Data Cache
          size: 1536KiB
          capacity: 1536KiB
          capabilities: synchronous internal write-back data
          configuration: level=1
     *-cache:2
          description: L2 cache
          physical id: 7
          slot: L2 Cache
          size: 12MiB
          capacity: 12MiB
          capabilities: synchronous internal varies unified
          configuration: level=2
     *-cache:3
          description: L3 cache
          physical id: 8
          slot: L3 Cache
          size: 24MiB
          capacity: 24MiB
          capabilities: synchronous internal varies unified
          configuration: level=3
     *-cpu
          description: CPU
          product: ARM (NULL)
          vendor: HISILICON
          physical id: 9
          bus info: cpu at 0
          version: HUAWEI Kunpeng920 3211K
          serial: NULL
          slot: CPU0
          size: 2600MHz
          capacity: 2600MHz
          clock: 100MHz
          capabilities: lm
          configuration: cores=24 enabledcores=24 threads=24
     *-memory
          description: System Memory
          physical id: a
          slot: System board or motherboard
          size: 64GiB
        *-bank:0
             description: DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
             product: F4-3200C22-32GRS
             vendor: Unknown
             physical id: 0
             serial:
             slot: SODIMM_B
             size: 32GiB
             width: 64 bits
             clock: 3200MHz (0.3ns)
        *-bank:1
             description: DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
             product: F4-3200C22-32GRS
             vendor: Unknown
             physical id: 1
             serial:
             slot: SODIMM_A
             size: 32GiB
             width: 64 bits
             clock: 3200MHz (0.3ns)
     *-pci:0
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: 100
          bus info: pci at 0000:00:00.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:30 ioport:1000(size=4096) memory:e0c00000-e0efffff ioport:80080000000(size=6442450944)
        *-pci
             description: PCI bridge
             product: Navi 10 XL Upstream Port of PCI Express Switch
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 0
             bus info: pci at 0000:01:00.0
             version: c7
             width: 32 bits
             clock: 33MHz
             capabilities: pci pm pciexpress msi normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:29 memory:e0e00000-e0e03fff ioport:1000(size=4096) memory:e0c00000-e0dfffff ioport:80080000000(size=6442450944)
           *-pci
                description: PCI bridge
                product: Navi 10 XL Downstream Port of PCI Express Switch
                vendor: Advanced Micro Devices, Inc. [AMD/ATI]
                physical id: 0
                bus info: pci at 0000:02:00.0
                version: 00
                width: 32 bits
                clock: 33MHz
                capabilities: pci pm pciexpress msi normal_decode bus_master cap_list
                configuration: driver=pcieport
                resources: irq:37 ioport:1000(size=4096) memory:e0c00000-e0dfffff ioport:80080000000(size=6442450944)
              *-display
                   description: VGA compatible controller
                   product: Navi 24 [Radeon RX 6400 / 6500 XT]
                   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
                   physical id: 0
                   bus info: pci at 0000:03:00.0
                   logical name: /dev/fb0
                   version: c7
                   width: 64 bits
                   clock: 33MHz
                   capabilities: pm pciexpress msi vga_controller bus_master cap_list rom fb
                   configuration: depth=32 driver=amdgpu latency=0 mode=3440x1440 resolution=3440,1440 visual=truecolor xres=3440 yres=1440
                   resources: iomemory:8010-800f iomemory:8000-7fff irq:250 memory:80100000000-801ffffffff memory:80080000000-800801fffff ioport:1000(size=256) memory:e0c00000-e0cfffff memory:e0d00000-e0d1ffff
              *-multimedia
                   description: Audio device
                   product: Navi 21/23 HDMI/DP Audio Controller
                   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
                   physical id: 0.1
                   bus info: pci at 0000:03:00.1
                   logical name: card0
                   logical name: /dev/snd/controlC0
                   logical name: /dev/snd/hwC0D0
                   logical name: /dev/snd/pcmC0D3p
                   logical name: /dev/snd/pcmC0D7p
                   version: 00
                   width: 32 bits
                   clock: 33MHz
                   capabilities: pm pciexpress msi bus_master cap_list
                   configuration: driver=snd_hda_intel latency=0
                   resources: irq:248 memory:e0d20000-e0d23fff
                 *-input:0
                      product: HDA ATI HDMI HDMI/DP,pcm=3
                      physical id: 0
                      logical name: input4
                      logical name: /dev/input/event4
                 *-input:1
                      product: HDA ATI HDMI HDMI/DP,pcm=7
                      physical id: 1
                      logical name: input5
                      logical name: /dev/input/event5
     *-pci:1
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: 101
          bus info: pci at 0000:00:08.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:31 ioport:2000(size=4096) memory:e0f00000-e10fffff ioport:80018000000(size=2097152)
        *-nvme
             description: NVMe device
             product: KINGSTON SNV2S1000G
             vendor: Kingston Technology Company, Inc.
             physical id: 0
             bus info: pci at 0000:04:00.0
             logical name: /dev/nvme0
             version: SBI02102
             serial:
             width: 64 bits
             clock: 33MHz
             capabilities: nvme pm msi pciexpress msix nvm_express bus_master cap_list
             configuration: driver=nvme latency=0 nqn=nqn.2021-03.com.kingston:nvme:nvm-subsystem-sn- state=live
             resources: irq:29 memory:e0f00000-e0f03fff
           *-namespace:0
                description: NVMe disk
                physical id: 0
                logical name: hwmon1
           *-namespace:1
                description: NVMe disk
                physical id: 2
                logical name: /dev/ng0n1
           *-namespace:2
                description: NVMe disk
                physical id: 1
                bus info: nvme at 0:1
                logical name: /dev/nvme0n1
                size: 931GiB (1TB)
                capabilities: gpt-1.00 partitioned partitioned:gpt
                configuration: guid= logicalsectorsize=512 sectorsize=512 wwid=eui.00000000000000000026b7784e21fbc5
              *-volume:0 UNCLAIMED
                   description: Windows FAT volume
                   vendor: mkfs.fat
                   physical id: 1
                   bus info: nvme at 0:1,1
                   version: FAT32
                   serial:
                   size: 98MiB
                   capacity: 99MiB
                   capabilities: boot fat initialized
                   configuration: FATs=2 filesystem=fat
              *-volume:1
                   description: EFI partition
                   physical id: 2
                   bus info: nvme at 0:1,2
                   logical name: /dev/nvme0n1p2
                   logical name: /
                   logical name: /home
                   serial:
                   capacity: 866GiB
                   configuration: mount.fstype=btrfs mount.options=rw,relatime,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@home state=mounted
              *-volume:2
                   description: EFI partition
                   physical id: 3
                   bus info: nvme at 0:1,3
                   logical name: /dev/nvme0n1p3
                   logical name: /boot
                   serial:
                   capacity: 1023MiB
                   configuration: mount.fstype=xfs mount.options=rw,relatime,attr2,discard,inode64,logbufs=8,logbsize=32k,noquota state=mounted
              *-volume:3
                   description: Linux swap volume
                   vendor: Linux
                   physical id: 4
                   bus info: nvme at 0:1,4
                   logical name: /dev/nvme0n1p4
                   version: 1
                   serial:
                   size: 64GiB
                   capacity: 64GiB
                   capabilities: nofs swap initialized
                   configuration: filesystem=swap pagesize=4096
     *-pci:2
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: 102
          bus info: pci at 0000:00:0a.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:32 ioport:3000(size=4096) memory:e1100000-e12fffff ioport:80018200000(size=2097152)
        *-nvme
             description: NVMe device
             product: KXG60ZNV512G TOSHIBA
             vendor: Toshiba Corporation
             physical id: 0
             bus info: pci at 0000:05:00.0
             logical name: /dev/nvme1
             version: AGXA4103
             serial:
             width: 64 bits
             clock: 33MHz
             capabilities: nvme pciexpress pm msi msix nvm_express bus_master cap_list
             configuration: driver=nvme latency=0 nqn=nqn.2017-03.jp.co.toshiba:KXG60ZNV512G TOSHIBA: state=live
             resources: irq:29 memory:e1100000-e1103fff
           *-namespace:0
                description: NVMe disk
                physical id: 0
                logical name: hwmon0
           *-namespace:1
                description: NVMe disk
                physical id: 2
                logical name: /dev/ng1n1
           *-namespace:2
                description: NVMe disk
                physical id: 1
                bus info: nvme at 1:1
                logical name: /dev/nvme1n1
                size: 476GiB (512GB)
                capabilities: gpt-1.00 partitioned partitioned:gpt
                configuration: guid= logicalsectorsize=512 sectorsize=512 wwid=eui.00000000000000018ce38e0300176ffe
              *-volume
                   description: EFI partition
                   physical id: 1
                   bus info: nvme at 1:1,1
                   logical name: /dev/nvme1n1p1
                   logical name: /mnt/SSD2
                   serial:
                   capacity: 476GiB
                   configuration: mount.fstype=btrfs mount.options=rw,relatime,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/ state=mounted
     *-pci:3
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: c
          bus info: pci at 0000:00:0c.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:33 ioport:4000(size=4096) memory:e0000000-e0bfffff ioport:80018400000(size=2097152)
        *-network UNCLAIMED
             description: Network controller
             product: Huawei Technologies Co., Ltd.
             vendor: Huawei Technologies Co., Ltd.
             physical id: 0
             bus info: pci at 0000:06:00.0
             version: 02
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi pciexpress cap_list
             configuration: latency=0
             resources: memory:e0000000-e07fffff memory:e0800000-e0803fff
     *-pci:4
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: d
          bus info: pci at 0000:00:0d.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:34 ioport:5000(size=4096) memory:e1300000-e14fffff ioport:80018600000(size=2097152)
        *-usb
             description: USB controller
             product: uPD720202 USB 3.0 Host Controller
             vendor: Renesas Technology Corp.
             physical id: 0
             bus info: pci at 0000:07:00.0
             version: 02
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi msix pciexpress xhci bus_master cap_list
             configuration: driver=xhci_hcd latency=0
             resources: irq:29 memory:e1300000-e1301fff
           *-usbhost:0
                product: xHCI Host Controller
                vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
                physical id: 0
                bus info: usb at 2
                logical name: usb2
                version: 6.00
                capabilities: usb-2.00
                configuration: driver=hub slots=2 speed=480Mbit/s
              *-usb:0
                   description: USB hub
                   product: 4-Port USB 2.1 Hub
                   vendor: Generic
                   physical id: 1
                   bus info: usb at 2:1
                   version: 1.01
                   capabilities: usb-2.10
                   configuration: driver=hub slots=4 speed=480Mbit/s
              *-usb:1 UNCLAIMED
                   description: Communication device
                   product: Goodix Fingerprint Device
                   vendor: Shenzhen Goodix Technology Co.,Ltd.
                   physical id: 2
                   bus info: usb at 2:2
                   version: 2.00
                   capabilities: usb-2.00
                   configuration: maxpower=100mA speed=12Mbit/s
           *-usbhost:1
                product: xHCI Host Controller
                vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
                physical id: 1
                bus info: usb at 3
                logical name: usb3
                version: 6.00
                capabilities: usb-3.00
                configuration: driver=hub slots=2 speed=5000Mbit/s
              *-usb
                   description: USB hub
                   product: 4-Port USB 3.1 Hub
                   vendor: Generic
                   physical id: 1
                   bus info: usb at 3:1
                   version: 1.01
                   capabilities: usb-3.10
                   configuration: driver=hub slots=4 speed=5000Mbit/s
     *-pci:5
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: e
          bus info: pci at 0000:00:0e.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:35 ioport:6000(size=4096) memory:e1500000-e16fffff ioport:80018800000(size=2097152)
     *-pci:6
          description: PCI bridge
          product: HiSilicon PCIe Root Port with Gen4
          vendor: Huawei Technologies Co., Ltd.
          physical id: f
          bus info: pci at 0000:00:0f.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:36 ioport:7000(size=4096) memory:e1700000-e18fffff ioport:80018a00000(size=2097152)
     *-pci:7
          description: PCI bridge
          product: HiSilicon PCI-PCI Bridge
          vendor: Huawei Technologies Co., Ltd.
          physical id: 103
          bus info: pci at 0000:74:00.0
          version: 20
          width: 64 bits
          clock: 33MHz
          capabilities: pci pciexpress pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: iomemory:1010-100f irq:0
     *-pci:8
          description: PCI bridge
          product: HiSilicon PCI-PCI Bridge
          vendor: Huawei Technologies Co., Ltd.
          physical id: 104
          bus info: pci at 0000:74:01.0
          version: 20
          width: 64 bits
          clock: 33MHz
          capabilities: pci pciexpress pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: iomemory:1010-100f irq:0 ioport:141000000(size=8388608)
        *-generic UNCLAIMED
             description: Unassigned class
             product: SafeNet (wrong ID)
             vendor: SafeNet (wrong ID)
             physical id: 0
             bus info: pci at 0000:76:00.0
             version: ff
             width: 32 bits
             clock: 66MHz
             capabilities: bus_master vga_palette cap_list
             configuration: latency=255 maxlatency=255 mingnt=255
             resources: memory:141000000-1413fffff memory:141400000-1417effff
     *-sas:0 UNCLAIMED
          description: Serial Attached SCSI controller
          product: HiSilicon SAS 3.0 HBA
          vendor: Huawei Technologies Co., Ltd.
          physical id: b
          bus info: pci at 0000:74:02.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: sas pciexpress msi pm cap_list
          configuration: latency=0
          resources: memory:a2000000-a2007fff
     *-sata
          description: SATA controller
          product: HiSilicon AHCI HBA
          vendor: Huawei Technologies Co., Ltd.
          physical id: 3
          bus info: pci at 0000:74:03.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: sata pciexpress msi pm ahci_1.0 bus_master cap_list
          configuration: driver=ahci latency=0
          resources: irq:235 memory:a2010000-a2010fff
     *-sas:1 UNCLAIMED
          description: Serial Attached SCSI controller
          product: HiSilicon SAS 3.0 HBA
          vendor: Huawei Technologies Co., Ltd.
          physical id: 4
          bus info: pci at 0000:74:04.0
          version: 21
          width: 32 bits
          clock: 33MHz
          capabilities: sas pciexpress msi pm cap_list
          configuration: latency=0
          resources: memory:a2008000-a200ffff
     *-pci:9
          description: PCI bridge
          product: HiSilicon PCI-PCI Bridge
          vendor: Huawei Technologies Co., Ltd.
          physical id: 105
          bus info: pci at 0000:78:00.0
          version: 20
          width: 32 bits
          clock: 33MHz
          capabilities: pci pciexpress pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:0
     *-raid UNCLAIMED
          description: RAID bus controller
          product: HiSilicon RDE Engine
          vendor: Huawei Technologies Co., Ltd.
          physical id: 10
          bus info: pci at 0000:78:01.0
          version: 21
          width: 64 bits
          clock: 33MHz
          capabilities: raid pciexpress msi pm cap_list
          configuration: latency=0
          resources: iomemory:20-1f memory:208000000-2083fffff
     *-usb:0
          description: USB controller
          product: HiSilicon USB 1.1 Host Controller
          vendor: Huawei Technologies Co., Ltd.
          physical id: 11
          bus info: pci at 0000:7a:00.0
          version: 21
          width: 64 bits
          clock: 33MHz
          capabilities: pciexpress msi pm ohci bus_master cap_list
          configuration: driver=ohci-pci latency=0
          resources: iomemory:20-1f irq:249 memory:20c100000-20c100fff
        *-usbhost
             product: OHCI PCI host controller
             vendor: Linux 6.0.5-gentoo-arm64 ohci_hcd
             physical id: 1
             bus info: usb at 6
             logical name: usb6
             version: 6.00
             capabilities: usb-1.10
             configuration: driver=hub slots=2 speed=12Mbit/s
     *-usb:1
          description: USB controller
          product: HiSilicon USB 2.0 2-port Host Controller
          vendor: Huawei Technologies Co., Ltd.
          physical id: 1
          bus info: pci at 0000:7a:01.0
          version: 21
          width: 64 bits
          clock: 33MHz
          capabilities: pciexpress msi pm ehci bus_master cap_list
          configuration: driver=ehci-pci latency=0
          resources: iomemory:20-1f irq:237 memory:20c101000-20c101fff
        *-usbhost
             product: EHCI Host Controller
             vendor: Linux 6.0.5-gentoo-arm64 ehci_hcd
             physical id: 1
             bus info: usb at 1
             logical name: usb1
             version: 6.00
             capabilities: usb-2.00
             configuration: driver=hub slots=2 speed=480Mbit/s
           *-usb
                description: Audio device
                product: Generic USB Audio
                vendor: Generic
                physical id: 1
                bus info: usb at 1:1
                logical name: card1
                logical name: /dev/snd/controlC1
                logical name: /dev/snd/pcmC1D0c
                logical name: /dev/snd/pcmC1D0p
                logical name: /dev/snd/pcmC1D1c
                logical name: /dev/snd/pcmC1D1p
                logical name: /dev/snd/pcmC1D2c
                logical name: /dev/snd/pcmC1D2p
                logical name: input1
                logical name: /dev/input/event1
                version: 0.13
                capabilities: usb-2.00 audio-control usb
                configuration: driver=usbhid maxpower=100mA speed=480Mbit/s
     *-usb:2
          description: USB controller
          product: HiSilicon USB 3.0 Host Controller
          vendor: Huawei Technologies Co., Ltd.
          physical id: 12
          bus info: pci at 0000:7a:02.0
          version: 21
          width: 64 bits
          clock: 33MHz
          capabilities: pciexpress msi pm xhci bus_master cap_list
          configuration: driver=xhci_hcd latency=0
          resources: iomemory:20-1f irq:246 memory:20c000000-20c0fffff
        *-usbhost:0
             product: xHCI Host Controller
             vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
             physical id: 0
             bus info: usb at 4
             logical name: usb4
             version: 6.00
             capabilities: usb-2.00
             configuration: driver=hub slots=1 speed=480Mbit/s
           *-usb
                description: USB hub
                product: 4-Port USB 2.1 Hub
                vendor: Generic
                physical id: 1
                bus info: usb at 4:1
                version: 1.01
                capabilities: usb-2.10
                configuration: driver=hub slots=4 speed=480Mbit/s
              *-usb:0
                   description: USB hub
                   product: USB2.1 Hub
                   vendor: GenesysLogic
                   physical id: 1
                   bus info: usb at 4:1.1
                   version: 6.63
                   capabilities: usb-2.10
                   configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
                 *-usb:0
                      description: Bluetooth wireless interface
                      product: Bluetooth Radio
                      vendor: Realtek
                      physical id: 1
                      bus info: usb at 4:1.1.1
                      version: 2.00
                      serial:
                      capabilities: bluetooth usb-1.10
                      configuration: driver=btusb maxpower=500mA speed=12Mbit/s
                 *-usb:1
                      description: Bluetooth wireless interface
                      product: Bluetooth Radio
                      vendor: Realtek
                      physical id: 2
                      bus info: usb at 4:1.1.2
                      version: 2.00
                      serial:
                      capabilities: bluetooth usb-1.10
                      configuration: driver=btusb maxpower=500mA speed=12Mbit/s
                 *-usb:2
                      description: Video
                      product: FHD Camera Microphone: FHD Came
                      vendor: SunplusIT Inc
                      physical id: 3
                      bus info: usb at 4:1.1.3
                      logical name: card3
                      logical name: /dev/snd/controlC3
                      logical name: /dev/snd/pcmC3D0c
                      logical name: input6
                      logical name: /dev/input/event6
                      version: 10.14
                      serial: 01.00.00
                      capabilities: usb-2.00 usb
                      configuration: driver=snd-usb-audio maxpower=500mA speed=480Mbit/s
                 *-usb:3
                      description: USB hub
                      product: HighSpeed Hub
                      vendor: NEC Corp.
                      physical id: 4
                      bus info: usb at 4:1.1.4
                      version: 1.00
                      capabilities: usb-2.00
                      configuration: driver=hub maxpower=100mA slots=3 speed=480Mbit/s
                    *-usb
                         description: Keyboard
                         product: Topre Corporation HHKB Professional
                         vendor: Topre Corporation
                         physical id: 1
                         bus info: usb at 4:1.1.4.1
                         logical name: input3
                         logical name: /dev/input/event3
                         logical name: input3::capslock
                         logical name: input3::compose
                         logical name: input3::kana
                         logical name: input3::numlock
                         logical name: input3::scrolllock
                         version: 1.02
                         capabilities: usb-1.10 usb
                         configuration: driver=usbhid maxpower=100mA speed=12Mbit/s
              *-usb:1
                   description: Human interface device
                   product: SAVITECH Bravo-X USB Audio
                   vendor: SAVITECH
                   physical id: 2
                   bus info: usb at 4:1.2
                   logical name: card2
                   logical name: /dev/snd/controlC2
                   logical name: /dev/snd/pcmC2D0p
                   logical name: /dev/snd/pcmC2D1p
                   logical name: input2
                   logical name: /dev/input/event2
                   version: 0.01
                   capabilities: usb-1.10 usb
                   configuration: driver=snd-usb-audio maxpower=100mA speed=12Mbit/s
        *-usbhost:1
             product: xHCI Host Controller
             vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
             physical id: 1
             bus info: usb at 5
             logical name: usb5
             version: 6.00
             capabilities: usb-3.00
             configuration: driver=hub slots=1 speed=5000Mbit/s
           *-usb
                description: USB hub
                product: 4-Port USB 3.1 Hub
                vendor: Generic
                physical id: 1
                bus info: usb at 5:1
                version: 1.01
                capabilities: usb-3.10
                configuration: driver=hub slots=4 speed=5000Mbit/s
              *-usb
                   description: USB hub
                   product: USB3.1 Hub
                   vendor: GenesysLogic
                   physical id: 1
                   bus info: usb at 5:1.1
                   version: 6.63
                   capabilities: usb-3.20
                   configuration: driver=hub slots=4 speed=5000Mbit/s
     *-generic
          description: System peripheral
          product: HiSilicon Embedded DMA Engine
          vendor: Huawei Technologies Co., Ltd.
          physical id: 13
          bus info: pci at 0000:7b:00.0
          version: 21
          width: 64 bits
          clock: 33MHz
          capabilities: pciexpress msi pm bus_master cap_list
          configuration: driver=hisi_dma latency=0
          resources: iomemory:10-f irq:39 memory:148800000-148803fff
     *-pci:10
          description: PCI bridge
          product: HiSilicon PCI-PCI Bridge
          vendor: Huawei Technologies Co., Ltd.
          physical id: 0
          bus info: pci at 0000:7c:00.0
          version: 20
          width: 64 bits
          clock: 33MHz
          capabilities: pci pciexpress pm normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: iomemory:1010-100f irq:0 ioport:120000000(size=2097152)
        *-network
             description: Ethernet interface
             product: HNS GE/10GE/25GE RDMA Network Controller
             vendor: Huawei Technologies Co., Ltd.
             physical id: 0
             bus info: pci at 0000:7d:00.0
             logical name: enp125s0f0
             version: 21
             serial:
             size: 1Gbit/s
             capacity: 1Gbit/s
             width: 64 bits
             clock: 33MHz
             capabilities: pciexpress msix pm bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=hns3 driverversion=6.0.5-gentoo-arm64 duplex=full firmware=1.8.15.0 ip=192.168.1.150 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
             resources: iomemory:10-f iomemory:10-f irq:0 memory:120100000-12010ffff memory:120000000-1200fffff
     *-pnp00:00
          product: 16550A-compatible COM port
          physical id: 14
          capabilities: pnp
          configuration: driver=serial
  *-input:0
       product: Power Button
       physical id: 1
       logical name: input0
       logical name: /dev/input/event0
       capabilities: platform
  *-input:1
       product: MX Vertical Mouse
       physical id: 2
       logical name: input7
       logical name: /dev/input/event7
       logical name: /dev/input/mouse0
       capabilities: bluetooth

Am 27.10.22 um 16:29 schrieb Rodrigo Siqueira:
> Hi Ao/Arnd/Stephen/Nathan,
>
> Ao,
>
> Thanks a lot for this new patch.
>
> Since you have an ARM64 + AMD GPU, could you also run a couple of tests in your setup? If so, this is a good set of tests imho:
>
> 1. Check plug and unplug displays (let says 5x)
> 2. Change resolutions
> 3. (most wanted test) Could you run some IGT tests?
>
> About IGT, this is the official repository:
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>
> It should be easy to run IGT in your system. Follow a brief summary:
>
> 1. Install dependencies
>
> (maybe I missed something)
>
> Debian
> apt install flex bison pkg-config x11proto-dri2-dev python-docutils valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev libudev-dev libgsl-dev libasound2-dev libjson-c-dev libcurl4-openssl-dev libxrandr-dev libxv-dev meson libdrm-dev qemu-user qemu-user-static
>
> ArchLinux
> pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils valgrind peg meson libdrm libtool make autoconf automake gtk-doc python-docutils git vim sudo
>
> 2. Build IGT
>
> meson build && ninja -C build
>
> 3. Turn off your GUI
>
> (You must run IGT without any GUI)
>
> sudo systemctl isolate multi-user.target
>
> After run this command, you should see the TTY.
>
> 4. Try to run this IGT test
>
> sudo ./build/tests/kms_flip
>
> And let me know if this test looks ok for you.
>
> On 10/27/22 06:52, Arnd Bergmann wrote:
>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>> After moving all FPU code to the DML folder, we can enable DCN support
>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>> code in the DML folder that needs to use hardware FPU, and add a control
>>> mechanism for ARM Neon.
>
> I recommend you to add the following info in your commit:
>
> 1. System that you use to validate this change (CPU name, monitor, distro, wayland/X, etc).
> 2. Describe the set of tests that you tried.
>
>>>
>>> Signed-off-by: Ao Zhong <hacc1225 at gmail.com>
>>
>> There have been problems with stack frame overflows on this code
>> in the past, how much have you tested this with random configurations
>> to see if we still hit them in corner cases on arm64 that may not
>> show up on x86 or powerpc? I would expect to see a few more of them
>> for every new architecture port.
>
> Hi Arnd,
>
> We followed your suggestion to isolate all FPU code inside a single place (DML), and we recently completed most of this task. As a result, all FPU flags are only used in the DML code. I guess we might have issues in other non-x86 platforms, but this is something that we can improve over time, and from Ao message, it looks like that DCN is working on ARM.
>
> At this point, my main concern is that enabling ARM64 may causes some compilation issues that we did not reproduce yet. I cross-compiled amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version 12.2.0 and everything looks fine.
>
> Nathan/Stephen,
>
> Maybe I'm wrong, but I think you have access to some sort of CI that tests multiple builds with different compiles and configs, right? Is it possible to check this patch + amd-staging-drm-next in the CI to help us to anticipate any compilation issue if we merge this change?
>
> Or should we merge it and wait until it gets merged on the mainline? In case of a problem, we can easily revert a small patch like this, right?
>
> Thanks
> Siqueira
>
>>> index d0c6cf61c676..3cdd109189e0 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>>   dml_ccflags := -mhard-float -maltivec
>>>   endif
>>>
>>> +ifdef CONFIG_ARM64
>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>> +endif
>>> +endif
>>> +
>>
>>>   CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>>   CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>>   CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>> -Wno-tautological-compare
>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>
>>      Arnd



More information about the linux-arm-kernel mailing list