-static DECLARE_WAIT_QUEUE_HEAD(pnd_vsync_waitq);
-static u32 pnd_vsync_counter;
-static u32 pnd_vsync_last;
-static u32 pnd_vsync_active;
-
-static void pnd_vsync_callback(void *data)
-{
- pnd_vsync_counter++;
- if (pnd_vsync_active)
- wake_up_interruptible(&pnd_vsync_waitq);
-}
-
-static int pnd_vsync_read(char *page, char **start, off_t off, int count,
- int *eof, void *data)
-{
- char *p = page;
- int len, val = -1, ret, vcount;
-
- vcount = pnd_vsync_counter;
- pnd_vsync_active = 1;
- ret = wait_event_interruptible_timeout(pnd_vsync_waitq,
- (vcount != pnd_vsync_counter), msecs_to_jiffies(250));
- pnd_vsync_active = 0;
- if (ret > 0)
- val = pnd_vsync_counter - pnd_vsync_last;
-
- p += sprintf(p, "%d\n", val);
- pnd_vsync_last = pnd_vsync_counter;
-
- len = (p - page) - off;
- if (len < 0)
- len = 0;
-
- *eof = (len <= count) ? 1 : 0;
- *start = page + off;
-
- return len;
-}
-
-/* ************************************************************************* */
-