https://bugzilla.kernel.org/show_bug.cgi?id=23592

           Summary: Radeon tries to execute atombios on a card powered off
                    by vgaswitcheroo
           Product: Drivers
           Version: 2.5
    Kernel Version: 2.6.34+
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Video(DRI - non Intel)
        AssignedTo: drivers_video-...@kernel-bugs.osdl.org
        ReportedBy: debb...@javispedro.com
        Regression: No


Created an attachment (id=37912)
 --> (https://bugzilla.kernel.org/attachment.cgi?id=37912)
dmesg with added WARN_ON() on atom_execute_table_locked

During Xorg shutdown, dmesg gets filled with lots of repeating:

[  101.804993] [drm:atom_op_jump] *ERROR* atombios stuck in loop for more than
5secs aborting
[  101.805045] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing
CD0C (len 62, WS 0, PS 0) @ 0xCD28

Xorg does NOT terminate properly until after a handful of these messages, so
the system takes a long time to shutdown.

Steps to reproduce, on a Acer 5820TG (Intel Clarkdale+Radeon Evergreen
switchable graphics):
1. Boot kernel with vgaswitcheroo enabled.
2. Start Xorg with no xorg.conf. Defaults to using Intel card.
3. While Xorg is running, echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
(powers off the Radeon card).
4. Try to quit Xorg (either by SIGTERM or Zap key sequence).

Expected result:
Xorg quits in a few seconds

Actual results:
Lots of messages on dmesg, Xorg takes minutes to die.


For convenience, I added a WARN_ON() on atom_execute_table_locked() right where
it printks the above warning message. The resulting backtrace is attached.

Seemingly, drm_helper_disable_unused_functions is called by the Intel driver
which ends up calling some Readeon DPMS functions (atombios_crtc_disable) which
eventually try to run Atombios code while rdev->powered_down is TRUE. 

A trivial workaround is to patch atombios_crtc_disable and do nothing if
rdev->powered_down is TRUE. That works for me but I don't really know if it's
exactly the ideal solution.

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

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to