Waiting for display V-Sync not supported

  • When using double buffering and switching between the buffers it's nice to wait for the VSync.

    Code
    1. int ret=ioctl(fbfd,FBIO_WAITFORVSYNC,0);


    returns 0xFFFFFFFF - EPERM (operation not permitted).


    In the kernel sc3_fb.c driver there's a function to handle the VSync but it never gets called:


    In assembly debugging ioctl is calling "svc 0x00000000" what is returning 0xFFFFFFF2 (EFAULT - bad address).


    Thanks for help.

  • Quote from "RSchubert"

    When using double buffering and switching between the buffers it's nice to wait for the VSync.

    Code
    1. int ret=ioctl(fbfd,FBIO_WAITFORVSYNC,0);


    returns 0xFFFFFFFF - EPERM (operation not permitted).


    Hmm, ioctl() returns -1 on error. So your 0xFFFFFFFF is not the error code, it is just the condition "error". The error number is in errno and should be -EFAULT. Because when looking at the source code that you kindly added, shouldn't the call look something like this?

    Code
    1. u32 arg = 0;
    2. int ret=ioctl(fbfd, FBIO_WAITFORVSYNC, &arg);

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.