media: rockchip: ispp: add the iqtool module
Change-Id: I12bebaf79c5ed7de61d1869819b96b22c5b7ff3b Signed-off-by: Lian Xu <xu.lian@rock-chips.com>
This commit is contained in:
@@ -132,16 +132,14 @@ static int rkispp_create_links(struct rkispp_device *ispp_dev)
|
|||||||
stream->linked = true;
|
stream->linked = true;
|
||||||
}
|
}
|
||||||
source = &stream->vnode.vdev.entity;
|
source = &stream->vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, 0, sink,
|
ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK, flags);
|
||||||
RKISPP_PAD_SINK, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* params links */
|
/* params links */
|
||||||
flags = MEDIA_LNK_FL_ENABLED;
|
flags = MEDIA_LNK_FL_ENABLED;
|
||||||
source = &ispp_dev->params_vdev.vnode.vdev.entity;
|
source = &ispp_dev->params_vdev.vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, 0, sink,
|
ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags);
|
||||||
RKISPP_PAD_SINK_PARAMS, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
ispp_dev->stream_vdev.module_ens = ISPP_MODULE_FEC;
|
ispp_dev->stream_vdev.module_ens = ISPP_MODULE_FEC;
|
||||||
@@ -150,8 +148,7 @@ static int rkispp_create_links(struct rkispp_device *ispp_dev)
|
|||||||
flags = MEDIA_LNK_FL_ENABLED;
|
flags = MEDIA_LNK_FL_ENABLED;
|
||||||
source = &ispp_dev->ispp_sdev.sd.entity;
|
source = &ispp_dev->ispp_sdev.sd.entity;
|
||||||
sink = &ispp_dev->stats_vdev.vnode.vdev.entity;
|
sink = &ispp_dev->stats_vdev.vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS,
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, sink, 0, flags);
|
||||||
sink, 0, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -159,32 +156,21 @@ static int rkispp_create_links(struct rkispp_device *ispp_dev)
|
|||||||
stream = &stream_vdev->stream[STREAM_S0];
|
stream = &stream_vdev->stream[STREAM_S0];
|
||||||
stream->linked = flags;
|
stream->linked = flags;
|
||||||
sink = &stream->vnode.vdev.entity;
|
sink = &stream->vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
|
||||||
sink, 0, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
stream = &stream_vdev->stream[STREAM_S1];
|
stream = &stream_vdev->stream[STREAM_S1];
|
||||||
stream->linked = flags;
|
stream->linked = flags;
|
||||||
sink = &stream->vnode.vdev.entity;
|
sink = &stream->vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
|
||||||
sink, 0, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
stream = &stream_vdev->stream[STREAM_S2];
|
stream = &stream_vdev->stream[STREAM_S2];
|
||||||
stream->linked = flags;
|
stream->linked = flags;
|
||||||
sink = &stream->vnode.vdev.entity;
|
sink = &stream->vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
|
||||||
sink, 0, flags);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
stream = &stream_vdev->stream[STREAM_VIR];
|
|
||||||
stream->linked = flags;
|
|
||||||
sink = &stream->vnode.vdev.entity;
|
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
|
|
||||||
sink, 0, flags);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -196,8 +182,14 @@ static int rkispp_create_links(struct rkispp_device *ispp_dev)
|
|||||||
stream->linked = flags;
|
stream->linked = flags;
|
||||||
source = &ispp_dev->ispp_sdev.sd.entity;
|
source = &ispp_dev->ispp_sdev.sd.entity;
|
||||||
sink = &stream->vnode.vdev.entity;
|
sink = &stream->vnode.vdev.entity;
|
||||||
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
|
||||||
sink, 0, flags);
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
stream = &stream_vdev->stream[STREAM_VIR];
|
||||||
|
stream->linked = flags;
|
||||||
|
sink = &stream->vnode.vdev.entity;
|
||||||
|
ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|||||||
@@ -391,7 +391,7 @@ static int rkispp_hw_probe(struct platform_device *pdev)
|
|||||||
atomic_set(&hw_dev->refcnt, 0);
|
atomic_set(&hw_dev->refcnt, 0);
|
||||||
INIT_LIST_HEAD(&hw_dev->list);
|
INIT_LIST_HEAD(&hw_dev->list);
|
||||||
hw_dev->is_idle = true;
|
hw_dev->is_idle = true;
|
||||||
hw_dev->is_single = false;
|
hw_dev->is_single = true;
|
||||||
hw_dev->is_fec_ext = false;
|
hw_dev->is_fec_ext = false;
|
||||||
hw_dev->is_dma_contig = true;
|
hw_dev->is_dma_contig = true;
|
||||||
hw_dev->is_dma_sg_ops = false;
|
hw_dev->is_dma_sg_ops = false;
|
||||||
|
|||||||
@@ -1934,7 +1934,7 @@ int rkispp_register_stream_vdevs(struct rkispp_device *dev)
|
|||||||
stream_vdev->frame_qst.function = stream_vdev->stream_ops->rkispp_frame_done_early;
|
stream_vdev->frame_qst.function = stream_vdev->stream_ops->rkispp_frame_done_early;
|
||||||
dev->hw_dev->pool[0].group_buf_max = GROUP_BUF_MAX;
|
dev->hw_dev->pool[0].group_buf_max = GROUP_BUF_MAX;
|
||||||
} else if (dev->ispp_ver == ISPP_V20) {
|
} else if (dev->ispp_ver == ISPP_V20) {
|
||||||
dev->stream_max = STREAM_MB + 1;
|
dev->stream_max = STREAM_VIR + 1;
|
||||||
rkispp_stream_init_ops_v20(stream_vdev);
|
rkispp_stream_init_ops_v20(stream_vdev);
|
||||||
dev->hw_dev->pool[0].group_buf_max = GROUP_BUF_GAIN;
|
dev->hw_dev->pool[0].group_buf_max = GROUP_BUF_GAIN;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,10 +20,10 @@ struct rkispp_stream;
|
|||||||
enum rkispp_stream_id {
|
enum rkispp_stream_id {
|
||||||
STREAM_II = 0,
|
STREAM_II = 0,
|
||||||
STREAM_MB,
|
STREAM_MB,
|
||||||
|
STREAM_VIR,
|
||||||
STREAM_S0,
|
STREAM_S0,
|
||||||
STREAM_S1,
|
STREAM_S1,
|
||||||
STREAM_S2,
|
STREAM_S2,
|
||||||
STREAM_VIR,
|
|
||||||
STREAM_MAX
|
STREAM_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -336,8 +336,7 @@ static void rkispp_module_work_event(struct rkispp_device *dev,
|
|||||||
* tnr->nr->fec frame0
|
* tnr->nr->fec frame0
|
||||||
* |->tnr->nr->fec frame1
|
* |->tnr->nr->fec frame1
|
||||||
*/
|
*/
|
||||||
if (is_isr && !buf_rd && !buf_wr &&
|
if (is_isr && !buf_rd && !buf_wr) {
|
||||||
(module == ISPP_MODULE_FEC && dev->hw_dev->is_single)) {
|
|
||||||
dev->stream_vdev.monitor.retry = 0;
|
dev->stream_vdev.monitor.retry = 0;
|
||||||
rkispp_event_handle(dev, CMD_QUEUE_DMABUF, NULL);
|
rkispp_event_handle(dev, CMD_QUEUE_DMABUF, NULL);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user