veu               220 drivers/media/platform/sh_veu.c static u32 sh_veu_reg_read(struct sh_veu_dev *veu, unsigned int reg)
veu               222 drivers/media/platform/sh_veu.c 	return ioread32(veu->base + reg);
veu               225 drivers/media/platform/sh_veu.c static void sh_veu_reg_write(struct sh_veu_dev *veu, unsigned int reg,
veu               228 drivers/media/platform/sh_veu.c 	iowrite32(value, veu->base + reg);
veu               235 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = priv;
veu               238 drivers/media/platform/sh_veu.c 	veu->aborting = true;
veu               241 drivers/media/platform/sh_veu.c static void sh_veu_process(struct sh_veu_dev *veu,
veu               247 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_DAYR, addr + veu->vfmt_out.offset_y);
veu               248 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_DACR, veu->vfmt_out.offset_c ?
veu               249 drivers/media/platform/sh_veu.c 			 addr + veu->vfmt_out.offset_c : 0);
veu               250 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "%s(): dst base %lx, y: %x, c: %x\n", __func__,
veu               252 drivers/media/platform/sh_veu.c 		veu->vfmt_out.offset_y, veu->vfmt_out.offset_c);
veu               255 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_SAYR, addr + veu->vfmt_in.offset_y);
veu               256 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_SACR, veu->vfmt_in.offset_c ?
veu               257 drivers/media/platform/sh_veu.c 			 addr + veu->vfmt_in.offset_c : 0);
veu               258 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "%s(): src base %lx, y: %x, c: %x\n", __func__,
veu               260 drivers/media/platform/sh_veu.c 		veu->vfmt_in.offset_y, veu->vfmt_in.offset_c);
veu               262 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_STR, 1);
veu               264 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_EIER, 1); /* enable interrupt in VEU */
veu               275 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = priv;
veu               278 drivers/media/platform/sh_veu.c 	src_buf = v4l2_m2m_next_src_buf(veu->m2m_ctx);
veu               279 drivers/media/platform/sh_veu.c 	dst_buf = v4l2_m2m_next_dst_buf(veu->m2m_ctx);
veu               282 drivers/media/platform/sh_veu.c 		sh_veu_process(veu, &src_buf->vb2_buf, &dst_buf->vb2_buf);
veu               287 drivers/media/platform/sh_veu.c static bool sh_veu_is_streamer(struct sh_veu_dev *veu, struct sh_veu_file *veu_file,
veu               291 drivers/media/platform/sh_veu.c 		veu_file == veu->capture) ||
veu               293 drivers/media/platform/sh_veu.c 		 veu_file == veu->output);
veu               307 drivers/media/platform/sh_veu.c static int sh_veu_stream_init(struct sh_veu_dev *veu, struct sh_veu_file *veu_file,
veu               314 drivers/media/platform/sh_veu.c 		stream = &veu->capture;
veu               317 drivers/media/platform/sh_veu.c 		stream = &veu->output;
veu               334 drivers/media/platform/sh_veu.c static int sh_veu_context_init(struct sh_veu_dev *veu)
veu               336 drivers/media/platform/sh_veu.c 	if (veu->m2m_ctx)
veu               339 drivers/media/platform/sh_veu.c 	veu->m2m_ctx = v4l2_m2m_ctx_init(veu->m2m_dev, veu,
veu               342 drivers/media/platform/sh_veu.c 	return PTR_ERR_OR_ZERO(veu->m2m_ctx);
veu               375 drivers/media/platform/sh_veu.c static struct sh_veu_vfmt *sh_veu_get_vfmt(struct sh_veu_dev *veu,
veu               380 drivers/media/platform/sh_veu.c 		return &veu->vfmt_out;
veu               382 drivers/media/platform/sh_veu.c 		return &veu->vfmt_in;
veu               391 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = veu_file->veu_dev;
veu               394 drivers/media/platform/sh_veu.c 	vfmt = sh_veu_get_vfmt(veu, f->type);
veu               404 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "%s(): type: %d, size %u @ %ux%u, fmt %x\n", __func__,
veu               505 drivers/media/platform/sh_veu.c static void sh_veu_colour_offset(struct sh_veu_dev *veu, struct sh_veu_vfmt *vfmt)
veu               510 drivers/media/platform/sh_veu.c 	dma_addr_t offset = (dma_addr_t)top * veu->vfmt_out.bytesperline +
veu               511 drivers/media/platform/sh_veu.c 			(((dma_addr_t)left * veu->vfmt_out.fmt->depth) >> 3);
veu               538 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = veu_file->veu_dev;
veu               541 drivers/media/platform/sh_veu.c 	int ret = sh_veu_context_init(veu);
veu               545 drivers/media/platform/sh_veu.c 	vq = v4l2_m2m_get_vq(veu->m2m_ctx, f->type);
veu               554 drivers/media/platform/sh_veu.c 	vfmt = sh_veu_get_vfmt(veu, f->type);
veu               563 drivers/media/platform/sh_veu.c 	sh_veu_colour_offset(veu, vfmt);
veu               572 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev,
veu               603 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = veu_file->veu_dev;
veu               604 drivers/media/platform/sh_veu.c 	int ret = sh_veu_context_init(veu);
veu               608 drivers/media/platform/sh_veu.c 	ret = sh_veu_stream_init(veu, veu_file, reqbufs->type);
veu               612 drivers/media/platform/sh_veu.c 	return v4l2_m2m_reqbufs(file, veu->m2m_ctx, reqbufs);
veu               648 drivers/media/platform/sh_veu.c static void sh_veu_calc_scale(struct sh_veu_dev *veu,
veu               664 drivers/media/platform/sh_veu.c 	if (veu->is_2h && size_out > size_in) {
veu               701 drivers/media/platform/sh_veu.c static unsigned long sh_veu_scale_v(struct sh_veu_dev *veu,
veu               706 drivers/media/platform/sh_veu.c 	sh_veu_calc_scale(veu, size_in, size_out, crop_out, &mant, &frac, &rep);
veu               709 drivers/media/platform/sh_veu.c 	value = (sh_veu_reg_read(veu, VEU_RFCR) & ~0xffff0000) |
veu               712 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_RFCR, value);
veu               715 drivers/media/platform/sh_veu.c 	value = (sh_veu_reg_read(veu, VEU_RFSR) & ~0xffff0000) |
veu               718 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_RFSR, value);
veu               723 drivers/media/platform/sh_veu.c static unsigned long sh_veu_scale_h(struct sh_veu_dev *veu,
veu               728 drivers/media/platform/sh_veu.c 	sh_veu_calc_scale(veu, size_in, size_out, crop_out, &mant, &frac, &rep);
veu               731 drivers/media/platform/sh_veu.c 	value = (sh_veu_reg_read(veu, VEU_RFCR) & ~0xffff) |
veu               734 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_RFCR, value);
veu               737 drivers/media/platform/sh_veu.c 	value = (sh_veu_reg_read(veu, VEU_RFSR) & ~0xffff) |
veu               740 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_RFSR, value);
veu               745 drivers/media/platform/sh_veu.c static void sh_veu_configure(struct sh_veu_dev *veu)
veu               752 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_BSRR, 0x100);
veu               754 drivers/media/platform/sh_veu.c 	src_width = veu->vfmt_in.frame.width;
veu               755 drivers/media/platform/sh_veu.c 	src_height = veu->vfmt_in.frame.height;
veu               756 drivers/media/platform/sh_veu.c 	src_stride = ALIGN(veu->vfmt_in.frame.width, 16);
veu               758 drivers/media/platform/sh_veu.c 	dst_width = real_w = veu->vfmt_out.frame.width;
veu               759 drivers/media/platform/sh_veu.c 	dst_height = real_h = veu->vfmt_out.frame.height;
veu               761 drivers/media/platform/sh_veu.c 	dst_stride = veu->vfmt_out.bytesperline;
veu               768 drivers/media/platform/sh_veu.c 	src_width = sh_veu_scale_h(veu, src_width, real_w, dst_width);
veu               769 drivers/media/platform/sh_veu.c 	src_height = sh_veu_scale_v(veu, src_height, real_h, dst_height);
veu               771 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_SWR, src_stride);
veu               772 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_SSR, src_width | (src_height << 16));
veu               773 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_BSSR, 0); /* not using bundle mode */
veu               775 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_EDWR, dst_stride);
veu               776 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_DACR, 0); /* unused for RGB */
veu               778 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_SWPR, 0x67);
veu               779 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_TRCR, (6 << 16) | (0 << 14) | 2 | 4);
veu               781 drivers/media/platform/sh_veu.c 	if (veu->is_2h) {
veu               782 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR00, 0x0cc5);
veu               783 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR01, 0x0950);
veu               784 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR02, 0x0000);
veu               786 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR10, 0x397f);
veu               787 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR11, 0x0950);
veu               788 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR12, 0x3ccd);
veu               790 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR20, 0x0000);
veu               791 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR21, 0x0950);
veu               792 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_MCR22, 0x1023);
veu               794 drivers/media/platform/sh_veu.c 		sh_veu_reg_write(veu, VEU_COFFR, 0x00800010);
veu               807 drivers/media/platform/sh_veu.c 		struct sh_veu_dev *veu = veu_file->veu_dev;
veu               810 drivers/media/platform/sh_veu.c 		veu->xaction = 0;
veu               811 drivers/media/platform/sh_veu.c 		veu->aborting = false;
veu               857 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = vb2_get_drv_priv(vq);
veu               858 drivers/media/platform/sh_veu.c 	struct sh_veu_vfmt *vfmt = sh_veu_get_vfmt(veu, vq->type);
veu               877 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "get %d buffer(s) of size %d each.\n", count, size);
veu               884 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = vb2_get_drv_priv(vb->vb2_queue);
veu               888 drivers/media/platform/sh_veu.c 	vfmt = sh_veu_get_vfmt(veu, vb->vb2_queue->type);
veu               893 drivers/media/platform/sh_veu.c 		dev_dbg(veu->dev, "%s data will not fit into plane (%lu < %u)\n",
veu               906 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = vb2_get_drv_priv(vb->vb2_queue);
veu               907 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "%s(%d)\n", __func__, vb->type);
veu               908 drivers/media/platform/sh_veu.c 	v4l2_m2m_buf_queue(veu->m2m_ctx, vbuf);
veu               922 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = priv;
veu               928 drivers/media/platform/sh_veu.c 	src_vq->drv_priv = veu;
veu               932 drivers/media/platform/sh_veu.c 	src_vq->lock = &veu->fop_lock;
veu               934 drivers/media/platform/sh_veu.c 	src_vq->dev = veu->v4l2_dev.dev;
veu               943 drivers/media/platform/sh_veu.c 	dst_vq->drv_priv = veu;
veu               947 drivers/media/platform/sh_veu.c 	dst_vq->lock = &veu->fop_lock;
veu               949 drivers/media/platform/sh_veu.c 	dst_vq->dev = veu->v4l2_dev.dev;
veu               958 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = video_drvdata(file);
veu               966 drivers/media/platform/sh_veu.c 	veu_file->veu_dev = veu;
veu               971 drivers/media/platform/sh_veu.c 	pm_runtime_get_sync(veu->dev);
veu               974 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "Created instance %p\n", veu_file);
veu               981 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = video_drvdata(file);
veu               984 drivers/media/platform/sh_veu.c 	dev_dbg(veu->dev, "Releasing instance %p\n", veu_file);
veu               986 drivers/media/platform/sh_veu.c 	if (veu_file == veu->capture) {
veu               987 drivers/media/platform/sh_veu.c 		veu->capture = NULL;
veu               988 drivers/media/platform/sh_veu.c 		vb2_queue_release(v4l2_m2m_get_vq(veu->m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE));
veu               991 drivers/media/platform/sh_veu.c 	if (veu_file == veu->output) {
veu               992 drivers/media/platform/sh_veu.c 		veu->output = NULL;
veu               993 drivers/media/platform/sh_veu.c 		vb2_queue_release(v4l2_m2m_get_vq(veu->m2m_ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT));
veu               996 drivers/media/platform/sh_veu.c 	if (!veu->output && !veu->capture && veu->m2m_ctx) {
veu               997 drivers/media/platform/sh_veu.c 		v4l2_m2m_ctx_release(veu->m2m_ctx);
veu               998 drivers/media/platform/sh_veu.c 		veu->m2m_ctx = NULL;
veu              1001 drivers/media/platform/sh_veu.c 	pm_runtime_put(veu->dev);
veu              1051 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = dev_id;
veu              1053 drivers/media/platform/sh_veu.c 	if (veu->xaction == MEM2MEM_DEF_TRANSLEN || veu->aborting) {
veu              1054 drivers/media/platform/sh_veu.c 		v4l2_m2m_job_finish(veu->m2m_dev, veu->m2m_ctx);
veu              1055 drivers/media/platform/sh_veu.c 		veu->xaction = 0;
veu              1057 drivers/media/platform/sh_veu.c 		sh_veu_device_run(veu);
veu              1065 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = dev_id;
veu              1068 drivers/media/platform/sh_veu.c 	u32 status = sh_veu_reg_read(veu, VEU_EVTR);
veu              1075 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_EIER, 0);
veu              1077 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_STR, 0);
veu              1079 drivers/media/platform/sh_veu.c 	sh_veu_reg_write(veu, VEU_EVTR, status & ~1);
veu              1082 drivers/media/platform/sh_veu.c 	dst = v4l2_m2m_dst_buf_remove(veu->m2m_ctx);
veu              1083 drivers/media/platform/sh_veu.c 	src = v4l2_m2m_src_buf_remove(veu->m2m_ctx);
veu              1093 drivers/media/platform/sh_veu.c 	spin_lock(&veu->lock);
veu              1096 drivers/media/platform/sh_veu.c 	spin_unlock(&veu->lock);
veu              1098 drivers/media/platform/sh_veu.c 	veu->xaction++;
veu              1105 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu;
veu              1118 drivers/media/platform/sh_veu.c 	veu = devm_kzalloc(&pdev->dev, sizeof(*veu), GFP_KERNEL);
veu              1119 drivers/media/platform/sh_veu.c 	if (!veu)
veu              1122 drivers/media/platform/sh_veu.c 	veu->is_2h = resource_size(reg_res) == 0x22c;
veu              1124 drivers/media/platform/sh_veu.c 	veu->base = devm_ioremap_resource(&pdev->dev, reg_res);
veu              1125 drivers/media/platform/sh_veu.c 	if (IS_ERR(veu->base))
veu              1126 drivers/media/platform/sh_veu.c 		return PTR_ERR(veu->base);
veu              1129 drivers/media/platform/sh_veu.c 					0, "veu", veu);
veu              1133 drivers/media/platform/sh_veu.c 	ret = v4l2_device_register(&pdev->dev, &veu->v4l2_dev);
veu              1139 drivers/media/platform/sh_veu.c 	vdev = &veu->vdev;
veu              1142 drivers/media/platform/sh_veu.c 	vdev->v4l2_dev = &veu->v4l2_dev;
veu              1143 drivers/media/platform/sh_veu.c 	spin_lock_init(&veu->lock);
veu              1144 drivers/media/platform/sh_veu.c 	mutex_init(&veu->fop_lock);
veu              1145 drivers/media/platform/sh_veu.c 	vdev->lock = &veu->fop_lock;
veu              1147 drivers/media/platform/sh_veu.c 	video_set_drvdata(vdev, veu);
veu              1149 drivers/media/platform/sh_veu.c 	veu->dev	= &pdev->dev;
veu              1150 drivers/media/platform/sh_veu.c 	veu->vfmt_out	= DEFAULT_OUT_VFMT;
veu              1151 drivers/media/platform/sh_veu.c 	veu->vfmt_in	= DEFAULT_IN_VFMT;
veu              1153 drivers/media/platform/sh_veu.c 	veu->m2m_dev = v4l2_m2m_init(&sh_veu_m2m_ops);
veu              1154 drivers/media/platform/sh_veu.c 	if (IS_ERR(veu->m2m_dev)) {
veu              1155 drivers/media/platform/sh_veu.c 		ret = PTR_ERR(veu->m2m_dev);
veu              1156 drivers/media/platform/sh_veu.c 		v4l2_err(&veu->v4l2_dev, "Failed to init mem2mem device: %d\n", ret);
veu              1172 drivers/media/platform/sh_veu.c 	v4l2_m2m_release(veu->m2m_dev);
veu              1174 drivers/media/platform/sh_veu.c 	v4l2_device_unregister(&veu->v4l2_dev);
veu              1181 drivers/media/platform/sh_veu.c 	struct sh_veu_dev *veu = container_of(v4l2_dev,
veu              1184 drivers/media/platform/sh_veu.c 	video_unregister_device(&veu->vdev);
veu              1186 drivers/media/platform/sh_veu.c 	v4l2_m2m_release(veu->m2m_dev);
veu              1187 drivers/media/platform/sh_veu.c 	v4l2_device_unregister(&veu->v4l2_dev);