Re: [PATCH] drm/radeon: fix dpms on/off on trinity/aruba v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 24, 2012 at 5:06 PM,  <j.glisse@xxxxxxxxx> wrote:
> From: Jerome Glisse <jglisse@xxxxxxxxxx>
>
> The external encoder need to be setup again before enabling the
> transmiter. This seems to be only needed on some trinity/aruba
> to fix dpms on.
>
> v2: Add comment, only setup again on dce6 ie aruba or newer.
>
> Cc: <stable@xxxxxxxxxx>
> Signed-off-by: Jerome Glisse <jglisse@xxxxxxxxxx>

Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

> ---
>  drivers/gpu/drm/radeon/atombios_encoders.c |   12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 486ccdf..8676b1b 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1392,10 +1392,18 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>         case DRM_MODE_DPMS_ON:
>                 /* some early dce3.2 boards have a bug in their transmitter control table */
>                 if ((rdev->family == CHIP_RV710) || (rdev->family == CHIP_RV730) ||
> -                   ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev))
> +                   ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) {
> +                       if (ASIC_IS_DCE6(rdev)) {
> +                               /* It seems we need to call ATOM_ENCODER_CMD_SETUP again
> +                                * before reenabling encoder on DPMS ON, otherwise we never
> +                                * get picture
> +                                */
> +                               atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0);
> +                       }
>                         atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0);
> -               else
> +               } else {
>                         atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
> +               }
>                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>                         if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
>                                 atombios_set_edp_panel_power(connector,
> --
> 1.7.10.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux