On Mon, Jul 12, 2010 at 3:54 PM, Torsten Kaiser <just.for.lkml@xxxxxxxxxxxxxx> wrote: > On Mon, Jul 12, 2010 at 5:23 PM, Alex Deucher <alexdeucher@xxxxxxxxx> wrote: >> On Sun, Jul 11, 2010 at 3:56 PM, Torsten Kaiser >> <just.for.lkml@xxxxxxxxxxxxxx> wrote: >>> I just tried 2.6.35-rc4 to see, if a different bug is fixed, but noted >>> that this kernel will only boot with radeon.modeset=0. >>> >>> If KMS is active the display turns off and the system is completely >>> dead, not even SysRq+B is working. >>> >>> I build a new kernel with the radeon driver as a module and inserted >>> it by hand via ssh. >>> The ssh session, I was using has this output: >>> ariolc drm # insmod ./drm_kms_helper.ko >>> ariolc drm # insmod ttm/ttm.ko >>> ariolc drm # insmod radeon/radeon.ko >>> Segmentation fault >>> ariolc drm # >>> >>> The final insmod segfaulted, the shell was displaying a new prompt, >>> but not new input was possible. >>> The system still reacted to ping and trying to create a new ssh >>> connection resulted in a password prompt, but after entering the >>> password no shell was provided. >>> I tried SysRq+S, SysRq+U and SysRq+B, but not visible result. After a >>> reboot I did not find any additional information in /var/log/messages. >>> The effect was like the boot time failures with a builtin radeon >>> driver: The display (attached to the VGA output) just turns off. >>> >>> But I had a second ssh connection open, doing tail -f /var/log/messages: >>> Jul 11 21:30:23 ariolc kernel: [ 131.720470] [drm] radeon defaulting >>> to kernel modesetting. >>> Jul 11 21:30:23 ariolc kernel: [ 131.720477] [drm] radeon kernel >>> modesetting enabled. >>> Jul 11 21:30:23 ariolc kernel: [ 131.720623] radeon 0000:01:05.0: PCI >>> INT A -> GSI 18 (level, low) -> IRQ 18 >>> Jul 11 21:30:23 ariolc kernel: [ 131.726859] [drm] initializing >>> kernel modesetting (RS690 0x1002:0x791E). >>> Jul 11 21:30:23 ariolc kernel: [ 131.728607] [drm] register mmio >>> base: 0xFE9F0000 >>> Jul 11 21:30:23 ariolc kernel: [ 131.728613] [drm] register mmio >>> size: 65536 >>> Jul 11 21:30:23 ariolc kernel: [ 131.729591] ATOM BIOS: ATI >>> Jul 11 21:30:23 ariolc kernel: [ 131.729625] radeon 0000:01:05.0: >>> VRAM: 32M 0xDE000000 - 0xDFFFFFFF (32M used) >>> Jul 11 21:30:23 ariolc kernel: [ 131.729632] radeon 0000:01:05.0: >>> GTT: 512M 0xBE000000 - 0xDDFFFFFF >>> Jul 11 21:30:23 ariolc kernel: [ 131.729675] [drm] radeon: irq initialized. >>> Jul 11 21:30:23 ariolc kernel: [ 131.729690] mtrr: type mismatch for >>> fc000000,2000000 old: write-back new: write-combining >>> Jul 11 21:30:23 ariolc kernel: [ 131.729696] [drm] Detected VRAM >>> RAM=32M, BAR=32M >>> Jul 11 21:30:23 ariolc kernel: [ 131.729701] [drm] RAM width 128bits DDR >>> Jul 11 21:30:23 ariolc kernel: [ 131.729796] [TTM] Zone kernel: >>> Available graphics memory: 2010998 kiB. >>> Jul 11 21:30:23 ariolc kernel: [ 131.729802] [TTM] Initializing pool allocator. >>> Jul 11 21:30:23 ariolc kernel: [ 131.729841] [drm] radeon: 32M of >>> VRAM memory ready >>> Jul 11 21:30:23 ariolc kernel: [ 131.729846] [drm] radeon: 512M of >>> GTT memory ready. >>> Jul 11 21:30:23 ariolc kernel: [ 131.729857] [drm] GART: num cpu >>> pages 131072, num gpu pages 131072 >>> Jul 11 21:30:23 ariolc kernel: [ 131.736223] [drm] radeon: 1 quad >>> pipes, 1 z pipes initialized. >>> Jul 11 21:30:23 ariolc kernel: [ 131.752553] [drm] Loading >>> RS690/RS740 Microcode >>> Jul 11 21:30:23 ariolc kernel: [ 131.911461] [drm] radeon: ring at >>> 0x00000000BE000000 >>> Jul 11 21:30:23 ariolc kernel: [ 132.055912] [drm:r100_ring_test] >>> *ERROR* radeon: ring test failed (sracth(0x15E4)=0xCAFEDEAD) >>> Jul 11 21:30:23 ariolc kernel: [ 132.055918] [drm:r100_cp_init] >>> *ERROR* radeon: cp isn't working (-22). >>> Jul 11 21:30:23 ariolc kernel: [ 132.055925] radeon 0000:01:05.0: >>> failled initializing CP (-22). >>> Jul 11 21:30:23 ariolc kernel: [ 132.055929] radeon 0000:01:05.0: >>> Disabling GPU acceleration >>> Jul 11 21:30:23 ariolc kernel: [ 132.056174] [drm] radeon: cp finalized >>> Jul 11 21:30:23 ariolc kernel: [ 132.057378] [drm] Default TV standard: NTSC >>> Jul 11 21:30:23 ariolc kernel: [ 132.058671] [drm] Default TV standard: NTSC >>> Jul 11 21:30:23 ariolc kernel: [ 132.059748] [drm] Radeon Display Connectors >>> Jul 11 21:30:23 ariolc kernel: [ 132.059753] [drm] Connector 0: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059756] [drm] VGA >>> Jul 11 21:30:23 ariolc kernel: [ 132.059763] [drm] DDC: 0x7e50 >>> 0x7e40 0x7e54 0x7e44 0x7e58 0x7e48 0x7e5c 0x7e4c >>> Jul 11 21:30:23 ariolc kernel: [ 132.059766] [drm] Encoders: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059770] [drm] CRT1: >>> INTERNAL_KLDSCP_DAC1 >>> Jul 11 21:30:23 ariolc kernel: [ 132.059773] [drm] Connector 1: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059776] [drm] S-video >>> Jul 11 21:30:23 ariolc kernel: [ 132.059778] [drm] Encoders: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059781] [drm] TV1: >>> INTERNAL_KLDSCP_DAC1 >>> Jul 11 21:30:23 ariolc kernel: [ 132.059784] [drm] Connector 2: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059787] [drm] HDMI-A >>> Jul 11 21:30:23 ariolc kernel: [ 132.059792] [drm] DDC: 0x7e40 >>> 0x7e50 0x7e44 0x7e54 0x7e48 0x7e58 0x7e4c 0x7e5c >>> Jul 11 21:30:23 ariolc kernel: [ 132.059795] [drm] Encoders: >>> Jul 11 21:30:23 ariolc kernel: [ 132.059798] [drm] DFP3: INTERNAL_LVTM1 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253484] [drm] fb mappable at 0xFC040000 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253488] [drm] vram apper at 0xFC000000 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253489] [drm] size 786432 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253491] [drm] fb depth is 8 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253492] [drm] pitch is 1024 >>> Jul 11 21:30:23 ariolc kernel: [ 132.253880] fbcon: radeondrmfb (fb0) >>> is primary device >>> >>> Hardware info: (lspci -vv from 2.6.33) >>> 00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge >>> Subsystem: ATI Technologies Inc RS690 Host Bridge >>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- >>> ParErr- Stepping- SERR- FastB2B- DisINTx- >>> Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >>>>TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- >>> Latency: 0 >>> >>> 00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge >>> (Internal gfx) (prog-if 00 [Normal decode]) >>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- >>> ParErr- Stepping- SERR+ FastB2B- DisINTx- >>> Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >>>>TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- >>> Latency: 64 >>> Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 >>> I/O behind bridge: 0000c000-0000cfff >>> Memory behind bridge: fe800000-fe9fffff >>> Prefetchable memory behind bridge: 00000000fc000000-00000000fdffffff >>> Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >>>>TAbort- <TAbort- <MAbort- <SERR- <PERR- >>> BridgeCtl: Parity- SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B- >>> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- >>> Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+ >>> Capabilities: [b0] Subsystem: ATI Technologies Inc RS690 PCI >>> to PCI Bridge (Internal gfx) >>> >>> 00:07.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI >>> Express Port 3) ( >>> prog-if 00 [Normal decode]) >>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- >>> ParErr- Stepping- S >>> ERR+ FastB2B- DisINTx+ >>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- >>> <TAbort- <MAbort >>> - >SERR- <PERR- INTx- >>> Latency: 0, Cache Line Size: 64 bytes >>> Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 >>> I/O behind bridge: 0000d000-0000dfff >>> Memory behind bridge: fea00000-feafffff >>> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- >>> <TAbort- <MAbort >>> - <SERR- <PERR- >>> BridgeCtl: Parity+ SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- >>> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- >>> Capabilities: [50] Power Management version 3 >>> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA >>> PME(D0+,D1-,D2-,D3hot+,D3col >>> d+) >>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- >>> Capabilities: [58] Express (v1) Root Port (Slot+), MSI 00 >>> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s >>> <64ns, L1 <1us >>> ExtTag+ RBE+ FLReset- >>> DevCtl: Report errors: Correctable- Non-Fatal- Fatal- >>> Unsupported- >>> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ >>> MaxPayload 128 bytes, MaxReadReq 128 bytes >>> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- >>> AuxPwr- TransPend- >>> LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, >>> Latency L0 <64ns, L1 <1us >>> ClockPM- Surprise- LLActRep+ BwNot- >>> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ >>> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- >>> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- >>> SlotClk+ DLActive+ BWMgmt- ABWMgmt- >>> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- >>> HotPlug- Surpise- >>> Slot # 6, PowerLimit 25.000000; Interlock- NoCompl- >>> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- >>> CmdCplt- HPIrq- LinkChg- >>> Control: AttnInd Off, PwrInd Off, Power- Interlock- >>> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- >>> PresDet+ Interlock- >>> Changed: MRL- PresDet+ LinkState- >>> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- >>> PMEIntEna- CRSVisible- >>> RootCap: CRSVisible- >>> RootSta: PME ReqID 0000, PMEStatus- PMEPending- >>> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- >>> Address: fee0300c Data: 4149 >>> Capabilities: [b0] Subsystem: ATI Technologies Inc RS690 PCI >>> to PCI Bridge >>> Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+ >>> Capabilities: [100] Virtual Channel <?> >>> Kernel driver in use: pcieport >>> >>> KMS was working stable on 2.6.33 and seems to work on 2.6.34 (Not >>> really tested, because 2.6.34 is not working for me, but I'm not sure >>> if that is KMS related) >>> >>> Output from working KMS in 2.6.33: >>> [ 0.385804] [drm] Initialized drm 1.1.0 20060810 >>> [ 0.385896] [drm] radeon defaulting to kernel modesetting. >>> [ 0.385955] [drm] radeon kernel modesetting enabled. >>> [ 0.386066] radeon 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 >>> [ 0.388388] [drm] radeon: Initializing kernel modesetting. >>> [ 0.388534] [drm] register mmio base: 0xFE9F0000 >>> [ 0.388593] [drm] register mmio size: 65536 >>> [ 0.389106] ATOM BIOS: ATI >>> [ 0.389374] [drm] GPU reset succeed (RBBM_STATUS=0x10000140) >>> [ 0.389436] [drm] radeon: VRAM 32M >>> [ 0.389495] [drm] radeon: VRAM from 0xDE000000 to 0xDFFFFFFF >>> [ 0.389554] [drm] radeon: GTT 512M >>> [ 0.389612] [drm] radeon: GTT from 0x00000000 to 0x1FFFFFFF >>> [ 0.389688] radeon 0000:01:05.0: irq 25 for MSI/MSI-X >>> [ 0.389692] [drm] radeon: using MSI. >>> [ 0.389766] [drm] radeon: irq initialized. >>> [ 0.389828] mtrr: type mismatch for fc000000,2000000 old: >>> write-back new: write-combining >>> [ 0.389902] [drm] Detected VRAM RAM=32M, BAR=32M >>> [ 0.389960] [drm] RAM width 128bits DDR >>> [ 0.390238] [TTM] Zone kernel: Available graphics memory: 2010380 kiB. >>> [ 0.390313] [drm] radeon: 32M of VRAM memory ready >>> [ 0.390372] [drm] radeon: 512M of GTT memory ready. >>> [ 0.390431] [drm] GART: num cpu pages 131072, num gpu pages 131072 >>> [ 0.393504] [drm] radeon: 1 quad pipes, 1 z pipes initialized. >>> [ 0.393568] [drm] radeon: cp idle (0x10000C03) >>> [ 0.393691] [drm] Loading RS690/RS740 Microcode >>> [ 0.393751] platform radeon_cp.0: firmware: using built-in firmware >>> radeon/RS690_cp.bin >>> [ 0.393964] [drm] radeon: ring at 0x0000000000000000 >>> [ 0.394039] [drm] ring test succeeded in 1 usecs >>> [ 0.394180] [drm] radeon: ib pool ready. >>> [ 0.394249] [drm] ib test succeeded in 0 usecs >>> [ 0.394454] [drm] Default TV standard: NTSC >>> [ 0.394690] [drm] Radeon Display Connectors >>> [ 0.394749] [drm] Connector 0: >>> [ 0.394807] [drm] VGA >>> [ 0.394865] [drm] DDC: 0x7e50 0x7e40 0x7e54 0x7e44 0x7e58 0x7e48 >>> 0x7e5c 0x7e4c >>> [ 0.394938] [drm] Encoders: >>> [ 0.394996] [drm] CRT1: INTERNAL_KLDSCP_DAC1 >>> [ 0.395055] [drm] Connector 1: >>> [ 0.395112] [drm] S-video >>> [ 0.395169] [drm] Encoders: >>> [ 0.395227] [drm] TV1: INTERNAL_KLDSCP_DAC1 >>> [ 0.395285] [drm] Connector 2: >>> [ 0.395343] [drm] HDMI-A >>> [ 0.395401] [drm] DDC: 0x7e40 0x7e50 0x7e44 0x7e54 0x7e48 0x7e58 >>> 0x7e4c 0x7e5c >>> [ 0.395474] [drm] Encoders: >>> [ 0.395532] [drm] DFP3: INTERNAL_LVTM1 >>> [ 0.593345] [drm] fb mappable at 0xFC040000 >>> [ 0.593404] [drm] vram apper at 0xFC000000 >>> [ 0.593462] [drm] size 786432 >>> [ 0.593519] [drm] fb depth is 8 >>> [ 0.593576] [drm] pitch is 1024 >>> [ 0.615713] Console: switching to colour frame buffer device 128x48 >>> [ 0.617300] fb0: radeondrmfb frame buffer device >>> [ 0.617319] registered panic notifier >>> [ 0.617337] [drm] Initialized radeon 2.0.0 20080528 for >>> 0000:01:05.0 on minor 0 >>> >>> Please ask, if I should provide more information or test something. >> >> Can you bisect to see what commit broke it? >> >> Alex > > Its you fault. ;-P > > 0888e883ea5ff8fac27e813256d6c1eaede5a234 is the first bad commit > commit 0888e883ea5ff8fac27e813256d6c1eaede5a234 > Author: Alex Deucher <alexdeucher@xxxxxxxxx> > Date: Sat Jun 12 11:50:13 2010 -0400 > > drm/radeon/kms: fix bandwidth calculation when sideport is present > > Fixes fdo bug 27529: > https://bugs.freedesktop.org/show_bug.cgi?id=27529 > > Reported-by: steckdenis@xxxxxxxx > Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> > Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx> > > :040000 040000 2ff9114469e4569e1bebd659c9632c5b59bfc238 > b0eb9a29c698da1eeb8289ba1180b8135a94ecd7 M drivers > > My system does not have any sideport memory. > The other revisions before this did boot into the correct KMS mode, > but I did not test X, because I'm using that system as a remote > desktop server and only sometimes the fb text console to debug > something that went wrong. Does this patch help? Alex
From 81d6abb7e9f70e91fd74ab8e5c0c5c8a9a237bc9 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Mon, 12 Jul 2010 17:33:50 -0400 Subject: [PATCH] drm/radeon/kms: fix possible mis-detection of sideport on rs690/rs740 Check ulBootUpMemoryClock on AMD IGPs. Fix regression noticed by Torsten Kaiser <just.for.lkml@xxxxxxxxxxxxxx> Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> Cc: stable@xxxxxxxxxx --- drivers/gpu/drm/radeon/radeon_atombios.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index 5dd86b9..3f89c9b 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c @@ -1029,8 +1029,15 @@ bool radeon_atombios_sideport_present(struct radeon_device *rdev) data_offset); switch (crev) { case 1: - if (igp_info->info.ucMemoryType & 0xf0) - return true; + /* AMD IGPS */ + if ((rdev->family == CHIP_RS690) || + (rdev->family == CHIP_RS740)) { + if (igp_info->info.ulBootUpMemoryClock) + return true; + } else { + if (igp_info->info.ucMemoryType & 0xf0) + return true; + } break; case 2: if (igp_info->info_2.ucMemoryType & 0x0f) -- 1.7.0.1
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel