fd_
Posts: 105
Joined: Thu Oct 25, 2018 7:35 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Mon Mar 15, 2021 6:30 pm

6by9 wrote:
Sat Mar 13, 2021 2:00 pm
1) The kernel warnings are known about. The driver hasn't released all the buffers it had been passed, but the framework cleans up anyway. It'll get fixed at some point.

2) This is probably the TC358743 FIFO under/over flowing. You've got video coming in at one rate over HDMI, and being read out at a different rate over CSI2 (always 972Mbit/s per data lane).
The chip has a small FIFO with a trigger point for how full it should be before it starts reading out. That threshold is set at https://github.com/raspberrypi/linux/bl ... 43.c#L1969
Some combinations of resolution and framerate do seem to result in issues in the FIFO. Ideally the trigger point would be dynamically computed, but the formulae to do so are under NDA.

3) Pass.

4) Probably the joys of colourspaces. HDMI is generally sent as RGB, however it can either be full range (0-255) or limited range (16-235) depending on whether it is defined as a CEA mode or not. The TC358743 should be set to always convert back out to full range, but there will be minor inaccuracies.
H264 always encodes as YUV, but that can be using BT601 or BT709 primaries (it changes the conversion coefficients from RGB), and also then also limited or full range. The H264 headers should provide the information on how the data should be interpreted when rendered.
If any one of those conversions or bits of metadata is wrong then you'll see slightly incorrect colours. H264 being lossy doesn't help on keeping all the detail anyway.
Thanks for your insights!

I have now tested this some more and am afraid I do reliably get a complete device system freeze on the Pi Zero W after some time (between 5 minutes and 2 hours) after starting my V4L2 program. Specifically, the kernel panic seems to be caused by a NULL pointer dereference somewhere in the bcm2835_unicam driver.

The exact kernel log (obtained via a Serial connection) of one of these crashes is:

Code: Select all

