<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - r600: linux v3.11.0-RC isn't booting with radeon.dpm=1 option in grub"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=66963#c138">Comment # 138</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - r600: linux v3.11.0-RC isn't booting with radeon.dpm=1 option in grub"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=66963">bug 66963</a>
              from <span class="vcard"><a class="email" href="mailto:agd5f@yahoo.com" title="Alex Deucher <agd5f@yahoo.com>"> <span class="fn">Alex Deucher</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=66963#c137">comment #137</a>)
<span class="quote">> Nope definitely not reliably, but I did have it work one more time doing the
> above (booting with modeset=0) after about 10 or so reboots.  When it fails
> I've never been able to get any debug information..

> Any suggestions of other ways to get more debug information?</span >

Does it hang the entire system as soon as you load the driver, or only when you
start X or something like that?

As for debugging, you can try disabling rv6xx_dpm_set_power_state() by
returning early (see the patch below).  If that works, move the the return
statement further and further down in the function until you can identify at
which point in rv6xx_dpm_set_power_state() the hang occurs.  Once we pin point
that, we can debug further.


diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c
b/drivers/gpu/drm/radeon/rv6xx_dpm.c
index 5811d27..bfa2922 100644
--- a/drivers/gpu/drm/radeon/rv6xx_dpm.c
+++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c
@@ -1670,6 +1670,8 @@ int rv6xx_dpm_set_power_state(struct radeon_device *rdev)
        struct radeon_ps *old_ps = rdev->pm.dpm.current_ps;
        int ret;

+       return 0;
+
        pi->restricted_levels = 0;

        rv6xx_set_uvd_clock_before_set_eng_clock(rdev, new_ps, old_ps);
@@ -2094,6 +2096,8 @@ int rv6xx_dpm_force_performance_level(struct
radeon_device *rdev,
 {
        struct rv6xx_power_info *pi = rv6xx_get_pi(rdev);

+       return 0;
+
        if (level == RADEON_DPM_FORCED_LEVEL_HIGH) {
                pi->restricted_levels = 3;
        } else if (level == RADEON_DPM_FORCED_LEVEL_LOW) {</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>