On 06/29/2015 11:19 PM, Benoit Parrot wrote: > Upon a S_FMT the input/requested frame size and pixel format is > overwritten by the current sub-device settings. > Fix this so application can actually set the frame size and format. > > Fixes: 417d2e507edc ("[media] media: platform: add VPFE capture driver support for AM437X") > Cc: <stable@xxxxxxxxxxxxxxx> # v4.0+ > Signed-off-by: Benoit Parrot <bparrot@xxxxxx> > --- > Changes since v2: > - fix the stable commit reference syntax > > drivers/media/platform/am437x/am437x-vpfe.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c > index eb25c43da126..0fa62c50f62d 100644 > --- a/drivers/media/platform/am437x/am437x-vpfe.c > +++ b/drivers/media/platform/am437x/am437x-vpfe.c > @@ -1584,7 +1584,7 @@ static int vpfe_s_fmt(struct file *file, void *priv, > return -EBUSY; > } > > - ret = vpfe_try_fmt(file, priv, fmt); > + ret = vpfe_try_fmt(file, priv, &format); > if (ret) > return ret; > > I'm sorry, but this is wrong. The actual bug is not in s_fmt but in try_fmt. try_fmt is not actually attempting to 'try' the format, but it just gets the current subdev settings. Instead it should do what s_fmt is doing, except for actually setting the format. Frankly the am437x code is a bit of a mess in how it implements try and s_fmt. Now, I am going to merge this patch anyway since it is clear from the code that &format was intended. But this code certainly needs some more TLC since this patch only addresses a small part of a much bigger problem. Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html