[ 3236.933157] 8<--- cut here ---
[ 3236.938369] Unable to handle kernel NULL pointer dereference at virtual address 00000104
[ 3236.950646] pgd = 891d41c4
[ 3236.955436] [00000104] *pgd=0dab8831, *pte=00000000, *ppte=00000000
[ 3236.963950] Internal error: Oops: 817 [#1] ARM
[ 3236.970592] Modules linked in: aes_arm aes_generic cmac bnep hci_uart btbcm bluetooth ecdh_generic ecc libaes 8021q garp stp llc tc358743 cdc_et
her r8152 brcmfmac brcmutil sha256_generic libsha256 cfg80211 rfkill raspberrypi_hwmon i2c_mux_pinctrl i2c_mux bcm2835_unicam v4l2_dv_timings v4l2_
fwnode bcm2835_codec(C) i2c_bcm2835 snd_bcm2835(C) bcm2835_isp(C) v4l2_mem2mem bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) videobuf2_vmalloc videobuf2_dm
a_contig snd_pcm videobuf2_memops videobuf2_v4l2 videobuf2_common snd_timer snd videodev mc vc_sm_cma(C) uio_pdrv_genirq uio fixed ip_tables x_tabl
es ipv6
[ 3237.041485] CPU: 0 PID: 2622 Comm: bash Tainted: G        WC        5.4.83+ #1379
[ 3237.053743] Hardware name: BCM2835
[ 3237.059576] PC is at unicam_isr+0x2dc/0x354 [bcm2835_unicam]
[ 3237.067946] LR is at v4l2_event_queue+0x9c/0xa0 [videodev]
[ 3237.075835] pc : [<bf323a1c>]    lr : [<bf10d44c>]    psr: 60000193
[ 3237.084522] sp : cd833cd0  ip : 00000100  fp : cd833d14
[ 3237.092214] r10: cf7d0000  r9 : 00000122  r8 : 00000100
[ 3237.099800] r7 : 00000000  r6 : cf7d0fcc  r5 : cf7d04ac  r4 : cf7d0000
[ 3237.108712] r3 : cf5a4680  r2 : 00000122  r1 : 00000000  r0 : cf5a4400
[ 3237.117613] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[ 3237.127308] Control: 00c5387d  Table: 0e244008  DAC: 00000055
[ 3237.135439] Process bash (pid: 2622, stack limit = 0x87738e81)
[ 3237.143683] Stack: (0xcd833cd0 to 0xcd834000)
[ 3237.150337] 3cc0:                                     c0ab155c c019f080 a6caf74e 000002f1
[ 3237.163025] 3ce0: cda84000 00000000 00400dc0 ce89e640 c0b30010 d145e200 00000000 0000003f
[ 3237.175640] 3d00: 00000000 cd833d58 cd833d54 cd833d18 c006ab28 bf32374c cd833d54 cd833d28
[ 3237.188178] 3d20: c04eb16c d145e200 00000000 c0a97028 c0b30010 d145e200 00000000 d145a000
[ 3237.200805] 3d40: cd832000 d0283c28 cd833d7c cd833d58 c006acf4 c006aaec 00000000 7a16e172
[ 3237.213641] 3d60: c01a02ec d145e200 c0b30010 00000001 cd833d94 cd833d80 c006ad84 c006acc8
[ 3237.226663] 3d80: d145e200 c0b30010 cd833dac cd833d98 c006eebc c006ad58 0000003f c0b30010
[ 3237.239821] 3da0: cd833dbc cd833db0 c0069ce4 c006ee0c cd833de4 cd833dc0 c006a3c4 c0069cc0
[ 3237.253215] 3dc0: cd833e00 c0a979e0 ffffffff cd833e34 c0a97028 cd832000 cd833dfc cd833de8
[ 3237.266798] 3de0: c000a0d0 c006a378 c0150db4 60000113 cd833eac cd833e00 c0009a1c c000a0a0
[ 3237.280504] 3e00: 00000000 d028c5f0 00000064 d7e570a0 d7e56070 0000006f 00000406 00000402
[ 3237.294323] 3e20: c0a97028 cd833ebc d0283c28 cd833eac cd833e50 cd833e50 c015105c c0150db4
[ 3237.308157] 3e40: 60000113 ffffffff c015105c bf000000 d13c1390 00000000 cf66bb40 00000063
[ 3237.321981] 3e60: cd833ebc d0283c2c 00000064 00240000 d028c5f0 00000000 00000000 7a16e172
[ 3237.335831] 3e80: c0194c68 00071000 0000006f c0a97028 cd833ebc 00000040 c0150d04 00000060
[ 3237.349743] 3ea0: cd833f24 cd833eb0 c018bb3c c0150d10 d0e4a700 c001a054 cd833efc cf44b900
[ 3237.363652] 3ec0: 00000054 00100cca 00000061 00073000 ce244000 ce244000 00000000 00000000
[ 3237.377553] 3ee0: 00000000 00000000 cdab81cc d0e4a73c 00000000 7a16e172 cd833f24 cd833fb0
[ 3237.391432] 3f00: cea55580 d0e4a700 000712a0 80000007 cf44b900 d0e4a73c cd833f74 cd833f28
[ 3237.405268] 3f20: c07a89ac c018b1f0 cd833f54 cd833f38 c0014714 c00134d4 00000000 c0a97028
[ 3237.419139] 3f40: 00000000 00000054 cd833f8c c0a9c3a8 00000007 c07a8868 000712a0 cd833fb0
[ 3237.433058] 3f60: 00000000 001042a8 cd833fac cd833f78 c001a054 c07a8874 c0009edc 00000001
[ 3237.446964] 3f80: cd833fac cd833f90 c00ead9c 000712a0 60000010 ffffffff 00c5387d 00c5387d
[ 3237.460868] 3fa0: 00000000 cd833fb0 c0009ee4 c001a018 00000014 00000000 c3a11600 001040e0
[ 3237.474733] 3fc0: 000fd744 00000000 00102f60 00000a3e 000d65e0 00000000 001042a8 001042a8
[ 3237.488569] 3fe0: 0000014c beed3890 00054734 000712a0 60000010 ffffffff 00000000 00000000
[ 3237.502421] Backtrace:
[ 3237.507672] [<bf323740>] (unicam_isr [bcm2835_unicam]) from [<c006ab28>] (__handle_irq_event_percpu+0x48/0x1dc)
[ 3237.523305]  r10:cd833d58 r9:00000000 r8:0000003f r7:00000000 r6:d145e200 r5:c0b30010
[ 3237.536586]  r4:ce89e640
[ 3237.541767] [<c006aae0>] (__handle_irq_event_percpu) from [<c006acf4>] (handle_irq_event_percpu+0x38/0x90)
[ 3237.556738]  r10:d0283c28 r9:cd832000 r8:d145a000 r7:00000000 r6:d145e200 r5:c0b30010
[ 3237.569821]  r4:c0a97028
[ 3237.574904] [<c006acbc>] (handle_irq_event_percpu) from [<c006ad84>] (handle_irq_event+0x38/0x4c)
[ 3237.588866]  r6:00000001 r5:c0b30010 r4:d145e200
[ 3237.596047] [<c006ad4c>] (handle_irq_event) from [<c006eebc>] (handle_level_irq+0xbc/0x12c)
[ 3237.609434]  r5:c0b30010 r4:d145e200
[ 3237.615408] [<c006ee00>] (handle_level_irq) from [<c0069ce4>] (generic_handle_irq+0x30/0x44)
[ 3237.628722]  r5:c0b30010 r4:0000003f
[ 3237.634657] [<c0069cb4>] (generic_handle_irq) from [<c006a3c4>] (__handle_domain_irq+0x58/0xb8)
[ 3237.648289] [<c006a36c>] (__handle_domain_irq) from [<c000a0d0>] (bcm2835_handle_irq+0x3c/0x44)
[ 3237.661914]  r9:cd832000 r8:c0a97028 r7:cd833e34 r6:ffffffff r5:c0a979e0 r4:cd833e00
[ 3237.674619] [<c000a094>] (bcm2835_handle_irq) from [<c0009a1c>] (__irq_svc+0x5c/0x7c)
[ 3237.687462] Exception stack(0xcd833e00 to 0xcd833e48)
[ 3237.695078] 3e00: 00000000 d028c5f0 00000064 d7e570a0 d7e56070 0000006f 00000406 00000402
[ 3237.708304] 3e20: c0a97028 cd833ebc d0283c28 cd833eac cd833e50 cd833e50 c015105c c0150db4
[ 3237.721586] 3e40: 60000113 ffffffff
[ 3237.727631]  r5:60000113 r4:c0150db4
[ 3237.733708] [<c0150d04>] (filemap_map_pages) from [<c018bb3c>] (handle_mm_fault+0x958/0xc00)
[ 3237.747231]  r10:00000060 r9:c0150d04 r8:00000040 r7:cd833ebc r6:c0a97028 r5:0000006f
[ 3237.760178]  r4:00071000
[ 3237.765193] [<c018b1e4>] (handle_mm_fault) from [<c07a89ac>] (do_page_fault+0x144/0x3a0)
[ 3237.778399]  r10:d0e4a73c r9:cf44b900 r8:80000007 r7:000712a0 r6:d0e4a700 r5:cea55580
[ 3237.791279]  r4:cd833fb0
[ 3237.796230] [<c07a8868>] (do_page_fault) from [<c001a054>] (do_PrefetchAbort+0x48/0x98)
[ 3237.809148]  r10:001042a8 r9:00000000 r8:cd833fb0 r7:000712a0 r6:c07a8868 r5:00000007
[ 3237.821829]  r4:c0a9c3a8
[ 3237.826741] [<c001a00c>] (do_PrefetchAbort) from [<c0009ee4>] (ret_from_exception+0x0/0x1c)
[ 3237.839847] Exception stack(0xcd833fb0 to 0xcd833ff8)
[ 3237.847309] 3fa0:                                     00000014 00000000 c3a11600 001040e0
[ 3237.860341] 3fc0: 000fd744 00000000 00102f60 00000a3e 000d65e0 00000000 001042a8 001042a8
[ 3237.873383] 3fe0: 0000014c beed3890 00054734 000712a0 60000010 ffffffff
[ 3237.882539]  r8:00c5387d r7:00c5387d r6:ffffffff r5:60000010 r4:000712a0
[ 3237.891760] Code: e5050228 e5932004 e593c000 e1a01007 (e58c2004)
[ 3237.900372] ---[ end trace b712cd02bfc8cd36 ]---
[ 3237.907484] Kernel panic - not syncing: Fatal exception in interrupt
[ 3237.916345] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
I have logs of multiple of these crashes, so let me know if you need more. It seems like the exact memory addresses of the fault vary slightly between runs. The PC is always in unicam_isr, but the exact position varies as well. The backtrace appears to be identical.

