On Tue, 2010-08-03 at 09:02 +1200, Shane Harrison wrote: [snip] > Thanks for the audio path info. While you are on a roll, a few more questions ? > 1) So do you know how the I2S input (from WM8775) is looped back to > the I2S output that is fed to the MPEG encoder? I can only assume in > software? Yes, it is looped through the cx23883 under s/w control. > I note that the driver has a comment re. using passthrough > mode in the CX2388x but actually uses normal mode which isn't a > loopback. Hence something else must generate the I2S output source. I believe that as long as b13 of AUD_CTL is set then i2s data is output - this bit is set in set_audio_finish(). The code comment is wrong, as you say, the i2sctl register is set to normal mode. In normal mode the i2s data output is either i2s-in or the demodulated audio from the analog tuner, dependent upon configuration. > 2) I interpreted the following note in the CX23416 datasheet slightly > differently than you: > "The CX23416 audio input interface is designed to work with most commonly > available audio analog-to-digital converters (ADCs) that are > compatible with the Sony > I2S data format. An I2S-compatible audio part can be supported > by running its AILR > sync signal through an inverting flip-flop, clocked by an > inverted AICKIN, before > passing it to the CX23416. > I assumed it was saying it accepted standard Sony variant but you > could connect to Philips I2S if you used a flip-flop to invert and > synchronise with the AICKIN. Yes you are correct, the flip-flop is needed (which is what I wanted to emphasise) only for _Philips_ mode but the cx23883 i2sout is programmed for Sony mode in set_audio_finish() i.e. AUD_I2SOUTPUTCNT = 1. > I did notice that the HVR1300 board has > a footprint for an IC that is connected to the I2S outputs in some > manner. I wondered what this was - does something need to be fitted > then to make these two devices talk directly? I also note that the > driver sets the I2S input to be Philips (as output by the WM8775) and > the I2S output as Sony which seems like an attempt to talk directly. > A bit confused here..... The wm8775 outputs Philips format in i2s mode and that's what cx88_set_tvaudio() programs the cx23883 to accept on i2sin. If the cx23883 were programmed for pass-thru mode then the cx23416 would receive the wrong data format. I believe that's the reason for using 'normal' mode. However, I believe there may be a problem in set_audio_finish() when CX88_MPEG_BLACKBIRD is set. If core->tvaudio == WW_I2SADC (which it true for s-video and composite inputs) then cx88_set_tvaudio() calls set_audio_finish(core, EN_I2SIN_ENABLE) to enable i2s audio input but in the CX88_MPEG_BLACKBIRD case the EN_I2SIN_ENABLE is never written to AUD_CTL. This may account for the white noise you hear. You could test this easily by forcing the cx88 module parameter 'analog' to 1 > 3) Given I am getting audio sometimes in the MPEG2 stream, is it using > another path into the CX23416. The idea of getting lucky on switching > glitches seems improbable on the I2S interface since once I get audio > I continue to have it until a hard reboot. Switching glitches and > race conditions on the control interfaces being successful every so > often I could buy. > > Still to try the patch - will let you know. Unfortunately our > HVR-1300 is in the process of being swapped out since the supplier > wanted to try swapping boards first :-( Let us know how you get on. -- Lawrence Rust -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html