http://bugzilla.kernel.org/show_bug.cgi?id=10258

           Summary: Radeon Suspend/Resume problem
           Product: Drivers
           Version: 2.5
     KernelVersion: 2.6.25-rc3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Video(DRI)
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hi,

when trying Suspend-To-RAM and Suspend-To-Disk with Linux (2.6.25-rc3),
I encountered that suspend/resume works fine except when activating
DRM/DRI for my Radeon 9200 SE (RV280).

I traced the code up to the point where I'm missing appropriate hardware
information/experience. Please point me in the right direction.

As you can see in the debug trace below, on resume the microcode is
loaded. Unfortunately, radeon_do_wait_for_idle() and
radeon_do_wait_for_fifo() return -EBUSY. On the first ioctl(),
radeon_do_wait_for_idle() correctly checks the fifo but breaks because
of RBBM_STATUS flagging "BUSY" (bit 31). On the next calls, already
radeon_do_wait_for_fifo() has a problem because the fifo is filling up
(RBBM_STATUS bits 6-0). This goes infinitely because userspace does it
like this. At some point the available fifo slots are down to 0 and stay
there.

I think we need some further reinitialization of the just switched on
device, but I don't know which one.

Mar  2 14:45:37 atari kernel: agpgart: Putting AGP V3 device at
0000:00:00.0 into 8x mode
Mar  2 14:45:37 atari kernel: agpgart: Putting AGP V3 device at
0000:01:00.0 into 8x mode
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x80206433,
nr=0x33, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6458,
nr=0x58, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_do_resume_cp] Starting
radeon_do_resume_cp()
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_load_microcode]
Mar  2 14:45:37 atari kernel: [drm] Loading R200 Microcode
Mar  2 14:45:37 atari kernel: [drm:radeon_do_engine_reset]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_reset]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_resume_cp]
radeon_do_resume_cp() complete
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6441,
nr=0x41, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_start]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_start]
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6444,
nr=0x44, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_wait_for_idle] *ERROR* failed!
Mar  2 14:45:37 atari kernel: radeon_status:
Mar  2 14:45:37 atari kernel: RBBM_STATUS = 0x80116140
Mar  2 14:45:37 atari kernel: CP_RB_RTPR = 0x0000000c
Mar  2 14:45:37 atari kernel: CP_RB_WTPR = 0x0000000c
Mar  2 14:45:37 atari kernel: AIC_CNTL = 0x00000000
Mar  2 14:45:37 atari kernel: AIC_STAT = 0x00000004
Mar  2 14:45:37 atari kernel: AIC_PT_BASE = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_ADDR = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_DATA = 0x00000000
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] ret = fffffff0
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6444,
nr=0x44, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_wait_for_fifo] *ERROR* failed!
Mar  2 14:45:37 atari kernel: timeout reached: 10000 usec
Mar  2 14:45:37 atari kernel: radeon_status:
Mar  2 14:45:37 atari kernel: RBBM_STATUS = 0x8011613b
Mar  2 14:45:37 atari kernel: CP_RB_RTPR = 0x00000012
Mar  2 14:45:37 atari kernel: CP_RB_WTPR = 0x00000012
Mar  2 14:45:37 atari kernel: AIC_CNTL = 0x00000000
Mar  2 14:45:37 atari kernel: AIC_STAT = 0x00000004
Mar  2 14:45:37 atari kernel: AIC_PT_BASE = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_ADDR = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_DATA = 0x00000000
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] ret = fffffff0
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6444,
nr=0x44, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_wait_for_fifo] *ERROR* failed!
Mar  2 14:45:37 atari kernel: timeout reached: 10000 usec
Mar  2 14:45:37 atari kernel: radeon_status:
Mar  2 14:45:37 atari kernel: RBBM_STATUS = 0x80116135
Mar  2 14:45:37 atari kernel: CP_RB_RTPR = 0x00000018
Mar  2 14:45:37 atari kernel: CP_RB_WTPR = 0x00000018
Mar  2 14:45:37 atari kernel: AIC_CNTL = 0x00000000
Mar  2 14:45:37 atari kernel: AIC_STAT = 0x00000004
Mar  2 14:45:37 atari kernel: AIC_PT_BASE = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_ADDR = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_DATA = 0x00000000
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] ret = fffffff0
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6444,
nr=0x44, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_wait_for_fifo] *ERROR* failed!
Mar  2 14:45:37 atari kernel: timeout reached: 10000 usec
Mar  2 14:45:37 atari kernel: radeon_status:
Mar  2 14:45:37 atari kernel: RBBM_STATUS = 0x8011612f
Mar  2 14:45:37 atari kernel: CP_RB_RTPR = 0x0000001e
Mar  2 14:45:37 atari kernel: CP_RB_WTPR = 0x0000001e
Mar  2 14:45:37 atari kernel: AIC_CNTL = 0x00000000
Mar  2 14:45:37 atari kernel: AIC_STAT = 0x00000004
Mar  2 14:45:37 atari kernel: AIC_PT_BASE = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_ADDR = 0x00000000
Mar  2 14:45:37 atari kernel: TLB_DATA = 0x00000000
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] ret = fffffff0
Mar  2 14:45:37 atari kernel: [drm:drm_ioctl] pid=3123, cmd=0x6444,
nr=0x44, dev 0xe200, auth=1
Mar  2 14:45:37 atari kernel: [drm:radeon_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_cp_idle]
Mar  2 14:45:37 atari kernel: [drm:radeon_do_wait_for_fifo] *ERROR* failed!
Mar  2 14:45:37 atari kernel: timeout reached: 10000 usec

Thanks in advance,

Roland


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to