gsc               340 drivers/media/platform/exynos-gsc/gsc-core.c void gsc_set_prefbuf(struct gsc_dev *gsc, struct gsc_frame *frm)
gsc               392 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               393 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_variant *variant = gsc->variant;
gsc               521 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               522 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_variant *variant = gsc->variant;
gsc               701 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               702 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_variant *variant = gsc->variant;
gsc               863 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = priv;
gsc               867 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_irq = gsc_hw_get_irq_status(gsc);
gsc               868 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_hw_clear_irq(gsc, gsc_irq);
gsc               875 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_lock(&gsc->slock);
gsc               877 drivers/media/platform/exynos-gsc/gsc-core.c 	if (test_and_clear_bit(ST_M2M_PEND, &gsc->state)) {
gsc               879 drivers/media/platform/exynos-gsc/gsc-core.c 		gsc_hw_enable_control(gsc, false);
gsc               881 drivers/media/platform/exynos-gsc/gsc-core.c 		if (test_and_clear_bit(ST_M2M_SUSPENDING, &gsc->state)) {
gsc               882 drivers/media/platform/exynos-gsc/gsc-core.c 			set_bit(ST_M2M_SUSPENDED, &gsc->state);
gsc               883 drivers/media/platform/exynos-gsc/gsc-core.c 			wake_up(&gsc->irq_queue);
gsc               886 drivers/media/platform/exynos-gsc/gsc-core.c 		ctx = v4l2_m2m_get_curr_priv(gsc->m2m.m2m_dev);
gsc               891 drivers/media/platform/exynos-gsc/gsc-core.c 		spin_unlock(&gsc->slock);
gsc               897 drivers/media/platform/exynos-gsc/gsc-core.c 			wake_up(&gsc->irq_queue);
gsc               903 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_unlock(&gsc->slock);
gsc              1108 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc;
gsc              1115 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc = devm_kzalloc(dev, sizeof(struct gsc_dev), GFP_KERNEL);
gsc              1116 drivers/media/platform/exynos-gsc/gsc-core.c 	if (!gsc)
gsc              1126 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->id = ret;
gsc              1127 drivers/media/platform/exynos-gsc/gsc-core.c 	if (gsc->id >= drv_data->num_entities) {
gsc              1128 drivers/media/platform/exynos-gsc/gsc-core.c 		dev_err(dev, "Invalid platform device id: %d\n", gsc->id);
gsc              1132 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->num_clocks = drv_data->num_clocks;
gsc              1133 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->variant = drv_data->variant[gsc->id];
gsc              1134 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->pdev = pdev;
gsc              1136 drivers/media/platform/exynos-gsc/gsc-core.c 	init_waitqueue_head(&gsc->irq_queue);
gsc              1137 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_lock_init(&gsc->slock);
gsc              1138 drivers/media/platform/exynos-gsc/gsc-core.c 	mutex_init(&gsc->lock);
gsc              1141 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->regs = devm_ioremap_resource(dev, res);
gsc              1142 drivers/media/platform/exynos-gsc/gsc-core.c 	if (IS_ERR(gsc->regs))
gsc              1143 drivers/media/platform/exynos-gsc/gsc-core.c 		return PTR_ERR(gsc->regs);
gsc              1151 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = 0; i < gsc->num_clocks; i++) {
gsc              1152 drivers/media/platform/exynos-gsc/gsc-core.c 		gsc->clock[i] = devm_clk_get(dev, drv_data->clk_names[i]);
gsc              1153 drivers/media/platform/exynos-gsc/gsc-core.c 		if (IS_ERR(gsc->clock[i])) {
gsc              1156 drivers/media/platform/exynos-gsc/gsc-core.c 			return PTR_ERR(gsc->clock[i]);
gsc              1160 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = 0; i < gsc->num_clocks; i++) {
gsc              1161 drivers/media/platform/exynos-gsc/gsc-core.c 		ret = clk_prepare_enable(gsc->clock[i]);
gsc              1166 drivers/media/platform/exynos-gsc/gsc-core.c 				clk_disable_unprepare(gsc->clock[i]);
gsc              1172 drivers/media/platform/exynos-gsc/gsc-core.c 				0, pdev->name, gsc);
gsc              1178 drivers/media/platform/exynos-gsc/gsc-core.c 	ret = v4l2_device_register(dev, &gsc->v4l2_dev);
gsc              1182 drivers/media/platform/exynos-gsc/gsc-core.c 	ret = gsc_register_m2m_device(gsc);
gsc              1186 drivers/media/platform/exynos-gsc/gsc-core.c 	platform_set_drvdata(pdev, gsc);
gsc              1188 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_hw_set_sw_reset(gsc);
gsc              1189 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_wait_reset(gsc);
gsc              1193 drivers/media/platform/exynos-gsc/gsc-core.c 	dev_dbg(dev, "gsc-%d registered successfully\n", gsc->id);
gsc              1201 drivers/media/platform/exynos-gsc/gsc-core.c 	v4l2_device_unregister(&gsc->v4l2_dev);
gsc              1203 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = gsc->num_clocks - 1; i >= 0; i--)
gsc              1204 drivers/media/platform/exynos-gsc/gsc-core.c 		clk_disable_unprepare(gsc->clock[i]);
gsc              1210 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = platform_get_drvdata(pdev);
gsc              1215 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_unregister_m2m_device(gsc);
gsc              1216 drivers/media/platform/exynos-gsc/gsc-core.c 	v4l2_device_unregister(&gsc->v4l2_dev);
gsc              1219 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = 0; i < gsc->num_clocks; i++)
gsc              1220 drivers/media/platform/exynos-gsc/gsc-core.c 		clk_disable_unprepare(gsc->clock[i]);
gsc              1230 drivers/media/platform/exynos-gsc/gsc-core.c static int gsc_m2m_suspend(struct gsc_dev *gsc)
gsc              1235 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_lock_irqsave(&gsc->slock, flags);
gsc              1236 drivers/media/platform/exynos-gsc/gsc-core.c 	if (!gsc_m2m_pending(gsc)) {
gsc              1237 drivers/media/platform/exynos-gsc/gsc-core.c 		spin_unlock_irqrestore(&gsc->slock, flags);
gsc              1240 drivers/media/platform/exynos-gsc/gsc-core.c 	clear_bit(ST_M2M_SUSPENDED, &gsc->state);
gsc              1241 drivers/media/platform/exynos-gsc/gsc-core.c 	set_bit(ST_M2M_SUSPENDING, &gsc->state);
gsc              1242 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_unlock_irqrestore(&gsc->slock, flags);
gsc              1244 drivers/media/platform/exynos-gsc/gsc-core.c 	timeout = wait_event_timeout(gsc->irq_queue,
gsc              1245 drivers/media/platform/exynos-gsc/gsc-core.c 			     test_bit(ST_M2M_SUSPENDED, &gsc->state),
gsc              1248 drivers/media/platform/exynos-gsc/gsc-core.c 	clear_bit(ST_M2M_SUSPENDING, &gsc->state);
gsc              1252 drivers/media/platform/exynos-gsc/gsc-core.c static void gsc_m2m_resume(struct gsc_dev *gsc)
gsc              1257 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_lock_irqsave(&gsc->slock, flags);
gsc              1259 drivers/media/platform/exynos-gsc/gsc-core.c 	ctx = gsc->m2m.ctx;
gsc              1260 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc->m2m.ctx = NULL;
gsc              1261 drivers/media/platform/exynos-gsc/gsc-core.c 	spin_unlock_irqrestore(&gsc->slock, flags);
gsc              1263 drivers/media/platform/exynos-gsc/gsc-core.c 	if (test_and_clear_bit(ST_M2M_SUSPENDED, &gsc->state))
gsc              1269 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = dev_get_drvdata(dev);
gsc              1273 drivers/media/platform/exynos-gsc/gsc-core.c 	pr_debug("gsc%d: state: 0x%lx\n", gsc->id, gsc->state);
gsc              1275 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = 0; i < gsc->num_clocks; i++) {
gsc              1276 drivers/media/platform/exynos-gsc/gsc-core.c 		ret = clk_prepare_enable(gsc->clock[i]);
gsc              1279 drivers/media/platform/exynos-gsc/gsc-core.c 				clk_disable_unprepare(gsc->clock[i]);
gsc              1284 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_hw_set_sw_reset(gsc);
gsc              1285 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_wait_reset(gsc);
gsc              1286 drivers/media/platform/exynos-gsc/gsc-core.c 	gsc_m2m_resume(gsc);
gsc              1293 drivers/media/platform/exynos-gsc/gsc-core.c 	struct gsc_dev *gsc = dev_get_drvdata(dev);
gsc              1297 drivers/media/platform/exynos-gsc/gsc-core.c 	ret = gsc_m2m_suspend(gsc);
gsc              1301 drivers/media/platform/exynos-gsc/gsc-core.c 	for (i = gsc->num_clocks - 1; i >= 0; i--)
gsc              1302 drivers/media/platform/exynos-gsc/gsc-core.c 		clk_disable_unprepare(gsc->clock[i]);
gsc              1304 drivers/media/platform/exynos-gsc/gsc-core.c 	pr_debug("gsc%d: state: 0x%lx\n", gsc->id, gsc->state);
gsc               378 drivers/media/platform/exynos-gsc/gsc-core.h void gsc_set_prefbuf(struct gsc_dev *gsc, struct gsc_frame *frm);
gsc               379 drivers/media/platform/exynos-gsc/gsc-core.h int gsc_register_m2m_device(struct gsc_dev *gsc);
gsc               380 drivers/media/platform/exynos-gsc/gsc-core.h void gsc_unregister_m2m_device(struct gsc_dev *gsc);
gsc                30 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc                33 drivers/media/platform/exynos-gsc/gsc-m2m.c 	curr_ctx = v4l2_m2m_get_curr_priv(gsc->m2m.m2m_dev);
gsc                34 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (!gsc_m2m_pending(gsc) || (curr_ctx != ctx))
gsc                38 drivers/media/platform/exynos-gsc/gsc-m2m.c 	ret = wait_event_timeout(gsc->irq_queue,
gsc               149 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc;
gsc               157 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc = ctx->gsc_dev;
gsc               158 drivers/media/platform/exynos-gsc/gsc-m2m.c 	spin_lock_irqsave(&gsc->slock, flags);
gsc               160 drivers/media/platform/exynos-gsc/gsc-m2m.c 	set_bit(ST_M2M_PEND, &gsc->state);
gsc               163 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (gsc->m2m.ctx != ctx) {
gsc               165 drivers/media/platform/exynos-gsc/gsc-m2m.c 				gsc->m2m.ctx, ctx);
gsc               167 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc->m2m.ctx = ctx;
gsc               174 drivers/media/platform/exynos-gsc/gsc-m2m.c 		wake_up(&gsc->irq_queue);
gsc               184 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc_set_prefbuf(gsc, &ctx->s_frame);
gsc               185 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc_hw_set_input_addr(gsc, &ctx->s_frame.addr, GSC_M2M_BUF_NUM);
gsc               186 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc_hw_set_output_addr(gsc, &ctx->d_frame.addr, GSC_M2M_BUF_NUM);
gsc               189 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc_hw_set_input_buf_masking(gsc, GSC_M2M_BUF_NUM, false);
gsc               190 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc_hw_set_output_buf_masking(gsc, GSC_M2M_BUF_NUM, false);
gsc               191 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc_hw_set_frm_done_irq_mask(gsc, false);
gsc               192 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc_hw_set_gsc_irq_enable(gsc, true);
gsc               217 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc_hw_enable_control(gsc, true);
gsc               219 drivers/media/platform/exynos-gsc/gsc-m2m.c 	spin_unlock_irqrestore(&gsc->slock, flags);
gsc               224 drivers/media/platform/exynos-gsc/gsc-m2m.c 	spin_unlock_irqrestore(&gsc->slock, flags);
gsc               291 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               296 drivers/media/platform/exynos-gsc/gsc-m2m.c 		 dev_name(&gsc->pdev->dev));
gsc               372 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               376 drivers/media/platform/exynos-gsc/gsc-m2m.c 		gsc->variant->in_buf_cnt : gsc->variant->out_buf_cnt;
gsc               615 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = video_drvdata(file);
gsc               619 drivers/media/platform/exynos-gsc/gsc-m2m.c 	pr_debug("pid: %d, state: 0x%lx", task_pid_nr(current), gsc->state);
gsc               621 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (mutex_lock_interruptible(&gsc->lock))
gsc               630 drivers/media/platform/exynos-gsc/gsc-m2m.c 	v4l2_fh_init(&ctx->fh, gsc->m2m.vfd);
gsc               640 drivers/media/platform/exynos-gsc/gsc-m2m.c 	ctx->gsc_dev = gsc;
gsc               650 drivers/media/platform/exynos-gsc/gsc-m2m.c 	ctx->m2m_ctx = v4l2_m2m_ctx_init(gsc->m2m.m2m_dev, ctx, queue_init);
gsc               657 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (gsc->m2m.refcnt++ == 0)
gsc               658 drivers/media/platform/exynos-gsc/gsc-m2m.c 		set_bit(ST_M2M_OPEN, &gsc->state);
gsc               662 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_unlock(&gsc->lock);
gsc               672 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_unlock(&gsc->lock);
gsc               679 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               682 drivers/media/platform/exynos-gsc/gsc-m2m.c 		task_pid_nr(current), gsc->state, gsc->m2m.refcnt);
gsc               684 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_lock(&gsc->lock);
gsc               691 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (--gsc->m2m.refcnt <= 0)
gsc               692 drivers/media/platform/exynos-gsc/gsc-m2m.c 		clear_bit(ST_M2M_OPEN, &gsc->state);
gsc               695 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_unlock(&gsc->lock);
gsc               703 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               706 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (mutex_lock_interruptible(&gsc->lock))
gsc               710 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_unlock(&gsc->lock);
gsc               718 drivers/media/platform/exynos-gsc/gsc-m2m.c 	struct gsc_dev *gsc = ctx->gsc_dev;
gsc               721 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (mutex_lock_interruptible(&gsc->lock))
gsc               725 drivers/media/platform/exynos-gsc/gsc-m2m.c 	mutex_unlock(&gsc->lock);
gsc               744 drivers/media/platform/exynos-gsc/gsc-m2m.c int gsc_register_m2m_device(struct gsc_dev *gsc)
gsc               749 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (!gsc)
gsc               752 drivers/media/platform/exynos-gsc/gsc-m2m.c 	pdev = gsc->pdev;
gsc               754 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.fops		= &gsc_m2m_fops;
gsc               755 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.ioctl_ops	= &gsc_m2m_ioctl_ops;
gsc               756 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.release	= video_device_release_empty;
gsc               757 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.lock		= &gsc->lock;
gsc               758 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.vfl_dir	= VFL_DIR_M2M;
gsc               759 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.v4l2_dev	= &gsc->v4l2_dev;
gsc               760 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->vdev.device_caps	= V4L2_CAP_STREAMING |
gsc               762 drivers/media/platform/exynos-gsc/gsc-m2m.c 	snprintf(gsc->vdev.name, sizeof(gsc->vdev.name), "%s.%d:m2m",
gsc               763 drivers/media/platform/exynos-gsc/gsc-m2m.c 					GSC_MODULE_NAME, gsc->id);
gsc               765 drivers/media/platform/exynos-gsc/gsc-m2m.c 	video_set_drvdata(&gsc->vdev, gsc);
gsc               767 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->m2m.vfd = &gsc->vdev;
gsc               768 drivers/media/platform/exynos-gsc/gsc-m2m.c 	gsc->m2m.m2m_dev = v4l2_m2m_init(&gsc_m2m_ops);
gsc               769 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (IS_ERR(gsc->m2m.m2m_dev)) {
gsc               771 drivers/media/platform/exynos-gsc/gsc-m2m.c 		return PTR_ERR(gsc->m2m.m2m_dev);
gsc               774 drivers/media/platform/exynos-gsc/gsc-m2m.c 	ret = video_register_device(&gsc->vdev, VFL_TYPE_GRABBER, -1);
gsc               781 drivers/media/platform/exynos-gsc/gsc-m2m.c 	pr_debug("gsc m2m driver registered as /dev/video%d", gsc->vdev.num);
gsc               785 drivers/media/platform/exynos-gsc/gsc-m2m.c 	v4l2_m2m_release(gsc->m2m.m2m_dev);
gsc               790 drivers/media/platform/exynos-gsc/gsc-m2m.c void gsc_unregister_m2m_device(struct gsc_dev *gsc)
gsc               792 drivers/media/platform/exynos-gsc/gsc-m2m.c 	if (gsc) {
gsc               793 drivers/media/platform/exynos-gsc/gsc-m2m.c 		v4l2_m2m_release(gsc->m2m.m2m_dev);
gsc               794 drivers/media/platform/exynos-gsc/gsc-m2m.c 		video_unregister_device(&gsc->vdev);
gsc               206 drivers/parisc/gsc.c 	gsc_asic->gsc = parent;
gsc                28 drivers/parisc/gsc.h 	struct parisc_device *gsc;