• Hugues Fruchet's avatar
    [media] st-delta: rpmsg ipc support · 91c83f39
    Hugues Fruchet authored
    IPC (Inter Process Communication) support for communication with
    DELTA coprocessor firmware using rpmsg kernel framework.
    Based on 4 services open/set_stream/decode/close and their associated
    rpmsg messages.
    The messages structures are duplicated on both host and firmware
    side and are packed (use only of 32 bits size fields in messages
    structures to ensure packing).
    Each service is synchronous; service returns only when firmware
    acknowledges the associated command message.
    Due to significant parameters size exchanged from host to copro,
    parameters are not inserted in rpmsg messages. Instead, parameters are
    stored in physical memory shared between host and coprocessor.
    Memory is non-cacheable, so no special operation is required
    to ensure memory coherency on host and on coprocessor side.
    Multi-instance support and re-entrance are ensured using host_hdl and
    copro_hdl in message header exchanged between both host and coprocessor.
    This avoids to manage tables on both sides to get back the running context
    of each instance.
    Acked-by: default avatarPeter Griffin <peter.griffin@linaro.org>
    Signed-off-by: default avatarHugues Fruchet <hugues.fruchet@st.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    91c83f39
delta-v4l2.c 45 KB