Interlaced video out on TK1

We are trying to display a custom resolution on TK1 with interlacing. For this purpose we have predefined an EDID for our video timings in TK1’s video driver. Now here comes the issue, when we boot TK1, it shows kernel console messages on HDMI and the resolution, refresh rate & mode (i.e interlacing) is correctly being displayed as we defined in our EDID. BUT as soon as the desktop manager/X-server starts, it changes the mode from interlacing to progressive and the refresh rate from 50Hz to 25Hz. We have also tried using the modeline for our settings in xorg.conf but the results are same.

Can someone comment if TK1 does not support custom resolution/refresh-rate/interlacing, why we are able to see our required video in command line mode and not when X-server gets involved in?

The drivers only work with modes in a predefined mode pool. There are no interlaced modes in that pool, and thus the driver has to switch modes. None of the entire Tegra series supports interlaced.

Thanks for your response. Can you tell where this pool is defined? Is it possible to add modes to that pool?

I’m not sure where the pool is defined. Part of this is in the binary driver which is added during the “” step. Someone else would have to answer about modes, but I believe that although there may be a possibility of supporting different refresh rates there is unlikely any workaround for using interlaced mode.

Would someone happen to know if it is possible to manually edit kernel source to enable custom modes, especially interlaced modes?

@linuxdev while we wait for someone to response to your query, do you have any thoughts on why the interlacing + custom resolution is working in console mode and not working when X-server/desktop-manager is running?

Console mode uses a framebuffer which has no use of the GPU. It is the GPU driver which is used for graphical mode. So you could in theory use Nouveau for custom graphics modes (at least if the GPU were PCIe), but then it would be unaccelerated (and you’d also lose CUDA).