NVidia Jetson TX2 + Oculus Rift DK2. Nvidia driver doesn't get screen resolution

I doubt if compiz can do panning. This one has not verified by us before.
As for the color issue, does this only happen on tegra output + Rift DK2? Please check if tegra can output normally when other monitors connected.

@linuxdev, yes I’ve tried only this modes.

Here is xdpyinfo output: [url]https://github.com/7633/JetsonTX2/blob/master/xdpyinfo.txt[/url]

@WayneWWW, other monitor works fine (ASUS: [url]https://github.com/7633/JetsonTX2/blob/master/ASUS%20monitor/color_test.jpg[/url])

How can I check if HDMI signal is correct? I suppose, that there is might be a problem. (according to this post: [url][ubuntu] 12.04 external monitor wrong colors)

Hi rostislav.etc,

We can hack the edid in display driver. Would you like to give a try? It requires to rebuild the kernel image. We can see if your EDID makes tegra give out a wrong color.

Did you see wrong color on Rift DK2 when using desktop?

@WayneWWW,

When I use desktop, I see normal colors and normal resolution. Moreover, I have two Oculus DK2 and they equally give wrong colors on tegra.

Let’s try hack edid.

Hi rostislav.etc,

Please set use_fallback to true in edid.c and it would load a 720p edid instead.

int tegra_edid_get_monspecs(struct tegra_edid *edid, struct fb_monspecs *specs)
    {
            int i;
            int j;
            int ret;
            int extension_blocks;
            struct tegra_edid_pvt *new_data, *old_data;
            u8 checksum = 0;
            u8 *data;
            bool use_fallback = false;   // Set this to true

I’m not kernel developer, therefore ask how to do this properly:

  1. Download 28.1 kernel sources, unzip it to /usr/src
  2. I've found edid.c in /usr/src/kernel/display/drivers/video/tegra/dc/
  3. cd /usr/src/kernel/kernel-4.4/
  4. sudo zcat /proc/config.gz > .config
  5. make prepare
  6. make modules_prepare
  7. make -j6 Image
  8. make modules
  9. make modules_install
  10. sudo depmod
  11. sudo cp arch/arm64/boot/Image /boot/Image
  12. sudo reboot

Dmesg recognize Oculus device, but in Xorg.log it recognized as SAMSUNG. There’s no image on Oculus display, but my ASUS monitor works fine in 1280x720 mode.

https://github.com/7633/JetsonTX2/blob/master/SAMSUNG/dmesg_samsung.log
https://github.com/7633/JetsonTX2/blob/master/SAMSUNG/Xorg.0.log

AMS568AT41-0_Rev.A_20151127_201612147595.pdf (6.21 MB)

This stands out in the Xorg.0.log:

8.944] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[     8.944] (==) NVIDIA(0):     will be used as the requested mode.
[     8.944] (==) NVIDIA(0): 
[     8.944] (--) NVIDIA(0): <b>No enabled display devices found;</b> starting anyway because
[     8.944] (--) NVIDIA(0):     AllowEmptyInitialConfiguration is enabled
[     8.944] (II) NVIDIA(0): Validated MetaModes:
[ 8.944] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480

I have something like this, and this is what should have shown up:

[    19.097] (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC
[    19.097] (--) NVIDIA(0):     DFP-0
[    19.097] (II) NVIDIA(0): NVIDIA GPU NVIDIA Tegra X2 (nvgpu) (GP10B) at SoC (GPU-0)

Despite all of this, I still see valid modes:

[    13.041] (II) NVIDIA(GPU-0): --- Modes in ModePool for SAMSUNG (DFP-0) ---
[    13.041] (II) NVIDIA(GPU-0): "nvidia-auto-select" : 1280 x  720 @  60.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "1280x720"           : 1280 x  720 @  60.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_60"        : 1280 x  720 @  60.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_60_0"      : 1280 x  720 @  60.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_60_1"      : 1280 x  720 @  60.0 Hz  (from: NVIDIA Predefined, EDID, CEA)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_60_2"      : 1280 x  720 @  59.9 Hz  (from: NVIDIA Predefined, EDID, CEA)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_50"        : 1280 x  720 @  50.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "1280x720_50_0"      : 1280 x  720 @  50.0 Hz  (from: NVIDIA Predefined, EDID, CEA)
[    13.041] (II) NVIDIA(GPU-0): "720x576"            :  720 x  576 @  50.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "720x576_50"         :  720 x  576 @  50.0 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "720x576_50_0"       :  720 x  576 @  50.0 Hz  (from: NVIDIA Predefined, EDID, CEA)
[    13.041] (II) NVIDIA(GPU-0): "720x480"            :  720 x  480 @  59.9 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "720x480_60"         :  720 x  480 @  59.9 Hz  (from: NVIDIA Predefined, EDID, CEA, Detailed)
[    13.041] (II) NVIDIA(GPU-0): "720x480_60_0"       :  720 x  480 @  59.9 Hz  (from: NVIDIA Predefined, EDID, CEA)
[    13.041] (II) NVIDIA(GPU-0): "640x480"            :  640 x  480 @  59.9 Hz  (from: NVIDIA Predefined)
[    13.041] (II) NVIDIA(GPU-0): "640x480_60"         :  640 x  480 @  59.9 Hz  (from: NVIDIA Predefined)
[ 13.041] (II) NVIDIA(GPU-0): --- End of ModePool for SAMSUNG (DFP-0): ---

Your Rift just uses a normal HDMI connector so far as I know. Is this correct?

About xdpyinfo…is there a detailed Rift spec available which gives the color modes the Rift will work with? The idea is to see if for example significant bits provided under xdpyinfo matches the bits used in the Rift.

I may have chance to get a DK2. I’ll update the test result once get it.

@linuxdev, I’m using normal HDMI connector and cable.

@WayneWWW,

I’ve found that the DK2 uses Samsung Galaxy Note 3 display AMS568AT41-0.
Short description: [url]AMS568AT41-0 5.7" AM-OLED , Assembly for SAMSUNG
Specification in an attachment.

And the AMS568AT41-0 display uses a S6E3FA3 DSI panel.

Moreover, L4T kernel doesn’t contain dts for any 5.7" panels, but has dtsi for 1080p.

I guess we should add S6E3FA3 DSI panel specification to device tree or add panel-dsi-1080p.dtsi to kernel.

AMS568AT41-0_Rev.A_20151127_201612147595.rar (6.2 MB)

Hi rostislav.etc,

Sorry that I still don’t get a DK2 for test, what do you mean DK2 is using Samsung Galaxy Note 3 display AMS568AT41-0? Do you mean there might be a DSI->HDMI converter inside DK2?

Do you want to skip the HDMI interface and directly connect a DSI panel?

Hi rostislav.etc,

Sorry that I still don’t get a DK2 for test, what do you mean DK2 is using Samsung Galaxy Note 3 display AMS568AT41-0? Do you mean there might be a DSI->HDMI converter inside DK2?

Do you want to skip the HDMI interface and directly connect a DSI panel?

Hi WayneWWW,

Yes, you are right. There is a DSI-HDMI converter Toshiba TC358779XBG (specification in attachement). I can’t use DSI panel directly, because I need lengthen display from Jetson.

What can we check, if connect DSI panel directly?
What do you think about my suggestion add the panel description to device tree?
TC358779XBG_datasheet_en_20171113.pdf (439 KB)

rostislav.etc,

Yes, you can try DSI directly to confirm if this error is from DSI->HDMI converter.

Whatever happened with this? I’m thinking about heading down this path, but wanted to find out what progress has been made.

Do not head down this path.

Note taken, but I’d still like to hear what the status of this is.