Skip to content

hi846 camera additions and debugging fixes

the front facing camera is not yet working here

looking at the changes to the hi846 driver doesn't make much sense (we have a random state in tree)

1280x720 seems to be the lowest resolution I can work with so that I get csi interrupts. (for 640x480 I only have 2-lane register dumps from one driver and I don't see interrupts yet)

it's all very messy still, but I'll clean up the internal apis soon. I compare logs to the devkit.

what definitely is wrong/missing:

  • the media bus format (how frames are put onto the busses?)
  • frame size/frame intervals enum api

what roughly goes wrong currently:

  • imx csi always sees "start of frame"(SOF). Never only EOF alone. mx6s_csi_frame_done is never called, so I never get a frame. that's the pattern:
    • SOF+EOF
    • SOF
    • SOF+EOF+BASEADDR_CHHANGE_ERROR
    • SOF+EOF
    • SOF
    • SOF+EOF+BASEADDR_CHHANGE_ERROR

BASEADDR_CHHANGE_ERROR is: When using base address switching enable, this bit will be 1 when switching occur before DMA complete. and on the devkit it's like "SOF+EOF, EOF, SOF+EOF, EOF".

While buffers seem to be created correctly, it seems like they are never read/cleared.

test it:

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! videoconvert ! xvimagesink -v

debug:

echo 'file drivers/media/platform/mxc/capture/mx6s_capture.c  +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
echo 'file drivers/media/i2c/hi846.c  +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

Fixes #244 (closed)

Edited by Martin Kepplinger

Merge request reports