This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

VIDIOC_DQBUF Hangs after reboot

Other Parts Discussed in Thread: TVP5150

Hi ,guys:

My platform is DM365+Tvp5150 + DVSDK4.0 + Kernel2.6.32.17

When first power up, the system runs ok, (it requires a video buf and send out),But if I reboot the board with "reset button" or "watch dog", the encode app cannot get buffer from v4l2 driver,it hangs in DVSDK->Capture.c->Capture_get()

if (ioctl(hCapture->fd, VIDIOC_DQBUF, &v4l2buf) < 0) {
        Dmai_err1("VIDIOC_DQBUF failed (%s)\n", strerror(errno));
        return Dmai_EFAIL;
    }

Only after disconnect the power and connect again, the system can run ok.

First I thought it's because the VPSS - reset BUG, so I check the UBL code ,the VPSS did reset by code after cool reset.

What will be the reason?

  • In UBL, it seems only warm_reset and power_onreset can be used to reset VPSS,but no need for Watchdog?

    static void POR_RESET()
    {
        if ((PLL1->RSTYPE)&3) {

            VPSS_SYNC_RESET();  // VPSS sync reset

            *GPINT_GPEN = 0x00020000;

            *GPTDAT_GPDIR = 0x00020002;

            while(1);
          }

    }

    Well, watchdog reset indeed causes my problem.