Lines Matching defs:ps3fb
2 * linux/drivers/video/ps3fb.c -- PS3 GPU frame buffer device
38 #include <asm/ps3fb.h>
43 #define DEVICE_NAME "ps3fb"
121 static struct ps3fb_priv ps3fb;
456 status = lv1_gpu_fb_blit(ps3fb.context_handle, dst_offset,
467 status = lv1_gpu_display_flip(ps3fb.context_handle, 0, frame_offset);
473 status = lv1_gpu_display_flip(ps3fb.context_handle, 1, frame_offset);
507 atomic_inc(&ps3fb.f_count);
513 if (atomic_dec_and_test(&ps3fb.f_count)) {
514 if (atomic_read(&ps3fb.ext_flip)) {
515 atomic_set(&ps3fb.ext_flip, 0);
713 dev_dbg(info->device, "ps3fb: mmap framebuffer P(%lx)->V(%lx)\n",
736 ps3fb.is_blanked = 1;
742 ps3fb.is_blanked = 0;
760 count = ps3fb.vblank_count;
761 ret = wait_event_interruptible_timeout(ps3fb.wait_vsync,
762 count != ps3fb.vblank_count,
863 atomic_inc(&ps3fb.ext_flip);
869 atomic_dec_if_positive(&ps3fb.ext_flip);
898 if (ps3fb.is_kicked) {
899 ps3fb.is_kicked = 0;
914 struct display_head *head = &ps3fb.dinfo->display_head[1];
916 status = lv1_gpu_context_intr(ps3fb.context_handle, &v1);
925 ps3fb.vblank_count = head->vblank_count;
926 if (ps3fb.task && !ps3fb.is_blanked &&
927 !atomic_read(&ps3fb.ext_flip)) {
928 ps3fb.is_kicked = 1;
929 wake_up_process(ps3fb.task);
931 wake_up_interruptible(&ps3fb.wait_vsync);
996 atomic_set(&ps3fb.f_count, -1); /* fbcon opens ps3fb */
997 atomic_set(&ps3fb.ext_flip, 0); /* for flip with vsync */
998 init_waitqueue_head(&ps3fb.wait_vsync);
1021 dev_info(&dev->core, "Limiting ps3fb mem size to %lu bytes\n",
1028 &ps3fb.memory_handle, &ddr_lpar);
1037 status = lv1_gpu_context_allocate(ps3fb.memory_handle, 0,
1038 &ps3fb.context_handle,
1057 ps3fb.dinfo = dinfo;
1074 &ps3fb.irq_no);
1081 retval = request_irq(ps3fb.irq_no, ps3fb_vsync_interrupt,
1097 status = lv1_gpu_context_iomap(ps3fb.context_handle, GPU_IOIF,
1112 status = lv1_gpu_fb_setup(ps3fb.context_handle, xdr_lpar,
1180 ps3fb.task = task;
1191 lv1_gpu_fb_close(ps3fb.context_handle);
1193 lv1_gpu_context_iomap(ps3fb.context_handle, GPU_IOIF, xdr_lpar,
1196 free_irq(ps3fb.irq_no, &dev->core);
1198 ps3_irq_plug_destroy(ps3fb.irq_no);
1200 iounmap((u8 __force __iomem *)ps3fb.dinfo);
1202 lv1_gpu_context_free(ps3fb.context_handle);
1204 lv1_gpu_memory_free(ps3fb.memory_handle);
1218 atomic_inc(&ps3fb.ext_flip); /* flip off */
1219 ps3fb.dinfo->irq.mask = 0;
1221 if (ps3fb.task) {
1222 struct task_struct *task = ps3fb.task;
1223 ps3fb.task = NULL;
1226 if (ps3fb.irq_no) {
1227 free_irq(ps3fb.irq_no, &dev->core);
1228 ps3_irq_plug_destroy(ps3fb.irq_no);
1236 iounmap((u8 __force __iomem *)ps3fb.dinfo);
1237 lv1_gpu_fb_close(ps3fb.context_handle);
1238 lv1_gpu_context_iomap(ps3fb.context_handle, GPU_IOIF, xdr_lpar,
1240 lv1_gpu_context_free(ps3fb.context_handle);
1241 lv1_gpu_memory_free(ps3fb.memory_handle);