Bug 105880 - [dc] No support for LVDS or VGA connectors (Cannot find any crtc or sizes)
Summary: [dc] No support for LVDS or VGA connectors (Cannot find any crtc or sizes)
Status: NEW
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/AMDgpu (show other bugs)
Version: XOrg git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL: http://
Whiteboard:
Keywords:
: 105996 (view as bug list)
Depends on:
Blocks:
 
Reported: 2018-04-04 09:19 UTC by Chí-Thanh Christopher Nguyễn
Modified: 2018-09-05 16:56 UTC (History)
6 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg with cik_support=1 dc=1 (58.09 KB, text/plain)
2018-04-04 09:19 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmesg with cik_support=1 dc=0 (59.21 KB, text/plain)
2018-04-04 09:20 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmesg with radeon (60.96 KB, text/plain)
2018-04-04 09:20 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmest with cik_support=1 dc=1 dc_log=1 (57.78 KB, text/plain)
2018-04-05 11:59 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmesg from kernel 4.15 with cik_support=1 dc=1 dc_log=1 (61.79 KB, text/plain)
2018-04-13 11:28 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmesg from kernel 4.15 with attachment 138831 applied (66.18 KB, text/plain)
2018-04-16 10:14 UTC, Chí-Thanh Christopher Nguyễn
no flags Details
dmesg from kernel 4.17.1 with attachment 138831 applied (220.12 KB, text/plain)
2018-06-14 18:38 UTC, djip.perois
no flags Details
Add support for LVDS (9.62 KB, patch)
2018-08-14 21:01 UTC, Alex Deucher
no flags Details | Splinter Review
Add support for LVDS (12.17 KB, patch)
2018-08-14 21:57 UTC, Alex Deucher
no flags Details | Splinter Review
Add support for LVDS (12.10 KB, patch)
2018-08-14 22:41 UTC, Alex Deucher
no flags Details | Splinter Review
amdgpu with dc=1 and cik_support=1 dmesg output (71.59 KB, text/plain)
2018-08-16 00:11 UTC, Shawn Starr
no flags Details
Add support for LVDS (12.52 KB, patch)
2018-08-16 01:38 UTC, Alex Deucher
no flags Details | Splinter Review
patch against 4.18.1 (10.96 KB, patch)
2018-08-17 08:40 UTC, Chí-Thanh Christopher Nguyễn
no flags Details | Splinter Review
dmesg from kernel 4.18.5 with patch 141163 (71.72 KB, text/plain)
2018-09-04 20:29 UTC, djip.perois
no flags Details
dmesg from kernel 4.18.6 with patch 141163 (101.31 KB, text/plain)
2018-09-05 16:56 UTC, djip.perois
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chí-Thanh Christopher Nguyễn 2018-04-04 09:19:53 UTC
Created attachment 138570 [details]
dmesg with cik_support=1 dc=1

When using kernel 4.16.0 and amdgpu with cik_support=1 dc=1 on Kabini (A4-1200) the screen will become blank once the module is loaded.

dmesg has the following error:
[drm] Cannot find any crtc or sizes

With radeon or amdgpu.dc=0 the screen lights up, but I cannot use amdgpu for daily work due to bug 101926.
Comment 1 Chí-Thanh Christopher Nguyễn 2018-04-04 09:20:28 UTC
Created attachment 138571 [details]
dmesg with cik_support=1 dc=0
Comment 2 Chí-Thanh Christopher Nguyễn 2018-04-04 09:20:56 UTC
Created attachment 138572 [details]
dmesg with radeon
Comment 3 Harry Wentland 2018-04-04 14:26:44 UTC
Looks like we don't detect a display. Can you capture dmesg with cik_support=1 dc=1 dc_log=1 to get more log info?
Comment 4 Chí-Thanh Christopher Nguyễn 2018-04-05 11:59:04 UTC
Created attachment 138620 [details]
dmest with cik_support=1 dc=1 dc_log=1

doesn't look all that different from the one without dc_log=1 to me
Comment 5 Alex Deucher 2018-04-05 12:50:34 UTC
What physical connectors are on your board and which one(s) are you using?
Comment 6 Chí-Thanh Christopher Nguyễn 2018-04-05 20:12:27 UTC
It is a notebook and I am using the internal LVDS panel.
Comment 7 Chí-Thanh Christopher Nguyễn 2018-04-05 20:13:01 UTC
The notebook also has HDMI and VGA connectors, but I do not use them currently.
Comment 8 David Henningsson 2018-04-12 01:19:32 UTC
Hi,

