Hi: In my experiment, it seems that the resizer will hang only if the input size is too small, while bigger is okay. So, to be safe, you can keep your input size and output size as it is, and try some smaller RSZ. If you follow the formula in sprue38a, then
hrsz = ((iw-4)<<8 - 16 - 32*sph) / (ow-1) = ((240-4)*256 - 16)/239 = 252 vrsz = ((ih-4)<<8 - 16 - 32*spv) / (oh-1) = ((320-4)*256 - 16)/319 = 253 If you use these rsz to get back the required input width and height, the result is a smaller 239x319, which is due to the truncation of the fraction number. Sprue38A is not clear about whether we should use truncation or rounding. If use rounding, then hrsz=253 and vrsz=254, the required input size will be back to 240x320. It happens so that if you keep the input size as 240x320, the resizer will work in both cases. The other thing, although not related to the hanging issue, your filter coefficients seem to be wrong, since the resizer only performs dot product without any averaging operation, your should set 0.25 for each coefficient, i.e. set 0x00400040 for each register. And because the RSZ is not exactly 256, you might want to set the other filter also. Just set all to 0x00400040. Regards Zheng Lei -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Pradeep Sriram Sent: Tuesday, January 16, 2007 11:18 PM To: davinci-linux-open-source@linux.davincidsp.com Subject: Re: Resizer stuck indefinitely Hi Carlos , I modified the registers as per your comments. regw (0x00F30146, IN_SIZE); Even with these new values, the resizer is hung. Am I missing some configuration? Regards, Pradeep Sriram On 1/12/07, Pradeep Sriram <[EMAIL PROTECTED]> wrote: Hi all, I have written a simple char driver for the resizer. The resizer seems to be stuck indefinitely (ie) the busy flag is stuck at 1. Given below is my register configuration for simple video pass through. I am not sure what is wrong. Please help. regw (0x30040100, RSZ_CNT );// Bilinear, sdram, interleaved, YC, RSZ=1X, 1X(pass through) regw (0x00F00140, IN_SIZE);//240x320 regw (0x00F00140, OUT_SIZE);//240x320 regw (0x00000280, SDR_INOFF);//640 regw (0x00000280, SDR_OUTOFF);//640 // Set 1st phase filters to 1 for pass through regw (0x01000100, HFILT10 ); regw (0x01000100, HFILT32 ); regw (0x01000100, VFILT10 ); regw (0x01000100, VFILT32); Memory_getPhysicalAddress used to get SDRAM physical addresses. Input buffer is got by Memory_contigAlloc and output buffer is frame buffer. Thanks & Regards, Pradeep Sriram
_______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source