<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Asus U38N: Black screen with Radeon driver in Linux"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=73530#c65">Comment # 65</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Asus U38N: Black screen with Radeon driver in Linux"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=73530">bug 73530</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 Christian Aßfalg from <a href="show_bug.cgi?id=73530#c63">comment #63</a>)
<span class="quote">> I think / guess that I am having the same issues. I've got the same laptop,
> running Arch Linux. Mostly, I've been using the proprietary catalyst driver,
> since I never got the free driver working. The proprietary is working fine.

> What is the issue here? You've been playing with timings for the physical
> link to the internal panel? Is it so frickly? What would you need to fix the
> issue? How can I help?</span >

In reply to Christian Aßfalg from <a href="show_bug.cgi?id=73530#c63">comment #63</a>)
<span class="quote">> I think / guess that I am having the same issues. I've got the same laptop,
> running Arch Linux. Mostly, I've been using the proprietary catalyst driver,
> since I never got the free driver working. The proprietary is working fine.

> What is the issue here? You've been playing with timings for the physical
> link to the internal panel? Is it so frickly? What would you need to fix the
> issue? How can I help?</span >

I suggested that it might be a timing issue, and as per <a href="show_bug.cgi?id=73530#c54">comment 54</a>.  However,
link training is successful so that monitor accepts the parameters that the
driver proposed, it just sometimes chooses not to light up.  I would suggest
trying to tweak the link training timing as per <a href="show_bug.cgi?id=73530#c54">comment 54</a>, try disabling ss as
per <a href="show_bug.cgi?id=73530#c6">comment 6</a>, and finally, try making some slight changes to the modeset
sequence as per the attached patch.  The patch adds a delay before enabling the
video stream and additionally calls the enable video stream code again in case
the monitor didn't quite get the signal the first time.  E.g.,

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c
b/drivers/gpu/drm/radeon/atombios_encoders.c
index a7f2ddf..256ed7d 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1687,8 +1687,12 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder
*encoder, int mode)
                if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) &&
connector) {
                        /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
                        radeon_dp_link_train(encoder, connector);
-                       if (ASIC_IS_DCE4(rdev))
+                       if (ASIC_IS_DCE4(rdev)) {
+                               udelay(50);
                                atombios_dig_encoder_setup(encoder,
ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
+                               udelay(50);
+                               atombios_dig_encoder_setup(encoder,
ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
+                       }
                }
                if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
                        atombios_dig_transmitter_setup(encoder,

Or move the backlight enable before the link training:
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c
b/drivers/gpu/drm/radeon/atombios_encoders.c
index a7f2ddf..3bfbfa4 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1682,6 +1682,9 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder,
int mode)
                                radeon_dig_connector->edp_on = true;
                        }
                }
+               if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
+                       atombios_dig_transmitter_setup(encoder,
+                                                     
ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0);
                /* enable the transmitter */
                atombios_dig_transmitter_setup(encoder,
ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0);
                if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) &&
connector) {
@@ -1690,9 +1693,6 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder,
int mode)
                        if (ASIC_IS_DCE4(rdev))
                                atombios_dig_encoder_setup(encoder,
ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
                }
-               if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
-                       atombios_dig_transmitter_setup(encoder,
-                                                     
ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0);
                if (ext_encoder)
                        atombios_external_encoder_setup(encoder, ext_encoder,
ATOM_ENABLE);
                break;

Or drop the backlight control altogether to see if that helps:
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c
b/drivers/gpu/drm/radeon/atombios_encoders.c
index a7f2ddf..9713078 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1690,9 +1690,6 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder,
int mode)
                        if (ASIC_IS_DCE4(rdev))
                                atombios_dig_encoder_setup(encoder,
ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
                }
-               if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
-                       atombios_dig_transmitter_setup(encoder,
-                                                     
ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0);
                if (ext_encoder)
                        atombios_external_encoder_setup(encoder, ext_encoder,
ATOM_ENABLE);
                break;
@@ -1705,10 +1702,6 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder
*encoder, int mode)
                }
                if (ext_encoder)
                        atombios_external_encoder_setup(encoder, ext_encoder,
ATOM_DISABLE);
-               if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
-                       atombios_dig_transmitter_setup(encoder,
-                                                     
ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0);
-
                if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) &&
                    connector && !travis_quirk)
                        radeon_dp_set_rx_power_state(connector,
DP_SET_POWER_D3);</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>