<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>