Re: [PATCH 3/3] drm/radeon: add audio support for DCE6/8 GPUs (v10)

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

 



On Thu, Aug 15, 2013 at 4:23 AM, Rafał Miłecki <zajec5@xxxxxxxxx> wrote:
> 2013/8/14 Alex Deucher <alexdeucher@xxxxxxxxx>:
>> +       /* program the speaker allocation */
>> +       tmp = RREG32_ENDPOINT(offset, AZ_F0_CODEC_PIN_CONTROL_CHANNEL_SPEAKER);
>> +       tmp &= ~(DP_CONNECTION | SPEAKER_ALLOCATION_MASK);
>> +       /* set HDMI mode */
>> +       tmp |= HDMI_CONNECTION;
>> +       if (sadb_count)
>> +               tmp |= SPEAKER_ALLOCATION(sadb[0]);
>> +       else
>> +               tmp |= SPEAKER_ALLOCATION(5); /* stereo */
>> +       WREG32_ENDPOINT(offset, AZ_F0_CODEC_PIN_CONTROL_CHANNEL_SPEAKER, tmp);
>> +
>> +       for (i = 0; i < ARRAY_SIZE(eld_reg_to_type); i++) {
>> +               u32 value = 0;
>> +               int j;
>> +
>> +               for (j = 0; j < sad_count; j++) {
>> +                       struct cea_sad *sad = &sads[j];
>> +
>> +                       if (sad->format == eld_reg_to_type[i][1]) {
>> +                               value = MAX_CHANNELS(sad->channels) |
>> +                                       DESCRIPTOR_BYTE_2(sad->byte2) |
>> +                                       SUPPORTED_FREQUENCIES(sad->freq);
>> +                               if (sad->format == HDMI_AUDIO_CODING_TYPE_PCM)
>> +                                       value |= SUPPORTED_FREQUENCIES_STEREO(sad->freq);
>> +                               break;
>> +                       }
>> +               }
>> +               WREG32_ENDPOINT(offset, eld_reg_to_type[i][0], value);
>> +       }
>
> I hope this is my last questions I'm bothering you with... This is how
> fglrx does that part:
>
> WREG32(0x00005e00, 0x00000125);    PIN_CONTROL_CHANNEL_SPEAKER
> WREG32(0x00005e04, 0x00c1005f);    PIN_CONTROL_CHANNEL_SPEAKER
>
> RREG32(0x000..05c); -> 0x00000000    AFMT_AUDIO_PACKET_CONTROL2
> WREG32(0x000..05c, 0x0000ff00);    AFMT_AUDIO_PACKET_CONTROL2
>
> WREG32(0x00005e00, 0x00000027);    0x27 was 0x00005f80 on Evergreen
> RREG32(0x00005e04); -> 0x00000000    0x27 was 0x00005f80 on Evergreen
>
> WREG32(0x00005e00, 0x00000127);    0x27 was 0x00005f80
> WREG32(0x00005e04, 0x00000040);    0x27 was 0x00005f80
>
> WREG32(0x00005e00, 0x000c3128);    DESCRIPTOR0
> WREG32(0x00005e04, 0x7f077f07);    DESCRIPTOR0
>
> The difference is that between setting PIN_CONTROL_CHANNEL_SPEAKER and
> DESCRIPTOR0 fglrx enables audio channels (see
> AFMT_AUDIO_PACKET_CONTROL2 and 0xff00).
>
> Do you think it does matter? Or can we ignore the order and do it your way?

Not sure.  I'll go ahead and apply your patch.

Alex
_______________________________________________
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