I'm running this on a Raspberry Pi Zero W with a Raspberry Pi OS Lite image downloaded and flashed just a few days ago.

Code: Select all

/boot/cmdline.txt:
console=serial0,115200 console=tty1 root=PARTUUID=20e93a90-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cma=96M

Code: Select all

/boot/config.txt is mostly unchanged from the stock image, except for the addition of:
dtoverlay=tc358743
start_x=1
gpu_mem=128
enable_uart=1
The custom software I've written is based on yavta as mentioned, with only a handful of changes. These include the removal of the ISP, raising the H264 bitrate to 5 Mbit/s and enabling of MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER. Additionally, I implemented the source change event handler as follows to support hot-plugging the HDMI input:

Code: Select all

void V4l2VideoSource::handle_event() {
    struct v4l2_event ev;

    int nbufs = this->nbufs;

    while (!ioctl(this->dev.fd, VIDIOC_DQEVENT, &ev)) {
        switch (ev.type) {
            case V4L2_EVENT_SOURCE_CHANGE:
                fprintf(stderr, "Source changed!\n");

                if (v4l2_enable(&this->dev, 0)) {
                    fprintf(stderr, "Could not disable device!\n");
                }

                this->free_buffers();
                this->destroy_mmal();

                v4l2_get_format(&this->dev);
                v4l2_set_dv_timings(&this->dev);

                if (this->setup_mmal(nbufs)) {
                    fprintf(stderr, "Could not resetup mmal!\n");
                }

                if (this->alloc_buffers(nbufs) < 0) {
                    fprintf(stderr, "Could not realloc buffers!\n");
                }

                if (this->queue_all_buffers()) {
                    fprintf(stderr, "Could not requeue buffers!\n");
                }

                if (v4l2_enable(&this->dev, 1)) {
                    fprintf(stderr, "Could not reenable device!\n");
                }

                // If we don't return, seems like the next ioctl blocks indefinitely
                return;
            case V4L2_EVENT_EOS:
                fprintf(stderr, "EOS\n");
                break;
        }
    }
}

void V4l2VideoSource::destroy_mmal() {
    print("Destroying mmal\n");

    this->thread_quit = 1;
    vcos_thread_join(&this->data_callback_thread, NULL);

    if (this->data_callback_queue) mmal_queue_destroy(this->data_callback_queue);

    if (this->encoder) mmal_port_disable(this->encoder->output[0]);
    if (this->encoder) mmal_port_disable(this->encoder->input[0]);
    if (this->render) mmal_port_disable(this->render->input[0]);
    if (this->encoder) mmal_component_disable(this->encoder);

    if (this->output_pool) mmal_port_pool_destroy(this->encoder->output[0], this->output_pool);
    if (this->encode_pool) mmal_pool_destroy(this->encode_pool);
    if (this->render_pool) mmal_pool_destroy(this->render_pool);

    if (this->render) mmal_component_destroy(this->render);
    if (this->encoder) mmal_component_destroy(this->encoder);

    this->thread_quit = 0;

    this->data_callback_queue = NULL;
    this->output_pool = NULL;
    this->encode_pool = NULL;
    this->render_pool = NULL;

    this->render = NULL;
    this->encoder = NULL;
}

The produced H264 stream is then sent through a TCP socket. A similar networking setup can be created by using:

Code: Select all

./yavta --capture=10000000 -s 1080x720 -n 3 --encode-to=- -m -T /dev/video0 | gst-launch-1.0 -v fdsrc ! tcpserversink port=5001 host=0.0.0.0
My next goal is reproducing the kernel panic with plain yavta to ensure my custom software isn't to blame. Let me know if there's anything I can test to work around the issue or help diagnose the problem!

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11258
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Mon Mar 15, 2021 6:38 pm

Update your kernel. You appear to be running 5.4.83 when all development effort is now on 5.10 (5.10.23 is now the latest on our tree).

You may well be hitting https://github.com/raspberrypi/linux/issues/4128 with the fix merged via https://github.com/raspberrypi/linux/pull/4189.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

fd_
Posts: 105
Joined: Thu Oct 25, 2018 7:35 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Mon Mar 15, 2021 8:29 pm

6by9 wrote:
Mon Mar 15, 2021 6:38 pm
Update your kernel. You appear to be running 5.4.83 when all development effort is now on 5.10 (5.10.23 is now the latest on our tree).

You may well be hitting https://github.com/raspberrypi/linux/issues/4128 with the fix merged via https://github.com/raspberrypi/linux/pull/4189.
Thanks, I had missed that I wasn't on the newest kernel and that there was a very similar known issue! Sorry for that!

I have now updated via rpi-update and am now on 5.10.23:

