• Laurent Pinchart's avatar
    media: i2c: imx219: Perform a full mode set unconditionally · faece4ad
    Laurent Pinchart authored
    The .set_fmt() handler tries to avoid updating the sensor configuration
    when the mode hasn't changed. It does so by comparing both the mode and
    the media bus code. While the latter correctly uses the media bus code
    stored in the subdev state, the former compares the mode being set with
    the active mode, regardless of whether .set_fmt() is called for the
    ACTIVE or TRY format. This can lead to .set_fmt() returning early when
    operating on TRY formats.
    
    This could be fixed by replacing the mode comparison with width and
    height comparisons, using the frame size stored in the subdev state.
    However, the optimization that avoids updates to the sensor
    configuration is not very useful, and is not commonly found in sensor
    drivers. To improve consistency across sensor drivers, it is better, in
    addition to being easier, to simply drop it. Do so.
    
    Fixes: e8a5b1df ("media: i2c: imx219: Use subdev active state")
    Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    faece4ad
imx219.c 37.6 KB