Message ID | 1547227328-32558-1-git-send-email-spujar@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | Stripe control functionality | expand |
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
On 1/11/2019 11:32 PM, Pierre-Louis Bossart wrote: > > 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. > Stripe bit is part of Audio Widget Capability parameter and is mentioned above in the last section of background. Patch-5(v2) checks for the stripe bit, before sending stripe control verb. As far as stripe control register is concerned (22:20), I don't think any SW programming is required for this. > 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 > > ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. -----------------------------------------------------------------------------------
>>> 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. >> > Stripe bit is part of Audio Widget Capability parameter and is > mentioned above in the last section of background. Patch-5(v2) checks > for the stripe bit, before sending stripe control verb. Ah yes, I thought this patchset added stripe control starting from scratch but some definitions were already present. Thanks for the precision. > As far as stripe control register is concerned (22:20), I don't think > any SW programming is required for this. Yes correct. this is on GET only so something the codec needs to worry about, not the driver.