From: Tomasz Figa <tfiga@chromium.org>
To: Jungo Lin <jungo.lin@mediatek.com>
Cc: devicetree@vger.kernel.org, sean.cheng@mediatek.com,
frederic.chen@mediatek.com, rynn.wu@mediatek.com,
srv_heupstream@mediatek.com, robh@kernel.org,
ryan.yu@mediatek.com, frankie.chiu@mediatek.com,
hverkuil@xs4all.nl, ddavenport@chromium.org,
sj.huang@mediatek.com, linux-mediatek@lists.infradead.org,
laurent.pinchart@ideasonboard.com, matthias.bgg@gmail.com,
mchehab@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [RFC,v3 5/9] media: platform: Add Mediatek ISP P1 V4L2 control
Date: Mon, 1 Jul 2019 14:50:53 +0900 [thread overview]
Message-ID: <20190701055053.GA137710@chromium.org> (raw)
In-Reply-To: <20190611035344.29814-6-jungo.lin@mediatek.com>
Hi Jungo,
On Tue, Jun 11, 2019 at 11:53:40AM +0800, Jungo Lin wrote:
> Reserved Mediatek ISP P1 V4L2 control number with 16.
> Moreover, add two V4L2 controls for ISP P1 user space
> usage.
>
> 1. V4L2_CID_MTK_GET_BIN_INFO
> - Provide the image output width & height in case
> camera binning mode is enabled.
Could you explain with a bit more details what these binned width and height
would mean? How would they relate to the video CAPTURE node width and height?
Isn't this something that should be rather exposed as an appropriate
selection rectangle, instead of custom controls?
>
> 2. V4L2_CID_MTK_RAW_PATH
> - Export the path control of the main stream to user space.
> One is pure raw and the other is processing raw.
> The default value is 0 which outputs the pure raw bayer image
> from sesnor, without image processing in ISP HW.
Is it just effectively a full processing bypass? The driver seems to only
update the related configuration when the streaming starts. Can it be
controlled per-frame?
Generally this sounds more like something that should be modelled using the
media topology, similar to the example below.
/----------------\ /-------------------\ /--------------\
| |---| | | |
| Capture Subdev | | Processing Subdev |-o-| CAPTURE node |
| |-\ | | | | |
\----------------/ | \-------------------/ | \--------------/
| |
\-----------------------/
Then the userspace can select whether it wants the image from the capture
interface directly or procesed by the ISP by configuring the media links
appropriately.
The current limitation of this model is that it can't be easily configured
per-frame, as media configurations are not included in the requests yet.
[snip]
> +static int handle_ctrl_get_bin_info(struct v4l2_ctrl *ctrl, int is_width)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct v4l2_format *fmt;
> +
> + fmt = &cam_dev->vdev_nodes[MTK_CAM_P1_MAIN_STREAM_OUT].vdev_fmt;
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get bin info w*h:%d*%d is_width:%d",
> + fmt->fmt.pix_mp.width, fmt->fmt.pix_mp.height, is_width);
> +
> + if (is_width)
> + ctrl->val = fmt->fmt.pix_mp.width;
> + else
> + ctrl->val = fmt->fmt.pix_mp.height;
This seems to contradict to what the comment in the header says, because it just
always returns the video node format and doesn't seem to care about whether
binning is enabled or not.
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_get_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + ctrl->val = (p1_dev->isp_ctx.isp_raw_path == ISP_PROCESS_RAW_PATH);
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get process raw:%d", ctrl->val);
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_set_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + p1_dev->isp_ctx.isp_raw_path = (ctrl->val) ?
> + ISP_PROCESS_RAW_PATH : ISP_PURE_RAW_PATH;
> + dev_dbg(&cam_dev->pdev->dev, "Set process raw:%d", ctrl->val);
> + return 0;
> +}
> +
> +static int mtk_cam_dev_g_ctrl(struct v4l2_ctrl *ctrl)
This is g_volatile_ctrl not, g_ctrl.
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + handle_ctrl_get_process_raw(ctrl);
> + break;
No need to provide getters for non-volatile controls. The
framework manages them.
> + case V4L2_CID_MTK_GET_BIN_WIDTH:
> + handle_ctrl_get_bin_info(ctrl, 1);
> + break;
> + case V4L2_CID_MTK_GET_BIN_HEIGTH:
> + handle_ctrl_get_bin_info(ctrl, 0);
It's trivial to get the value, so there isn't much benefit in having a
function to do so, especially if one needs something like a is_width
argument that further complicates the code.
> + break;
> + default:
> + return -EINVAL;
> + }
> + return 0;
> +}
> +
> +static int mtk_cam_dev_s_ctrl(struct v4l2_ctrl *ctrl)
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + return handle_ctrl_set_process_raw(ctrl);
Same as above. The operation is too trivial to deserve a function.
> + default:
> + return -EINVAL;
> + }
> +}
> +
> +static const struct v4l2_ctrl_ops mtk_cam_dev_ctrl_ops = {
> + .g_volatile_ctrl = mtk_cam_dev_g_ctrl,
> + .s_ctrl = mtk_cam_dev_s_ctrl,
> +};
> +
> +struct v4l2_ctrl_config mtk_cam_controls[] = {
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_PROCESSING_RAW,
> + .name = "MTK CAM PROCESSING RAW",
> + .type = V4L2_CTRL_TYPE_BOOLEAN,
> + .min = 0,
> + .max = 1,
> + .step = 1,
> + .def = 1,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_WIDTH,
> + .name = "MTK CAM GET BIN WIDTH",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_WIDTH,
> + .max = IMG_MAX_WIDTH,
> + .step = 1,
> + .def = IMG_MAX_WIDTH,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_HEIGTH,
> + .name = "MTK CAM GET BIN HEIGHT",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_HEIGHT,
> + .max = IMG_MAX_HEIGHT,
> + .step = 1,
> + .def = IMG_MAX_HEIGHT,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> +};
> +
> +int mtk_cam_ctrl_init(struct mtk_cam_dev *cam_dev,
> + struct v4l2_ctrl_handler *hdl)
> +{
> + unsigned int i;
> +
> + /* Initialized HW controls, allow V4L2_CID_MTK_CAM_MAX ctrls */
> + v4l2_ctrl_handler_init(hdl, V4L2_CID_MTK_CAM_MAX);
> + if (hdl->error) {
This should be checked at the end, after all the controls are added.
Best regards,
Tomasz
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tfiga@chromium.org>
To: Jungo Lin <jungo.lin@mediatek.com>
Cc: devicetree@vger.kernel.org, sean.cheng@mediatek.com,
frederic.chen@mediatek.com, rynn.wu@mediatek.com,
srv_heupstream@mediatek.com, robh@kernel.org,
ryan.yu@mediatek.com, frankie.chiu@mediatek.com,
hverkuil@xs4all.nl, ddavenport@chromium.org,
sj.huang@mediatek.com, linux-mediatek@lists.infradead.org,
laurent.pinchart@ideasonboard.com, matthias.bgg@gmail.com,
mchehab@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [RFC,v3 5/9] media: platform: Add Mediatek ISP P1 V4L2 control
Date: Mon, 1 Jul 2019 14:50:53 +0900 [thread overview]
Message-ID: <20190701055053.GA137710@chromium.org> (raw)
In-Reply-To: <20190611035344.29814-6-jungo.lin@mediatek.com>
Hi Jungo,
On Tue, Jun 11, 2019 at 11:53:40AM +0800, Jungo Lin wrote:
> Reserved Mediatek ISP P1 V4L2 control number with 16.
> Moreover, add two V4L2 controls for ISP P1 user space
> usage.
>
> 1. V4L2_CID_MTK_GET_BIN_INFO
> - Provide the image output width & height in case
> camera binning mode is enabled.
Could you explain with a bit more details what these binned width and height
would mean? How would they relate to the video CAPTURE node width and height?
Isn't this something that should be rather exposed as an appropriate
selection rectangle, instead of custom controls?
>
> 2. V4L2_CID_MTK_RAW_PATH
> - Export the path control of the main stream to user space.
> One is pure raw and the other is processing raw.
> The default value is 0 which outputs the pure raw bayer image
> from sesnor, without image processing in ISP HW.
Is it just effectively a full processing bypass? The driver seems to only
update the related configuration when the streaming starts. Can it be
controlled per-frame?
Generally this sounds more like something that should be modelled using the
media topology, similar to the example below.
/----------------\ /-------------------\ /--------------\
| |---| | | |
| Capture Subdev | | Processing Subdev |-o-| CAPTURE node |
| |-\ | | | | |
\----------------/ | \-------------------/ | \--------------/
| |
\-----------------------/
Then the userspace can select whether it wants the image from the capture
interface directly or procesed by the ISP by configuring the media links
appropriately.
The current limitation of this model is that it can't be easily configured
per-frame, as media configurations are not included in the requests yet.
[snip]
> +static int handle_ctrl_get_bin_info(struct v4l2_ctrl *ctrl, int is_width)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct v4l2_format *fmt;
> +
> + fmt = &cam_dev->vdev_nodes[MTK_CAM_P1_MAIN_STREAM_OUT].vdev_fmt;
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get bin info w*h:%d*%d is_width:%d",
> + fmt->fmt.pix_mp.width, fmt->fmt.pix_mp.height, is_width);
> +
> + if (is_width)
> + ctrl->val = fmt->fmt.pix_mp.width;
> + else
> + ctrl->val = fmt->fmt.pix_mp.height;
This seems to contradict to what the comment in the header says, because it just
always returns the video node format and doesn't seem to care about whether
binning is enabled or not.
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_get_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + ctrl->val = (p1_dev->isp_ctx.isp_raw_path == ISP_PROCESS_RAW_PATH);
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get process raw:%d", ctrl->val);
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_set_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + p1_dev->isp_ctx.isp_raw_path = (ctrl->val) ?
> + ISP_PROCESS_RAW_PATH : ISP_PURE_RAW_PATH;
> + dev_dbg(&cam_dev->pdev->dev, "Set process raw:%d", ctrl->val);
> + return 0;
> +}
> +
> +static int mtk_cam_dev_g_ctrl(struct v4l2_ctrl *ctrl)
This is g_volatile_ctrl not, g_ctrl.
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + handle_ctrl_get_process_raw(ctrl);
> + break;
No need to provide getters for non-volatile controls. The
framework manages them.
> + case V4L2_CID_MTK_GET_BIN_WIDTH:
> + handle_ctrl_get_bin_info(ctrl, 1);
> + break;
> + case V4L2_CID_MTK_GET_BIN_HEIGTH:
> + handle_ctrl_get_bin_info(ctrl, 0);
It's trivial to get the value, so there isn't much benefit in having a
function to do so, especially if one needs something like a is_width
argument that further complicates the code.
> + break;
> + default:
> + return -EINVAL;
> + }
> + return 0;
> +}
> +
> +static int mtk_cam_dev_s_ctrl(struct v4l2_ctrl *ctrl)
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + return handle_ctrl_set_process_raw(ctrl);
Same as above. The operation is too trivial to deserve a function.
> + default:
> + return -EINVAL;
> + }
> +}
> +
> +static const struct v4l2_ctrl_ops mtk_cam_dev_ctrl_ops = {
> + .g_volatile_ctrl = mtk_cam_dev_g_ctrl,
> + .s_ctrl = mtk_cam_dev_s_ctrl,
> +};
> +
> +struct v4l2_ctrl_config mtk_cam_controls[] = {
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_PROCESSING_RAW,
> + .name = "MTK CAM PROCESSING RAW",
> + .type = V4L2_CTRL_TYPE_BOOLEAN,
> + .min = 0,
> + .max = 1,
> + .step = 1,
> + .def = 1,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_WIDTH,
> + .name = "MTK CAM GET BIN WIDTH",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_WIDTH,
> + .max = IMG_MAX_WIDTH,
> + .step = 1,
> + .def = IMG_MAX_WIDTH,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_HEIGTH,
> + .name = "MTK CAM GET BIN HEIGHT",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_HEIGHT,
> + .max = IMG_MAX_HEIGHT,
> + .step = 1,
> + .def = IMG_MAX_HEIGHT,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> +};
> +
> +int mtk_cam_ctrl_init(struct mtk_cam_dev *cam_dev,
> + struct v4l2_ctrl_handler *hdl)
> +{
> + unsigned int i;
> +
> + /* Initialized HW controls, allow V4L2_CID_MTK_CAM_MAX ctrls */
> + v4l2_ctrl_handler_init(hdl, V4L2_CID_MTK_CAM_MAX);
> + if (hdl->error) {
This should be checked at the end, after all the controls are added.
Best regards,
Tomasz
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tfiga@chromium.org>
To: Jungo Lin <jungo.lin@mediatek.com>
Cc: hverkuil@xs4all.nl, laurent.pinchart@ideasonboard.com,
matthias.bgg@gmail.com, mchehab@kernel.org,
linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
srv_heupstream@mediatek.com, ddavenport@chromium.org,
robh@kernel.org, sean.cheng@mediatek.com, sj.huang@mediatek.com,
frederic.chen@mediatek.com, ryan.yu@mediatek.com,
rynn.wu@mediatek.com, frankie.chiu@mediatek.com
Subject: Re: [RFC,v3 5/9] media: platform: Add Mediatek ISP P1 V4L2 control
Date: Mon, 1 Jul 2019 14:50:53 +0900 [thread overview]
Message-ID: <20190701055053.GA137710@chromium.org> (raw)
In-Reply-To: <20190611035344.29814-6-jungo.lin@mediatek.com>
Hi Jungo,
On Tue, Jun 11, 2019 at 11:53:40AM +0800, Jungo Lin wrote:
> Reserved Mediatek ISP P1 V4L2 control number with 16.
> Moreover, add two V4L2 controls for ISP P1 user space
> usage.
>
> 1. V4L2_CID_MTK_GET_BIN_INFO
> - Provide the image output width & height in case
> camera binning mode is enabled.
Could you explain with a bit more details what these binned width and height
would mean? How would they relate to the video CAPTURE node width and height?
Isn't this something that should be rather exposed as an appropriate
selection rectangle, instead of custom controls?
>
> 2. V4L2_CID_MTK_RAW_PATH
> - Export the path control of the main stream to user space.
> One is pure raw and the other is processing raw.
> The default value is 0 which outputs the pure raw bayer image
> from sesnor, without image processing in ISP HW.
Is it just effectively a full processing bypass? The driver seems to only
update the related configuration when the streaming starts. Can it be
controlled per-frame?
Generally this sounds more like something that should be modelled using the
media topology, similar to the example below.
/----------------\ /-------------------\ /--------------\
| |---| | | |
| Capture Subdev | | Processing Subdev |-o-| CAPTURE node |
| |-\ | | | | |
\----------------/ | \-------------------/ | \--------------/
| |
\-----------------------/
Then the userspace can select whether it wants the image from the capture
interface directly or procesed by the ISP by configuring the media links
appropriately.
The current limitation of this model is that it can't be easily configured
per-frame, as media configurations are not included in the requests yet.
[snip]
> +static int handle_ctrl_get_bin_info(struct v4l2_ctrl *ctrl, int is_width)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct v4l2_format *fmt;
> +
> + fmt = &cam_dev->vdev_nodes[MTK_CAM_P1_MAIN_STREAM_OUT].vdev_fmt;
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get bin info w*h:%d*%d is_width:%d",
> + fmt->fmt.pix_mp.width, fmt->fmt.pix_mp.height, is_width);
> +
> + if (is_width)
> + ctrl->val = fmt->fmt.pix_mp.width;
> + else
> + ctrl->val = fmt->fmt.pix_mp.height;
This seems to contradict to what the comment in the header says, because it just
always returns the video node format and doesn't seem to care about whether
binning is enabled or not.
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_get_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + ctrl->val = (p1_dev->isp_ctx.isp_raw_path == ISP_PROCESS_RAW_PATH);
> +
> + dev_dbg(&cam_dev->pdev->dev, "Get process raw:%d", ctrl->val);
> +
> + return 0;
> +}
> +
> +static int handle_ctrl_set_process_raw(struct v4l2_ctrl *ctrl)
> +{
> + struct mtk_cam_dev *cam_dev = ctrl->priv;
> + struct isp_p1_device *p1_dev = get_p1_device(&cam_dev->pdev->dev);
> +
> + p1_dev->isp_ctx.isp_raw_path = (ctrl->val) ?
> + ISP_PROCESS_RAW_PATH : ISP_PURE_RAW_PATH;
> + dev_dbg(&cam_dev->pdev->dev, "Set process raw:%d", ctrl->val);
> + return 0;
> +}
> +
> +static int mtk_cam_dev_g_ctrl(struct v4l2_ctrl *ctrl)
This is g_volatile_ctrl not, g_ctrl.
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + handle_ctrl_get_process_raw(ctrl);
> + break;
No need to provide getters for non-volatile controls. The
framework manages them.
> + case V4L2_CID_MTK_GET_BIN_WIDTH:
> + handle_ctrl_get_bin_info(ctrl, 1);
> + break;
> + case V4L2_CID_MTK_GET_BIN_HEIGTH:
> + handle_ctrl_get_bin_info(ctrl, 0);
It's trivial to get the value, so there isn't much benefit in having a
function to do so, especially if one needs something like a is_width
argument that further complicates the code.
> + break;
> + default:
> + return -EINVAL;
> + }
> + return 0;
> +}
> +
> +static int mtk_cam_dev_s_ctrl(struct v4l2_ctrl *ctrl)
> +{
> + switch (ctrl->id) {
> + case V4L2_CID_MTK_PROCESSING_RAW:
> + return handle_ctrl_set_process_raw(ctrl);
Same as above. The operation is too trivial to deserve a function.
> + default:
> + return -EINVAL;
> + }
> +}
> +
> +static const struct v4l2_ctrl_ops mtk_cam_dev_ctrl_ops = {
> + .g_volatile_ctrl = mtk_cam_dev_g_ctrl,
> + .s_ctrl = mtk_cam_dev_s_ctrl,
> +};
> +
> +struct v4l2_ctrl_config mtk_cam_controls[] = {
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_PROCESSING_RAW,
> + .name = "MTK CAM PROCESSING RAW",
> + .type = V4L2_CTRL_TYPE_BOOLEAN,
> + .min = 0,
> + .max = 1,
> + .step = 1,
> + .def = 1,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_WIDTH,
> + .name = "MTK CAM GET BIN WIDTH",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_WIDTH,
> + .max = IMG_MAX_WIDTH,
> + .step = 1,
> + .def = IMG_MAX_WIDTH,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> + {
> + .ops = &mtk_cam_dev_ctrl_ops,
> + .id = V4L2_CID_MTK_GET_BIN_HEIGTH,
> + .name = "MTK CAM GET BIN HEIGHT",
> + .type = V4L2_CTRL_TYPE_INTEGER,
> + .min = IMG_MIN_HEIGHT,
> + .max = IMG_MAX_HEIGHT,
> + .step = 1,
> + .def = IMG_MAX_HEIGHT,
> + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE,
> + },
> +};
> +
> +int mtk_cam_ctrl_init(struct mtk_cam_dev *cam_dev,
> + struct v4l2_ctrl_handler *hdl)
> +{
> + unsigned int i;
> +
> + /* Initialized HW controls, allow V4L2_CID_MTK_CAM_MAX ctrls */
> + v4l2_ctrl_handler_init(hdl, V4L2_CID_MTK_CAM_MAX);
> + if (hdl->error) {
This should be checked at the end, after all the controls are added.
Best regards,
Tomasz
next prev parent reply other threads:[~2019-07-01 5:50 UTC|newest]
Thread overview: 388+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <jungo.lin@mediatek.com>
2019-03-28 9:56 ` [RFC V1 00/12] meida: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 01/12] dt-bindings: mt8183: Add binding for ISP Pass 1 reserved memory Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 02/12] dts: arm64: mt8183: Add ISP Pass 1 shared memory node Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 03/12] dt-bindings: mt8183: Added cam-smem dt-bindings Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 04/12] dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 05/12] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 08/12] media: platform: Add Mediatek ISP P1 private control Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 09/12] media: platform: Add Mediatek ISP P1 V4L2 functions Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 10/12] media: platform: Add Mediatek ISP P1 device driver Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
[not found] ` <1553767007-11909-1-git-send-email-jungo.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-03-28 9:56 ` [RFC V1 06/12] media: platform: Add Mediatek ISP Pass 1 driver Kconfig Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 07/12] media: platform: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 11/12] media: platform: Add Mediatek ISP P1 SCP communication Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` [RFC V1 12/12] media: platform: Add Mediatek ISP P1 shared memory driver Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-03-28 9:56 ` Jungo Lin
2019-06-11 3:53 ` [RFC, V3 0/9] media: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-06-11 3:53 ` [RFC,V3 " Jungo Lin
2019-06-11 3:53 ` [RFC, V3 " Jungo Lin
2019-06-11 3:53 ` [RFC,v3 1/9] dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` [RFC,v3 2/9] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` [RFC,v3 3/9] media: platform: Add Mediatek ISP Pass 1 driver Kconfig Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` [RFC, v3 4/9] media: platform: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-06-11 3:53 ` [RFC,v3 " Jungo Lin
2019-06-11 3:53 ` [RFC, v3 " Jungo Lin
2019-06-11 3:53 ` [RFC,v3 5/9] media: platform: Add Mediatek ISP P1 V4L2 control Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-07-01 5:50 ` Tomasz Figa [this message]
2019-07-01 5:50 ` Tomasz Figa
2019-07-01 5:50 ` Tomasz Figa
2019-07-02 11:34 ` Jungo Lin
2019-07-02 11:34 ` Jungo Lin
2019-07-02 11:34 ` Jungo Lin
2019-06-11 3:53 ` [RFC,v3 6/9] media: platform: Add Mediatek ISP P1 V4L2 functions Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-07-10 9:54 ` Tomasz Figa
2019-07-10 9:54 ` Tomasz Figa
2019-07-10 9:54 ` Tomasz Figa
2019-07-18 4:39 ` Jungo Lin
2019-07-18 4:39 ` Jungo Lin
2019-07-18 4:39 ` Jungo Lin
2019-07-23 10:21 ` Tomasz Figa
2019-07-23 10:21 ` Tomasz Figa
2019-07-23 10:21 ` Tomasz Figa
2019-07-24 4:31 ` Jungo Lin
2019-07-24 4:31 ` Jungo Lin
2019-07-24 4:31 ` Jungo Lin
2019-07-26 5:49 ` Tomasz Figa
2019-07-26 5:49 ` Tomasz Figa
2019-07-26 5:49 ` Tomasz Figa
2019-07-29 1:18 ` Jungo Lin
2019-07-29 1:18 ` Jungo Lin
2019-07-29 1:18 ` Jungo Lin
2019-07-29 10:04 ` Tomasz Figa
2019-07-29 10:04 ` Tomasz Figa
2019-07-29 10:04 ` Tomasz Figa
2019-07-30 1:44 ` Jungo Lin
2019-07-30 1:44 ` Jungo Lin
2019-07-30 1:44 ` Jungo Lin
2019-08-05 9:59 ` Tomasz Figa
2019-08-05 9:59 ` Tomasz Figa
2019-08-05 9:59 ` Tomasz Figa
2019-06-11 3:53 ` [RFC,v3 7/9] media: platform: Add Mediatek ISP P1 device driver Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-07-10 9:56 ` Tomasz Figa
2019-07-10 9:56 ` Tomasz Figa
2019-07-10 9:56 ` Tomasz Figa
2019-07-20 9:58 ` Jungo Lin
2019-07-20 9:58 ` Jungo Lin
2019-07-20 9:58 ` Jungo Lin
2019-07-25 9:23 ` Tomasz Figa
2019-07-25 9:23 ` Tomasz Figa
2019-07-25 9:23 ` Tomasz Figa
2019-07-26 7:23 ` Jungo Lin
2019-07-26 7:23 ` Jungo Lin
2019-07-26 7:23 ` Jungo Lin
2019-08-06 9:47 ` Tomasz Figa
2019-08-06 9:47 ` Tomasz Figa
2019-08-06 9:47 ` Tomasz Figa
2019-08-07 2:11 ` Jungo Lin
2019-08-07 2:11 ` Jungo Lin
2019-08-07 2:11 ` Jungo Lin
2019-08-07 13:25 ` Tomasz Figa
2019-08-07 13:25 ` Tomasz Figa
2019-08-07 13:25 ` Tomasz Figa
2019-06-11 3:53 ` [RFC,v3 8/9] media: platform: Add Mediatek ISP P1 SCP communication Jungo Lin
2019-06-11 3:53 ` Jungo Lin
2019-06-11 3:53 ` Jungo Lin
[not found] ` <20190611035344.29814-9-jungo.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-07-10 9:58 ` Tomasz Figa
2019-07-10 9:58 ` Tomasz Figa
2019-07-10 9:58 ` Tomasz Figa
2019-07-21 2:18 ` Jungo Lin
2019-07-21 2:18 ` Jungo Lin
2019-07-21 2:18 ` Jungo Lin
2019-07-25 10:56 ` [RFC, v3 " Tomasz Figa
2019-07-25 10:56 ` [RFC,v3 " Tomasz Figa
2019-07-25 10:56 ` [RFC, v3 " Tomasz Figa
2019-07-26 8:07 ` [RFC,v3 " Jungo Lin
2019-07-26 8:07 ` Jungo Lin
2019-07-26 8:07 ` Jungo Lin
2019-06-11 3:53 ` [RFC, v3 9/9] media: platform: Add Mediatek ISP P1 shared memory device Jungo Lin
2019-06-11 3:53 ` [RFC,v3 " Jungo Lin
2019-06-11 3:53 ` [RFC, v3 " Jungo Lin
2019-07-01 7:25 ` [RFC,v3 " Tomasz Figa
2019-07-01 7:25 ` Tomasz Figa
2019-07-01 7:25 ` Tomasz Figa
2019-07-05 3:33 ` Jungo Lin
2019-07-05 3:33 ` Jungo Lin
2019-07-05 3:33 ` Jungo Lin
2019-07-05 4:22 ` [RFC, v3 " Tomasz Figa
2019-07-05 4:22 ` [RFC,v3 " Tomasz Figa
2019-07-05 4:22 ` [RFC, v3 " Tomasz Figa
[not found] ` <CAAFQd5BaTQ-Q7gsE0X+d4_81OZq9WHaCYkmALt7_4A1JFo=_8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-07-05 5:44 ` [RFC,v3 " Jungo Lin
2019-07-05 5:44 ` Jungo Lin
2019-07-05 5:44 ` Jungo Lin
2019-07-05 7:59 ` Jungo Lin
2019-07-05 7:59 ` Jungo Lin
2019-07-05 7:59 ` Jungo Lin
2019-07-23 7:20 ` [RFC, v3 " Tomasz Figa
2019-07-23 7:20 ` [RFC,v3 " Tomasz Figa
2019-07-23 7:20 ` [RFC, v3 " Tomasz Figa
[not found] ` <CAAFQd5AaNFpMGCVJREY85n8UetEwd99TOka8-ECoLzMbMkos_g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-07-23 8:21 ` Jungo Lin
2019-07-23 8:21 ` Jungo Lin
2019-07-23 8:21 ` Jungo Lin
2019-07-26 5:15 ` Tomasz Figa
2019-07-26 5:15 ` Tomasz Figa
2019-07-26 5:15 ` Tomasz Figa
[not found] ` <CAAFQd5Bh80N+cMhz=eyHUGJLaE5uuypOawQvHrTgGSMDvmcpLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-07-26 7:41 ` Christoph Hellwig
2019-07-26 7:41 ` Christoph Hellwig
2019-07-26 7:41 ` Christoph Hellwig
2019-07-26 7:42 ` Tomasz Figa
2019-07-26 7:42 ` Tomasz Figa
2019-07-26 7:42 ` Tomasz Figa
2019-07-26 11:04 ` Robin Murphy
2019-07-26 11:04 ` Robin Murphy
2019-07-26 11:04 ` Robin Murphy
2019-07-26 11:04 ` Robin Murphy
2019-07-26 11:59 ` Jungo Lin
2019-07-26 11:59 ` Jungo Lin
2019-07-26 11:59 ` Jungo Lin
2019-07-26 11:59 ` Jungo Lin
2019-07-26 14:04 ` Tomasz Figa
2019-07-26 14:04 ` Tomasz Figa
2019-07-26 14:04 ` Tomasz Figa
2019-07-26 14:04 ` Tomasz Figa
[not found] <Jungo Lin <jungo.lin@mediatek.com>
2019-04-02 10:04 ` [PATCH v1] media: media_device_enum_links32: fix missing reserved field copy Jungo Lin
2019-04-02 10:04 ` Jungo Lin
2019-04-02 10:04 ` Jungo Lin
2019-04-02 11:33 ` Laurent Pinchart
2019-04-02 11:33 ` Laurent Pinchart
2019-04-02 11:33 ` Laurent Pinchart
2019-04-03 0:30 ` Jungo Lin
2019-04-03 0:30 ` Jungo Lin
2019-04-03 0:30 ` Jungo Lin
2019-04-03 1:44 ` [PATCH] media: media_device_enum_links32: clean a reserved field Jungo Lin
2019-04-03 1:44 ` Jungo Lin
2019-04-03 1:44 ` Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 00/11] meida: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-05-10 1:57 ` [RFC,V2,00/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 00/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 01/11] dt-bindings: mt8183: Add binding for ISP Pass 1 reserved memory Jungo Lin
2019-05-10 1:57 ` [RFC,V2,01/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 01/11] " Jungo Lin
2019-05-14 19:50 ` [RFC,V2,01/11] " Rob Herring
2019-05-14 19:50 ` Rob Herring
2019-05-14 19:50 ` Rob Herring
2019-05-15 13:02 ` Jungo Lin
2019-05-15 13:02 ` Jungo Lin
2019-05-15 13:02 ` Jungo Lin
2019-05-10 1:57 ` [RFC,V2,02/11] dts: arm64: mt8183: Add ISP Pass 1 shared memory node Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-10 1:57 ` [RFC,V2,03/11] dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-14 19:54 ` Rob Herring
2019-05-14 19:54 ` Rob Herring
2019-05-14 19:54 ` Rob Herring
2019-05-16 6:12 ` Jungo Lin
2019-05-16 6:12 ` Jungo Lin
2019-05-16 6:12 ` Jungo Lin
2019-05-10 1:57 ` [RFC,V2,04/11] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-10 1:57 ` Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 05/11] media: platform: Add Mediatek ISP Pass 1 driver Kconfig Jungo Lin
2019-05-10 1:57 ` [RFC,V2,05/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 05/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 06/11] media: platform: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-05-10 1:57 ` [RFC,V2,06/11] " Jungo Lin
2019-05-10 1:57 ` [RFC, V2, 06/11] " Jungo Lin
2019-05-13 8:35 ` Hans Verkuil
2019-05-13 8:35 ` [RFC,V2,06/11] " Hans Verkuil
2019-05-13 8:35 ` [RFC, V2, 06/11] " Hans Verkuil
2019-05-15 12:49 ` Jungo Lin
2019-05-15 12:49 ` Jungo Lin
2019-05-15 12:49 ` Jungo Lin
2019-05-10 1:58 ` [RFC,V2,07/11] media: platform: Add Mediatek ISP P1 private control Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-13 8:46 ` Hans Verkuil
2019-05-13 8:46 ` Hans Verkuil
2019-05-13 8:46 ` Hans Verkuil
[not found] ` <49a8ba54-aba4-1915-6732-987a58e8bd3c-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2019-05-14 6:23 ` Jungo Lin
2019-05-14 6:23 ` Jungo Lin
2019-05-14 6:23 ` Jungo Lin
2019-10-02 10:55 ` Sakari Ailus
2019-10-02 10:55 ` Sakari Ailus
2019-10-02 10:55 ` Sakari Ailus
2019-10-02 11:02 ` Sakari Ailus
2019-10-02 11:02 ` Sakari Ailus
2019-10-02 11:02 ` Sakari Ailus
[not found] ` <Jungo Lin <jungo.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-05-10 1:58 ` [RFC,V2,08/11] media: platform: Add Mediatek ISP P1 V4L2 functions Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-24 18:49 ` Drew Davenport
2019-05-24 18:49 ` Drew Davenport
2019-05-24 18:49 ` Drew Davenport
2019-05-28 1:00 ` Jungo Lin
2019-05-28 1:00 ` Jungo Lin
2019-05-28 1:00 ` Jungo Lin
2019-05-10 1:58 ` [RFC,V2,09/11] media: platform: Add Mediatek ISP P1 device driver Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-10 1:58 ` Jungo Lin
2019-05-24 21:19 ` [RFC, V2, 09/11] " Drew Davenport
2019-05-24 21:19 ` [RFC,V2,09/11] " Drew Davenport
2019-05-24 21:19 ` [RFC, V2, 09/11] " Drew Davenport
2019-05-27 13:07 ` Jungo Lin
2019-05-27 13:07 ` Jungo Lin
2019-05-27 13:07 ` Jungo Lin
2019-05-10 1:58 ` [RFC, V2, 10/11] media: platform: Add Mediatek ISP P1 SCP communication Jungo Lin
2019-05-10 1:58 ` [RFC,V2,10/11] " Jungo Lin
2019-05-10 1:58 ` [RFC, V2, 10/11] " Jungo Lin
2019-05-10 1:58 ` [RFC, V2, 11/11] media: platform: Add Mediatek ISP P1 shared memory device Jungo Lin
2019-05-10 1:58 ` [RFC,V2,11/11] " Jungo Lin
2019-05-10 1:58 ` [RFC, V2, 11/11] " Jungo Lin
2019-08-07 12:47 ` [RFC, v4, 0/4] media: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-08-07 12:47 ` [RFC,v4,0/4] " Jungo Lin
2019-08-07 12:47 ` [RFC, v4, 0/4] " Jungo Lin
2019-08-07 12:48 ` [RFC,v4,1/4] media: dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-08-21 19:47 ` Rob Herring
2019-08-21 19:47 ` Rob Herring
2019-08-21 19:47 ` Rob Herring
2019-08-22 12:47 ` Jungo Lin
2019-08-22 12:47 ` Jungo Lin
2019-08-22 12:47 ` Jungo Lin
[not found] ` <20190807124803.29884-2-jungo.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-08-21 20:17 ` Rob Herring
2019-08-21 20:17 ` Rob Herring
2019-08-21 20:17 ` Rob Herring
2019-08-22 12:48 ` Jungo Lin
2019-08-22 12:48 ` Jungo Lin
2019-08-22 12:48 ` Jungo Lin
2019-08-07 12:48 ` [RFC,v4,2/4] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-08-07 12:48 ` [RFC, v4, 3/4] media: platform: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-08-07 12:48 ` [RFC,v4,3/4] " Jungo Lin
2019-08-07 12:48 ` [RFC, v4, 3/4] " Jungo Lin
2019-08-07 12:48 ` [RFC,v4,4/4] media: platform: Add Mediatek ISP P1 V4L2 device driver Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-08-07 12:48 ` Jungo Lin
2019-09-02 7:51 ` [RFC, v5, 0/5] media: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-09-02 7:51 ` [RFC,v5,0/5] " Jungo Lin
2019-09-02 7:51 ` [RFC, v5, 0/5] " Jungo Lin
2019-09-02 7:51 ` [RFC,v5, 1/5] media: dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 15:17 ` [RFC, v5, " Rob Herring
2019-09-02 15:17 ` [RFC,v5, " Rob Herring
2019-09-02 15:17 ` [RFC, v5, " Rob Herring
2019-09-02 7:51 ` [RFC,v5, 2/5] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 7:51 ` [RFC,v5, 3/5] media: videodev2.h: Add new boottime timestamp type Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 7:51 ` Jungo Lin
2019-09-02 7:51 ` [RFC, v5, 4/5] media: pixfmt: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-09-02 7:51 ` [RFC,v5, " Jungo Lin
2019-09-02 7:51 ` [RFC, v5, " Jungo Lin
2019-09-02 7:51 ` [RFC, v5, 5/5] media: platform: Add Mediatek ISP P1 V4L2 device driver Jungo Lin
2019-09-02 7:51 ` [RFC,v5, " Jungo Lin
2019-09-02 7:51 ` [RFC, v5, " Jungo Lin
2019-12-19 5:49 ` [v6, 0/5] media: media: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` [v6, 1/5] media: dt-bindings: mt8183: Added camera ISP Pass 1 Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2020-03-31 15:34 ` Helen Koike
2020-03-31 15:34 ` Helen Koike
2020-03-31 15:34 ` Helen Koike
2020-04-10 10:04 ` Jungo Lin
2020-04-10 10:04 ` Jungo Lin
2020-04-10 10:04 ` Jungo Lin
2019-12-19 5:49 ` [v6, 2/5] dts: arm64: mt8183: Add ISP Pass 1 nodes Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` [v6, 3/5] media: videodev2.h: Add new boottime timestamp type Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2020-01-07 14:10 ` Hans Verkuil
2020-01-07 14:10 ` Hans Verkuil
2020-01-07 14:10 ` Hans Verkuil
[not found] ` <e833b88ba74945c495a102c98cd54725@mtkmbs07n1.mediatek.inc>
2020-01-10 9:59 ` Jungo Lin
2020-01-10 10:08 ` Jungo Lin
2020-01-10 10:08 ` Jungo Lin
2020-01-10 10:08 ` Jungo Lin
2019-12-19 5:49 ` [v6, 4/5] media: platform: Add Mediatek ISP P1 image & meta formats Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2020-04-03 2:30 ` Laurent Pinchart
2020-04-03 2:30 ` Laurent Pinchart
2020-04-03 2:30 ` Laurent Pinchart
2020-04-10 10:00 ` Jungo Lin
2020-04-10 10:00 ` Jungo Lin
2020-04-10 10:00 ` Jungo Lin
2019-12-19 5:49 ` [v6, 5/5] media: platform: Add Mediatek ISP P1 V4L2 device driver Jungo Lin
2019-12-19 5:49 ` Jungo Lin
2020-01-23 13:59 ` Hans Verkuil
2020-01-23 13:59 ` Hans Verkuil
2020-01-23 13:59 ` Hans Verkuil
2020-01-28 2:13 ` Jungo Lin
2020-01-28 2:13 ` Jungo Lin
2020-01-28 2:13 ` Jungo Lin
2020-03-31 15:34 ` Helen Koike
2020-03-31 15:34 ` Helen Koike
2020-04-09 2:05 ` Jungo Lin
2020-04-09 2:05 ` Jungo Lin
2020-04-14 12:25 ` Helen Koike
2020-04-14 12:25 ` Helen Koike
[not found] ` <b2c30e560e9b4ec488957ca62bae09fe@mtkmbs01n2.mediatek.inc>
2020-05-04 12:27 ` Jungo Lin
2020-05-04 12:27 ` Jungo Lin
2020-05-04 12:27 ` Jungo Lin
2020-05-05 15:38 ` Helen Koike
2020-05-05 15:38 ` Helen Koike
2020-05-05 15:38 ` Helen Koike
2020-04-02 16:45 ` Dafna Hirschfeld
2020-04-02 16:45 ` Dafna Hirschfeld
2020-04-09 2:49 ` Jungo Lin
2020-04-09 2:49 ` Jungo Lin
2020-03-31 15:34 ` [v6, 0/5] media: media: platform: mtk-isp: Add Mediatek ISP Pass 1 driver Helen Koike
2020-03-31 15:34 ` Helen Koike
2020-03-31 15:34 ` Helen Koike
2020-04-10 10:32 ` Jungo Lin
2020-04-10 10:32 ` Jungo Lin
2020-04-14 12:25 ` Helen Koike
2020-04-14 12:25 ` Helen Koike
2020-04-14 12:25 ` Helen Koike
[not found] ` <1fd3615eb18f48ada186bfe228fc907b@mtkmbs01n2.mediatek.inc>
2020-05-04 12:40 ` Jungo Lin
2020-05-04 12:40 ` Jungo Lin
2020-05-05 15:30 ` Helen Koike
2020-05-05 15:30 ` Helen Koike
2020-05-05 15:30 ` Helen Koike
2020-05-05 16:18 ` Tomasz Figa
2020-05-05 16:18 ` Tomasz Figa
2020-05-05 16:18 ` Tomasz Figa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190701055053.GA137710@chromium.org \
--to=tfiga@chromium.org \
--cc=ddavenport@chromium.org \
--cc=devicetree@vger.kernel.org \
--cc=frankie.chiu@mediatek.com \
--cc=frederic.chen@mediatek.com \
--cc=hverkuil@xs4all.nl \
--cc=jungo.lin@mediatek.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
--cc=ryan.yu@mediatek.com \
--cc=rynn.wu@mediatek.com \
--cc=sean.cheng@mediatek.com \
--cc=sj.huang@mediatek.com \
--cc=srv_heupstream@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.