Tegra K1 with MIPI CSI 4 lanes device issues in R21.5

I had an issue to attach a 4-lane MIPI CSI device to Tegra K1. I have succeeded in this.

To solve the issue I had to rebuild kernel from “Linux For Tegra”. I also have rootfs image copied from previous successfull builds.

After all it seems like I have working 4-lanes CSI streaming from MIPI device. But now nvoverlaysink plugin does not display anything on the desktop. The whole pipeline seems to work fine, except that there is no output overlay on the screen.

Is there any special place I should check for the nvoverlaysink fix?

Ok, solved the previous issue with porting driver to R21.5 kernel release.

Now I’ve got another issue. I have two previous builds of R21.4 kernels and both of them work well with MIPI CSI device. I can successfully receive video from it.

After moving to R21.5 and porting fixes I have an almost working everything except that screen is black, all CSI error registers are 0x00000000 but CSI_CILB_STATUS is 0x00000001. It states that “incorrest state sequence on clk lane”.

Can someone explain what this exactly means? Considering that there is only one clock lane in CSI-A domain.

Did you set the clock mode properly? continuous mode or discontinuous mode?

As far as I remember it was ‘discontinuous’ mode.
But it seems like that field in the hw description structure is not used at all

For now we’ve stuck with R21.4 build.

Another issue have risen: half of attempts to Control+C gstreamer pipeline generate issues - Tegra K1 just hangs. We’ve written our own software implementing gstreamer pipeline construction.

Both correct gstreamer main loop exit and immediate application shutdown without proper gstreamer deinitialization from time to time lead to Tegra K1 hang ups.

Is there any special point where CSI should be deinitialized somehow?

Clk mode is mandatory for VI/CSI configuration.

Were you using nvgstcapture? If yes, please type ‘q’ to exit. If not, there should be no issue with control + c.