<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Computer freezes with kernel 3.11.0 / 3.12-rc1 (with bug 68235's patches applied) when dpm=1 on r600g (Cayman)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=69723#c27">Comment # 27</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Computer freezes with kernel 3.11.0 / 3.12-rc1 (with bug 68235's patches applied) when dpm=1 on r600g (Cayman)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=69723">bug 69723</a>
              from <span class="vcard"><a class="email" href="mailto:alexandre.f.demers@gmail.com" title="Alexandre Demers <alexandre.f.demers@gmail.com>"> <span class="fn">Alexandre Demers</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=69723#c26">comment #26</a>)
<span class="quote">> Alex, in drivers/gpu/drm/radeon/ni_dpm.c, when we are limiting the sclk and
> mclk to the max speed according to vddc and vddci, aren't we screwing
> possibly something with mclk? I mean, could we be setting a mclk value that
> is wrong? We have two conditions where we can max mclk value, but we are not
> looking at the lowest one. I think it should be something like this instead
> to be sure we are using the most restrictive value:
>    /* Select the lowest mclk value according to the most restrictive between
> vddc and vddci*/
>    if (max_mclk_vddc || max_mclk_vddci) {
>            max_mclk_vddcx = (max_mclk_vddc > max_mclk_vddci) ? max_mclk_vddci :
> max_mclk_vddc;
>    }

>    for (i = 0; i < ps->performance_level_count; i++) {
>            if (max_sclk_vddc) {
>                    if (ps->performance_levels[i].sclk > max_sclk_vddc)
>                            ps->performance_levels[i].sclk = max_sclk_vddc;
>            }
>            if (max_mclk_vddcx) {
>                    if (ps->performance_levels[i].mclk > max_mclk_vddcx)
>                            ps->performance_levels[i].mclk = max_mclk_vddcx;
>            }
>    }

> I'm also quoting you: "Not exactly. Mclk is tied to vddci (memory interface
> voltage), but both mclk and sclk (and the core display clock) are tied to
> vddc (core voltage)." Which means, mclk shouldn't run at its max speed if
> vddc is not at its max value, isn't it? Otherwise, we may encounter
> stability problem.</span >

Forget this, I'm getting tired and I didn't realized that we were already
making sure we were maxing the value if it was smaller.</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>