Enable DSI-B

Hi all,

I’ve managed to have a complete working DSI-A interface, that’s fine. Now, I’m trying to enable DSI-B instead, but I find some difficulties here. The board files seem to be setup for DSI-A only and also there are some functions that are seem to be specific for DSI-A and I’m trying to convert them to work with DSI-B then the kernel doesn’t even boot.

For example there’s a function in drivers/video/tegra/dc/dsi.c which is called tegra_dsi_readl(). This seems that it has DSI_INSTANCE_0 hard-coded as it’s base address and it’s used to read from the DSI interface. If I change the DSI_INSTANCE_0 to DSI_INSTANCE_1 then the kernel doesn’t even boot anymore.

I’ve tried that on both 21.4 and 21.5 (which I’m currently use) and it’s the same behavior.

For the record, other changes I’ve made in the source code to enable DSI-B are:

In static struct resource tegra_disp1_resources[]

		.name	= "dsi_regs",
		.start	= TEGRA_DSIB_BASE,
		.flags	= IORESOURCE_MEM,


Is there anything else I have to do?
And the most weird thing, why when I change the DSI_INSTANCE_ to tegra_dsi_readl() the kernel stops to boot?

Thanks in advance.