On 12 May 2014 20:09, Alex Deucher <alexdeucher at gmail.com> wrote: > As far as I recall, 3.1 is > pretty much the same as 3.0 from a programming perspective, but it's > been a while since I looked at it in detail.
Please take a look at attached dce31.html file. It's a dump from fglrx operations during HDMI mode setup. You can see it's very similar for DCE 3.2 except for AUDIO_PACKET_CONTROL and INFOFRAME_CONTROL0. But I think it's still easier to add 2 or 3 /ifs/ in the code shared between DCE 3.1 and DCE 3.2 Apart from the above exceptions: 1) DCE3.1 uses AFMT_AUDIO_PACKET_CONTROL2 like DCE3.2 I don't think DCE2/3 had AUDIO_LAYOUT_OVRD or 60958_CS_SOURCE. 2) DCE3.1 controls ACR_AUTO_SEND with HDMI_ACR_PACKET_CONTROL like DCE3.2. In DCE2/3 it was handled in HDMI0_ACR_PACKET_CONTROL register, but wasn't touched by fglrx code. 3) DCE3.1 has this new AFMT_60958_2 register just like DCE3.2 It wasn't present in DCE2/3, see: /* HDMI0_60958_2 is r7xx only */ 4) DCE3.1 has AUDIO_DESCRIPTORs, like DCE3.2 I believe they were not present on DCE2/3 5) DCE3.1 enables audio engines just like DCE3.2 (using extra 0x7308 register during en/disable) So I'm pretty sure we don't want to share code between DCE2/3.0 and DCE3.1. The question is if we want separated code for DCE3.1 and DCE3.2. So far it seems we can handle DCE3.1 and DCE3.2 with shared simply using 2 or 3 conditions. -- Rafa? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140513/48829e73/attachment-0001.html>