<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Radeon: evergreen Atombios in loop during initialization on ppc64"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=59982#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Radeon: evergreen Atombios in loop during initialization on ppc64"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=59982">bug 59982</a>
              from <span class="vcard"><a class="email" href="mailto:lucaskt@linux.vnet.ibm.com" title="Lucas Kannebley Tavares <lucaskt@linux.vnet.ibm.com>"> <span class="fn">Lucas Kannebley Tavares</span></a>
</span></b>
        <pre>Hi Jerome, thanks for the tips.

Well, I followed the next error
[drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked] *ERROR* atombios stuck executing CC68 (len 72,
WS 0, PS 0) @ 0xCC97

Down to the test in 0x2f on 0xcc68.
command_table  0000cc68  #2c  (UpdateCRTC_DoubleBufferRegisters):
...
  0027: 5420b51b          CLEAR  reg[1bb5]  [...X]
  002b: 5420bd1b          CLEAR  reg[1bbd]  [...X]
  002f: 4a25b61b01        TEST   reg[1bb6]  [...X]  <-  01

I have a question here: how do I determine what are these registers? I couldn't
match 1bb6 to anything on the radeon driver code, so I suppose that's somewhere
else... or is there some other way to read that?

Anyway, I backtracked that code back to this call on atombios_crtc.c:

static void atombios_lock_crtc(struct drm_crtc *crtc, int lock)
{
...
    int index =
        GetIndexIntoMasterTable(COMMAND, UpdateCRTC_DoubleBufferRegisters);
...
    atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
}

which could've come from either of these:
static void atombios_crtc_prepare(struct drm_crtc *crtc)
static void atombios_crtc_commit(struct drm_crtc *crtc)

Since those are callbacks registered as helper funcs, and I'm not sure of their
semantics, I ended up getting stuck :) 

static const struct drm_crtc_helper_funcs atombios_helper_funcs = {
    .prepare = atombios_crtc_prepare,
    .commit = atombios_crtc_commit,

Any ideas here?

Thanks! :)</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>