• Milen Mitkov's avatar
    media: camss: sm8250: Virtual channels for CSID · 3c4ed72a
    Milen Mitkov authored
    CSID hardware on SM8250 can demux up to 4 simultaneous streams
    based on virtual channel (vc) or datatype (dt).
    The CSID subdevice entity now has 4 source ports that can be
    enabled/disabled and thus can control which virtual channels
    are enabled. Datatype demuxing not tested.
    
    In order to keep a valid internal state of the subdevice,
    implicit format propagation from the sink to the source pads
    has been preserved. However, the format on each source pad
    can be different and in that case it must be configured explicitly.
    
    CSID's s_stream is called when any stream is started or stopped.
    It will call configure_streams() that will rewrite IRQ settings to HW.
    When multiple streams are running simultaneously there is an issue
    when writing IRQ settings for one stream while another is still
    running, thus avoid re-writing settings if they were not changed
    in link setup, or by fully powering off the CSID hardware.
    Signed-off-by: default avatarMilen Mitkov <quic_mmitkov@quicinc.com>
    Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
    Tested-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
    Acked-by: default avatarRobert Foss <robert.foss@linaro.org>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    3c4ed72a
camss-csid.h 6 KB