AR0231+ Max 9295-9296 Driver Issue

Do you refer to the ar0231_write_table()? From your file I see commented lines for the max9X_write_reg():

			//ret = max9296_write_reg_Dser(priv->i2c_client, table[i].addr, (u8)table[i].val);
			printk("Not writing to deser");
			//printk("NW Max96724_deser_write_reg 0x%x= 0x%x\n", table[i].addr, (u8)table[i].val);
			if(0x0003 == table[i].addr)
			msleep(100);
			
			if(0x0018 == table[i].addr)
			msleep(100);			
		} else if(table[i].source == 0x04) {
			//ret = max9295_write_reg_Ser(priv->i2c_client, table[i].addr, (u8)table[i].val);
			//printk("NW Max9295_ser_write_reg 0x%x= 0x%x\n", table[i].addr, (u8)table[i].val);

If this is the configuration you are trying to apply, make sure you are un-commenting those lines. Also you can read some serializer and deserializer registers (using i2ctransfer commands) to make sure the values you are writing (using the driver) are being set during the streaming.

Regards,
-Enrique

Yes it is in this section itself. The version i am using has those write commands uncommented.
There is also an alternative method i tried where i can directly configure the serdes via the maxim serdes configuring software as i am using their EVK.
Apart from this this do you see any problems with the driver which can help explain why the xavier is not receiving any frames?

As the serializer is not detecting pixel-clock on any internal video pipeline, the streaming will not reach the Xavier. So, the first think you should validate is that the serializer is receiving data.

The driver structure looks normal, it should work if the chips are configured correctly. You can add debug messages to make sure that the driver is applying the table. I also recommended you to user i2transfer commands to verify that the registers from both camera and serdes chips are configured to the values set by the driver.

Regards,
-Enrique

Hi @enrique.ramirez ,
I will try out your recommendation and get back to you ASAP

Hi @ShaneCCC @enrique.ramirez ,
I have some updates.
There was an error in the serdes configuration earlier and hence the pixel clock was not detected.
I corrected it and now can see pixel clock detected on the pipe Z of the serializer.
When i run the camera pipeline , i still get the error: no reply from camera processor.
But i am able to see the pixel clock detected on the serializer.
Check the snip below.


Kindly help me out with this.
Thank you.

Any change in the trace log?

Hi @ShaneCCC @enrique.ramirez ,
I am able to get the pixel clock detected on pipe Z. But i still get errors for v4l-raw and gstreamer peiplines.
I have uploaded the logs here. Please check and let me know.
Thank you.
debug_kernel_trace_log.txt (15.2 KB)
dmesg-log.txt (3.4 KB)
gst-error.txt (1.7 KB)
nvargus-daemon_log.txt (5.5 KB)
v4l-error.txt (2.7 KB)

Still the same NVCSI/VI didn’t receive any validate data from the trace log.

Is there any way to debug this problem??

Maybe probe the MIPI signal to confirm it.

I have probed the MIPI signal and it is working.
The problem now is on the xavier Nx side.

I can’t give any further suggestion if the trace log shows nothing.

Maybe you are defining the incorrect CSI port on the device-tree. I think the deserializer has 2 output ports, so please verify that the data is going out to the correct CSI port and it matches the Jetson CSI port.