Code: Select all

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.23+ #1406 Mon Mar 15 15:37:16 GMT 2021 armv6l GNU/Linux
Unfortunately, I'm now seeing a different kernel oops that appears reliably after about 3-5 minutes of runtime. It doesn't completely crash the system (though sometimes it does), but it breaks my V4L2 application.

When I try to restart my application, I get the following error messages in dmesg:

Code: Select all

[  868.419001] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92000000
[  868.460266] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92300000
[  868.493670] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92600000
Full relevant kernel log:

Code: Select all

[   69.639594] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92000000
[   69.640620] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92100000
[   69.641546] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92200000
[   73.221341] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92000000
[   73.222679] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92300000
[   73.223942] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92600000
[   73.470270] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92000000
[   73.471431] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92300000
[   73.472516] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x92600000
[  300.337006] 8<--- cut here ---
[  300.348372] Unable to handle kernel paging request at virtual address bf92eb90
[  300.362676] pgd = 469816d4
[  300.371462] [bf92eb90] *pgd=00000000
[  300.381312] Internal error: Oops: 80000005 [#1] ARM
[  300.392097] Modules linked in: nft_counter nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables nfnetlink cdc_mbim cdc_wdm cdc_ncm ipheth aes_arm aes_generic cmac bnep hci_uart btbcm bluetooth ecdh_generic ecc libaes tc358743 cec 8021q garp stp llc cdc_ether r8152 brcmfmac brcmutil sha256_generic libsha256 i2c_mux_pinctrl i2c_mux cfg80211 raspberrypi_hwmon rfkill bcm2835_unicam v4l2_dv_timings v4l2_fwnode bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) v4l2_mem2mem snd_bcm2835(C) bcm2835_mmal_vchiq(C) videobuf2_dma_contig videobuf2_vmalloc videobuf2_memops i2c_bcm2835 videobuf2_v4l2 snd_pcm videobuf2_common snd_timer snd vc_sm_cma(C) videodev mc uio_pdrv_genirq fixed uio ip_tables x_tables ipv6
[  300.486488] CPU: 0 PID: 2278 Comm: vc.ril.video_en Tainted: G         C        5.10.23+ #1406
[  300.502705] Hardware name: BCM2835
[  300.513674] PC is at 0xbf92eb90
[  300.524455] LR is at video_usercopy+0x490/0x558 [videodev]
[  300.537609] pc : [<bf92eb90>]    lr : [<bf0f2b84>]    psr: 60000013
[  300.551516] sp : c80bfe18  ip : c80bfe18  fp : c80bfeec
[  300.564232] r10: 00000000  r9 : c0ba7028  r8 : c80bfe3c
[  300.576754] r7 : 00000000  r6 : 00000000  r5 : c050560f  r4 : c044560f
[  300.590830] r3 : 00000000  r2 : bf114a60  r1 : e01827ae  r0 : c427d4e0
[  300.605018] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  300.619927] Control: 00c5387d  Table: 08094008  DAC: 00000055
[  300.633509] Process vc.ril.video_en (pid: 2278, stack limit = 0x3843642e)
[  300.647877] Stack: (0xc80bfe18 to 0xc80c0000)
[  300.659751] fe00:                                                       c0050728 00000000
[  300.675817] fe20: 00000000 00000000 00000000 00000000 c35e9180 b37fcbac 00000000 00000000
[  300.691985] fe40: 00000001 002a3000 00002003 00000001 00000000 00000000 00000000 00000000
[  300.708206] fe60: 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000
[  300.724370] fe80: 002a3000 00000000 00000000 c80bfe98 c0098640 c009671c ffffffff c48c3a80
[  300.740567] fea0: 00000000 c08c1fe8 00000000 c48c3a80 b37fcdd0 0000000a c80bfedc e01827ae
[  300.756805] fec0: c05cd978 bf0f2c4c c35e9181 c35e9180 00000000 c0ba7028 b37fcbac 00000004
[  300.773115] fee0: c80bfefc c80bfef0 bf0f2c68 bf0f2700 c80bff14 c80bff00 bf0ea148 bf0f2c58
[  300.789528] ff00: c044560f c35e9181 c80bffa4 c80bff18 c0209664 bf0ea108 c0c8f1d0 00000000
[  300.805990] ff20: 00000000 00000189 c0ba7028 003a05b8 00000001 00000000 c80bffa4 c80bff48
[  300.822521] ff40: c0099238 c0098504 00000000 00000000 ffffffff 00000000 00000000 00000000
[  300.839094] ff60: c0c27318 c00082a8 ffffffff 00000000 00000000 e01827ae c80bffac 0039d948
[  300.855658] ff80: b37fcbf0 00000000 00000036 c00083e4 c80be000 00000000 00000000 c80bffa8
[  300.872276] ffa0: c0008240 c02094c4 0039d948 b37fcbf0 00000004 c044560f b37fcbac 00000001
[  300.888904] ffc0: 0039d948 b37fcbf0 00000000 00000036 b21344ea b37fd440 00000000 b37fcf7c
[  300.905581] ffe0: 000ee190 b37fcba4 00017adc b6a8051c a0000010 00000004 00000000 00000000
[  300.922236] Backtrace: 
[  300.933662] [<bf0f26f4>] (video_usercopy [videodev]) from [<bf0f2c68>] (video_ioctl2+0x1c/0x24 [videodev])
[  300.951840]  r10:00000004 r9:b37fcbac r8:c0ba7028 r7:00000000 r6:c35e9180 r5:c35e9181
[  300.968366]  r4:bf0f2c4c
[  300.980040] [<bf0f2c4c>] (video_ioctl2 [videodev]) from [<bf0ea148>] (v4l2_ioctl+0x4c/0x64 [videodev])
[  300.998352] [<bf0ea0fc>] (v4l2_ioctl [videodev]) from [<c0209664>] (sys_ioctl+0x1ac/0x88c)
[  301.015321]  r5:c35e9181 r4:c044560f
[  301.027419] [<c02094b8>] (sys_ioctl) from [<c0008240>] (ret_fast_syscall+0x0/0x28)
[  301.043619] Exception stack(0xc80bffa8 to 0xc80bfff0)
[  301.057255] ffa0:                   0039d948 b37fcbf0 00000004 c044560f b37fcbac 00000001
[  301.074450] ffc0: 0039d948 b37fcbf0 00000000 00000036 b21344ea b37fd440 00000000 b37fcf7c
[  301.091700] ffe0: 000ee190 b37fcba4 00017adc b6a8051c
[  301.105688]  r10:00000000 r9:c80be000 r8:c00083e4 r7:00000036 r6:00000000 r5:b37fcbf0
[  301.122582]  r4:0039d948
[  301.134134] Code: bad PC value
[  301.145836] ---[ end trace 20cc55d50383fc38 ]---