I'm getting the same or similar error:
 * Black screen, no plymouth
 * "Cannot find any crtc or sizes" error in dmesg
 * amdgpu.dc=0 works around the issue

...and I might have a lead on it. The regression is between 4.15rc2 and 4.15rc3 (found by downloading kernels from http://kernel.ubuntu.com/~kernel-ppa/mainline/). 

The only one commit I could see being relevant between 4.15rc2 and 4.15rc3 is this one:

commit a703c55004e1c5076d57e43771b3e11117796ea0
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Mon Dec 4 21:48:18 2017 +0100

    drm: safely free connectors from connector_iter

...it seems relevant because the error I get is "Cannot find any crtc or sizes", and the code emitting this error message (in drivers/gpu/drm/drm_fb_helper.c) deals with connectors.

So could this commit cause connectors to be freed where the previous code did not? It seems like this could be the case, but only if (obj->free_cb == NULL) - drm_connector_put checks for a obj->free_cb being null whereas drm_connector_put_safe decrements a refcount regardless of whether a free_cb is present or not.

Does all this make sense, or am I out on deep water here?
Comment 9 David Henningsson 2018-04-12 01:21:46 UTC
Could add that my graphics card is an RX460:

23:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:67ef] (rev cf) (prog-if 00 [VGA controller])
        Subsystem: XFX Pine Group Inc. Device [1682:9460]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 46
        Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Region 2: Memory at f0000000 (64-bit, prefetchable) [size=2M]
        Region 4: I/O ports at f000 [size=256]
        Region 5: Memory at fe900000 (32-bit, non-prefetchable) [size=256K]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu
