Now that my desktop 7500 is working smoothly, my laptop Mobility M6 LY is
wedging when the X server trys to synchronize with the engine.
It's easy to reproduce without using any GL applications:
# XFree86 &
# X=$!
# chvt 1
# chvt 7
# kill $X
This same sequence wedges this chip with the XFree86 4.2 radeon DRM.
Disable DRI and things are fine.
I enabled plenty of debugging in the radeon DRM. When switching to the
console and back to X, I see:
[drm:radeon_ioctl] pid=1406, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
[drm:radeon_lock] 1 (pid 1406) requests lock (0x00000001), flags = 0x0000000a
[drm:radeon_lock] 1 has lock
[drm:radeon_ioctl] pid=1406, cmd=0x6444, nr=0x44, dev 0xe200, auth=1
[drm:radeon_cp_idle] radeon_cp_idle
[drm:radeon_do_cp_idle] radeon_do_cp_idle
[drm:radeon_ioctl] pid=1406, cmd=0x40086442, nr=0x42, dev 0xe200, auth=1
[drm:radeon_cp_stop] radeon_cp_stop
[drm:radeon_do_cp_flush] radeon_do_cp_flush
[drm:radeon_do_cp_idle] radeon_do_cp_idle
[drm:radeon_do_cp_stop] radeon_do_cp_stop
[drm:radeon_do_engine_reset] radeon_do_engine_reset
[drm:radeon_do_cp_reset] radeon_do_cp_reset
[drm:radeon_ioctl] pid=1406, cmd=0x6441, nr=0x41, dev 0xe200, auth=1
[drm:radeon_cp_start] radeon_cp_start
[drm:radeon_do_cp_start] radeon_do_cp_start
[drm:radeon_ioctl] pid=1406, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
[drm:radeon_lock] 1 (pid 1406) requests lock (0x00000001), flags = 0x0000000a
[drm:radeon_lock] 1 has lock
[drm:radeon_ioctl] pid=1406, cmd=0x6444, nr=0x44, dev 0xe200, auth=1
[drm:radeon_cp_idle] radeon_cp_idle
[drm:radeon_do_cp_idle] radeon_do_cp_idle
[drm:radeon_ioctl] pid=1406, cmd=0xc0286429, nr=0x29, dev 0xe200, auth=1
[drm:radeon_freelist_get] skipping buf=0 pid=1406
[drm:radeon_freelist_get] ret buf=1 last=0 pid=0
(and then lots of radeon_cp_indirect calls as the root is repainted)
When the X server tries to shut down, I get:
[drm:radeon_cp_stop] radeon_cp_stop
[drm:radeon_do_cp_flush] radeon_do_cp_flush
[drm:radeon_do_cp_idle] radeon_do_cp_idle
[drm:radeon_do_wait_for_idle] *ERROR* failed!
radeon_status:
RBBM_STATUS = 0x80010140
CP_RB_RTPR = 0x00000030
CP_RB_WTPR = 0x00000055
AIC_CNTL = 0x00000002
AIC_STAT = 0x00000004
AIC_PT_BASE = 0x00000000
TLB_ADDR = 0x00000000
TLB_DATA = 0x00000000
At this point, the server loops and I see the same sequence over and over
until I kill the X server. Further attempts to start the server fail in
the same loop until the machine is rebooted.
A similar failure mode is:
# XFree86 &
# X=$!
# glxgears -display :0 &
# kill $!
This hangs the machine immediately, I do get one diagnostic out of the X
server:
(EE) RADEON(0): RADEONDRICloseScreen: CP stop -1022
But, the kernel diagnostics don't get written before the machine locks.
The number -1022 is supposed to be an errno from drmRadeonStopCP but
I can't see how it would get this value.
Keith Packard XFree86 Core Team Compaq Cambridge Research Lab
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel