From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 107784] [AMD tahiti XT] displayport broken Date: Fri, 07 Sep 2018 21:48:19 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1401779699==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 404A66E986 for ; Fri, 7 Sep 2018 21:48:19 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1401779699== Content-Type: multipart/alternative; boundary="15363568990.A9Fb7DE.1724" Content-Transfer-Encoding: 7bit --15363568990.A9Fb7DE.1724 Date: Fri, 7 Sep 2018 21:48:19 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D107784 --- Comment #19 from Sylvain BERTRAND --- Breaking commit is a merge commit from upstream mainline: -------- commit 13e091b6dd0e78a518a7d8756607d3acb8215768 Merge: eac341194426 1088c6eef261 Author: Linus Torvalds Date: Mon Aug 13 18:28:19 2018 -0700 Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 timer updates from Thomas Gleixner: "Early TSC based time stamping to allow better boot time analysis. This comes with a general cleanup of the TSC calibration code which grew warts and duct taping over the years and removes 250 lines of code. Initiated and mostly implemented by Pavel with help from various folks" * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits) x86/kvmclock: Mark kvm_get_preset_lpj() as __init x86/tsc: Consolidate init code sched/clock: Disable interrupts when calling generic_sched_clock_init= () timekeeping: Prevent false warning when persistent clock is not avail= able sched/clock: Close a hole in sched_clock_init() x86/tsc: Make use of tsc_calibrate_cpu_early() x86/tsc: Split native_calibrate_cpu() into early and late parts sched/clock: Use static key for sched_clock_running sched/clock: Enable sched clock early sched/clock: Move sched clock initialization and merge with generic c= lock x86/tsc: Use TSC as sched clock early x86/tsc: Initialize cyc2ns when tsc frequency is determined x86/tsc: Calibrate tsc only once ARM/time: Remove read_boot_clock64() s390/time: Remove read_boot_clock64() timekeeping: Default boot time offset to local_clock() timekeeping: Replace read_boot_clock64() with read_persistent_wall_and_boot_offset() s390/time: Add read_persistent_wall_and_boot_offset() x86/xen/time: Output xen sched_clock time from 0 x86/xen/time: Initialize pv xen time in init_hypervisor_platform() ... -------- If I revert this merge commit on amd-staging-drm-next branch, my displayport monitor works again. In the 1088c6eef261 branch, the one merged in mainline, displayport program= ming stopped working on the following commit: -------- commit e2a9ca29b5edc89da2fddeae30e1070b272395c5 Author: Pavel Tatashin Date: Thu Jul 19 16:55:39 2018 -0400 x86/tsc: Initialize cyc2ns when tsc frequency is determined cyc2ns converts tsc to nanoseconds, and it is handled in a per-cpu data structure. Currently, the setup code for c2ns data for every possible CPU goes thr= ough the same sequence of calculations as for the boot CPU, but is based on = the same tsc frequency as the boot CPU, and thus this is not necessary. Initialize the boot cpu when tsc frequency is determined. Copy the calculated data from the boot CPU to the other CPUs in tsc_init(). In addition do the following: - Remove unnecessary zeroing of c2ns data by removing cyc2ns_data_init= () - Split set_cyc2ns_scale() into two functions, so set_cyc2ns_scale() c= an be called when system is up, and wraps around __set_cyc2ns_scale() that= can be called directly when system is booting but avoids saving restoring IRQs and going and waking up from idle. ---- I did not check if this issue was known from upstream yet. --=20 You are receiving this mail because: You are the assignee for the bug.= --15363568990.A9Fb7DE.1724 Date: Fri, 7 Sep 2018 21:48:19 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated

Comme= nt # 19 on bug 10778= 4 from Sylvain BERTRAND
Breaking commit is a merge commit from upstream mainline:
--------
commit 13e091b6dd0e78a518a7d8756607d3acb8215768
Merge: eac341194426 1088c6eef261
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Aug 13 18:28:19 2018 -0700

    Merge branch 'x86-timers-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull x86 timer updates from Thomas Gleixner:
     "Early TSC based time stamping to allow better boot time analysis.

      This comes with a general cleanup of the TSC calibration code which
      grew warts and duct taping over the years and removes 250 lines of
      code. Initiated and mostly implemented by Pavel with help from various
      folks"

    * 'x86-timers-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
      x86/kvmclock: Mark kvm_get_preset_lpj() as __init
      x86/tsc: Consolidate init code
      sched/clock: Disable interrupts when calling generic_sched_clock_init=
()
      timekeeping: Prevent false warning when persistent clock is not avail=
able
      sched/clock: Close a hole in sched_clock_init()
      x86/tsc: Make use of tsc_calibrate_cpu_early()
      x86/tsc: Split native_calibrate_cpu() into early and late parts
      sched/clock: Use static key for sched_clock_running
      sched/clock: Enable sched clock early
      sched/clock: Move sched clock initialization and merge with generic c=
lock
      x86/tsc: Use TSC as sched clock early
      x86/tsc: Initialize cyc2ns when tsc frequency is determined
      x86/tsc: Calibrate tsc only once
      ARM/time: Remove read_boot_clock64()
      s390/time: Remove read_boot_clock64()
      timekeeping: Default boot time offset to local_clock()
      timekeeping: Replace read_boot_clock64() with
read_persistent_wall_and_boot_offset()
      s390/time: Add read_persistent_wall_and_boot_offset()
      x86/xen/time: Output xen sched_clock time from 0
      x86/xen/time: Initialize pv xen time in init_hypervisor_platform()
      ...
--------
If I revert this merge commit on amd-staging-drm-next branch, my displayport
monitor works again.

In the 1088c6eef261 branch, the one merged in mainline, displayport program=
ming
stopped working on the following commit:
--------
commit e2a9ca29b5edc89da2fddeae30e1070b272395c5
Author: Pavel Tatashin <pasha.tatashin@oracle.com>
Date:   Thu Jul 19 16:55:39 2018 -0400

    x86/tsc: Initialize cyc2ns when tsc frequency is determined

    cyc2ns converts tsc to nanoseconds, and it is handled in a per-cpu data
    structure.

    Currently, the setup code for c2ns data for every possible CPU goes thr=
ough
    the same sequence of calculations as for the boot CPU, but is based on =
the
    same tsc frequency as the boot CPU, and thus this is not necessary.

    Initialize the boot cpu when tsc frequency is determined. Copy the
    calculated data from the boot CPU to the other CPUs in tsc_init().

    In addition do the following:

     - Remove unnecessary zeroing of c2ns data by removing cyc2ns_data_init=
()

     - Split set_cyc2ns_scale() into two functions, so set_cyc2ns_scale() c=
an
be
       called when system is up, and wraps around __set_cyc2ns_scale() that=
 can
       be called directly when system is booting but avoids saving restoring
       IRQs and going and waking up from idle.
----
I did not check if this issue was known from upstream yet.


You are receiving this mail because:
  • You are the assignee for the bug.
= --15363568990.A9Fb7DE.1724-- --===============1401779699== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============1401779699==--