[PATCH] drm/radeon/kms/atom: initialize dig phy a bit later

Ari Savolainen ari.m.savolainen at gmail.com
Fri Jun 3 13:03:52 PDT 2011


I'm using ASUS EAH3650SILENTMG/HTDP.

I got the feeling that in my case, radeon_atom_encoder_prepare needed to be
called before radeon_atom_encoder_init (the call occurred during
radeon_fbdev_init). That ensured radeon_encoder->enc_priv->dig_encoder to have
a value other than -1 in the first call of atombios_dig_transmitter_setup (with
action=ATOM_TRANSMITTER_ACTION_INIT).  But I don't know the code well enough to
be sure about that.

Ari

2011/6/3 Alex Deucher <alexdeucher at gmail.com>:
> On Thu, Jun 2, 2011 at 5:20 PM, Ari Savolainen
> <ari.m.savolainen at gmail.com> wrote:
>> Commit ac89af1e1010640db072416c786f97391b85790f caused one of the monitors
>> attached to a dual head radeon gpu to have inverted colors (until the first
>> suspend/resume). Initializing dig phy a bit later fixes the problem.
>
> Strange, I don't see why that would make a difference, I guess perhaps
> there's some strange interaction between the hpd setup or the initial
> clock/voltage setup on DCE5 hw.  What chip are you using?
>
> Anyway, should be fine.
>
> Acked-by: Alex Deucher <alexdeucher at gmail.com>
>
>>
>> ---
>>  drivers/gpu/drm/radeon/radeon_display.c |    8 ++++----
>>  1 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_display.c
>> b/drivers/gpu/drm/radeon/radeon_display.c
>> index ae247ee..ddff2cf 100644
>> --- a/drivers/gpu/drm/radeon/radeon_display.c
>> +++ b/drivers/gpu/drm/radeon/radeon_display.c
>> @@ -1346,10 +1346,6 @@ int radeon_modeset_init(struct radeon_device *rdev)
>>                return ret;
>>        }
>>
>> -       /* init dig PHYs */
>> -       if (rdev->is_atom_bios)
>> -               radeon_atom_encoder_init(rdev);
>> -
>>        /* initialize hpd */
>>        radeon_hpd_init(rdev);
>>
>> @@ -1359,6 +1355,10 @@ int radeon_modeset_init(struct radeon_device *rdev)
>>        radeon_fbdev_init(rdev);
>>        drm_kms_helper_poll_init(rdev->ddev);
>>
>> +       /* init dig PHYs */
>> +       if (rdev->is_atom_bios)
>> +               radeon_atom_encoder_init(rdev);
>> +
>>        return 0;
>>  }
>>
>> --
>> 1.7.4.1
>>
>


More information about the dri-devel mailing list