Re: [PATCH] media: i2c: imx274: implement enum_mbus_code

From: Luca Ceresoli
Date: Thu Nov 18 2021 - 12:39:14 EST


Hi,

On 18/11/21 18:26, Sakari Ailus wrote:
> Hi Luca,
>
> On Thu, Nov 18, 2021 at 06:11:35PM +0100, Luca Ceresoli wrote:
>> Hi Eugen,
>>
>> On 18/11/21 16:40, Eugen Hristev wrote:
>>> Current driver supports only SRGGB 10 bit RAW bayer format.
>>> Add the enum_mbus_code implementation to report this format supported.
>>>
>>> # v4l2-ctl -d /dev/v4l-subdev3 --list-subdev-mbus-codes
>>> ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0)
>>> 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10
>>> #
>>>
>>> Signed-off-by: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx>
>>
>> Generally OK, but I have a few minor comments.
>>
>>> ---
>>> drivers/media/i2c/imx274.c | 14 ++++++++++++++
>>> 1 file changed, 14 insertions(+)
>>>
>>> diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
>>> index 2e804e3b70c4..25a4ef8f6187 100644
>>> --- a/drivers/media/i2c/imx274.c
>>> +++ b/drivers/media/i2c/imx274.c
>>> @@ -1909,7 +1909,21 @@ static int imx274_set_frame_interval(struct stimx274 *priv,
>>> return err;
>>> }
>>>
>>> +static int imx274_enum_mbus_code(struct v4l2_subdev *sd,
>>> + struct v4l2_subdev_state *sd_state,
>>> + struct v4l2_subdev_mbus_code_enum *code)
>>> +{
>>> + if (code->index > 0)
>>> + return -EINVAL;
>>
>> Many driver do check code->pad too, so you might want to do
>>
>> if (code->pad > 0 || code->index > 0)
>> return -EINVAL;
>
> The caller will have checked the pad exists, and there's a single one on
> the subdev I suppose.

Thanks for your explanation. That's very reasonable indeed.

Now, why do many drivers do that? Old checks that later turned useless
and nobody ever removed?

--
Luca