Well, this workaround: diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c index 10a5807a7e8b..d0f5910c906c 100644 --- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c @@ -1321,6 +1321,8 @@ static enum bp_result bios_parser_get_firmware_info( header = GET_IMAGE(struct atom_common_table_header, DATA_TABLES(firmwareinfo)); get_atom_data_table_revision(header, &revision); + dm_output_to_console("At bios_parser_get_firmware_info switch, got major %d minor %d", revision.major, revision.minor); + dm_error("At bios_parser_get_firmware_info switch, got major %d minor %d", revision.major, revision.minor); switch (revision.major) { case 3: switch (revision.minor) { @@ -1328,7 +1330,7 @@ static enum bp_result bios_parser_get_firmware_info( result = get_firmware_info_v3_1(bp, info); break; case 2: - result = get_firmware_info_v3_2(bp, info); + result = get_firmware_info_v3_1(bp, info); break; default: break; "works": [engy][~/devel/3pp/linux] ((6e65fb862064...)|BISECTING)$ xrandr Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 16384 x 16384 DisplayPort-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 598mm x 336mm 2560x1440 59.95*+ 120.00 99.95 84.98 23.97 1920x1200 59.95 1920x1080 59.95 1600x1200 59.95 1680x1050 59.95 1280x1024 59.95 1440x900 59.95 1280x800 59.95 1280x720 59.95 1024x768 59.95 800x600 59.95 640x480 59.95 DisplayPort-1 disconnected (normal left inverted right x axis y axis) HDMI-A-0 disconnected (normal left inverted right x axis y axis) HDMI-A-1 disconnected (normal left inverted right x axis y axis) Where does dm_error and dm_output_to_console end up? // Daniel On 5 July 2018 at 18:42, Deucher, Alexander <Alexander.Deucher at amd.com> wrote: > So your vbios has table v3.1 so it should not be affected by that patch. > Does reverting that patch actually fix the issue? > > > Alex > > ________________________________ > From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Daniel > Andersson <engywook at gmail.com> > Sent: Thursday, July 5, 2018 12:22:17 PM > To: Alex Deucher > Cc: amd-gfx at lists.freedesktop.org > Subject: Re: BUG: *ERROR* No EDID read > > I have not flashed any GPU BIOS. It's not a reference Vega though, > Sapphire something. Maybe they made changes? > > vbios is attached. > > // Daniel > > On 5 July 2018 at 15:38, Alex Deucher <alexdeucher at gmail.com> wrote: >> On Mon, Jul 2, 2018 at 5:39 PM, Daniel Andersson <engywook at gmail.com> >> wrote: >>> Sure, bisecting gets me 6e65fb862064663ad3a08f964af1e8f3f2abf688 . >>> >>> In drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c, >>> get_firmware_info_v3_1() works but get_firmware_info_v3_2() does not >>> do the right thing for my Vega. >>> >>> Could I break my GPU if I were to set some bad/wrong frequency there? >> >> vega10 should not hit that new path at all. Have you edited your >> vbios? Can you send us a copy? To get a copy of the vbios: >> >> Without the driver loaded: >> (as root) >> (use lspci to get the bus id) >> cd /sys/bus/pci/devices/<pci bus id> >> echo 1 > rom >> cat rom > /tmp/vbios.rom >> echo 0 > rom >> >> If the driver is loaded: >> (as root) >> cat /sys/kernel/debug/dri/0/amdgpu_vbios > /tmp/vbios.rom >> >> Alex >> >>> >>> lspci: >>> 43:00.0 VGA compatible controller: Advanced Micro Devices, Inc. >>> [AMD/ATI] Vega 10 XT [Radeon RX Vega 64] (rev c1) (prog-if 00 [VGA >>> controller]) >>> Subsystem: Sapphire Technology Limited Vega 10 XT [Radeon RX Vega >>> 64] >>> 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 85 >>> Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M] >>> Region 2: Memory at e0000000 (64-bit, prefetchable) [size=2M] >>> Region 4: I/O ports at f000 [size=256] >>> Region 5: Memory at ed400000 (32-bit, non-prefetchable) [size=512K] >>> Expansion ROM at ed480000 [disabled] [size=128K] >>> Capabilities: [48] Vendor Specific Information: Len=08 <?> >>> Capabilities: [50] Power Management version 3 >>> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA >>> PME(D0-,D1+,D2+,D3hot+,D3cold+) >>> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- >>> Capabilities: [64] Express (v2) Legacy Endpoint, MSI 00 >>> DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 >>> unlimited >>> ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- >>> DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- >>> RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ >>> MaxPayload 256 bytes, MaxReadReq 512 bytes >>> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- >>> TransPend- >>> LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency >>> L0s <64ns, L1 <1us >>> ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+ >>> LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+ >>> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- >>> LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- >>> BWMgmt- ABWMgmt- >>> DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, >>> OBFF Not Supported >>> AtomicOpsCap: 32bit- 64bit- 128bitCAS- >>> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF >>> Disabled >>> AtomicOpsCtl: ReqEn- >>> LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- >>> Transmit Margin: Normal Operating Range, >>> EnterModifiedCompliance- ComplianceSOS- >>> Compliance De-emphasis: -6dB >>> LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, >>> EqualizationPhase1+ >>> EqualizationPhase2+, EqualizationPhase3+, >>> LinkEqualizationRequest- >>> Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ >>> Address: 00000000fee00000 Data: 0000 >>> Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 >>> Len=010 <?> >>> Capabilities: [150 v2] Advanced Error Reporting >>> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- >>> MalfTLP- ECRC- UnsupReq- ACSViol- >>> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- >>> MalfTLP- ECRC- UnsupReq- ACSViol- >>> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ >>> MalfTLP+ ECRC- UnsupReq- ACSViol- >>> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ >>> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ >>> AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- >>> ECRCChkCap+ ECRCChkEn- >>> MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- >>> HeaderLog: 00000000 00000000 00000000 00000000 >>> Capabilities: [200 v1] #15 >>> Capabilities: [270 v1] #19 >>> Capabilities: [2a0 v1] Access Control Services >>> ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- >>> EgressCtrl- DirectTrans- >>> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- >>> EgressCtrl- DirectTrans- >>> Capabilities: [2b0 v1] Address Translation Service (ATS) >>> ATSCap: Invalidate Queue Depth: 00 >>> ATSCtl: Enable+, Smallest Translation Unit: 00 >>> Capabilities: [2c0 v1] Page Request Interface (PRI) >>> PRICtl: Enable- Reset- >>> PRISta: RF- UPRGI- Stopped+ >>> Page Request Capacity: 00000020, Page Request Allocation: 00000000 >>> Capabilities: [2d0 v1] Process Address Space ID (PASID) >>> PASIDCap: Exec+ Priv+, Max PASID Width: 10 >>> PASIDCtl: Enable- Exec- Priv- >>> Capabilities: [320 v1] Latency Tolerance Reporting >>> Max snoop latency: 0ns >>> Max no snoop latency: 0ns >>> Kernel driver in use: amdgpu >>> Kernel modules: amdgpu >>> >>> // Daniel >>> >>> On 2 July 2018 at 21:29, Alex Deucher <alexdeucher at gmail.com> wrote: >>>> On Mon, Jul 2, 2018 at 3:21 PM, Daniel Andersson <engywook at gmail.com> >>>> wrote: >>>>> I get: >>>>> [drm:dc_link_detect [amdgpu]] *ERROR* No EDID read. >>>>> on boot. This started happening on 4.17 and is still an issue on >>>>> 4.18-rc2. >>>>> >>>>> I have a Vega64 connected on Display Port to a monitor(1440p). The >>>>> monitor >>>>> doesn't have any additional ports so I can't test HDMI. >>>>> >>>>> xrandr: >>>>> Screen 0: minimum 320 x 200, current 1024 x 768, maximum 16384 x 16384 >>>>> DisplayPort-0 connected 1024x768+0+0 (normal left inverted right x axis >>>>> y >>>>> axis) 0mm x 0mm >>>>> 1024x768 60.00* >>>>> 800x600 60.32 56.25 >>>>> 848x480 60.00 >>>>> 640x480 59.94 >>>>> DisplayPort-1 disconnected (normal left inverted right x axis y axis) >>>>> HDMI-A-0 disconnected (normal left inverted right x axis y axis) >>>>> HDMI-A-1 disconnected (normal left inverted right x axis y axis) >>>>> >>>>> The 1440p resolution worked on 4.16. >>>> >>>> Can you use git to bisect? >>>> >>>> Alex