Update:

yavta is also affected, not just my custom application. The log looks slightly different for yavta:

Code: Select all

[  885.329566] 8<--- cut here ---
[  885.341888] Unable to handle kernel paging request at virtual address bf930b90
[  885.355823] pgd = cf485c50
[  885.365049] [bf930b90] *pgd=00000000
[  885.374773] Internal error: Oops: 80000005 [#1] ARM
[  885.386178] Modules linked in: aes_arm aes_generic cmac bnep hci_uart btbcm bluetooth ecdh_generic ecc libaes tc358743 cec 8021q garp stp llc cdc_ether 
r8152 brcmfmac brcmutil sha256_generic libsha256 i2c_mux_pinctrl i2c_mux cfg80211 raspberrypi_hwmon rfkill bcm2835_unicam v4l2_dv_timings v4l2_fwnode bcm28
35_codec(C) bcm2835_isp(C) v4l2_mem2mem bcm2835_v4l2(C) i2c_bcm2835 bcm2835_mmal_vchiq(C) snd_bcm2835(C) videobuf2_vmalloc videobuf2_dma_contig videobuf2_m
emops videobuf2_v4l2 videobuf2_common snd_pcm snd_timer snd videodev vc_sm_cma(C) mc uio_pdrv_genirq uio fixed ip_tables x_tables ipv6
[  885.460912] CPU: 0 PID: 25320 Comm: vc.ril.isp Tainted: G         C        5.10.23+ #1406
[  885.476772] Hardware name: BCM2835
[  885.487826] PC is at 0xbf930b90
[  885.499006] LR is at video_usercopy+0x490/0x558 [videodev]
[  885.511891] pc : [<bf930b90>]    lr : [<bf0f4b84>]    psr: 60000013
[  885.525575] sp : c4f9fe18  ip : c4f9fe18  fp : c4f9feec
[  885.538511] r10: 00000000  r9 : c0ba7028  r8 : c4f9fe3c
[  885.551430] r7 : 00000000  r6 : 00000000  r5 : c050560f  r4 : c044560f
[  885.565432] r3 : 00000000  r2 : bf116a60  r1 : 2a023ea1  r0 : c3dcd4e0
[  885.579341] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  885.593964] Control: 00c5387d  Table: 04f90008  DAC: 00000055
[  885.607431] Process vc.ril.isp (pid: 25320, stack limit = 0xa48db7d9)
[  885.621796] Stack: (0xc4f9fe18 to 0xc4fa0000)
[  885.634066] fe00:                                                       00000001 00000000
[  885.649950] fe20: 00000000 00000000 00000000 00000000 c4f50480 b4afbbc4 00000000 00000001
[  885.665875] fe40: 00000001 002a3000 00002003 00000001 00000000 00000000 00000000 00000000
[  885.681761] fe60: 00000000 00000000 00000000 00000000 00000000 00000000 00000001 002a3000
[  885.697621] fe80: 002a3000 00000000 00000000 c4f9fe98 c0098640 c009671c ffffffff c4f9fea8
[  885.713474] fea0: bf0de2d0 015d2054 00000128 00000000 c08c1fe8 00000000 c4f9fedc 2a023ea1
[  885.729367] fec0: c05ccdd8 bf0f4c4c c4f50481 c4f50480 00000000 c0ba7028 b4afbbc4 00000004
[  885.745352] fee0: c4f9fefc c4f9fef0 bf0f4c68 bf0f4700 c4f9ff14 c4f9ff00 bf0ec148 bf0f4c58
[  885.761410] ff00: c044560f c4f50481 c4f9ffa4 c4f9ff18 c0209664 bf0ec108 c4f9ff6c 00000000
[  885.777612] ff20: 00000000 00000189 c0ba7028 015c95a8 00000001 00000000 c4f9ffa4 c4f9ff48
[  885.793953] ff40: c0099238 c0098504 00000000 00000000 ffffffff c00083e4 c4f9e000 00000000
[  885.810373] ff60: c4f9ffa4 c4f9ff70 c007db3c c008448c 604fc8bd 2a023ea1 03e0b269 00000001
[  885.826842] ff80: be95a878 be95a988 00000036 c00083e4 c4f9e000 00000000 00000000 c4f9ffa8
[  885.843401] ffa0: c0008240 c02094c4 00000001 be95a878 00000004 c044560f b4afbbc4 00000001
[  885.859955] ffc0: 00000001 be95a878 be95a988 00000036 00000000 00000000 00000000 b4afbf9c
[  885.876557] ffe0: 0002b064 b4afbbb4 000151cc b6da651c 60000010 00000004 00000000 00000000
[  885.893185] Backtrace:
[  885.904552] [<bf0f46f4>] (video_usercopy [videodev]) from [<bf0f4c68>] (video_ioctl2+0x1c/0x24 [videodev])
[  885.923106]  r10:00000004 r9:b4afbbc4 r8:c0ba7028 r7:00000000 r6:c4f50480 r5:c4f50481
[  885.939786]  r4:bf0f4c4c
[  885.951517] [<bf0f4c4c>] (video_ioctl2 [videodev]) from [<bf0ec148>] (v4l2_ioctl+0x4c/0x64 [videodev])
[  885.970038] [<bf0ec0fc>] (v4l2_ioctl [videodev]) from [<c0209664>] (sys_ioctl+0x1ac/0x88c)
[  885.987431]  r5:c4f50481 r4:c044560f
[  885.999925] [<c02094b8>] (sys_ioctl) from [<c0008240>] (ret_fast_syscall+0x0/0x28)
[  886.016173] Exception stack(0xc4f9ffa8 to 0xc4f9fff0)
[  886.029800] ffa0:                   00000001 be95a878 00000004 c044560f b4afbbc4 00000001
[  886.046752] ffc0: 00000001 be95a878 be95a988 00000036 00000000 00000000 00000000 b4afbf9c
[  886.063724] ffe0: 0002b064 b4afbbb4 000151cc b6da651c
[  886.077489]  r10:00000000 r9:c4f9e000 r8:c00083e4 r7:00000036 r6:be95a988 r5:be95a878
[  886.094176]  r4:00000001
[  886.105386] Code: bad PC value
[  886.117447] ---[ end trace 1ea6dff965dcedef ]---