Comment 10 Michel Dänzer 2018-04-12 08:02:15 UTC
(In reply to David Henningsson from comment #8)
> The regression is between 4.15rc2 and 4.15rc3

Any chance you can bisect between these two?
Comment 11 Chí-Thanh Christopher Nguyễn 2018-04-13 11:28:45 UTC
Created attachment 138824 [details]
dmesg from kernel 4.15 with cik_support=1 dc=1 dc_log=1

Going back to kernel 4.15 makes no difference for me. I think that the issue reported in comment 8 is different and should be reported in a separate bug.

Though I noticed that in 4.15, dc_log=1 gives more output than in 4.16 where it doesn't make any difference.
Comment 12 Chí-Thanh Christopher Nguyễn 2018-04-13 11:42:09 UTC
So, with the additional dmesg output from kernel 4.15, the following appeared interesting:

[   43.356569] [drm] DC: create_links: connectors_num: physical:3, virtual:0
[   43.356583] [drm] Unsupported Connector type:14!
[   43.356588] [drm] Connector[1] description:signal 4
[   43.356617] [drm] Unsupported Connector type:5!

If I understand drivers/gpu/drm/amd/dal/dc/core/dc_link.c correctly, the following connector types are supported in construct()

CONNECTOR_ID_HDMI_TYPE_A
CONNECTOR_ID_SINGLE_LINK_DVID
CONNECTOR_ID_SINGLE_LINK_DVII
CONNECTOR_ID_DUAL_LINK_DVID
CONNECTOR_ID_DUAL_LINK_DVII
CONNECTOR_ID_DISPLAY_PORT
CONNECTOR_ID_EDP

else the following code will print the above error message

		dal_logger_write(dc_ctx->logger,
			LOG_MAJOR_WARNING, LOG_MINOR_TM_LINK_SRV,
			"Unsupported Connector type:%d!\n", link->link_id.id);

According to display/include/grph_object_id.h

CONNECTOR_ID_VGA = 5
CONNECTOR_ID_LVDS = 14

which would explain why no working connectors are found. I will try to find an HDMI monitor to see if it lights up with amdgpu DC.
Comment 13 Chí-Thanh Christopher Nguyễn 2018-04-13 12:17:56 UTC
Ok, so display connected via HDMI will light up with kernel 4.16. The issue is therefore that DC lacks LVDS and VGA support.
Comment 14 Alex Deucher 2018-04-13 16:30:06 UTC
Please try attachment 138813 [details] [review] on bug 105996.
Comment 15 David Henningsson 2018-04-13 18:56:01 UTC
(In reply to Michel Dänzer from comment #10)
> (In reply to David Henningsson from comment #8)
> > The regression is between 4.15rc2 and 4.15rc3
> 
> Any chance you can bisect between these two?

I can, but it'll take a week or two at current speed...

Also because the original reporter now seem to refer to something specific to LVDS we probably have different bugs, unfortunately.
Comment 16 Chí-Thanh Christopher Nguyễn 2018-04-13 20:01:45 UTC
I tried with 4.16, made no difference. But as dc_log=1 on 4.16 gives no helpful additional output, I will try on Monday with 4.15 again. It may also be possible that I am affected both by the issue in this bug and what was reported in comment 8 (but discussion about which should be continued in a separate bug report).
Comment 17 Chí-Thanh Christopher Nguyễn 2018-04-16 10:14:03 UTC
Created attachment 138863 [details]
dmesg from kernel 4.15 with attachment 138831 [details] applied

So I applied this patch from bug 105596

The "Unsupported Connector type:14" message is gone, the "Unsupported Connector type:5" is still there (as expected).

However the screen stays blank and the "[drm] Cannot find any crtc or sizes" message sill comes.
Comment 18 David Henningsson 2018-04-24 18:53:53 UTC
(In reply to Michel Dänzer from comment #10)
> (In reply to David Henningsson from comment #8)
> > The regression is between 4.15rc2 and 4.15rc3
> 
> Any chance you can bisect between these two?

So I did the bisection (which took some time) and it turned out empty. What tricked me was the fact that Ubuntu changed their kernel configs between 4.15rc2 and 4.15rc3, mainly by enabling CONFIG_DRM_AMD_DC_PRE_VEGA and
CONFIG_DRM_AMD_DC_DCN1_0. This was the cause of regression for me rather than patches between rc2 and rc3. 

Anyhow, it's probably a separate bug from this one, so sorry for the confusion.
Comment 19 Chí-Thanh Christopher Nguyễn 2018-05-09 14:09:21 UTC
Per https://lists.freedesktop.org/archives/amd-gfx/2018-May/022021.html it seems that AMD developers lack hardware to implement LVDS/VGA support at this time.

KABINI devices with VGA, DVI-I and/or LVDS connectors are still possible to buy in the market.
Supermicro H9SKV-420
Fujitsu D3313
both available via ebay.

In Europe one can find pre-owned Medion E1317T and E1318T too.
Comment 20 Pontus Gråskæg 2018-05-25 08:11:54 UTC
I got to here from the bug detailed in Ubuntu Launchpad - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1761751

It looks like amdgpu code does not support VGA on Kaveri, either.

I have a Lenovo Z50-75 laptop with AMD A10-7300, (Kaveri gpu)

information extracted from #lshw when booted with amdgpu.dc=0 [some information purposefully withheld]

description: Notebook
    product: 80EC (LENOVO_MT_80EC0_BU_idea_FM_Lenovo Z50-75)
    vendor: LENOVO
    version: Lenovo Z50-75
    serial: XXX
    width: 64 bits
    capabilities: smbios-2.7 dmi-2.7 vsyscall32
    configuration: boot=normal chassis=notebook family=IDEAPAD sku=LENOVO_MT_80EC0_BU_idea_FM_Lenovo Z50-75 uuid=XXX
  *-core
       description: Motherboard
       product: Lancer 5B3
       vendor: LENOVO
       physical id: 0
       version: XXX
       serial: XXX
       slot: Chassis Location Unknown
     *-firmware
          description: BIOS
          vendor: LENOVO
          physical id: 0
          version: A4CN40WW (V 2.09)
          date: 08/24/2015
          size: 128KiB
          capacity: 8128KiB
          capabilities: pci upgrade shadowing cdboot bootselect edd int5printscreen int9keyboard int14serial int17printer int10video pc98 acpi usb biosbootspecification netboot
     *-cpu
          description: CPU
          product: AMD A10-7300 Radeon R6, 10 Compute Cores 4C+6G
          vendor: Advanced Micro Devices [AMD]
          physical id: 2c
          bus info: cpu@0
          version: AMD A10-7300 Radeon R6, 10 Compute Cores 4C+6G
          slot: Socket FS1r2
          size: 1227MHz
          capacity: 1900MHz
          width: 64 bits
          clock: 100MHz
          
        *-cache:1
             description: L2 cache
             physical id: 2e
             slot: L2 Cache
             size: 4MiB
             capacity: 4MiB
             clock: 1GHz (1.0ns)
             capabilities: pipeline-burst internal write-back unified
             configuration: level=2
...
     *-pci:0
          description: Host bridge
          product: Family 15h (Models 30h-3fh) Processor Root Complex
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 00
          width: 32 bits
          clock: 33MHz
        *-display
             description: VGA compatible controller
             product: Kaveri [Radeon R6 Graphics]
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 1
             bus info: pci@0000:00:01.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
             configuration: driver=amdgpu latency=0
             resources: irq:35 memory:e0000000-efffffff memory:f0000000-f07fffff ioport:2000(size=256) memory:f0b00000-f0b3ffff memory:c0000-dffff
...


information extracted from #cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 21
model		: 48
model name	: AMD A10-7300 Radeon R6, 10 Compute Cores 4C+6G
...

It has a VGA output as well as HDMI and internal screen.

When booted with kernel parameters amdgpu.cik_support=1 amdgu.dc=1, the VGA port does not work.
The dmesg output when booted with amdgpu=1 contains error messages of the form:
[drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:3! type 0 expected 3

in context

[drm] radeon kernel modesetting enabled.
fb: switching to radeondrmfb from EFI VGA
[drm] amdgpu kernel modesetting enabled.
[drm] initializing kernel modesetting (KAVERI 0x1002:0x130A 0x17AA:0x3988 0x00).
[drm] register mmio base: 0xF0B00000
[drm] register mmio size: 262144
[drm] BIOS signature incorrect 0 0
[drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit
[drm] Detected VRAM RAM=1024M, BAR=1024M
[drm] RAM width 64bits UNKNOWN
[drm] amdgpu: 1024M of VRAM memory ready
[drm] amdgpu: 3072M of GTT memory ready.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x000000F400040000).
[drm] Internal thermal controller without fan control
[drm] amdgpu: dpm initialized
[drm] Found UVD firmware Version: 1.55 Family ID: 9
[drm] Found VCE firmware Version: 50.10 Binary ID: 2
[drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:3! type 0 expected 3
[amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:4! type 0 expected 3
[drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:5! type 0 expected 3
[drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:6! type 0 expected 3
[drm] Display Core initialized with v3.1.27!
[drm] SADs count is: -2, don't need to read it
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] UVD initialized successfully.
[drm] VCE initialized successfully.
[drm] fb mappable at 0xA042A000
[drm] vram apper at 0xA0000000
[drm] size 8294400
[drm] fb depth is 24
[drm]    pitch is 7680
fbcon: amdgpudrmfb (fb0) is primary device
amdgpu 0000:00:01.0: fb0: amdgpudrmfb frame buffer device
[drm] Initialized amdgpu 3.23.0 20150101 for 0000:00:01.0 on minor 0

The VGA port works when booted with kernel parameters amdgpu.cik_support=1 amdgpu.dc=0

graaskaeg
Comment 21 Pontus Gråskæg 2018-05-25 08:52:33 UTC
Just to add, in addition to the Lenovo Z50-75, the following laptops use this processor/gpu and have a VGA port

Acer Aspire E5-551-T5SV

Acer Aspire E5-551-T374

HP Probook 445 G2

Lenovo ThinkPad Edge E555

Toshiba Satellite L55D-B5320

graaskaeg
Comment 22 Przemek 2018-06-08 16:08:08 UTC
Just to supplement the list above.

Netbook Lenovo g50-45, a6-6310 R4 Beema/Mullins.

Has HDMI and VGA output.

HDMI is working without a hitch, while VGA output is dead.(eDP plus only one extra monitor connected at a time)

Thanks,
Przemek.
Comment 23 djip.perois 2018-06-14 18:38:12 UTC
Created attachment 140167 [details]
dmesg from kernel 4.17.1 with attachment 138831 [details] applied

recompile 4.17.1 kernel with patch an debug mod...
hope it can help.
Comment 24 djip.perois 2018-06-14 18:49:48 UTC
look like LVDS is not see as attached...
Comment 25 Przemek 2018-06-26 22:36:38 UTC
Harry, in accordance to this: https://cgit.freedesktop.org/~agd5f/linux/commit/?h=drm-next-4.19-wip&id=1664ee4f0ae984e28409ad1ac83641539781840c if you need a 'guinea pig' on that case please let me know. I have "0" (ZERO) knowledge messing with kernel drivers but with gentoo it is not a big deal for me to play with two kernels and test some (even a bad) code on that machine (mullins/VGA connector). IMHO it could help with other ASICSs also.
Thanks,
Przemek.
Comment 26 Pontus Gråskæg 2018-08-14 11:03:36 UTC
Given the commit to the kernel

https://lkml.org/lkml/2018/7/6/30

and the same commit going into the 4.18 tree

https://patchwork.freedesktop.org/patch/230643/

can Harry Wentland or Alex Deucher clarify if DC code is planned at some later stage to support Bonaire, Kabini, Kaveri, and Mullins rather than falling back to the non-DC driver?

Is there anything owners of such hardware can do to assist?

graaskaeg
Comment 27 Alex Deucher 2018-08-14 15:47:42 UTC
(In reply to Pontus Gråskæg from comment #26)
> Given the commit to the kernel
> 
> https://lkml.org/lkml/2018/7/6/30
> 
> and the same commit going into the 4.18 tree
> 
> https://patchwork.freedesktop.org/patch/230643/
> 
> can Harry Wentland or Alex Deucher clarify if DC code is planned at some
> later stage to support Bonaire, Kabini, Kaveri, and Mullins rather than
> falling back to the non-DC driver?
> 
> Is there anything owners of such hardware can do to assist?

Someone needs to implement support for LVDS and DACs.  It's not a high priority for us at the moment.  If someone wants to take a stab at it, we'd be happy to review the patches.  I think some of the older DAL2 code had some support for these encoders.  You could use that or the non-DC code as reference.  Old DAL2 code for reference:
https://cgit.freedesktop.org/~agd5f/linux/tree/drivers/gpu/drm/amd/dal?h=amd-15.31
Comment 28 Pontus Gråskæg 2018-08-14 19:15:51 UTC
Thank-you for the swift response, Alex.

Coding this is certainly beyond my current capabilities - I would have a rather steep learning curve. I hope this is an itch somebody with the right experience suffers with and wishes to scratch. ;-)

Nonetheless, thank-you for making such great strides with open drivers. It is much appreciated.

Pontus.
Comment 29 Alex Deucher 2018-08-14 20:53:55 UTC
*** Bug 105996 has been marked as a duplicate of this bug. ***
Comment 30 Alex Deucher 2018-08-14 21:01:08 UTC
Created attachment 141087 [details] [review]
Add support for LVDS

The attached patch adds support for LVDS.  I don't have a board with LVDS at the moment, so untested.
Comment 31 Alex Deucher 2018-08-14 21:57:54 UTC
Created attachment 141088 [details] [review]
Add support for LVDS

Updated patch which fixes a few things.
Comment 32 Alex Deucher 2018-08-14 22:41:08 UTC
Created attachment 141092 [details] [review]
Add support for LVDS

No functional change, just a cleanup of the enable_lvds_output API.
Comment 33 Alex Deucher 2018-08-15 22:28:38 UTC
Just a heads up, the patch is against amd-staging-drm-next:
https://cgit.freedesktop.org/~agd5f/linux/log/?h=amd-staging-drm-next
Comment 34 Shawn Starr 2018-08-16 00:11:25 UTC
Created attachment 141127 [details]
amdgpu with dc=1 and cik_support=1 dmesg output
Comment 35 Shawn Starr 2018-08-16 00:12:14 UTC
With latest patch against amd-staging-drm-next the LVDS display panel lights up only (as this did also before).

Doesn't work yet :/
Comment 36 Alex Deucher 2018-08-16 01:38:59 UTC
Created attachment 141128 [details] [review]
Add support for LVDS

Updated patch.
Comment 37 Shawn Starr 2018-08-16 13:33:56 UTC
Latest patch works for Mobile Bonaire on CIK on my Dell Laptop, LVDS panel support is working!
Comment 38 Chí-Thanh Christopher Nguyễn 2018-08-17 08:40:16 UTC
Created attachment 141163 [details] [review]
patch against 4.18.1

I tried the latest patch too, and LVDS is now working (as expected, VGA does not work).

I slightly adapted the patch so that it applies against linux 4.18.1, in case anyone is interested.
Comment 39 djip.perois 2018-09-04 20:18:55 UTC
test last patch with kernel 4.18.5...
It works...
Comment 40 djip.perois 2018-09-04 20:29:46 UTC
Created attachment 141452 [details]
dmesg from kernel 4.18.5 with patch 141163

on AMD Kabini A6-1450...
Comment 41 djip.perois 2018-09-05 16:56:09 UTC
Created attachment 141462 [details]
dmesg from kernel 4.18.6 with patch 141163

same with kernel 4.18.6 + patch
adding amdgpu.dc_log=1 ...

(all kernel param used: amdgpu.cik_support=1 radeon.cik_support=0 amdgpu.dpm=1 amdgpu.dc=1 amdgpu.dc_log=1 drm.debug=0x4 )


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.