On Mon, Dec 3, 2018 at 3:44 PM Chen-Yu Tsai <wens@xxxxxxxx> wrote: > > On Mon, Dec 3, 2018 at 6:07 PM Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > This series support CSI on Allwinner A64. > > > > The CSI controller seems similar to that of in H3, so fallback > > compatible is used to load the driver. > > > > Unlike other SoC's A64 has set of GPIO Pin gropus SDA, SCK intead > > of dedicated I2C controller, so this series used i2c-gpio bitbanging. > > > > Right now the camera is able to detect, but capture images shows > > sequence of red, blue line. any suggestion please help. > > The CSI controller doesn't seem to work properly at the default > clock rate of 600 MHz. Dropping it down to 300 MHz, the default > rate used by the BSP, fixes things. > > The BSP also tries to use different clock rates (multiples of 108 MHz) > according to the captured image size. I've not tried this since the > driver no longer exports sub-device controls, and I currently don't > know how to handle that to change the resolution. I saw 1080p@30 capture is not working, but rest 320x240@30, 640x480@30, 640x480@60, 1280x720@30 with UYVY8_2X8 and YUYV8_2X8 seems working on 300MHz. I even tried 1080p on 600MHz but kernel seems crashing [video4linux2,v4l2 @ 0x2eaa9380] ioctl(VIDIOC_G_PARM): Inappropriate ioctl for device [video4linux2,v4l2 @ 0x2eaa9380] Time per frame unknown [video4linux2,v4l2 @ 0x2eaa9380] Stream #0: not enough frames to estimate rate; consider increasing probesize Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 44.934807, bitrate: N/A Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 1000k tbr, 1000k tbn, 1000k tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg4 (native)) Press [q] to stop, [?] for help Output #0, matroska, to 'output_YUYV8_2X8_1920x1080@1_30-new.mkv': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080, q=2-31, 200 kb/s, 65535 fps, 1k tbn, 65535 tbc Metadata: encoder : Lavc57.107.100 mpeg4 Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1 [ 45.255793] random: ffmpeg: uninitialized urandom read (4 bytes read) frame= 4 fps=0.0 q=10.0 size= 150kB time=00:00:00.10 bitrate=12162.7kbits/s speed=0.17x [ 46.115153] ------------[ cut here ]------------ [ 46.119804] kernel BUG at arch/arm64/kernel/traps.c:426! [ 46.125120] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 46.130607] Modules linked in: [ 46.133670] CPU: 2 PID: 1630 Comm: ffmpeg Not tainted 4.20.0-rc4-next-20181130-00027-g58d9b3c5c1db-dirty #10 [ 46.143497] Hardware name: Amarula A64-Relic (DT) [ 46.148203] pstate: 60000085 (nZCv daIf -PAN -UAO) [ 46.153005] pc : do_undefinstr+0x248/0x260 [ 46.157103] lr : do_undefinstr+0x13c/0x260 [ 46.161198] sp : ffff000008013bb0 [ 46.164513] x29: ffff000008013bb0 x28: ffff800035b30d40 [ 46.169827] x27: ffff00000815a758 x26: 0000000000000001 [ 46.175141] x25: 0000000000000000 x24: 0000000000000000 [ 46.180454] x23: 0000000000000000 x22: ffff000009344140 [ 46.185768] x21: 00000000837f8080 x20: ffff000008013c00 [ 46.191082] x19: ffff0000091dd000 x18: 0000000000000000 [ 46.196395] x17: 0000000000000000 x16: 0000000000000000 [ 46.201709] x15: 0000000000000043 x14: 0000000000000341 [ 46.207022] x13: 0000000000000400 x12: 0000000000000043 [ 46.212336] x11: 0000000000000400 x10: 000000000001234d [ 46.217650] x9 : 0000000000000001 x8 : ffff800037db7900 [ 46.222964] x7 : ffff800037db8380 x6 : ffff000008013bf8 [ 46.228278] x5 : ffff0000091e8310 x4 : 00000000d5300000 [ 46.233592] x3 : 0000000083700000 x2 : 0000000000000000 [ 46.238906] x1 : ffff800035b30d40 x0 : 0000000000000005 [ 46.244222] Process ffmpeg (pid: 1630, stack limit = 0x(____ptrval____)) [ 46.250921] Call trace: [ 46.253371] do_undefinstr+0x248/0x260 [ 46.257125] el1_undef+0x10/0x70 [ 46.260358] task_tick_fair+0x140/0x548 [ 46.264199] scheduler_tick+0x6c/0x110 [ 46.267956] update_process_times+0x40/0x58 [ 46.272144] tick_sched_handle.isra.5+0x30/0x50 [ 46.276677] tick_sched_timer+0x48/0x98 [ 46.280516] __hrtimer_run_queues+0x11c/0x190 [ 46.284875] hrtimer_interrupt+0xe4/0x240 [ 46.288890] arch_timer_handler_phys+0x30/0x40 [ 46.293340] handle_percpu_devid_irq+0x78/0x130 [ 46.297874] generic_handle_irq+0x24/0x38 [ 46.301887] __handle_domain_irq+0x5c/0xb8 [ 46.305986] gic_handle_irq+0x58/0xb0 [ 46.309651] el0_irq_naked+0x4c/0x54 [ 46.313233] Code: b5fff8c0 b94047b5 17ffff9e d503201f (d4210000) [ 46.319338] ---[ end trace 0463ef25f03a52f8 ]--- [ 46.323957] Kernel panic - not syncing: Fatal exception in interrupt [ 46.330311] SMP: stopping secondary CPUs [ 46.334240] Kernel Offset: disabled [ 46.337732] CPU features: 0x2,24802004 [ 46.341481] Memory Limit: none