diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch')
-rw-r--r--[-rwxr-xr-x] | target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch | 107 |
1 files changed, 44 insertions, 63 deletions
diff --git a/target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch b/target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch index bd554a9..a8fa989 100755..100644 --- a/target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch +++ b/target/linux/brcm2708/patches-3.18/0028-V4L2-Fixes-from-6by9.patch @@ -232,8 +232,6 @@ bcm2835-camera: stop_streaming now has a void return drivers/media/platform/bcm2835/mmal-vchiq.c | 4 +- 8 files changed, 1300 insertions(+), 187 deletions(-) -diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig -index 897616c..3f99687 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -708,6 +708,9 @@ CONFIG_DVB_AS102=m @@ -246,8 +244,6 @@ index 897616c..3f99687 100644 CONFIG_RADIO_SI470X=y CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m -diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c -index 1c9d9d5..e5a0010 100644 --- a/drivers/media/platform/bcm2835/bcm2835-camera.c +++ b/drivers/media/platform/bcm2835/bcm2835-camera.c @@ -36,7 +36,8 @@ @@ -415,7 +411,7 @@ index 1c9d9d5..e5a0010 100644 }; static struct mmal_fmt *get_format(struct v4l2_format *f) -@@ -229,7 +336,8 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, +@@ -229,7 +336,8 @@ static void buffer_cb(struct vchiq_mmal_ } } else { if (dev->capture.frame_count) { @@ -425,7 +421,7 @@ index 1c9d9d5..e5a0010 100644 s64 runtime_us = pts - dev->capture.vc_start_timestamp; u32 div = 0; -@@ -250,7 +358,7 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, +@@ -250,7 +358,7 @@ static void buffer_cb(struct vchiq_mmal_ USEC_PER_SEC; } v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, @@ -434,7 +430,7 @@ index 1c9d9d5..e5a0010 100644 "with offset %llu to %d.%06d\n", (int)dev->capture.kernel_start_ts. tv_sec, -@@ -425,7 +533,15 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) +@@ -425,7 +533,15 @@ static int start_streaming(struct vb2_qu vchiq_mmal_port_enable(dev->instance, dev->capture.port, buffer_cb); if (ret) { v4l2_err(&dev->v4l2_dev, @@ -451,7 +447,7 @@ index 1c9d9d5..e5a0010 100644 return -1; } -@@ -439,7 +555,7 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) +@@ -439,7 +555,7 @@ static int start_streaming(struct vb2_qu } /* abort streaming and wait for last buffer */ @@ -460,7 +456,7 @@ index 1c9d9d5..e5a0010 100644 { int ret; struct bm2835_mmal_dev *dev = vb2_get_drv_priv(vq); -@@ -451,8 +567,11 @@ static int stop_streaming(struct vb2_queue *vq) +@@ -451,8 +567,11 @@ static int stop_streaming(struct vb2_que dev->capture.frame_count = 0; /* ensure a format has actually been set */ @@ -474,7 +470,7 @@ index 1c9d9d5..e5a0010 100644 v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, "stopping capturing\n"); -@@ -483,12 +602,8 @@ static int stop_streaming(struct vb2_queue *vq) +@@ -483,12 +602,8 @@ static int stop_streaming(struct vb2_que ret); } @@ -489,7 +485,7 @@ index 1c9d9d5..e5a0010 100644 } static void bm2835_mmal_lock(struct vb2_queue *vq) -@@ -530,6 +645,7 @@ static int vidioc_enum_fmt_vid_overlay(struct file *file, void *priv, +@@ -530,6 +645,7 @@ static int vidioc_enum_fmt_vid_overlay(s strlcpy(f->description, fmt->name, sizeof(f->description)); f->pixelformat = fmt->fourcc; @@ -497,7 +493,7 @@ index 1c9d9d5..e5a0010 100644 return 0; } -@@ -647,10 +763,18 @@ static int vidioc_g_fbuf(struct file *file, void *fh, +@@ -647,10 +763,18 @@ static int vidioc_g_fbuf(struct file *fi { /* The video overlay must stay within the framebuffer and can't be positioned independently. */ @@ -519,7 +515,7 @@ index 1c9d9d5..e5a0010 100644 return 0; } -@@ -717,6 +841,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +@@ -717,6 +841,8 @@ static int vidioc_enum_fmt_vid_cap(struc strlcpy(f->description, fmt->name, sizeof(f->description)); f->pixelformat = fmt->fourcc; @@ -528,7 +524,7 @@ index 1c9d9d5..e5a0010 100644 return 0; } -@@ -729,20 +855,13 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +@@ -729,20 +855,13 @@ static int vidioc_g_fmt_vid_cap(struct f f->fmt.pix.height = dev->capture.height; f->fmt.pix.field = V4L2_FIELD_NONE; f->fmt.pix.pixelformat = dev->capture.fmt->fourcc; @@ -554,7 +550,7 @@ index 1c9d9d5..e5a0010 100644 f->fmt.pix.priv = 0; v4l2_dump_pix_format(1, bcm2835_v4l2_debug, &dev->v4l2_dev, &f->fmt.pix, -@@ -766,21 +885,35 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +@@ -766,21 +885,35 @@ static int vidioc_try_fmt_vid_cap(struct } f->fmt.pix.field = V4L2_FIELD_NONE; @@ -600,7 +596,7 @@ index 1c9d9d5..e5a0010 100644 v4l2_dump_pix_format(1, bcm2835_v4l2_debug, &dev->v4l2_dev, &f->fmt.pix, __func__); return 0; -@@ -818,8 +951,8 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -818,8 +951,8 @@ static int mmal_setup_components(struct switch (mfmt->mmal_component) { case MMAL_COMPONENT_CAMERA: /* Make a further decision on port based on resolution */ @@ -611,7 +607,7 @@ index 1c9d9d5..e5a0010 100644 camera_port = port = &dev->component[MMAL_COMPONENT_CAMERA]-> output[MMAL_CAMERA_PORT_VIDEO]; -@@ -861,8 +994,9 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -861,8 +994,9 @@ static int mmal_setup_components(struct camera_port->es.video.crop.y = 0; camera_port->es.video.crop.width = f->fmt.pix.width; camera_port->es.video.crop.height = f->fmt.pix.height; @@ -622,7 +618,7 @@ index 1c9d9d5..e5a0010 100644 ret = vchiq_mmal_port_set_format(dev->instance, camera_port); -@@ -896,8 +1030,10 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -896,8 +1030,10 @@ static int mmal_setup_components(struct preview_port->es.video.crop.y = 0; preview_port->es.video.crop.width = f->fmt.pix.width; preview_port->es.video.crop.height = f->fmt.pix.height; @@ -635,7 +631,7 @@ index 1c9d9d5..e5a0010 100644 ret = vchiq_mmal_port_set_format(dev->instance, preview_port); if (overlay_enabled) { ret = vchiq_mmal_port_connect_tunnel( -@@ -913,7 +1049,9 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -913,7 +1049,9 @@ static int mmal_setup_components(struct if (ret) { v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, @@ -646,7 +642,7 @@ index 1c9d9d5..e5a0010 100644 /* ensure capture is not going to be tried */ dev->capture.port = NULL; } else { -@@ -927,69 +1065,91 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -927,69 +1065,91 @@ static int mmal_setup_components(struct camera_port->current_buffer.num = camera_port->recommended_buffer.num; @@ -792,7 +788,7 @@ index 1c9d9d5..e5a0010 100644 } } else { /* configure buffering */ -@@ -1001,13 +1161,20 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, +@@ -1001,13 +1161,20 @@ static int mmal_setup_components(struct if (!ret) { dev->capture.fmt = mfmt; dev->capture.stride = f->fmt.pix.bytesperline; @@ -815,7 +811,7 @@ index 1c9d9d5..e5a0010 100644 } } -@@ -1048,14 +1215,115 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +@@ -1048,14 +1215,115 @@ static int vidioc_s_fmt_vid_cap(struct f } ret = mmal_setup_components(dev, f); @@ -932,7 +928,7 @@ index 1c9d9d5..e5a0010 100644 static const struct v4l2_ioctl_ops camera0_ioctl_ops = { /* overlay */ .vidioc_enum_fmt_vid_overlay = vidioc_enum_fmt_vid_overlay, -@@ -1084,6 +1352,51 @@ static const struct v4l2_ioctl_ops camera0_ioctl_ops = { +@@ -1084,6 +1352,51 @@ static const struct v4l2_ioctl_ops camer .vidioc_querybuf = vb2_ioctl_querybuf, .vidioc_qbuf = vb2_ioctl_qbuf, .vidioc_dqbuf = vb2_ioctl_dqbuf, @@ -984,7 +980,7 @@ index 1c9d9d5..e5a0010 100644 .vidioc_streamon = vb2_ioctl_streamon, .vidioc_streamoff = vb2_ioctl_streamoff, -@@ -1122,8 +1435,10 @@ static int set_camera_parameters(struct vchiq_mmal_instance *instance, +@@ -1122,8 +1435,10 @@ static int set_camera_parameters(struct .max_stills_h = MAX_HEIGHT, .stills_yuv422 = 1, .one_shot_stills = 1, @@ -997,7 +993,7 @@ index 1c9d9d5..e5a0010 100644 .num_preview_video_frames = 3, .stills_capture_circular_buffer_height = 0, .fast_preview_resume = 0, -@@ -1141,6 +1456,7 @@ static int __init mmal_init(struct bm2835_mmal_dev *dev) +@@ -1141,6 +1456,7 @@ static int __init mmal_init(struct bm283 { int ret; struct mmal_es_format *format; @@ -1005,7 +1001,7 @@ index 1c9d9d5..e5a0010 100644 ret = vchiq_mmal_init(&dev->instance); if (ret < 0) -@@ -1176,8 +1492,8 @@ static int __init mmal_init(struct bm2835_mmal_dev *dev) +@@ -1176,8 +1492,8 @@ static int __init mmal_init(struct bm283 format->es->video.crop.y = 0; format->es->video.crop.width = 1024; format->es->video.crop.height = 768; @@ -1016,7 +1012,7 @@ index 1c9d9d5..e5a0010 100644 format = &dev->component[MMAL_COMPONENT_CAMERA]-> -@@ -1192,8 +1508,14 @@ static int __init mmal_init(struct bm2835_mmal_dev *dev) +@@ -1192,8 +1508,14 @@ static int __init mmal_init(struct bm283 format->es->video.crop.y = 0; format->es->video.crop.width = 1024; format->es->video.crop.height = 768; @@ -1033,7 +1029,7 @@ index 1c9d9d5..e5a0010 100644 format = &dev->component[MMAL_COMPONENT_CAMERA]-> -@@ -1207,13 +1529,22 @@ static int __init mmal_init(struct bm2835_mmal_dev *dev) +@@ -1207,13 +1529,22 @@ static int __init mmal_init(struct bm283 format->es->video.crop.y = 0; format->es->video.crop.width = 2592; format->es->video.crop.height = 1944; @@ -1057,7 +1053,7 @@ index 1c9d9d5..e5a0010 100644 /* get the preview component ready */ ret = vchiq_mmal_component_init( -@@ -1260,6 +1591,14 @@ static int __init mmal_init(struct bm2835_mmal_dev *dev) +@@ -1260,6 +1591,14 @@ static int __init mmal_init(struct bm283 } { @@ -1072,7 +1068,7 @@ index 1c9d9d5..e5a0010 100644 unsigned int enable = 1; vchiq_mmal_port_parameter_set( dev->instance, -@@ -1312,6 +1651,11 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, +@@ -1312,6 +1651,11 @@ static int __init bm2835_mmal_init_devic int ret; *vfd = vdev_template; @@ -1084,7 +1080,7 @@ index 1c9d9d5..e5a0010 100644 vfd->v4l2_dev = &dev->v4l2_dev; -@@ -1326,8 +1670,9 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, +@@ -1326,8 +1670,9 @@ static int __init bm2835_mmal_init_devic if (ret < 0) return ret; @@ -1096,7 +1092,7 @@ index 1c9d9d5..e5a0010 100644 return 0; } -@@ -1335,9 +1680,9 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, +@@ -1335,9 +1680,9 @@ static int __init bm2835_mmal_init_devic static struct v4l2_format default_v4l2_format = { .fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG, .fmt.pix.width = 1024, @@ -1118,8 +1114,6 @@ index 1c9d9d5..e5a0010 100644 ret = mmal_setup_components(dev, &default_v4l2_format); if (ret < 0) { v4l2_err(&dev->v4l2_dev, -diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.h b/drivers/media/platform/bcm2835/bcm2835-camera.h -index 883eab7..7fe9f65 100644 --- a/drivers/media/platform/bcm2835/bcm2835-camera.h +++ b/drivers/media/platform/bcm2835/bcm2835-camera.h @@ -15,7 +15,7 @@ @@ -1189,8 +1183,6 @@ index 883eab7..7fe9f65 100644 /* Debug helpers */ -diff --git a/drivers/media/platform/bcm2835/controls.c b/drivers/media/platform/bcm2835/controls.c -index d1408e5..3017b94 100644 --- a/drivers/media/platform/bcm2835/controls.c +++ b/drivers/media/platform/bcm2835/controls.c @@ -30,11 +30,23 @@ @@ -1249,7 +1241,7 @@ index d1408e5..3017b94 100644 }; struct v4l2_to_mmal_effects_setting { -@@ -126,6 +145,25 @@ static const struct v4l2_to_mmal_effects_setting +@@ -126,6 +145,25 @@ static const struct v4l2_to_mmal_effects 1, 1, 0, 0, 0, {0, 0, 0, 0, 0} } }; @@ -1275,7 +1267,7 @@ index d1408e5..3017b94 100644 /* control handlers*/ -@@ -133,10 +171,7 @@ static int ctrl_set_rational(struct bm2835_mmal_dev *dev, +@@ -133,10 +171,7 @@ static int ctrl_set_rational(struct bm28 struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) { @@ -1287,7 +1279,7 @@ index d1408e5..3017b94 100644 struct vchiq_mmal_port *control; control = &dev->component[MMAL_COMPONENT_CAMERA]->control; -@@ -166,6 +201,41 @@ static int ctrl_set_value(struct bm2835_mmal_dev *dev, +@@ -166,6 +201,41 @@ static int ctrl_set_value(struct bm2835_ &u32_value, sizeof(u32_value)); } @@ -1329,7 +1321,7 @@ index d1408e5..3017b94 100644 static int ctrl_set_rotate(struct bm2835_mmal_dev *dev, struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) -@@ -245,37 +315,97 @@ static int ctrl_set_exposure(struct bm2835_mmal_dev *dev, +@@ -245,37 +315,97 @@ static int ctrl_set_exposure(struct bm28 struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) { @@ -1439,7 +1431,7 @@ index d1408e5..3017b94 100644 struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) { -@@ -285,24 +415,18 @@ static int ctrl_set_metering_mode(struct bm2835_mmal_dev *dev, +@@ -285,24 +415,18 @@ static int ctrl_set_metering_mode(struct control = &dev->component[MMAL_COMPONENT_CAMERA]->control; switch (ctrl->val) { @@ -1472,7 +1464,7 @@ index d1408e5..3017b94 100644 } return vchiq_mmal_port_parameter_set(dev->instance, control, -@@ -367,6 +491,29 @@ static int ctrl_set_awb_mode(struct bm2835_mmal_dev *dev, +@@ -367,6 +491,29 @@ static int ctrl_set_awb_mode(struct bm28 &u32_value, sizeof(u32_value)); } @@ -1502,7 +1494,7 @@ index d1408e5..3017b94 100644 static int ctrl_set_image_effect(struct bm2835_mmal_dev *dev, struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) -@@ -443,8 +590,8 @@ static int ctrl_set_colfx(struct bm2835_mmal_dev *dev, +@@ -443,8 +590,8 @@ static int ctrl_set_colfx(struct bm2835_ &dev->colourfx, sizeof(dev->colourfx)); v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, @@ -1513,7 +1505,7 @@ index d1408e5..3017b94 100644 (ret == 0 ? 0 : -EINVAL)); return (ret == 0 ? 0 : EINVAL); } -@@ -494,7 +641,7 @@ static int ctrl_set_bitrate_mode(struct bm2835_mmal_dev *dev, +@@ -494,7 +641,7 @@ static int ctrl_set_bitrate_mode(struct return 0; } @@ -1522,7 +1514,7 @@ index d1408e5..3017b94 100644 struct v4l2_ctrl *ctrl, const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) { -@@ -510,12 +657,247 @@ static int ctrl_set_q_factor(struct bm2835_mmal_dev *dev, +@@ -510,12 +657,247 @@ static int ctrl_set_q_factor(struct bm28 &u32_value, sizeof(u32_value)); } @@ -1770,7 +1762,7 @@ index d1408e5..3017b94 100644 if ((mmal_ctrl == NULL) || (mmal_ctrl->id != ctrl->id) || -@@ -524,7 +906,13 @@ static int bm2835_mmal_s_ctrl(struct v4l2_ctrl *ctrl) +@@ -524,7 +906,13 @@ static int bm2835_mmal_s_ctrl(struct v4l return -EINVAL; } @@ -1785,7 +1777,7 @@ index d1408e5..3017b94 100644 } static const struct v4l2_ctrl_ops bm2835_mmal_ctrl_ops = { -@@ -537,40 +925,54 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = { +@@ -537,40 +925,54 @@ static const struct bm2835_mmal_v4l2_ctr { V4L2_CID_SATURATION, MMAL_CONTROL_TYPE_STD, -100, 100, 0, 1, NULL, @@ -1849,7 +1841,7 @@ index d1408e5..3017b94 100644 }, /* todo this needs mixing in with set exposure { -@@ -578,83 +980,258 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = { +@@ -578,83 +980,258 @@ static const struct bm2835_mmal_v4l2_ctr }, */ { @@ -2123,7 +2115,7 @@ index d1408e5..3017b94 100644 int bm2835_mmal_init_controls(struct bm2835_mmal_dev *dev, struct v4l2_ctrl_handler *hdl) { -@@ -674,10 +1251,30 @@ int bm2835_mmal_init_controls(struct bm2835_mmal_dev *dev, +@@ -674,10 +1251,30 @@ int bm2835_mmal_init_controls(struct bm2 break; case MMAL_CONTROL_TYPE_STD_MENU: @@ -2155,8 +2147,6 @@ index d1408e5..3017b94 100644 case MMAL_CONTROL_TYPE_INT_MENU: dev->ctrls[c] = v4l2_ctrl_new_int_menu(hdl, -diff --git a/drivers/media/platform/bcm2835/mmal-common.h b/drivers/media/platform/bcm2835/mmal-common.h -index 84abbb3..35698c8 100644 --- a/drivers/media/platform/bcm2835/mmal-common.h +++ b/drivers/media/platform/bcm2835/mmal-common.h @@ -26,6 +26,7 @@ @@ -2167,8 +2157,6 @@ index 84abbb3..35698c8 100644 u32 mmal; int depth; u32 mmal_component; /* MMAL component index to be used to encode */ -diff --git a/drivers/media/platform/bcm2835/mmal-encodings.h b/drivers/media/platform/bcm2835/mmal-encodings.h -index 856e80e..024d620 100644 --- a/drivers/media/platform/bcm2835/mmal-encodings.h +++ b/drivers/media/platform/bcm2835/mmal-encodings.h @@ -12,6 +12,8 @@ @@ -2223,8 +2211,6 @@ index 856e80e..024d620 100644 +/* @} MmalColorSpace List */ + +#endif /* MMAL_ENCODINGS_H */ -diff --git a/drivers/media/platform/bcm2835/mmal-parameters.h b/drivers/media/platform/bcm2835/mmal-parameters.h -index c611b58..aa0fd18 100644 --- a/drivers/media/platform/bcm2835/mmal-parameters.h +++ b/drivers/media/platform/bcm2835/mmal-parameters.h @@ -57,7 +57,8 @@ enum mmal_parameter_common_type { @@ -2251,7 +2237,7 @@ index c611b58..aa0fd18 100644 }; enum mmal_parameter_camera_config_timestamp_mode { -@@ -176,6 +184,14 @@ enum mmal_parameter_camera_config_timestamp_mode { +@@ -176,6 +184,14 @@ enum mmal_parameter_camera_config_timest */ }; @@ -2390,11 +2376,9 @@ index c611b58..aa0fd18 100644 }; /** Valid mirror modes */ -diff --git a/drivers/media/platform/bcm2835/mmal-vchiq.c b/drivers/media/platform/bcm2835/mmal-vchiq.c -index a06fb44..76f249e 100644 --- a/drivers/media/platform/bcm2835/mmal-vchiq.c +++ b/drivers/media/platform/bcm2835/mmal-vchiq.c -@@ -742,7 +742,7 @@ static int send_synchronous_mmal_msg(struct vchiq_mmal_instance *instance, +@@ -742,7 +742,7 @@ static int send_synchronous_mmal_msg(str return ret; } @@ -2403,7 +2387,7 @@ index a06fb44..76f249e 100644 if (ret <= 0) { pr_err("error %d waiting for sync completion\n", ret); if (ret == 0) -@@ -1326,7 +1326,7 @@ static int port_parameter_get(struct vchiq_mmal_instance *instance, +@@ -1326,7 +1326,7 @@ static int port_parameter_get(struct vch memcpy(value, &rmsg->u.port_parameter_get_reply.value, rmsg->u.port_parameter_get_reply.size); @@ -2412,6 +2396,3 @@ index a06fb44..76f249e 100644 ret, port->component->handle, port->handle, parameter_id); release_msg: --- -1.8.3.2 - |