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.

questions regarding VPSS_RSZ_INT_SDR (RSZ_INT_DMA) Interrupt and vpfe_imp_dma_isr()



Hello

I have a problem supporting  OV7725 CMOS sensor in YCbCr 8 bit SYNC mode for my DM365 board.

 

using DVSDK_2_10_01_18

- when I implement in BT.656 mode, OV7725 sensor works very fine in the dvsdk encode demo program.

- when I implement in YCbCr 8 bit SYNC mode for the same OV7725 sensor, vpfe_imp_dma_isr() in  drivers/media/video/davinci/davinci_vpfe.c is never called. 

- so when I intentionally call vpfe_imp_dma_isr()  at the end of vpfe_isr() function like followings, ov7725 works fine in the dvsdk encode demo program.

static irqreturn_t vpfe_isr()

{

...

// I added.

    vpfe_imp_dma_isw(irq, dev_id, regs);

  return IRQ_RETVAL(1);

}

 

My questions are:

1. When does VPSS_RSZ_INT_SDR or RSZ_INT_DMA interrupt is generated ? I looked the VPFE datasheet. but there was not enough information regarding this.

2.  I guess BT.656 and YCbCr 8 SYNC mode is almost same.  If so, why does this probem happen?

I checked VPFE registers and all the registers values are same except followings registers.

      - MODESET.VDPOL

     -  REC656IF

     - RZA_SDR_C_BAD_H

    - RZA_SDR_C_SAD_H

  -  INSTAT

The only code difference is INTERFACE_TYPE_BT656 or INTERFACE_TYPE_YCBCR_SYNC_8 in if_type like followings:

in ov7725.c file:

static struct decoder_device ov7725_dev[] = {

   {

       .name = "ov7725",

#if BT656 mode

      .if_type = INTERFACE_TYPE_BT656,

#else

     .if_type = INTERFACE_TYPE_YCBCR_SYNC_8

#endif

....

};

  • Hi,

    Jay Nam said:

    1. When does VPSS_RSZ_INT_SDR or RSZ_INT_DMA interrupt is generated ? I looked the VPFE datasheet. but there was not enough information regarding this.

    RSZ_INT_DMA or VPSS_RSZ_INT_SDR occurs when the resizer has completed the output for both the resizer ports (RSZA and RSZB) to DDR. This is the interrupt which happens when there is no more data to be transmitted from RSZ to the DDR.

    Have you ensured that when you move from BT656 to YCC8 parallel input mode, you have taken care of the timings at the sensor side? The main thing to look for would be the active pixels and active lines, and the horizontal and vertical blanking. It might happen that the horizontal and vertical blanking might not be correctly programmed and because of which the resizer might be thinking that it has to send out more data but there is no more input data.

    Regards,

    Anshuman

  • Jay,

    This is probably no longer any use to you, but since others might come across this post looking for the answer, I would refer them to this post:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/p/219393/806734.aspx#806734

    Hope this helps some folks out.

    Ryan