Using DSI display on TX2

In the device tree file I have, the dsi section has "compatible=“nvidia,tegra186-dsi”. No code I could find in the whole Linux source seem to check for that string. Any ideas?

Hi,

No, it is not used in kernel. Any reason why you check this?

My system does not seem to load a driver for the DSI. I have two HDMI displays and in the device tree the string for them is “nvidia,tegra186-dc” and they are loaded fine.

I meant - I cannot see probing of the dsi during boot.

I think you could check the run-time device tree under /proc/device-tree and see if your dsi panel is enabled or not.

Under internal usecase, there is eeprom on DSI connector so that device tree would change w.r.t that board name. However, I don’t think common user would have such design on their connector.

My build does not seem to recognize the DSI at all. The device tree file says "compatible=“nvidia,tegra186-dsi” - a string which does not show in any driver code I have.

Either I need a different device tree (dts) file or I need a different driver code…

Looking into the display drivers I see that the tegradc driver (which uses “compatible=nvidia,tegra186-dc”) seem to support also DSI, but this means that my device tree file is wrong. At this point I’m trying various changes to it while inserting printk statements into the driver to find what needs to change…

Sorry for late reply. I think you should share your device tree to us first.

We cannot help you with nothing else.

Sorry. Here I’m attaching the device tree file.

tegra186-native-linux.zip (28.1 KB)

Sorry for late reply. I just checked your dts and think the issue should be the panel name.

Could you refer to

“kernel/display/drivers/video/tegra/dc/panel/board-panel.c”

inside this file, it uses a if-else to select which panel driver should be registered. Please make sure you have pick up the correct one.

Thanks, I was just getting to this area of the code… It looks like board-panel.c is not in the build. I do see there nvdisp_stub.c being used looking for configured panel (it is in kernel/t18x/drivers/video/tegra/dc/nvdisp).

Oops… yes, you are right. nvdisp_stub.c is for tx2 while board-panel.c is for tx1 :D

Thanks - now I understand a little more… I’ve also realized that I need (i think) “nvidia,dc-or-node = “/host1x/dsi”” in one of the nvdisplay@xxx nodes.