we are trying to stream PCM audio over MOST via MediaLB. We have connected an INIC phy board to the MLB connector on the processor board (we have also tried connecting it to the port on the peripheral board).
We currently use I2C to open a control channel to the INIC and send control messages to MOST devices that way, so we're confident those parts are up and running.
The INIC is configured with a MLB (channel 0x10) -> MOST connection.
As far as I understand, the INIC should initialize the MLB and we should be able to open a synchronous MLB channel.
MLB_SET_DEVADDR: 0xC0 (Address copied from an example)
MLB_CHAN_SETTADDR: 0x10 << 16 | 0x09
Those steps work.
Then we start the channel via MLB_CHAN_STARTUP and our program freezes irrecoverably.
The mxc_mlb150 module seems to be stuck in mlb150_dev_unmute_syn_ch in the first loop waiting for the clock.
I don't quite understand the logic there either, because the timeout never decreases and even if it would the returned error would be ignored.
What can we do?
I appologize for the noise. This particular problem seems to be a hardware issue with the board I was using for the tests. On a different board we do not get this error.
But we are still not able to stream PCM data to the MOST ring.
After the synchronous channel has been set up the write() on the fd just sits there blocking.
I've got a followup on this one.
To make sure, that there is actually a clock signal from the INIC we hooked up an oscilloscope to the corresponding pin and while doing so the code would fall through the loop and in one instance even start pushing data over the bus.
Also: there seems to be a clock on the line.
Any hints as to why?