fd_
Posts: 105
Joined: Thu Oct 25, 2018 7:35 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Mar 16, 2021 3:58 pm

Is it possible the problem is related to the recent changes to bcm2835-codec (https://github.com/raspberrypi/linux/pull/4113) that were also merged in in 5.10.23? I'm ready to try and backport the unicam fix (https://github.com/raspberrypi/linux/pull/4189) to an older kernel version if it helps diagnosis, because I have a feeling this is really addressing the issue I saw on the older kernel. It just seems I was a little unlucky and the new version that includes the fix happens to introduce another bug that breaks mmal :roll: :D

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11258
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Mar 16, 2021 5:05 pm

fd_ wrote:
Tue Mar 16, 2021 3:58 pm
Is it possible the problem is related to the recent changes to bcm2835-codec (https://github.com/raspberrypi/linux/pull/4113) that were also merged in in 5.10.23? I'm ready to try and backport the unicam fix (https://github.com/raspberrypi/linux/pull/4189) to an older kernel version if it helps diagnosis, because I have a feeling this is really addressing the issue I saw on the older kernel. It just seems I was a little unlucky and the new version that includes the fix happens to introduce another bug that breaks mmal :roll: :D
This thread is becoming more about debugging your custom app - please start a new thread referencing this one.

yavta uses MMAL and not the V4L2 codecs. I therefore have no visibility of what you or the codecs may be doing wrong.

I am unaware of any recent bug that breaks MMAL, and looking at you recent posts I don't see any there either. Would you care to enlighten us?
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

fd_
Posts: 105
Joined: Thu Oct 25, 2018 7:35 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Mar 16, 2021 5:28 pm

6by9 wrote:
Tue Mar 16, 2021 5:05 pm
fd_ wrote:
Tue Mar 16, 2021 3:58 pm
Is it possible the problem is related to the recent changes to bcm2835-codec (https://github.com/raspberrypi/linux/pull/4113) that were also merged in in 5.10.23? I'm ready to try and backport the unicam fix (https://github.com/raspberrypi/linux/pull/4189) to an older kernel version if it helps diagnosis, because I have a feeling this is really addressing the issue I saw on the older kernel. It just seems I was a little unlucky and the new version that includes the fix happens to introduce another bug that breaks mmal :roll: :D
This thread is becoming more about debugging your custom app - please start a new thread referencing this one.

yavta uses MMAL and not the V4L2 codecs. I therefore have no visibility of what you or the codecs may be doing wrong.

I am unaware of any recent bug that breaks MMAL, and looking at you recent posts I don't see any there either. Would you care to enlighten us?
I'm seeing this kernel oops on plain yavta (not my custom app) after a few minutes (sometimes, as few as 5 minutes) of runtime on the new 5.10.23 kernel:

Code: Select all

[  885.329566] 8<--- cut here ---
[  885.341888] Unable to handle kernel paging request at virtual address bf930b90
[  885.355823] pgd = cf485c50
[  885.365049] [bf930b90] *pgd=00000000
[  885.374773] Internal error: Oops: 80000005 [#1] ARM
[  885.386178] Modules linked in: aes_arm aes_generic cmac bnep hci_uart btbcm bluetooth ecdh_generic ecc libaes tc358743 cec 8021q garp stp llc cdc_ether 
r8152 brcmfmac brcmutil sha256_generic libsha256 i2c_mux_pinctrl i2c_mux cfg80211 raspberrypi_hwmon rfkill bcm2835_unicam v4l2_dv_timings v4l2_fwnode bcm28
35_codec(C) bcm2835_isp(C) v4l2_mem2mem bcm2835_v4l2(C) i2c_bcm2835 bcm2835_mmal_vchiq(C) snd_bcm2835(C) videobuf2_vmalloc videobuf2_dma_contig videobuf2_m
emops videobuf2_v4l2 videobuf2_common snd_pcm snd_timer snd videodev vc_sm_cma(C) mc uio_pdrv_genirq uio fixed ip_tables x_tables ipv6
[  885.460912] CPU: 0 PID: 25320 Comm: vc.ril.isp Tainted: G         C        5.10.23+ #1406
[  885.476772] Hardware name: BCM2835
[  885.487826] PC is at 0xbf930b90
[  885.499006] LR is at video_usercopy+0x490/0x558 [videodev]
[  885.511891] pc : [<bf930b90>]    lr : [<bf0f4b84>]    psr: 60000013
[  885.525575] sp : c4f9fe18  ip : c4f9fe18  fp : c4f9feec
[  885.538511] r10: 00000000  r9 : c0ba7028  r8 : c4f9fe3c
[  885.551430] r7 : 00000000  r6 : 00000000  r5 : c050560f  r4 : c044560f
[  885.565432] r3 : 00000000  r2 : bf116a60  r1 : 2a023ea1  r0 : c3dcd4e0
[  885.579341] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  885.593964] Control: 00c5387d  Table: 04f90008  DAC: 00000055
[  885.607431] Process vc.ril.isp (pid: 25320, stack limit = 0xa48db7d9)
[  885.621796] Stack: (0xc4f9fe18 to 0xc4fa0000)
[  885.634066] fe00:                                                       00000001 00000000
[  885.649950] fe20: 00000000 00000000 00000000 00000000 c4f50480 b4afbbc4 00000000 00000001
[  885.665875] fe40: 00000001 002a3000 00002003 00000001 00000000 00000000 00000000 00000000
[  885.681761] fe60: 00000000 00000000 00000000 00000000 00000000 00000000 00000001 002a3000
[  885.697621] fe80: 002a3000 00000000 00000000 c4f9fe98 c0098640 c009671c ffffffff c4f9fea8
[  885.713474] fea0: bf0de2d0 015d2054 00000128 00000000 c08c1fe8 00000000 c4f9fedc 2a023ea1
[  885.729367] fec0: c05ccdd8 bf0f4c4c c4f50481 c4f50480 00000000 c0ba7028 b4afbbc4 00000004
[  885.745352] fee0: c4f9fefc c4f9fef0 bf0f4c68 bf0f4700 c4f9ff14 c4f9ff00 bf0ec148 bf0f4c58
[  885.761410] ff00: c044560f c4f50481 c4f9ffa4 c4f9ff18 c0209664 bf0ec108 c4f9ff6c 00000000
[  885.777612] ff20: 00000000 00000189 c0ba7028 015c95a8 00000001 00000000 c4f9ffa4 c4f9ff48
[  885.793953] ff40: c0099238 c0098504 00000000 00000000 ffffffff c00083e4 c4f9e000 00000000
[  885.810373] ff60: c4f9ffa4 c4f9ff70 c007db3c c008448c 604fc8bd 2a023ea1 03e0b269 00000001
[  885.826842] ff80: be95a878 be95a988 00000036 c00083e4 c4f9e000 00000000 00000000 c4f9ffa8
[  885.843401] ffa0: c0008240 c02094c4 00000001 be95a878 00000004 c044560f b4afbbc4 00000001
[  885.859955] ffc0: 00000001 be95a878 be95a988 00000036 00000000 00000000 00000000 b4afbf9c
[  885.876557] ffe0: 0002b064 b4afbbb4 000151cc b6da651c 60000010 00000004 00000000 00000000
[  885.893185] Backtrace:
[  885.904552] [<bf0f46f4>] (video_usercopy [videodev]) from [<bf0f4c68>] (video_ioctl2+0x1c/0x24 [videodev])
[  885.923106]  r10:00000004 r9:b4afbbc4 r8:c0ba7028 r7:00000000 r6:c4f50480 r5:c4f50481
[  885.939786]  r4:bf0f4c4c
[  885.951517] [<bf0f4c4c>] (video_ioctl2 [videodev]) from [<bf0ec148>] (v4l2_ioctl+0x4c/0x64 [videodev])
[  885.970038] [<bf0ec0fc>] (v4l2_ioctl [videodev]) from [<c0209664>] (sys_ioctl+0x1ac/0x88c)
[  885.987431]  r5:c4f50481 r4:c044560f
[  885.999925] [<c02094b8>] (sys_ioctl) from [<c0008240>] (ret_fast_syscall+0x0/0x28)
[  886.016173] Exception stack(0xc4f9ffa8 to 0xc4f9fff0)
[  886.029800] ffa0:                   00000001 be95a878 00000004 c044560f b4afbbc4 00000001
[  886.046752] ffc0: 00000001 be95a878 be95a988 00000036 00000000 00000000 00000000 b4afbf9c
[  886.063724] ffe0: 0002b064 b4afbbb4 000151cc b6da651c
[  886.077489]  r10:00000000 r9:c4f9e000 r8:c00083e4 r7:00000036 r6:be95a988 r5:be95a878
[  886.094176]  r4:00000001
[  886.105386] Code: bad PC value
[  886.117447] ---[ end trace 1ea6dff965dcedef ]---
The invocation I use is:

./yavta --capture=10000000 -s 1080x720 -n 3 --encode-to=- -m -T /dev/video0 | gst-launch-1.0 -v fdsrc ! tcpserversink port=5001 host=0.0.0.0

And for receiving, I use https://play.google.com/store/apps/deta ... meraviewer

Please note I applied two minor changes to yavta prior to my experiment that should be irrelevant: I raised lowered the bitrate of the encoder to 5Mbit/s and enabled MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER. Other than that, the code is exactly what's in https://github.com/6by9/yavta/blob/master/yavta.c:

Code: Select all

pi@raspberrypi:~/yavta $ git diff yavta.c
diff --git a/yavta.c b/yavta.c
index 2f94ec6..60b0093 100644
--- a/yavta.c
+++ b/yavta.c
@@ -2085,7 +2085,7 @@ static int setup_mmal(struct device *dev, int nbufs, int do_encode, const char *
                // Only supporting H264 at the moment
                encoder_output->format->encoding = MMAL_ENCODING_H264;
 
-               encoder_output->format->bitrate = 10000000;
+               encoder_output->format->bitrate = 5000000;
                encoder_output->buffer_size = 256<<10;//encoder_output->buffer_size_recommended;
 
                if (encoder_output->buffer_size < encoder_output->buffer_size_min)
@@ -2131,7 +2131,7 @@ static int setup_mmal(struct device *dev, int nbufs, int do_encode, const char *
                }
 
                //set INLINE HEADER flag to generate SPS and PPS for every IDR if requested
-               if (mmal_port_parameter_set_boolean(encoder_output, MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER, 0) != MMAL_SUCCESS)
+               if (mmal_port_parameter_set_boolean(encoder_output, MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER, 1) != MMAL_SUCCESS)
                {
                        print("failed to set INLINE HEADER FLAG parameters\n");
                        // Continue rather than abort..
Last edited by fd_ on Tue Mar 16, 2021 6:48 pm, edited 1 time in total.

fd_
Posts: 105
Joined: Thu Oct 25, 2018 7:35 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Mar 16, 2021 6:43 pm

I updated my previous post above with more information on my setup. Basically, the kernel oops occurs a few minutes (sometimes after just 5 minutes, sometimes a little more) after starting yavta (I'm using a very slightly modified version of yavta with modifications to two lines of code (see above)).

Do you want me to open a new issue in Github?

proffff
Posts: 2
Joined: Wed Mar 31, 2021 12:25 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Mar 31, 2021 12:34 pm

hello every one I have used the B101 before 1 year ago wihout issue and putting my back on again on a fresh pi os I Got some strange behaviour
it should work at 1080p 25fps but I get a scrambled image and when switching the source to a 1080i one it works
unfortunately the source I must use at the end should be a 1080p and I can't configure it differently
I think it's coming from kernel driver because I tried with a chineese knockof that I have laying around and got same result

and I'm not speaking also of the warning message

Code: Select all

pi@DVMissionControl:~ $ raspivid -t 0
The driver for the TC358743 HDMI to CSI2 chip you are using is NOT supported.
They were written for a demo purposes only, and are in the firmware on an as-is
basis and therefore requests for support or changes will not be acted on.

^Cmmal: Aborting program

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11258
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Mar 31, 2021 12:49 pm

proffff wrote:
Wed Mar 31, 2021 12:34 pm
hello every one I have used the B101 before 1 year ago wihout issue and putting my back on again on a fresh pi os I Got some strange behaviour
it should work at 1080p 25fps but I get a scrambled image and when switching the source to a 1080i one it works
unfortunately the source I must use at the end should be a 1080p and I can't configure it differently
I think it's coming from kernel driver because I tried with a chineese knockof that I have laying around and got same result

and I'm not speaking also of the warning message

Code: Select all

pi@DVMissionControl:~ $ raspivid -t 0
The driver for the TC358743 HDMI to CSI2 chip you are using is NOT supported.
They were written for a demo purposes only, and are in the firmware on an as-is
basis and therefore requests for support or changes will not be acted on.

^Cmmal: Aborting program
Interlaced video is not supported, so I'm not sure how that would behave.

You say you're not speaking of the message about the firmware drivers not being supported. Please therefore confirm that you are NOT using raspivid at all, and are using the kernel drivers? In which case, what does the driver detect the source as? "v4l2-ctl --log-status" and "v4l2-ctl --query-dv-timings".

The boards can work up to 1080p30 when in RGB888 mode, and 1080p50 when in UYVY mode. The 1080p25 limit that keep on being thrown around are when using the unsupported firmware drivers.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

rcasiodu
Posts: 32
Joined: Tue May 28, 2019 2:28 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Thu May 13, 2021 12:27 pm

6by9 wrote:
Sun Jul 24, 2016 7:49 am
eazrael wrote:I am using a RPi 3
I'm afraid that is your point of failure.
The Pi3 uses i2c-0 from the GPU for uses other than the camera, display, and HATs, so is not available from the ARM at all.

All is not lost however as i2c-1 can be redirected to GPIOs 44&45 which are the pins used for the camera on Pi3. It requires a little bit of fiddling that I just haven't had the time for. I think all the relevant dt overlays exist (https://github.com/raspberrypi/linux/bl ... verlay.dts allows modification of the GPIOs use for the i2c-1)
GPIOs aren't needed for TC358743, but can be accessed if necessary - see posts around viewtopic.php?f=43&t=109137&p=1005243#p1003461
Hi 6by9, why i2c-0 can not be used for arm? I donot enable dtparam=i2c_vc=on in /boot/config.txt.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11258
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Thu May 13, 2021 3:06 pm

rcasiodu wrote:
Thu May 13, 2021 12:27 pm
6by9 wrote:
Sun Jul 24, 2016 7:49 am
eazrael wrote:I am using a RPi 3
I'm afraid that is your point of failure.
The Pi3 uses i2c-0 from the GPU for uses other than the camera, display, and HATs, so is not available from the ARM at all.

All is not lost however as i2c-1 can be redirected to GPIOs 44&45 which are the pins used for the camera on Pi3. It requires a little bit of fiddling that I just haven't had the time for. I think all the relevant dt overlays exist (https://github.com/raspberrypi/linux/bl ... verlay.dts allows modification of the GPIOs use for the i2c-1)
GPIOs aren't needed for TC358743, but can be accessed if necessary - see posts around viewtopic.php?f=43&t=109137&p=1005243#p1003461
Hi 6by9, why i2c-0 can not be used for arm? I donot enable dtparam=i2c_vc=on in /boot/config.txt.
Quoting a post from 2016?! :shock: :shock: :shock: Things do change.

As stated, at the time the Pi3B (not +) was using i2c-0 for internal functions. That was changed (probably also in 2016), so i2c-0 can be used from the ARM, and is used by the TC358743 drivers.
See viewtopic.php?f=38&t=281972 for details on enabling the drivers for TC358743.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

rcasiodu
Posts: 32
Joined: Tue May 28, 2019 2:28 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Sat May 15, 2021 3:56 am

Hi 6by9, the kernel version is not updated. I will try the instructions in viewtopic.php?f=38&t=281972. Thanks.

Return to “Graphics, sound and multimedia”