Request for fixing atombios_get_encoder_mode

Alex Deucher alexdeucher at gmail.com
Wed Dec 7 08:56:52 PST 2011


2011/12/7 Rafał Miłecki <zajec5 at gmail.com>:
> W dniu 7 grudnia 2011 15:53 użytkownik Alex Deucher
> <alexdeucher at gmail.com> napisał:
>> 2011/12/7 Rafał Miłecki <zajec5 at gmail.com>:
>>> W dniu 7 grudnia 2011 14:53 użytkownik Alex Deucher
>>> <alexdeucher at gmail.com> napisał:
>>>> 2011/12/7 Rafał Miłecki <zajec5 at gmail.com>:
>>>>> In theory function atombios_get_encoder_mode should report
>>>>> ATOM_ENCODER_MODE_HDMI when TV supports audio. Current we report
>>>>> ATOM_ENCODER_MODE_DVI if card is DCE4.
>>>>>
>>>>> Is there any reason for it? Can we just drop that DCE4 condition? This
>>>>> fixme seems to be here since ever.
>>>>>
>>>>
>>>> It causes display corruption unless the hdmi packet engine is set up properly.
>>>
>>> Even with radeon.audio=0?
>>
>> No, as in that case, DVI is returned.  On DCE3.0 and newer chips there
>> is no explicit hdmi engine enable bit.  You just select HDMI mode
>> rather than DVI mode in the digital encoder setup.  So if you select
>> HDMI in the encoder setup and you have not configured the hdmi engine
>> correctly you will git display corruption or a blank screen.  Which is
>> why I had to disable audio by default.  Since audio is off by default,
>> the DCE4 conditional in the hdmi case could be removed.
>
> OK, it makes sense, thanks.
>
> Btw I believe there *is* HDMI enabling bit on DCE3+, we probably just
> don't need to poke it manually :)
> It is bit 0x1000 in registers
> 0x7000, 0x7c00, 0x10800, 0x11400, 0x12000, 0x12c00
>
> All my HDMI frames are ignored without that bit set.
>

As I mentioned above, that register (DIG_CNTL) is programmed by
DIGxEncoderControl table based on the encoder mode selected (DP, LVDS,
DVI, HDMI).  Bits 14:12 select the DIG_MODE of the encoder.  0 = DP, 1
= LVDS, 2 = DVI, 3 = HDMI.

Alex

> --
> Rafał
>


More information about the dri-devel mailing list