host read timout.

Hi there,

We imported R24.2.1’s VI, VIII2C and V4L2 interface changes to the old kennel come with R24.1, and it works fine, we changed the device tree so than our Toshiba H2C bridge chip working on port(0&1) of CSI, we have nothing hocked up on the rest of CSI port. When kernel come up, while vi do the probing, host read timeout happening something( not often ), which will cause kernel rebooting eventually, so maybe something wrong with my configuration for the i2c somewhere, do any one have some idea? Thank you in advance.

Kclet

[    8.531148] vi vi: vi_probe: ++
[    8.537124] vi vi: initialized
[    8.540834] vi vi: parsing node /host1x/vi
[    8.544939] vi vi: handling endpoint /host1x/vi/ports/port@0/endpoint
[    8.551489] vi vi: handling endpoint /host1x/vi/ports/port@1/endpoint
[    8.557973] vi vi: handling endpoint /host1x/vi/ports/port@2/endpoint
[    8.564466] vi vi: handling endpoint /host1x/vi/ports/port@3/endpoint
[    8.570989] vi vi: handling endpoint /host1x/vi/ports/port@4/endpoint
[    8.577463] vi vi: handling endpoint /host1x/vi/ports/port@5/endpoint
[    8.583955] vi vi: parsing node /host1x/i2c@546c0000/tc358840@0f
[    8.590004] vi vi: handling endpoint /host1x/i2c@546c0000/tc358840@0f/ports/port@0/endpoint
[    8.598380] vi vi: subdev tc358840 6-000f bound
[    8.602952] vi vi: notify complete, all subdevs registered
[    8.608436] vi vi: creating links for entity tc358840 6-000f
[    8.614138] vi vi: processing endpoint /host1x/i2c@546c0000/tc358840@0f/ports/port@0/endpoint
[    8.622704] vi vi: skipping channel port /host1x/i2c@546c0000/tc358840@0f:0
[    8.629703] vi vi: creating links for channels
[    8.634153] vi vi: processing endpoint /host1x/vi/ports/port@0/endpoint
[    8.640819] vi vi: creating link for channel vi-output-0
[    8.646132] vi vi: creating tc358840 6-000f:0 -> vi-output-0:0 link
[    9.528536] tegra-vii2c 546c0000.i2c: --- register dump for debugging ----
[   10.037884] Host read timeout at address 546c0c00
[   10.037924] tegra-vii2c 546c0000.i2c: I2C_CNFG - 0xffffffff
[   10.540410] tegra-vii2c 546c0000.i2c: I2C_PACKET_TRANSFER_STATUS - 0xffffffff
[   11.042918] tegra-vii2c 546c0000.i2c: I2C_FIFO_CONTROL - 0xffffffff
[   11.545400] tegra-vii2c 546c0000.i2c: I2C_FIFO_STATUS - 0xffffffff
[   12.047901] tegra-vii2c 546c0000.i2c: I2C_INT_MASK - 0xffffffff
[   12.550408] tegra-vii2c 546c0000.i2c: I2C_INT_STATUS - 0xffffffff
[   12.550415] tegra-vii2c 546c0000.i2c: msg->len - 2
[   12.550422] tegra-vii2c 546c0000.i2c: is_msg_write - 1
[   12.550428] tegra-vii2c 546c0000.i2c: next_msg->len - 1
[   12.550434] tegra-vii2c 546c0000.i2c: is_next_msg_write - 0
[   12.550441] tegra-vii2c 546c0000.i2c: buf_remaining - 1
[   15.565353] tegra-vii2c 546c0000.i2c: timeout config_load
[   15.565371] tc358840 6-000f: i2c_rd: reading register 0x8520 from 0xf failed
[   15.565377] tc358840 6-000f: tc358840_format_change: No Signal
[   16.130155] Host read timeout at address 546c0c00
[   17.135364] tegra-i2c 7000c700.i2c: --- register dump for debugging ----
[   17.142089] tegra-i2c 7000c700.i2c: I2C_CNFG - 0x22c00
[   18.147037] Host read timeout at address 546c0e60
[   18.649523] Host read timeout at address 546c0e80
[   19.152019] Host read timeout at address 546c0e10
[   19.654508] Host read timeout at address 546c0cd0
[   20.156990] Host read timeout at address 546c0db0
[   20.659477] Host read timeout at address 546c0d70
[   21.161981] Host read timeout at address 546c0d70
[   21.664455] Host read timeout at address 546c0d70
[   22.167053] Host read timeout at address 546c0d70
[   22.167149] tegra-vii2c 546c0000.i2c: timeout waiting for fifo flush
[   22.669612] Host read timeout at address 546c0e30
[   23.172127] Host read timeout at address 546c0e30
[   23.172251] tegra-vii2c 546c0000.i2c: timeout waiting for config load
[   23.674803] Host read timeout at address 546c0d70
[   24.177349] Host read timeout at address 546c0d70
[   24.679849] Host read timeout at address 546c0d70
[   24.679958] tegra-vii2c 546c0000.i2c: timeout waiting for fifo flush
[   26.187329] tegra-vii2c 546c0000.i2c: timeout config_load
[   26.187351] Host read timeout at address 546c0c00
[   26.187542] tc358840 6-000f: i2c_rd: reading register 0x8a08 from 0xf failed
[   26.188974] [dram-timers] DRAM derating cdev registered.
[   26.188990] Disable partitions left on by BL
[   26.188995]     sata
[   26.189000]     disb
[   26.189036] Disabling clocks left on by bootloader:
[   26.189039]    audio2_dmic
[   26.189044]    audio1_dmic
[   26.189048]    audio0_dmic
[   26.189053]    audio_2x
[   26.189060]    audio
[   26.189064]    audio4
[   26.189068]    audio3
[   26.189072]    audio2
[   26.189076]    audio1
[   26.189080]    audio0
[   26.189168]    entropy
[   26.189183]    dsi2-fixed
[   26.189186]    dsi1-fixed
[   26.189221]    sdmmc4_ddr
[   26.189231]    sdmmc1_ddr
[   26.189293]    cclk_lp
[   26.190348] tegra_cl_dvfs 70110000.dfll-ovr: DT data retrieved successfully
[   26.190709] tegra_cl_dvfs_init_cdev: cpu_cold cooling device registered
[   26.190830] tegra_cl_dvfs_init_cdev: cpu_hot cooling device registered
[   26.191291] Tegra CPU DFLL is initialized with use_dfll = 1
[   26.191511] tegra_dvfs: 0.vdd-cpu-rail-ovr connected to regulator
[   26.191890] tegra_dvfs: 4.vdd-core-rail-max77620 connected to regulator
[   26.192108] tegra_dvfs: 1.vdd-gpu-rail-ovr connected to regulator
[   26.192692] CPU rate: 614 MHz
[   26.193059] last reset is due to power on reset
[   26.193059]
[   26.193062] KERNEL: PMC reset status reg: 0x0
[   26.193701] tegra_actmon.emc: Completed initialization (0)
[   26.194175] tegra_actmon.avp: Completed initialization (0)
[   26.389731] tegra-i2c 7000c700.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   26.396425] tegra-i2c 7000c700.i2c: I2C_FIFO_CONTROL - 0xe0
[   26.402000] tegra-i2c 7000c700.i2c: I2C_FIFO_STATUS - 0x800080
[   26.407825] tegra-i2c 7000c700.i2c: I2C_INT_MASK - 0xed
[   26.413051] tegra-i2c 7000c700.i2c: I2C_INT_STATUS - 0x2
[   26.418356] tegra-i2c 7000c700.i2c: msg->len - 1
[   26.419993] tegra dvfs: tegra sysfs cap interface is initialized
[   26.420072] tegra dvfs: tegra sysfs gpu & emc interface is initialized
[   26.421160] Set maximum possible CPU frequency 1683000
[   26.421196] ALSA device list:
[   26.421199]   #0: HDA NVIDIA Tegra at 0x70038000 irq 113
[   26.421201]   #1: tegra-snd-t210ref-mobile-rt565x
[00.i2c: is_msg_write - 1
[   26.455895] tegra-i2c 7000c700.i2c: next_msg->len - 128
[   26.461118] tegra-i2c 7000c700.i2c: is_next_msg_write - 0
[   26.466506] tegra-i2c 7000c700.i2c: buf_remaining - 0
[   26.466632] Freeing unused kernel memory: 440K (ffffffc0010af000 - ffffffc00111d000)
[   26.466638] Freeing alternatives memory: 52K (ffffffc00111e000 - ffffffc00112b000)
[   26.486849] tegra-i2c 7000c700.i2c: i2c transfer timed out, addr 0x0050, data 0x00

kclet,
What about user mode library? using r24.2.1 or retaining at r24.1?

Also to confirm, before this adaptation to r24.2.1, it ran fine when everything remains under r24.1?

It looks like VI is not programmed correctly such as register read is not happening.

Hi Chijen,

All I did was back-poring tegra/camera tegra/csi tegra/vi under platfrom, and also backported V4l2-core, and some miscellaneous files at tegra/host, all the rest remain the same, r24.1 ran fine before poring. I am checking the vi right now, will be back if find anything. Thank you

Kclet.

kclet,
While you are checking VI programming side, I would also suggest you look into the possible route to base on r24.2.1 BSP and get your own sensor driver in as this will ensure application/user mode library/kernel mode driver are already tested. This is not to say you won’t be able to get it working. So will let you dig out more and let’s see the best next move.

Just not 100% comfortable as there is camera core user libraries in the middle between apps and sensor kernel driver and the version is mixed that way. But let’s see …

Yes, your are right, if we remove our Toshiba H2C board, it seems host never have this read timeout problem, since we use the H2C instead of OV5693 camera, I assume it must be something conflict in our Device tree file.

kclet