• Eugen Hristev's avatar
    media: microchip: microchip-isc: implement media controller · 78ba0d79
    Eugen Hristev authored
    As a top MC video driver, the microchip-isc should not propagate the format
    to the subdevice, it should rather check at start_streaming() time if the
    subdev is properly configured with a compatible format.
    Removed the whole format finding logic, and reworked the format
    verification at start_streaming time, such that the ISC will return an
    error if the subdevice is not properly configured.
    To achieve this, media_pipeline_start is called and a link_validate
    callback is created to check the formats.
    With this being done, the module parameter 'sensor_preferred' makes no
    sense anymore. The ISC should not decide which format the sensor is using.
    The ISC should only cope with the situation and inform userspace if the
    streaming is possible in the current configuration.
    The redesign of the format propagation has also risen the question of the
    enumfmt callback. If enumfmt is called with an mbus_code, the enumfmt
    handler should only return the formats that are supported for this
    mbus_code. Otherwise, the enumfmt will report all the formats that the ISC
    could output.
    With this rework, the dynamic list of user formats is removed. It makes no
    more sense to identify at complete time which formats the sensor could
    emit, and add those into a separate dynamic list.
    The ISC will start with a simple preconfigured default format, and at
    link validate time, decide whether it can use the format that is
    configured on the sink or not.
    >From now on, the driver also advertises the IO_MC capability.
    Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
    Reviewed-by: default avatarJacopo Mondi <jacopo@jmondi.org>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
    78ba0d79
microchip-sama5d2-isc.c 18.4 KB