Hi,
I'm running into an issue outputting SMPTE x/1.001 FPS video from the DM8107. The DM8107 is being used on a custom board ultimately as a source for SDI output. Although we can set the mode through the dvrrdk framework, the VPSS kernel module as released will set the pixel clock out of spec for SMTPE standards, and off from the frequency specified in ti_vdis_timings.h (74.176MHz)
With the driver as is from TI, we get the following when setting the display
obtained from /opt/dvr_rdk/ti810x/bin/pll_print.out:
VIDEO_1 Freq : 74.2 MHz ( M x 20 ) / ( (N+1) x M2 )
VIDEO_1_M : 594
VIDEO_1_N : 19
VIDEO_1_M2 : 8
HDMI Freq : 74.2 MHz ( M x 20 ) / ( (N+1) x M2 )
HDMI_M : 742
HDMI_N : 19
HDMI_M2 : 10
For either of the above PLLs, the calculated value is exactly 74.2MHz, which is too far out of spec for some of our monitors to consistently lock to 1080p29. In one case, the monitor will reset and switch between 29.9 and 30 every few seconds. We have measured this in the lab and confirmed the pixel clock to be exactly 74.2MHz with these settings.
The video at this setting does however otherwise look fine.
I was able to modify the vpss module to set the PLLs as follows for 1080p29 and resolutions with the same clock rate:
VIDEO_1 Freq : 74.2 MHz ( M x 20 ) / ( (N+1) x M2 )
VIDEO_1_M : 1350
VIDEO_1_N : 25
VIDEO_1_M2 : 14
HDMI Freq : 74.2 MHz ( M x 20 ) / ( (N+1) x M2 )
HDMI_M : 1350
HDMI_N : 25
HDMI_M2 : 14
The more precise calculated frequency with these values is 74.175824, which is the correct clock rate for the SMPTE spec. As with the previous settings, we've measured this in our lab and confirmed that the outgoing pixel clock does in fact match the calculated frequency. Also, all of our monitors will lock to 29.9 with this setting, but we must be missing something in the pipeline, as the video frame is not properly synchronized - the result looks like scrolling as you might see in improperly synchronized analog video. This issue also exists for 1080p59.9 (148.5/1.001 MHz) and 720p59.
Aside from the pixel clock frequency, all other settings remain the same. I'm guessing it's something internal to the HDVPSS subsystem or maybe more specifically within the HDVENC setup, but after some time digging I haven't been able to find a solution. We've exhausted any ideas on our side as to how to get this working, and are now hoping for some support from the TI side.
Any help would be greatly appreciated.