[Bug 93956] New: Display Port BYT-M [N2807] - Data link training fails sporadically

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Feb 1 14:55:17 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=93956

            Bug ID: 93956
           Summary: Display Port BYT-M [N2807] - Data link training fails
                    sporadically
           Product: DRI
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: critical
          Priority: medium
         Component: DRM/Intel
          Assignee: intel-gfx-bugs at lists.freedesktop.org
          Reporter: zoran.stojsavljevic at intel.com
        QA Contact: intel-gfx-bugs at lists.freedesktop.org
                CC: intel-gfx-bugs at lists.freedesktop.org

HW: ATOM BYT-M (N2807)
SW: Vanilla kernels 4.4.0_rc3+

ORIGINAL PROBLEM STATEMENT by Werner (Zeh):

On our current design, where SKU N2807 is used, we can observe an error case
where the display port sporadically fails.

We have a DP->LVDS converter chip (PTN3460IBS) soldered on the board and
therefore have a display port device hard connected to SoC.

In the error case, data link training fails on display port. We did some
measurements where one can see that there is absolutely no traffic on display
port lane if the error happens. However, AUX-port seems to work fine as there
is traffic on it when the error happens.

We can even see the error in the Linux Kernel log, which provides the following
messages:
[drm] Initialized drm 1.1.0 20060810
[drm] Memory usable by graphics device = 2048M
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4
fbcon: inteldrmfb (fb0) is primary device
tsc: Refined TSC clocksource calibration: 1583.333 MHz
[drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off
Switched to clocksource tsc
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_start_link_train] *ERROR* too many full retries, give up
[drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting
------------[ cut here ]------------
WARNING: CPU: 1 PID: 1 at drivers/gpu/drm/i915/intel_display.c:1539
vlv_wait_port_ready+0xf3/0x110()
timed out waiting for port C ready: 0xf000a0ff
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.14 #1-V%#.%#.#%.#%
00000000 00000000 9a437824 814ad4cc 9a437864 9a437854 8103db6e 81647f58
9a437880 00000001 816467ec 00000603 812e3373 812e3373 99c08000 000000f0
ffff9208 9a43786c 8103dbc3 00000009 9a437864 81647f58 9a437880 9a437898
Call Trace:
[<814ad4cc>] dump_stack+0x48/0x69
[<8103db6e>] warn_slowpath_common+0x7e/0xa0
[<812e3373>] ? vlv_wait_port_ready+0xf3/0x110
[<812e3373>] ? vlv_wait_port_ready+0xf3/0x110
[<8103dbc3>] warn_slowpath_fmt+0x33/0x40
[<812e3373>] vlv_wait_port_ready+0xf3/0x110
[<812fdb92>] vlv_pre_enable_dp+0xd2/0x130
[<812e7c62>] valleyview_crtc_enable+0x102/0x3b0
[<812fa21f>] ? intel_dp_mode_set+0x2f/0x300
[<812ea226>] __intel_set_mode+0x6f6/0x940
[<812ecfe3>] intel_set_mode+0x23/0x40
[<812ed809>] intel_crtc_set_config+0x719/0x8f0
[<812a31eb>] drm_mode_set_config_internal+0x4b/0xc0
[<81295825>] drm_fb_helper_set_par+0x185/0x200
[<81227ef2>] fbcon_init+0x502/0x550
[<812729ce>] visual_init+0x9e/0x100
[<81274cd6>] do_bind_con_driver+0x106/0x2f0
[<811623fc>] ? sysfs_create_file_ns+0x2c/0x30
[<812753cd>] do_take_over_console+0xfd/0x190
[<812256bf>] do_fbcon_takeover+0x5f/0xc0
[<8122aa3f>] fbcon_event_notify+0x6ef/0x7f0
[<8105e031>] notifier_call_chain+0x41/0x60
[<8105e36b>] __blocking_notifier_call_chain+0x3b/0x60
[<8105e3af>] blocking_notifier_call_chain+0x1f/0x30
[<8121cd66>] fb_notifier_call_chain+0x16/0x20
[<8121e76f>] register_framebuffer+0x1af/0x2b0
[<81295434>] drm_fb_helper_initial_config+0x2d4/0x470
[<8131d6f4>] ? gen6_write32+0x64/0x120
[<81104b88>] ? kmem_cache_alloc_trace+0x128/0x130
[<81293b99>] ? drm_fb_helper_init+0xf9/0x160
[<8132412e>] intel_fbdev_initial_config+0x1e/0x20
[<812bb62c>] i915_driver_load+0xc9c/0xcd0
[<8140c4b0>] ? hiddev_disconnect+0x90/0x90
[<8129dfda>] drm_dev_register+0x6a/0x140
[<812a0171>] drm_get_pci_dev+0xc1/0x1e0
[<811657a5>] ? kernfs_create_link+0x55/0x90
[<812b7ec5>] i915_pci_probe+0x35/0x60
[<812109df>] pci_device_probe+0x5f/0xb0
[<81162955>] ? sysfs_create_link+0x25/0x40
[<81342ec3>] really_probe+0x53/0x1f0
[<81210712>] ? pci_match_device+0xb2/0xc0
[<81343127>] __driver_attach+0x77/0x80
[<813430b0>] ? __device_attach+0x50/0x50
[<81341687>] bus_for_each_dev+0x47/0x80
[<81342abe>] driver_attach+0x1e/0x20
[<813430b0>] ? __device_attach+0x50/0x50
[<813427af>] bus_add_driver+0x13f/0x1f0
[<813434f9>] driver_register+0x59/0xe0
[<81210822>] __pci_register_driver+0x32/0x40
[<812a0392>] drm_pci_init+0x102/0x110
[<817542b2>] ? ttm_init+0x64/0x64
[<81754314>] i915_init+0x62/0x64
[<81000472>] do_one_initcall+0xd2/0x120
[<8115a7bb>] ? __proc_create+0x9b/0xd0
[<810583e8>] ? parameq+0x18/0x70
[<817274a1>] ? do_early_param+0x78/0x78
[<81727400>] ? loglevel+0x2/0x2b
[<8105861f>] ? parse_args+0x1df/0x330
[<81078a7f>] ? __wake_up+0x3f/0x50
[<81727b04>] kernel_init_freeable+0xe8/0x18f
[<817274a1>] ? do_early_param+0x78/0x78
[<814a68b0>] kernel_init+0x10/0xe0
[<814b44b7>] ret_from_kernel_thread+0x1b/0x28
[<814a68a0>] ? rest_init+0x80/0x80
---[ end trace c03f51a8b9c35138 ]---
fbcon_init: disable boot-logo (boot-logo bigger than screen).
Console: switching to colour frame buffer device 240x67
i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
i915 0000:00:02.0: registered panic notifier [drm] Initialized i915 1.6.0
20080730 for 0000:00:02.0 on minor 0

If this error happens, a reset of the SoC only resolves the issue (the rest of
the board and especially the DP->LVDS converter stays unchanged).

We have tried to disable the display port in Linux driver as soon as the error
happens with no result.
_______

PROBLEM DESCRIPTION by Zoran (Stojsavljevic):

Hello Werner,

Upon reading your latest findings, it is obvious that there are FW and SW bugs
in different scenarios preventing N2807 GFX port C to operate correctly.

As my best understanding is, these are three use cases you did identify with
the N2807 (BYT-M), using actual sku and INTEL Bayley Bay CRb Fab.3 (Here I
repeat, adding course of action I'll take to the escalation path within INTEL
for FSP, and Open Source).
[1] UEFI BIOS used (along with integrated GOP driver) - problem NOT
reproducible, reference design to be achieved by other two cases;
[2] FSP + Coreboot + vBIOS used + SeaBIOS + Linux kernel - problem is visible -
will create FSP HSD against PED FSP team;
[3] FSP + Coreboot (vBIOS NOT used), ONLY Linux kernel driver is used to init
GFX - problem is visible - will create Bugzilla system entry for GFX OTC INTEL
team.

Since you have reproduced this problem on the Bayley Bay Fab. 3 CRB, I am
engaging INTEL OTC team in further resolution of this problem.

Thank you,
Zoran

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20160201/e90c41c4/attachment-0001.html>


More information about the intel-gfx-bugs mailing list