On 1/11/19 11:22 AM, Sameer Pujar wrote:
Background
Azalia Controller fetches command and audio data via DMA and send them to codec through SDO(Serial Data Out) lines. SDO is for outboung and it broadcasts to all codecs. There is atleast one SDO line present, but there can be multiple SDO lines supported for extended bandwidth. This is essential when a platform supports multiple hdmi/dp sinks and there is a requirement for higher resolution audio playback. In such cases simultaneous audio playback data can be striped across multiple SDOs.
Global Capabilities(GCAP) Register indicates the capabilities of the controller. Bits 2:1 of GCAP can be read to know the number of supported SDO lines (below is from HD audio spec) 00: 1 SDO 01: 2 SDO 10: 4 SDO 11: Reserved
Stripe control verb reports and controls the stripe capability of an Audio Output Converter. This verb needs to be implemented only for an audio output converter and only if the stripe bit of the Audio Widget Capabilities parameter is 1. Stripe control: get code(0xf24) and set code(0x724)
the series look ok (one minor comment on operator precedence) and aligned with my understanding of the HDaudio 1.0a spec.
That said you made no mention of the Stripe bit (figure 86) and fields 22:20 (Stripe capability) in Figure 75, so it's not clear to me if the support added in this patchset is sufficient or if there is additional logic to be set.
There is also a difference between what the controller supports and the actual board layout, so it's not clear if the GCAP are really the raw capabilities or the ones filtered by BIOS folks to reflect the actual platform hardware implementation.
-Pierre