[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges (v2)

2012-02-28 Thread alexdeuc...@gmail.com
From: Alex Deucher 

Need to call ExternalEncoderControl to set up DDC before
trying to get an EDID for all DP bridge chips (including
DP to LVDS).

Also remove redundant encoder assignment.

V2: fix typo in commit message.

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
b/drivers/gpu/drm/radeon/radeon_connectors.c
index e7cb3ab..8b3d8ed 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1117,13 +1117,23 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
(connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_display_mode *mode;

-   if (!radeon_dig_connector->edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_ON);
-   ret = radeon_ddc_get_modes(radeon_connector);
-   if (!radeon_dig_connector->edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+   if (!radeon_dig_connector->edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_ON);
+   ret = radeon_ddc_get_modes(radeon_connector);
+   if (!radeon_dig_connector->edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   } else {
+   /* need to setup ddc on the bridge */
+   if 
(radeon_connector_encoder_get_dp_bridge_encoder_id(connector) !=
+   ENCODER_OBJECT_ID_NONE) {
+   if (encoder)
+   
radeon_atom_ext_encoder_setup_ddc(encoder);
+   }
+   ret = radeon_ddc_get_modes(radeon_connector);
+   }

if (ret > 0) {
if (encoder) {
@@ -1134,7 +1144,6 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
return ret;
}

-   encoder = radeon_best_single_encoder(connector);
if (!encoder)
return 0;

-- 
1.7.7.5



[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-28 Thread Alex Deucher
On Tue, Feb 28, 2012 at 2:56 AM, Paul Menzel
 wrote:
> Dear Alex,
>
>
> Am Montag, den 27.02.2012, 19:31 -0500 schrieb alexdeucher at gmail.com:
>> From: Alex Deucher 
>>
>> Need to call ExternalEncoderControl to set up DDC before
>> trying to get an EDID for all DP bridge chipsi (including
>
> Should that be `s/chipsi/chips/`?

Yeah, should be chips.

Alex

>
>> DP to LVDS).
>>
>> Also remove redundant encoder assignment.
>>
>> Signed-off-by: Alex Deucher 
>> ---
>> ?drivers/gpu/drm/radeon/radeon_connectors.c | ? 25 +
>> ?1 files changed, 17 insertions(+), 8 deletions(-)
>
> [?]
>
>
> Thanks,
>
> Paul


[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-28 Thread Paul Menzel
Dear Alex,


Am Montag, den 27.02.2012, 19:31 -0500 schrieb alexdeucher at gmail.com:
> From: Alex Deucher 
> 
> Need to call ExternalEncoderControl to set up DDC before
> trying to get an EDID for all DP bridge chipsi (including

Should that be `s/chipsi/chips/`?

> DP to LVDS).
> 
> Also remove redundant encoder assignment.
> 
> Signed-off-by: Alex Deucher 
> ---
>  drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
>  1 files changed, 17 insertions(+), 8 deletions(-)

[?]


Thanks,

Paul
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: 



Re: [PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-28 Thread Alex Deucher
On Tue, Feb 28, 2012 at 2:56 AM, Paul Menzel
paulepan...@users.sourceforge.net wrote:
 Dear Alex,


 Am Montag, den 27.02.2012, 19:31 -0500 schrieb alexdeuc...@gmail.com:
 From: Alex Deucher alexander.deuc...@amd.com

 Need to call ExternalEncoderControl to set up DDC before
 trying to get an EDID for all DP bridge chipsi (including

 Should that be `s/chipsi/chips/`?

Yeah, should be chips.

Alex


 DP to LVDS).

 Also remove redundant encoder assignment.

 Signed-off-by: Alex Deucher alexander.deuc...@amd.com
 ---
  drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
  1 files changed, 17 insertions(+), 8 deletions(-)

 […]


 Thanks,

 Paul
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges (v2)

2012-02-28 Thread alexdeucher
From: Alex Deucher alexander.deuc...@amd.com

Need to call ExternalEncoderControl to set up DDC before
trying to get an EDID for all DP bridge chips (including
DP to LVDS).

Also remove redundant encoder assignment.

V2: fix typo in commit message.

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
---
 drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
b/drivers/gpu/drm/radeon/radeon_connectors.c
index e7cb3ab..8b3d8ed 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1117,13 +1117,23 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
(connector-connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_display_mode *mode;
 
-   if (!radeon_dig_connector-edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_ON);
-   ret = radeon_ddc_get_modes(radeon_connector);
-   if (!radeon_dig_connector-edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   if (connector-connector_type == DRM_MODE_CONNECTOR_eDP) {
+   if (!radeon_dig_connector-edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_ON);
+   ret = radeon_ddc_get_modes(radeon_connector);
+   if (!radeon_dig_connector-edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   } else {
+   /* need to setup ddc on the bridge */
+   if 
(radeon_connector_encoder_get_dp_bridge_encoder_id(connector) !=
+   ENCODER_OBJECT_ID_NONE) {
+   if (encoder)
+   
radeon_atom_ext_encoder_setup_ddc(encoder);
+   }
+   ret = radeon_ddc_get_modes(radeon_connector);
+   }
 
if (ret  0) {
if (encoder) {
@@ -1134,7 +1144,6 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
return ret;
}
 
-   encoder = radeon_best_single_encoder(connector);
if (!encoder)
return 0;
 
-- 
1.7.7.5

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-27 Thread alexdeuc...@gmail.com
From: Alex Deucher 

Need to call ExternalEncoderControl to set up DDC before
trying to get an EDID for all DP bridge chipsi (including
DP to LVDS).

Also remove redundant encoder assignment.

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
b/drivers/gpu/drm/radeon/radeon_connectors.c
index e7cb3ab..8b3d8ed 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1117,13 +1117,23 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
(connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_display_mode *mode;

-   if (!radeon_dig_connector->edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_ON);
-   ret = radeon_ddc_get_modes(radeon_connector);
-   if (!radeon_dig_connector->edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+   if (!radeon_dig_connector->edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_ON);
+   ret = radeon_ddc_get_modes(radeon_connector);
+   if (!radeon_dig_connector->edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   } else {
+   /* need to setup ddc on the bridge */
+   if 
(radeon_connector_encoder_get_dp_bridge_encoder_id(connector) !=
+   ENCODER_OBJECT_ID_NONE) {
+   if (encoder)
+   
radeon_atom_ext_encoder_setup_ddc(encoder);
+   }
+   ret = radeon_ddc_get_modes(radeon_connector);
+   }

if (ret > 0) {
if (encoder) {
@@ -1134,7 +1144,6 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
return ret;
}

-   encoder = radeon_best_single_encoder(connector);
if (!encoder)
return 0;

-- 
1.7.7.5



[PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-27 Thread alexdeucher
From: Alex Deucher alexander.deuc...@amd.com

Need to call ExternalEncoderControl to set up DDC before
trying to get an EDID for all DP bridge chipsi (including
DP to LVDS).

Also remove redundant encoder assignment.

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
---
 drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
b/drivers/gpu/drm/radeon/radeon_connectors.c
index e7cb3ab..8b3d8ed 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1117,13 +1117,23 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
(connector-connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_display_mode *mode;
 
-   if (!radeon_dig_connector-edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_ON);
-   ret = radeon_ddc_get_modes(radeon_connector);
-   if (!radeon_dig_connector-edp_on)
-   atombios_set_edp_panel_power(connector,
-
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   if (connector-connector_type == DRM_MODE_CONNECTOR_eDP) {
+   if (!radeon_dig_connector-edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_ON);
+   ret = radeon_ddc_get_modes(radeon_connector);
+   if (!radeon_dig_connector-edp_on)
+   atombios_set_edp_panel_power(connector,
+
ATOM_TRANSMITTER_ACTION_POWER_OFF);
+   } else {
+   /* need to setup ddc on the bridge */
+   if 
(radeon_connector_encoder_get_dp_bridge_encoder_id(connector) !=
+   ENCODER_OBJECT_ID_NONE) {
+   if (encoder)
+   
radeon_atom_ext_encoder_setup_ddc(encoder);
+   }
+   ret = radeon_ddc_get_modes(radeon_connector);
+   }
 
if (ret  0) {
if (encoder) {
@@ -1134,7 +1144,6 @@ static int radeon_dp_get_modes(struct drm_connector 
*connector)
return ret;
}
 
-   encoder = radeon_best_single_encoder(connector);
if (!encoder)
return 0;
 
-- 
1.7.7.5

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/radeon/kms: fix radeon_dp_get_modes for LVDS bridges

2012-02-27 Thread Paul Menzel
Dear Alex,


Am Montag, den 27.02.2012, 19:31 -0500 schrieb alexdeuc...@gmail.com:
 From: Alex Deucher alexander.deuc...@amd.com
 
 Need to call ExternalEncoderControl to set up DDC before
 trying to get an EDID for all DP bridge chipsi (including

Should that be `s/chipsi/chips/`?

 DP to LVDS).
 
 Also remove redundant encoder assignment.
 
 Signed-off-by: Alex Deucher alexander.deuc...@amd.com
 ---
  drivers/gpu/drm/radeon/radeon_connectors.c |   25 +
  1 files changed, 17 insertions(+), 8 deletions(-)

[…]


Thanks,

Paul


signature.asc
Description: This is a digitally signed message part
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel