12 Sep, 2017

1 commit


21 Aug, 2017

1 commit

  • In protocols of MOTU FireWire series, when transferring MIDI messages,
    transmitter set existence flag to one byte on first several quadlets. The
    position differs depending on protocols and models, however two cases are
    confirmed; in 5th byte and 8th byte from MSB side.

    This commit adds a series of specification flag to describe them. When
    the existence flag is in the 5th byte, SND_MOTU_SPEC_[R|T]X_MIDI_2ND_Q is
    used. Else, another set of the flag is used. Here, '_Q' means quadlet.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

28 Mar, 2017

3 commits

  • This commit adds hwdep interface so as the other sound drivers for units
    on IEEE 1394 bus have.

    This interface is designed for mixer/control applications. By using this
    interface, an application can get information about firewire node, can
    lock/unlock kernel streaming and can get notification at starting/stopping
    kernel streaming.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • In MOTU FireWire series, MIDI messages are multiplexed to isochronous
    packets as well as PCM frames, while the way is different from the one
    in IEC 61883-6.

    MIDI messages are put into a certain position in message chunks. One data
    block can includes one byte of the MIDI messages. When data block includes
    a MIDI byte, the block has a flag in a certain position of the message
    chunk. These positions are unique depending on protocols.

    Once a data block includes a MIDI byte, some following data blocks includes
    no MIDI bytes. Next MIDI byte appears on a data block corresponding to
    next cycle of physical MIDI bus. This seems to avoid buffer overflow caused
    by bandwidth differences between IEEE 1394 bus and physical MIDI bus.

    This commit adds MIDI functionality to transfer/receive MIDI messages.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • This commit adds a functionality to manage packet streaming for MOTU
    FireWire series.

    The streaming is not controlled by CMP, thus against IEC 61883-1. Write
    transaction to certain addresses start/stop packet streaming.

    Transactions to 0x'ffff'f000'0b00 results in isochronous channel number for
    both directions and starting/stopping transmission of packets. The
    isochronous channel number is represented in 6 bit field, thus units can
    identify the channels up to 64, as IEEE 1394 bus specification described.

    Transactions to 0x'ffff'f000'0b10 results in packet format for both
    directions and transmission speed. When each of data block includes fixed
    part of data chunks only, corresponding flags stand.

    When bus reset occurs, the units continue to transmit packets with
    non-contiguous data block counter. This causes discontinuity detection in
    packet streaming engine and ALSA PCM applications receives EPIPE from any
    I/O operation. In this case, typical applications manage to recover
    corresponding PCM substream. This behaviour is kicked much earlier than
    callback of bus reset handler by Linux FireWire subsystem, therefore
    status of packet streaming is not changed in the handler.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto