<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hello.<br>
    </p>
    <p>I have tested it on a Phytium D2000 platform with RX 5500 XT.</p>
    <p>Distro: Arch Linux ARM<br>
    </p>
    <p>Kernel: Linux 6.0.5-1-phytium aarch64 (patched, <a
        class="moz-txt-link-freetext"
        href="https://github.com/saeziae/pkgbuild-linux-phytium">https://github.com/saeziae/pkgbuild-linux-phytium</a>
      )<br>
    </p>
    <p>Plug and unplug: OK on all ports.<br>
    </p>
    <p>Resolutions tested:  3840x2160@60Hz, 2560x1440@60Hz,
      1920*1080@60Hz</p>
    <p>Dual-screen: 3840x2160@60Hz on DP plus 2560x1440@60Hz on HDMI.</p>
    <p>Graphic applications: glxgears. 1080P video on MPV (VAAPI).
      Minecraft. <br>
    </p>
    <p>IGT test: <br>
    </p>
    <p>Most tests went well, with a few error logs.<br>
    </p>
    <blockquote>> cat kms_flip.log| grep FAIL   <br>
      Dynamic subtest A-HDMI-A1: FAIL (0.201s)<br>
      Subtest absolute-wf_vblank: FAIL (29.571s)<br>
      Dynamic subtest A-HDMI-A1: FAIL (0.172s)<br>
      Subtest blocking-absolute-wf_vblank: FAIL (29.537s)<br>
      Dynamic subtest A-HDMI-A1: FAIL (0.257s)<br>
      Subtest blocking-absolute-wf_vblank-interruptible: FAIL (29.458s)<br>
    </blockquote>
    <p>Photos and video clips: <a class="moz-txt-link-freetext"
        href="https://t.me/esteladaily/334">https://t.me/esteladaily/334</a><br>
    </p>
    <p>Thank you for all you guys' excellent work.</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 27/10/2022 22:29, Rodrigo Siqueira
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8eb69dfb-ae35-dbf2-3f82-e8cc00e5389a@amd.com">Hi
      Ao/Arnd/Stephen/Nathan, <br>
      <br>
      Ao, <br>
      <br>
      Thanks a lot for this new patch. <br>
      <br>
      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: <br>
      <br>
      1. Check plug and unplug displays (let says 5x) <br>
      2. Change resolutions <br>
      3. (most wanted test) Could you run some IGT tests? <br>
      <br>
      About IGT, this is the official repository: <br>
      <br>
      <a class="moz-txt-link-freetext"
        href="https://gitlab.freedesktop.org/drm/igt-gpu-tools">https://gitlab.freedesktop.org/drm/igt-gpu-tools</a>
      <br>
      <br>
      It should be easy to run IGT in your system. Follow a brief
      summary: <br>
      <br>
      1. Install dependencies <br>
      <br>
      (maybe I missed something) <br>
      <br>
      Debian <br>
      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 <br>
      <br>
      ArchLinux <br>
      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 <br>
      <br>
      2. Build IGT <br>
      <br>
      meson build && ninja -C build <br>
      <br>
      3. Turn off your GUI <br>
      <br>
      (You must run IGT without any GUI) <br>
      <br>
      sudo systemctl isolate multi-user.target <br>
      <br>
      After run this command, you should see the TTY. <br>
      <br>
      4. Try to run this IGT test <br>
      <br>
      sudo ./build/tests/kms_flip <br>
      <br>
      And let me know if this test looks ok for you. <br>
      <br>
      On 10/27/22 06:52, Arnd Bergmann wrote: <br>
      <blockquote type="cite">On Thu, Oct 27, 2022, at 02:25, Ao Zhong
        wrote: <br>
        <blockquote type="cite">After moving all FPU code to the DML
          folder, we can enable DCN support <br>
          for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG
          from the <br>
          code in the DML folder that needs to use hardware FPU, and add
          a control <br>
          mechanism for ARM Neon. <br>
        </blockquote>
      </blockquote>
      <br>
      I recommend you to add the following info in your commit: <br>
      <br>
      1. System that you use to validate this change (CPU name, monitor,
      distro, wayland/X, etc). <br>
      2. Describe the set of tests that you tried. <br>
      <br>
      <blockquote type="cite">
        <blockquote type="cite"> <br>
          Signed-off-by: Ao Zhong <a class="moz-txt-link-rfc2396E"
            href="mailto:hacc1225@gmail.com"><hacc1225@gmail.com></a>
          <br>
        </blockquote>
        <br>
        There have been problems with stack frame overflows on this code
        <br>
        in the past, how much have you tested this with random
        configurations <br>
        to see if we still hit them in corner cases on arm64 that may
        not <br>
        show up on x86 or powerpc? I would expect to see a few more of
        them <br>
        for every new architecture port. <br>
      </blockquote>
      <br>
      Hi Arnd, <br>
      <br>
      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. <br>
      <br>
      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. <br>
      <br>
      Nathan/Stephen, <br>
      <br>
      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? <br>
      <br>
      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? <br>
      <br>
      Thanks <br>
      Siqueira <br>
      <br>
      <blockquote type="cite">
        <blockquote type="cite">index d0c6cf61c676..3cdd109189e0 100644
          <br>
          --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile <br>
          +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile <br>
          @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64 <br>
            dml_ccflags := -mhard-float -maltivec <br>
            endif <br>
          <br>
          +ifdef CONFIG_ARM64 <br>
          +ifdef CONFIG_DRM_AMD_DC_DCN <br>
          +dml_rcflags_arm64 := -mgeneral-regs-only <br>
          +endif <br>
          +endif <br>
          + <br>
        </blockquote>
        <br>
        <blockquote type="cite"> 
          CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o :=
          $(dml_ccflags) <br>
            CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o :=
          $(dml_ccflags) <br>
            CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o :=
          $(dml_ccflags) <br>
          -Wno-tautological-compare <br>
          -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
          $(dml_rcflags) <br>
          +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := <br>
          $(dml_rcflags) $(dml_rcflags_arm64) <br>
        </blockquote>
        <br>
        Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
        <br>
        rather than adding -mgeneral-regs-only to $(dml_rcflags)
        directly? <br>
        <br>
             Arnd <br>
      </blockquote>
      <br>
      <br>
    </blockquote>
  </body>
</html>