/linux-master/drivers/gpu/drm/ |
H A D | drm_vblank_work.c | 13 * DOC: vblank works 39 * particular vblank has passed, and then executes the work at realtime 46 void drm_handle_vblank_works(struct drm_vblank_crtc *vblank) argument 49 u64 count = atomic64_read(&vblank->count); 52 assert_spin_locked(&vblank->dev->event_lock); 54 list_for_each_entry_safe(work, next, &vblank->pending_work, node) { 59 drm_vblank_put(vblank->dev, vblank->pipe); 60 kthread_queue_work(vblank->worker, &work->base); 64 wake_up_all(&vblank 70 drm_vblank_cancel_pending_works(struct drm_vblank_crtc *vblank) argument 112 struct drm_vblank_crtc *vblank = work->vblank; local 187 struct drm_vblank_crtc *vblank = work->vblank; local 223 struct drm_vblank_crtc *vblank = work->vblank; local 252 drm_vblank_worker_init(struct drm_vblank_crtc *vblank) argument [all...] |
H A D | drm_vblank.c | 2 * drm_irq.c IRQ and vblank support 43 * DOC: vblank handling 54 * scanlines is referred to as the vertical blanking region, or vblank for 98 * this programming has to both start and end in the same vblank. To help 101 * The interrupt is in this context named the vblank interrupt. 103 * The vblank interrupt may be fired at different points depending on the 122 * drm_crtc_handle_vblank() in its vblank interrupt handler for working vblank 129 * call drm_crtc_vblank_get() and release the vblank reference again with 130 * drm_crtc_vblank_put(). In between these two calls vblank interrupt 173 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 187 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 276 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 367 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 402 u64 vblank; local 441 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 477 struct drm_vblank_crtc *vblank = from_timer(vblank, t, disable_timer); local 492 struct drm_vblank_crtc *vblank = ptr; local 528 struct drm_vblank_crtc *vblank = &dev->vblank[i]; local 603 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 688 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 933 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 989 struct drm_vblank_crtc *vblank; local 1150 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1188 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1231 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1277 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1330 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1409 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1449 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1472 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1502 struct drm_vblank_crtc *vblank; local 1567 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1693 struct drm_vblank_crtc *vblank; local 1875 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 1965 struct drm_vblank_crtc *vblank; local 2021 struct drm_vblank_crtc *vblank; local [all...] |
H A D | drm_internal.h | 102 static inline void drm_vblank_flush_worker(struct drm_vblank_crtc *vblank) argument 104 kthread_flush_worker(vblank->worker); 107 static inline void drm_vblank_destroy_worker(struct drm_vblank_crtc *vblank) argument 109 if (vblank->worker) 110 kthread_destroy_worker(vblank->worker); 113 int drm_vblank_worker_init(struct drm_vblank_crtc *vblank); 114 void drm_vblank_cancel_pending_works(struct drm_vblank_crtc *vblank); 115 void drm_handle_vblank_works(struct drm_vblank_crtc *vblank);
|
/linux-master/drivers/gpu/drm/nouveau/nvkm/engine/sw/ |
H A D | nv50.c | 42 container_of(notify, typeof(*chan), vblank.notify[notify->id]); 47 nvkm_wr32(device, 0x001710, 0x80000000 | chan->vblank.ctxdma); 51 nvkm_wr32(device, 0x001570, chan->vblank.offset); 52 nvkm_wr32(device, 0x001574, chan->vblank.value); 54 nvkm_wr32(device, 0x060010, chan->vblank.offset); 55 nvkm_wr32(device, 0x060014, chan->vblank.value); 68 case 0x018c: chan->vblank.ctxdma = data; return true; 69 case 0x0400: chan->vblank.offset = data; return true; 70 case 0x0404: chan->vblank.value = data; return true; 72 if (data < device->disp->vblank [all...] |
H A D | gf100.c | 42 container_of(notify, typeof(*chan), vblank.notify[notify->id]); 49 nvkm_wr32(device, 0x06000c, upper_32_bits(chan->vblank.offset)); 50 nvkm_wr32(device, 0x060010, lower_32_bits(chan->vblank.offset)); 51 nvkm_wr32(device, 0x060014, chan->vblank.value); 64 chan->vblank.offset &= 0x00ffffffffULL; 65 chan->vblank.offset |= (u64)data << 32; 68 chan->vblank.offset &= 0xff00000000ULL; 69 chan->vblank.offset |= data; 72 chan->vblank.value = data; 75 if (data < device->disp->vblank [all...] |
H A D | nv50.h | 17 } vblank; member in struct:nv50_sw_chan
|
/linux-master/drivers/gpu/drm/loongson/ |
H A D | loongson_module.c | 17 MODULE_PARM_DESC(vblank, "Disable/Enable hw vblank support"); 18 module_param_named(vblank, loongson_vblank, int, 0400);
|
/linux-master/drivers/gpu/drm/i915/display/ |
H A D | intel_vblank.c | 24 * start of vblank: 27 * generate start of vblank interrupt (gen4+) 30 * | generate frame start interrupt (aka. vblank interrupt) (gmch) 59 * (depending on TRANSCONF settings) after the start of vblank 70 struct drm_vblank_crtc *vblank = &dev_priv->drm.vblank[drm_crtc_index(crtc)]; local 71 const struct drm_display_mode *mode = &vblank->hwmode; 80 * vblank wait before enabling the TV encoder and so we 81 * have to enable vblank interrupts while the frame counter 82 * is still in a working state. However the core vblank cod 123 struct drm_vblank_crtc *vblank = &dev_priv->drm.vblank[drm_crtc_index(crtc)]; local 135 struct drm_vblank_crtc *vblank = local 181 struct drm_vblank_crtc *vblank = local 204 struct drm_vblank_crtc *vblank; local 257 const struct drm_vblank_crtc *vblank = local [all...] |
/linux-master/include/drm/ |
H A D | drm_vblank_work.h | 12 * vblank passes, and then executes at realtime priority outside of IRQ 31 * @vblank: A pointer to &drm_vblank_crtc this work item belongs to. 33 struct drm_vblank_crtc *vblank; member in struct:drm_vblank_work 36 * @count: The target vblank this work will execute on. Drivers should
|
H A D | drm_device.h | 209 * If true, vblank interrupt will be disabled immediately when the 210 * refcount drops to zero, as opposed to via the vblank disable 213 * This can be set to true it the hardware has a working vblank counter 222 * @vblank: 224 * Array of vblank tracking structures, one per &struct drm_crtc. For 225 * historical reasons (vblank support predates kernel modesetting) this 229 struct drm_vblank_crtc *vblank; member in struct:drm_device 234 * Protects vblank count and time updates during vblank enable/disable 238 * @vbl_lock: Top-level vblank reference [all...] |
/linux-master/drivers/gpu/drm/vkms/ |
H A D | vkms_crtc.c | 26 pr_warn("%s: vblank timer overrun\n", __func__); 31 DRM_ERROR("vkms failure on handling vblank"); 66 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 73 out->period_ns = ktime_set(0, vblank->framedur_ns); 94 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 96 if (!READ_ONCE(vblank->enabled)) { 103 if (WARN_ON(*vblank_time == vblank->time)) 109 * only generated after all the vblank register [all...] |
/linux-master/drivers/gpu/drm/nouveau/ |
H A D | nouveau_crtc.h | 39 struct nvif_event vblank; member in struct:nouveau_crtc
|
/linux-master/drivers/media/test-drivers/vivid/ |
H A D | vivid-osd.c | 74 struct fb_vblank vblank; local 76 memset(&vblank, 0, sizeof(vblank)); 77 vblank.flags = FB_VBLANK_HAVE_COUNT | FB_VBLANK_HAVE_VCOUNT | 79 vblank.count = 0; 80 vblank.vcount = 0; 81 vblank.hcount = 0; 82 if (copy_to_user((void __user *)arg, &vblank, sizeof(vblank)))
|
/linux-master/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
H A D | base.c | 41 struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank); 50 struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank); 65 nvkm_event_ntfy(&disp->vblank, head, NVKM_DISP_HEAD_EVENT_VBLANK); 165 return nvkm_event_init(&nvkm_disp_vblank_func, subdev, 1, i, &disp->vblank); 188 nvkm_event_fini(&disp->vblank);
|
/linux-master/drivers/media/i2c/ |
H A D | ov9282.c | 129 * @vblank: Vertical blanking in lines 140 u32 vblank; member in struct:ov9282_mode 163 * @vblank: Vertical blanking in lines 185 u32 vblank; member in struct:ov9282 377 .vblank = 1022, 396 .vblank = 1022, 419 .vblank = 1022, 573 mode->vblank_max, 1, mode->vblank); 664 ov9282->vblank = ov9282->vblank_ctrl->val; 666 dev_dbg(ov9282->dev, "Received vblank [all...] |
H A D | imx412.c | 85 * @vblank: Vertical blanking in lines 97 u32 vblank; member in struct:imx412_mode 127 * @vblank: Vertical blanking in lines 148 u32 vblank; member in struct:imx412 397 .vblank = 506, 532 mode->vblank_max, 1, mode->vblank); 548 lpfr = imx412->vblank + imx412->cur_mode->height; 596 imx412->vblank = imx412->vblank_ctrl->val; 598 dev_dbg(imx412->dev, "Received vblank %u, new lpfr %u", 599 imx412->vblank, [all...] |
H A D | imx335.c | 115 * @vblank: Vertical blanking in lines 126 u32 vblank; member in struct:imx335_mode 149 * @vblank: Vertical blanking in lines 173 u32 vblank; member in struct:imx335 377 .vblank = 2560, 515 mode->vblank_max, 1, mode->vblank); 531 lpfr = imx335->vblank + imx335->cur_mode->height; 622 imx335->vblank = imx335->vblank_ctrl->val; 624 dev_dbg(imx335->dev, "Received vblank %u, new lpfr %u\n", 625 imx335->vblank, [all...] |
H A D | imx334.c | 102 * @vblank: Vertical blanking in lines 113 u32 vblank; member in struct:imx334_mode 136 * @vblank: Vertical blanking in lines 158 u32 vblank; member in struct:imx334 486 .vblank = 2340, 499 .vblank = 1170, 644 mode->vblank_max, 1, mode->vblank); 648 return __v4l2_ctrl_s_ctrl(imx334->vblank_ctrl, mode->vblank); 664 lpfr = imx334->vblank + imx334->cur_mode->height; 712 imx334->vblank [all...] |
H A D | mt9v011.c | 202 unsigned height, width, hblank, vblank, speed; local 210 vblank = mt9v011_read(sd, R06_MT9V011_VBLANK); 214 t_time = row_time * (height + vblank + 1); 232 unsigned height, width, hblank, vblank; local 243 vblank = mt9v011_read(sd, R06_MT9V011_VBLANK); 246 line_time = height + vblank + 1; 277 * hblank and vblank should be adjusted, in order to warrant that
|
/linux-master/drivers/video/fbdev/matrox/ |
H A D | matroxfb_crtc2.c | 403 static int matroxfb_dh_get_vblank(const struct matroxfb_dh_fb_info* m2info, struct fb_vblank* vblank) { argument 407 memset(vblank, 0, sizeof(*vblank)); 408 vblank->flags = FB_VBLANK_HAVE_VCOUNT | FB_VBLANK_HAVE_VBLANK; 410 vblank->vcount = mga_inl(0x3C48) & 0x000007FF; 412 if (vblank->vcount >= m2info->fbcon.var.yres) 413 vblank->flags |= FB_VBLANK_VBLANKING; 415 vblank->flags |= FB_VBLANK_HAVE_COUNT; 418 vblank->count = minfo->crtc2.vsync.cnt; 435 struct fb_vblank vblank; local [all...] |
/linux-master/drivers/gpu/drm/msm/disp/mdp4/ |
H A D | mdp4_crtc.c | 58 struct mdp_irq vblank; member in struct:mdp4_crtc 74 mdp_irq_register(&get_kms(crtc)->base, &mdp4_crtc->vblank); 270 /* Disable/save vblank irq handling before power is disabled */ 300 /* Restore vblank irq handling after power is enabled */ 352 * buffered, and changing them other than from vblank seems to trigger 499 struct mdp4_crtc *mdp4_crtc = container_of(irq, struct mdp4_crtc, vblank); 504 mdp_irq_unregister(&get_kms(crtc)->base, &mdp4_crtc->vblank); 537 ret = wait_event_timeout(dev->vblank[drm_crtc_index(crtc)].queue, 542 dev_warn(dev->dev, "vblank time out, crtc=%d\n", mdp4_crtc->id); 552 return mdp4_crtc->vblank [all...] |
/linux-master/drivers/gpu/drm/arm/ |
H A D | malidp_drv.h | 101 u64 vblank);
|
/linux-master/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_encoders.c | 170 unsigned int vblank = native_mode->vtotal - native_mode->vdisplay; local 186 adjusted_mode->vtotal = native_mode->vdisplay + vblank; 199 adjusted_mode->crtc_vtotal = adjusted_mode->crtc_vdisplay + vblank;
|
H A D | amdgpu_vkms.c | 56 DRM_WARN("%s: vblank timer overrun\n", __func__); 59 /* Don't queue timer again when vblank is disabled. */ 70 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 76 out->period_ns = ktime_set(0, vblank->framedur_ns); 97 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; local 100 if (!READ_ONCE(vblank->enabled)) { 107 if (WARN_ON(*vblank_time == vblank->time)) 113 * only generated after all the vblank register [all...] |
/linux-master/drivers/video/fbdev/core/ |
H A D | fbmon.c | 1023 u32 vblank; member in struct:__fb_timings 1033 * vblank = right_margin + vsync_len + left_margin 1045 u32 vblank; local 1047 vblank = (hfreq * FLYBACK)/1000; 1048 vblank = (vblank + 500)/1000; 1049 return (vblank + V_FRONTPORCH); 1151 timings->vblank = fb_get_vblank(timings->hfreq); 1152 timings->vtotal = timings->vactive + timings->vblank; 1161 timings->vblank [all...] |