Lines Matching refs:flg
202 static int rk_flinger_alloc_buffer(struct flinger *flg, in rk_flinger_alloc_buffer() argument
214 if (!flg) in rk_flinger_alloc_buffer()
231 ret = rockchip_drm_direct_show_alloc_buffer(flg->drm_dev, create_buffer); in rk_flinger_alloc_buffer()
321 struct flinger *flg = NULL; in vehicle_flinger_init() local
344 flg = kzalloc(sizeof(*flg), GFP_KERNEL); in vehicle_flinger_init()
345 if (!flg) { in vehicle_flinger_init()
350 if (!flg->drm_dev) in vehicle_flinger_init()
351 flg->drm_dev = rockchip_drm_get_dev(); in vehicle_flinger_init()
352 if (!flg->drm_dev) { in vehicle_flinger_init()
354 kfree(flg); in vehicle_flinger_init()
358 mutex_init(&flg->queue_buffer_lock); in vehicle_flinger_init()
359 mutex_init(&flg->source_buffer_lock); in vehicle_flinger_init()
360 mutex_init(&flg->target_buffer_lock); in vehicle_flinger_init()
361 INIT_LIST_HEAD(&flg->queue_buffer_list); in vehicle_flinger_init()
362 init_waitqueue_head(&flg->worker_wait); in vehicle_flinger_init()
363 atomic_set(&flg->worker_cond_atomic, 0); in vehicle_flinger_init()
364 atomic_set(&flg->worker_running_atomic, 1); in vehicle_flinger_init()
367 flg->source_buffer[i].handle = 0; in vehicle_flinger_init()
368 flg->source_buffer[i].phy_addr = 0; in vehicle_flinger_init()
369 flg->source_buffer[i].fd = -1; in vehicle_flinger_init()
372 flg->target_buffer[i].phy_addr = 0; in vehicle_flinger_init()
373 flg->target_buffer[i].handle = 0; in vehicle_flinger_init()
374 flg->target_buffer[i].fd = -1; in vehicle_flinger_init()
378 buffer = &(flg->source_buffer[i]); in vehicle_flinger_init()
379 ret = rk_flinger_alloc_buffer(flg, buffer, w, h, s, f); in vehicle_flinger_init()
388 buffer = &(flg->target_buffer[i]); in vehicle_flinger_init()
394 ret = rk_flinger_alloc_buffer(flg, buffer, h, w, s, f); in vehicle_flinger_init()
396 ret = rk_flinger_alloc_buffer(flg, buffer, w, h, s, f); in vehicle_flinger_init()
405 ret = rk_flinger_create_worker(flg); in vehicle_flinger_init()
410 flinger = flg; in vehicle_flinger_init()
412 memcpy(&flg->v_cfg, v_cfg, sizeof(struct vehicle_cfg)); in vehicle_flinger_init()
413 rk_flinger_queue_work(flg, NULL); in vehicle_flinger_init()
414 flg->dev = dev; in vehicle_flinger_init()
416 ret = vehicle_flinger_parse_dt(flg); in vehicle_flinger_init()
428 rk_flinger_free_buffer(flg, &(flg->target_buffer[i])); in vehicle_flinger_init()
432 rk_flinger_free_buffer(flg, &(flg->source_buffer[i])); in vehicle_flinger_init()
438 struct flinger *flg = flinger; in vehicle_flinger_deinit() local
441 if (!flg) in vehicle_flinger_deinit()
444 atomic_set(&flg->worker_running_atomic, 0); in vehicle_flinger_deinit()
445 atomic_inc(&flg->worker_cond_atomic); in vehicle_flinger_deinit()
446 wake_up(&flg->worker_wait); in vehicle_flinger_deinit()
447 flush_work(&flg->render_work); in vehicle_flinger_deinit()
448 flush_workqueue(flg->render_workqueue); in vehicle_flinger_deinit()
449 rk_flinger_destroy_worker(flg); in vehicle_flinger_deinit()
453 rk_flinger_free_buffer(flg, &flg->source_buffer[i]); in vehicle_flinger_deinit()
456 rk_flinger_free_buffer(flg, &flg->target_buffer[i]); in vehicle_flinger_deinit()
458 kfree(flg); in vehicle_flinger_deinit()
1182 struct flinger *flg = flinger; in rk_flinger_first_done() local
1188 if (!flg) in rk_flinger_first_done()
1192 if (flg->source_buffer[i].state == FREE) { in rk_flinger_first_done()
1193 buffer = &(flg->source_buffer[i]); in rk_flinger_first_done()
1211 struct flinger *flg = flinger; in rk_flinger_render_show() local
1222 flg->source_index = 0; in rk_flinger_render_show()
1226 wait_event_interruptible_timeout(flg->worker_wait, in rk_flinger_render_show()
1227 atomic_read(&flg->worker_cond_atomic), in rk_flinger_render_show()
1232 if (atomic_read(&flg->worker_running_atomic) == 0) { in rk_flinger_render_show()
1236 if (atomic_read(&flg->worker_cond_atomic) <= 0) { in rk_flinger_render_show()
1240 atomic_dec(&flg->worker_cond_atomic); in rk_flinger_render_show()
1247 if (flg->source_buffer[found].state == QUEUE) { in rk_flinger_render_show()
1248 src_buffer = &flg->source_buffer[found]; in rk_flinger_render_show()
1305 if (flg->v_cfg.input_format == CIF_INPUT_FORMAT_PAL || in rk_flinger_render_show()
1306 flg->v_cfg.input_format == CIF_INPUT_FORMAT_NTSC) { in rk_flinger_render_show()
1307 iep_buffer = &(flg->target_buffer in rk_flinger_render_show()
1314 dst_buffer = &(flg->target_buffer in rk_flinger_render_show()
1317 } else if (flg->v_cfg.input_format == CIF_INPUT_FORMAT_PAL || in rk_flinger_render_show()
1318 flg->v_cfg.input_format == CIF_INPUT_FORMAT_NTSC) { in rk_flinger_render_show()
1319 iep_buffer = &(flg->target_buffer in rk_flinger_render_show()
1332 iep_buffer = &(flg->target_buffer[NUM_TARGET_BUFFERS - 1]); in rk_flinger_render_show()
1335 rk_flinger_rga_render(flg, src_buffer, iep_buffer, dst_buffer); in rk_flinger_render_show()
1337 rk_flinger_rga_scaler(flg, iep_buffer, dst_buffer); in rk_flinger_render_show()
1339 rk_flinger_vop_show(flg, dst_buffer); in rk_flinger_render_show()
1350 rk_flinger_rga_render(flg, src_buffer, dst_buffer, iep_buffer); in rk_flinger_render_show()
1352 rk_flinger_iep_deinterlace(flg, dst_buffer, iep_buffer); in rk_flinger_render_show()
1354 rk_flinger_rga_scaler(flg, iep_buffer, dst_buffer); in rk_flinger_render_show()
1355 rk_flinger_vop_show(flg, dst_buffer); in rk_flinger_render_show()
1394 struct flinger *flg = flinger; in rk_flinger_lookup_buffer_by_phy_addr() local
1399 if (flg->source_buffer[i].state == DEQUEUE) { in rk_flinger_lookup_buffer_by_phy_addr()
1400 buffer = &(flg->source_buffer[i]); in rk_flinger_lookup_buffer_by_phy_addr()
1446 struct flinger *flg = flinger; in vehicle_flinger_reverse_open() local
1465 buffer = &(flg->source_buffer[i]); in vehicle_flinger_reverse_open()
1476 buffer = &(flg->target_buffer[i]); in vehicle_flinger_reverse_open()
1488 flg->cvbs_field_count = 0; in vehicle_flinger_reverse_open()
1489 memcpy(&flg->v_cfg, v_cfg, sizeof(struct vehicle_cfg)); in vehicle_flinger_reverse_open()
1490 flg->running = true; in vehicle_flinger_reverse_open()
1498 struct flinger *flg = flinger; in vehicle_flinger_reverse_close() local
1500 flg->running = false; in vehicle_flinger_reverse_close()
1501 if (flg->drm_dev && flg->plane) in vehicle_flinger_reverse_close()
1502 rockchip_drm_direct_show_disable_plane(flg->drm_dev, flg->plane); in vehicle_flinger_reverse_close()
1511 struct flinger *flg = flinger; in vehicle_flinger_request_cif_buffer() local
1520 __func__, found, flg->source_buffer[found].state); in vehicle_flinger_request_cif_buffer()
1521 if (flg->source_buffer[found].state == FREE) { in vehicle_flinger_request_cif_buffer()
1522 src_buffer = &flg->source_buffer[found]; in vehicle_flinger_request_cif_buffer()
1538 struct flinger *flg = flinger; in vehicle_flinger_commit_cif_buffer() local
1540 if (!flg) in vehicle_flinger_commit_cif_buffer()
1546 atomic_inc(&flg->worker_cond_atomic); in vehicle_flinger_commit_cif_buffer()
1547 flg->debug_cif_count++; in vehicle_flinger_commit_cif_buffer()
1548 wake_up(&flg->worker_wait); in vehicle_flinger_commit_cif_buffer()