Description
Chí-Thanh Christopher Nguyễn
2018-04-04 09:19:53 UTC
Created attachment 138571 [details]
dmesg with cik_support=1 dc=0
Created attachment 138572 [details]
dmesg with radeon
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? 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
What physical connectors are on your board and which one(s) are you using? It is a notebook and I am using the internal LVDS panel. The notebook also has HDMI and VGA connectors, but I do not use them currently. 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? 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 (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? 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. 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. Ok, so display connected via HDMI will light up with kernel 4.16. The issue is therefore that DC lacks LVDS and VGA support. Please try attachment 138813 [details] [review] on bug 105996. (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. 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). 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. (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. 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. 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 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 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. 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. look like LVDS is not see as attached... 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. 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 (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 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. *** Bug 105996 has been marked as a duplicate of this bug. *** 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. Created attachment 141088 [details] [review] Add support for LVDS Updated patch which fixes a few things. Created attachment 141092 [details] [review] Add support for LVDS No functional change, just a cleanup of the enable_lvds_output API. Just a heads up, the patch is against amd-staging-drm-next: https://cgit.freedesktop.org/~agd5f/linux/log/?h=amd-staging-drm-next Created attachment 141127 [details]
amdgpu with dc=1 and cik_support=1 dmesg output
With latest patch against amd-staging-drm-next the LVDS display panel lights up only (as this did also before). Doesn't work yet :/ Created attachment 141128 [details] [review] Add support for LVDS Updated patch. Latest patch works for Mobile Bonaire on CIK on my Dell Laptop, LVDS panel support is working! 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. test last patch with kernel 4.18.5... It works... Created attachment 141452 [details]
dmesg from kernel 4.18.5 with patch 141163
on AMD Kabini A6-1450...
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 )
Good news, on amd-staging-drm-next (5.0.0-rc1+) vga connector works without a hitch. I don't have dvi connector on my netbook so I am unable to test this one. Thanks, Przemek. (In reply to Przemek from comment #42) > Good news, > on amd-staging-drm-next (5.0.0-rc1+) vga connector works without a hitch. I > don't have dvi connector on my netbook so I am unable to test this one. > > Thanks, > Przemek. I *think* that is because it defaults to Radeon code on Kaveri. On my Lenovo Z50-75 laptop with kernel 5.0.0-rc4 I get the following behaviour - with kernel parameter amdgpu.dc=0 the VGA connector works (case (a) below) and with amdgpu.dc=1 it does not, although the built in LCD display on the laptop does (case (b) below). I believe this is known to AMD, but resource prioritisation means that it is unlikely to be changed in the near future if at all. graaskaeg a) with kernel boot parameters "amdgpu.cik_support=1 radeon.cik_support=0 amdgpu.dc=0 amdgpu.dc_log=0 drm.debug=0x00 vt.handoff=1" - note the amdgpu.dc=0 <see attachment dmesg 5.0.0-rc4 dc=0, grepped with #grep -E 'amdgpu|drm|kfd|console|Console'> My ***Highlight*** added below [ 2.200714] [drm] amdgpu kernel modesetting enabled. [ 2.201557] [drm] initializing kernel modesetting (KAVERI 0x1002:0x130A 0x17AA:0x3988 0x00). [ 2.220715] [drm] register mmio base: 0xF0B00000 [ 2.220724] [drm] register mmio size: 262144 [ 2.220730] [drm] add ip block number 0 <cik_common> [ 2.220733] [drm] add ip block number 1 <gmc_v7_0> [ 2.220735] [drm] add ip block number 2 <cik_ih> [ 2.220738] [drm] add ip block number 3 <gfx_v7_0> [ 2.220741] [drm] add ip block number 4 <cik_sdma> [ 2.220743] [drm] add ip block number 5 <kv_dpm> ***[ 2.220746] [drm] add ip block number 6 <dce_v8_0> *** [ 2.220749] [drm] add ip block number 7 <uvd_v4_2> [ 2.220751] [drm] add ip block number 8 <vce_v2_0> [ 2.245495] [drm] BIOS signature incorrect 0 0 ... [ 2.246594] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 2.246597] [drm] Driver supports precise vblank timestamp query. [ 2.247632] [drm] Internal thermal controller without fan control [ 2.247640] [drm] amdgpu: dpm initialized [ 2.252827] [drm] amdgpu atom DIG backlight initialized [ 2.252831] [drm] AMDGPU Display Connectors [ 2.252833] [drm] Connector 0: [ 2.252835] [drm] VGA-1 [ 2.252836] [drm] HPD2 [ 2.252839] [drm] DDC: 0x1950 0x1950 0x1951 0x1951 0x1952 0x1952 0x1953 0x1953 [ 2.252841] [drm] Encoders: [ 2.252843] [drm] CRT1: INTERNAL_UNIPHY2 [ 2.252845] [drm] CRT1: NUTMEG [ 2.252846] [drm] Connector 1: [ 2.252848] [drm] HDMI-A-1 [ 2.252849] [drm] HPD3 [ 2.252851] [drm] DDC: 0x1954 0x1954 0x1955 0x1955 0x1956 0x1956 0x1957 0x1957 [ 2.252854] [drm] Encoders: [ 2.252855] [drm] DFP1: INTERNAL_UNIPHY2 [ 2.252857] [drm] Connector 2: [ 2.252858] [drm] eDP-1 [ 2.252860] [drm] HPD1 [ 2.252862] [drm] DDC: 0x194c 0x194c 0x194d 0x194d 0x194e 0x194e 0x194f 0x194f [ 2.252864] [drm] Encoders: [ 2.252866] [drm] LCD1: INTERNAL_UNIPHY [ 2.252995] [drm] Found UVD firmware Version: 1.55 Family ID: 9 [ 2.253586] [drm] Found VCE firmware Version: 50.10 Binary ID: 2 [ 2.376639] [drm] UVD initialized successfully. [ 2.486808] [drm] VCE initialized successfully. b) with kernel boot parameters "amdgpu.cik_support=1 radeon.cik_support=0 amdgpu.dc=1 amdgpu.dc_log=0 drm.debug=0x00 vt.handoff=1" - note the amdgpu.dc=1 <see attachment dmesg 5.0.0-rc4 dc=1, grepped with #grep -E 'amdgpu|drm|kfd|console|Console'> My ***Highlight*** added below [ 2.234786] [drm] amdgpu kernel modesetting enabled. [ 2.235605] [drm] initializing kernel modesetting (KAVERI 0x1002:0x130A 0x17AA:0x3988 0x00). [ 2.248333] [drm] register mmio base: 0xF0B00000 [ 2.248343] [drm] register mmio size: 262144 [ 2.248348] [drm] add ip block number 0 <cik_common> [ 2.248351] [drm] add ip block number 1 <gmc_v7_0> [ 2.248354] [drm] add ip block number 2 <cik_ih> [ 2.248356] [drm] add ip block number 3 <gfx_v7_0> [ 2.248359] [drm] add ip block number 4 <cik_sdma> [ 2.248361] [drm] add ip block number 5 <kv_dpm> ***[ 2.248365] [drm] add ip block number 6 <dm> *** [ 2.248367] [drm] add ip block number 7 <uvd_v4_2> [ 2.248370] [drm] add ip block number 8 <vce_v2_0> [ 2.273900] [drm] BIOS signature incorrect 0 0 ... [ 2.275855] [drm] Internal thermal controller without fan control [ 2.275866] [drm] amdgpu: dpm initialized [ 2.275999] [drm] Found UVD firmware Version: 1.55 Family ID: 9 [ 2.276402] [drm] Found VCE firmware Version: 50.10 Binary ID: 2 [ 2.285995] [drm:dm_pp_get_static_clocks [amdgpu]] *ERROR* DM_PPLIB: invalid powerlevel state: 0! [ 2.286092] [drm] Unsupported Connector type:5! [ 2.286207] [drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:3! type 0 expected 3 [ 2.286313] [drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:4! type 0 expected 3 [ 2.286391] [drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:5! type 0 expected 3 [ 2.286469] [drm:construct [amdgpu]] *ERROR* construct: Invalid Connector ObjectID from Adapter Service for connector index:6! type 0 expected 3 [ 2.297476] [drm] Display Core initialized with v3.2.08! [ 2.304663] [drm] SADs count is: -2, don't need to read it [ 2.305984] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 2.305988] [drm] Driver supports precise vblank timestamp query. [ 2.332285] [drm] UVD initialized successfully. [ 2.442382] [drm] VCE initialized successfully. Created attachment 143260 [details]
dmesg 5.0.0-rc4 dc=0
Created attachment 143261 [details]
dmesg 5.0.0-rc4 dc=1
(In reply to Pontus Gråskæg from comment #43) > (In reply to Przemek from comment #42) > > Good news, > > on amd-staging-drm-next (5.0.0-rc1+) vga connector works without a hitch. I > > don't have dvi connector on my netbook so I am unable to test this one. > > > > Thanks, > > Przemek. > > I *think* that is because it defaults to Radeon code on Kaveri. Apologies, you are right, I was messing with efibootmgr and lost amdgpu.dc=1 somewhere. Once again sorry for misleading. Przemek. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/341. |
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.