From: Laurent Pinchart Date: Sun, 26 Oct 2025 18:08:29 +0000 (+0200) Subject: media: saa7146: Replace saa7146_ext_vv.vbi_fops with write function X-Git-Tag: v6.19-rc1~159^2~92 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ba92a96b1e95a67cb736d095dceb788207b90a7b;p=thirdparty%2Fkernel%2Flinux.git media: saa7146: Replace saa7146_ext_vv.vbi_fops with write function The vbi_fops stored in struct saa7146_ext_vv is a full v4l2_file_operations, but only its .write field is used. Replace it with a single vbi_write function pointer to save memory. Signed-off-by: Laurent Pinchart Signed-off-by: Hans Verkuil --- diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c index 9d0362a75ecd5..a9e3bad76d540 100644 --- a/drivers/media/common/saa7146/saa7146_fops.c +++ b/drivers/media/common/saa7146/saa7146_fops.c @@ -186,11 +186,11 @@ static ssize_t fops_write(struct file *file, const char __user *data, size_t cou struct saa7146_dev *dev = video_drvdata(file); int ret; - if (vdev->vfl_type != VFL_TYPE_VBI || !dev->ext_vv_data->vbi_fops.write) + if (vdev->vfl_type != VFL_TYPE_VBI || !dev->ext_vv_data->vbi_write) return -EINVAL; if (mutex_lock_interruptible(vdev->lock)) return -ERESTARTSYS; - ret = dev->ext_vv_data->vbi_fops.write(file, data, count, ppos); + ret = dev->ext_vv_data->vbi_write(file, data, count, ppos); mutex_unlock(vdev->lock); return ret; } diff --git a/drivers/staging/media/av7110/av7110_v4l.c b/drivers/staging/media/av7110/av7110_v4l.c index 04e659243f02b..200a7a29ea317 100644 --- a/drivers/staging/media/av7110/av7110_v4l.c +++ b/drivers/staging/media/av7110/av7110_v4l.c @@ -940,7 +940,7 @@ static struct saa7146_ext_vv av7110_vv_data_st = { .num_stds = ARRAY_SIZE(standard), .std_callback = &std_callback, - .vbi_fops.write = av7110_vbi_write, + .vbi_write = av7110_vbi_write, }; static struct saa7146_ext_vv av7110_vv_data_c = { @@ -953,6 +953,6 @@ static struct saa7146_ext_vv av7110_vv_data_c = { .num_stds = ARRAY_SIZE(standard), .std_callback = &std_callback, - .vbi_fops.write = av7110_vbi_write, + .vbi_write = av7110_vbi_write, }; diff --git a/include/media/drv-intf/saa7146_vv.h b/include/media/drv-intf/saa7146_vv.h index 55c7d70b9febc..f66f4dfccf14b 100644 --- a/include/media/drv-intf/saa7146_vv.h +++ b/include/media/drv-intf/saa7146_vv.h @@ -130,7 +130,8 @@ struct saa7146_ext_vv /* pointer to the saa7146 core ops */ const struct v4l2_ioctl_ops *core_ops; - struct v4l2_file_operations vbi_fops; + ssize_t (*vbi_write)(struct file *file, const char __user *data, + size_t count, loff_t *ppos); }; struct saa7146_use_ops {