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.

DM368 Resizer converts from YUV422 720*576 to YUV420SP 704x576---4channels

Other Parts Discussed in Thread: TVP5158

Hi:

 

       good morning!  I have a question, I hope you can help me .

                      my environment is this: 4 channel video is acquired by camera and then be analysed by TVP5158, so the data is YUV422 720*576. then the DM368 reiser convert the YUV422 720*576 to YUV420SP 704x576.

                     the question is : when I use 3 channels or 2channels or one channel.the DM368 Resiezer is OK, but when the channel number is 4. the bord run for a while,sometimes 10 minutes,sometimes 1 hour. the DM368_Reizer is not work . when I use OICTL() to convert. in the driver. the thread will request a irq, then put the task into array ,the it call wake_uo_completion_interrupt() to sleep . so at last the thread is not be waked up ,so the thread is sleep always.

                     I do not know whether the DM368  Resize chip has s BUG or MY code is wrong ,next is the code   and the file is the daigram, if you need more information ,please tell me .I will do it  ,thank you !!

 

               8510.resier-bug.vsd

 struct imp_convert convert;

bzero(&convert,sizeof(convert));
  convert.in_buff.buf_type = IMP_BUF_IN;
  convert.in_buff.index = -1;
  convert.in_buff.offset = (unsigned int)(dex_src_p->D.data->addr_virt + dex_src_p->D.data->offset);
  convert.in_buff.size = dex_src_p->D.data->length;

  convert.out_buff1.buf_type = IMP_BUF_OUT1;
  convert.out_buff1.index = -1;
  convert.out_buff1.offset = (unsigned int)(dex_dst_Main_p->D.data->addr_virt + dex_dst_Main_p->D.data->offset);
  convert.out_buff1.size = dex_dst_Main_p->D.data->length;

 ret = ioctl(bin_priv_p->devfd, RSZ_RESIZE, &convert);