raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Arducam Pivariety modprobe is in uninterruptable state

Psyhich opened this issue · comments

Describe the bug

I'm using IMX462 B0444 camera that requires usage of arducam-pivariety overlay. After setting it in config.txt I get such messages in dmesg:

[    0.079213] platform fe801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/arducam_pivariety@c
[    9.557770] arducam-pivariety 10-000c: firmware version: 0x10003

And I can see such process in uninterruptible state: modprobe of:Narducam_pivarietyT(null)Carducam,a+

Steps to reproduce the behaviour

Put dtoverlay=arducam-pivariety into /boot/config.txt and correctly connect camera

Device (s)

Raspberry Pi 4 Mod. B

System

OS:

Raspberry Pi reference 2023-05-03
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 7c750947a959fb626a70c09fd17c65815df192ac, stage2

Firmware:

Mar 17 2023 10:50:39
Copyright (c) 2012 Broadcom
version 82f3750a65fadae9a38077e3c2e217ad158c8d54 (clean) (release) (start)

Kernel:

Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

Logs

[ 0.079213] platform fe801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/arducam_pivariety@c
[ 9.557770] arducam-pivariety 10-000c: firmware version: 0x10003

Additional context

As I've seen calling sudo vcdbg log msg with dtdebug=1 gives out that overlay was loaded and even some parameters were instantiated or loaded:

vcdbg output
003824.781: arasan: arasan_emmc_open
003824.950: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
003929.715: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
003929.802: arasan: arasan_emmc_set_clock C0: 0x00800f00 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 390000 max: 400000 delay: 5
003947.974: arasan: arasan_emmc_set_clock C0: 0x00800f06 C1: 0x000e0207 emmc: 200000000 actual: 50000000 div: 0x00000002 target: 50000000 min: 0 max: 50000000 delay: 1
004032.524: brfs: File read: /mfs/sd/config.txt
004033.544: brfs: File read: 2158 bytes
004055.298: HDMI0:EDID error reading EDID block 0 attempt 0
004056.314: HDMI0:EDID giving up on reading EDID block 0
004068.305: HDMI1:EDID error reading EDID block 0 attempt 0
004069.320: HDMI1:EDID giving up on reading EDID block 0
004071.189: brfs: File read: /mfs/sd/config.txt
004874.711: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined
004877.232: *** Restart logging
004877.251: brfs: File read: 2158 bytes
004882.650: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
004883.666: hdmi: HDMI0:EDID giving up on reading EDID block 0
004888.711: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
004889.728: hdmi: HDMI0:EDID giving up on reading EDID block 0
004889.745: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
004894.784: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
004895.801: hdmi: HDMI1:EDID giving up on reading EDID block 0
004900.841: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
004901.856: hdmi: HDMI1:EDID giving up on reading EDID block 0
004901.873: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
004901.889: HDMI0: hdmi_pixel_encoding: 300000000
004901.901: HDMI1: hdmi_pixel_encoding: 300000000
004902.228: kernel=
004907.122: dtb_file 'bcm2711-rpi-4-b.dtb'
004907.134: Trying Device Tree file 'bcm2711-rpi-4-b.dtb'
004913.081: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
004913.096: Loaded 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xcd71
004923.219: dtdebug: delete_node(/__local_fixups__)
004926.313: brfs: File read: 52593 bytes
004938.288: dtdebug: using platform 'bcm2711'
004939.439: brfs: File read: /mfs/sd/overlays/overlay_map.dtb
004940.567: dtdebug: overlay map loaded
004942.008: dtdebug: /aliases:i2c_vc=i2c0
004947.228: dtdebug: /__symbols__:i2c_vc=i2c0
004950.724: dtdebug: /__overrides__:i2c_vc=i2c0
004957.886: dtdebug: /__overrides__:i2c_vc_baudrate=i2c0_baudrate
004959.291: dtdebug: /aliases:i2c=i2c1
004964.411: dtdebug: /__symbols__:i2c=i2c1
004967.931: dtdebug: /__overrides__:i2c=i2c1
004969.337: dtdebug: /aliases:i2c_arm=i2c1
004974.467: dtdebug: /__symbols__:i2c_arm=i2c1
004977.996: dtdebug: /__overrides__:i2c_arm=i2c1
004985.225: dtdebug: /__overrides__:i2c_baudrate=i2c1_baudrate
004992.447: dtdebug: /__overrides__:i2c_arm_baudrate=i2c1_baudrate
005012.178: dtparam: uart0_clkrate=48000000
005015.023: dtdebug: /__overrides__ has no uart0_clkrate property
005015.032: Unknown dtparam 'uart0_clkrate' - ignored
005015.049: brfs: File read: 2347 bytes
005017.731: brfs: File read: /mfs/sd/config.txt
005018.139: dtparam: i2c_arm=on
005020.938: dtdebug: found override i2c_arm
005020.964: dtdebug:   override i2c_arm: string target 'status'
005026.812: dtparam: i2s=on
005029.581: dtdebug: found override i2s
005029.604: dtdebug:   override i2s: string target 'status'
005034.883: dtparam: spi=on
005037.649: dtdebug: found override spi
005037.674: dtdebug:   override spi: string target 'status'
005043.100: dtparam: audio=on
005045.919: dtdebug: found override audio
005045.947: dtdebug:   override audio: string target 'bootargs'
005047.672: dtdebug: mapped overlay 'vc4-kms-v3d' to 'vc4-kms-v3d-pi4'
005047.689: brfs: File read: 2158 bytes
005064.391: dtdebug: Opened overlay file 'overlays/vc4-kms-v3d-pi4.dtbo'
005065.508: brfs: File read: /mfs/sd/overlays/vc4-kms-v3d-pi4.dtbo
005126.559: Loaded overlay 'vc4-kms-v3d'
005151.379: dtdebug: fragment 17 disabled
005151.431: dtdebug: fragment 18 disabled
005152.904: dtdebug: fragment 21 disabled
005152.956: dtdebug: fragment 22 disabled
005155.030: dtdebug: merge_fragment(/reserved-memory/linux,cma,/fragment@0/__overlay__)
005155.048: dtdebug:   +prop(size)
005155.831: dtdebug: merge_fragment() end
005165.375: dtdebug: merge_fragment(/soc/i2c@7ef04500,/fragment@1/__overlay__)
005165.393: dtdebug:   +prop(status)
005165.801: dtdebug: merge_fragment() end
005175.460: dtdebug: merge_fragment(/soc/i2c@7ef09500,/fragment@2/__overlay__)
005175.475: dtdebug:   +prop(status)
005175.869: dtdebug: merge_fragment() end
005185.379: dtdebug: merge_fragment(/soc/hdmi@7ef00700,/fragment@3/__overlay__)
005185.396: dtdebug:   +prop(status)
005185.825: dtdebug: merge_fragment() end
005195.461: dtdebug: merge_fragment(/soc/hdmi@7ef05700,/fragment@4/__overlay__)
005195.478: dtdebug:   +prop(status)
005195.896: dtdebug: merge_fragment() end
005203.755: dtdebug: merge_fragment(/soc/hvs@7e400000,/fragment@5/__overlay__)
005203.773: dtdebug:   +prop(status)
005204.276: dtdebug: merge_fragment() end
005213.344: dtdebug: merge_fragment(/soc/pixelvalve@7e206000,/fragment@6/__overlay__)
005213.360: dtdebug:   +prop(status)
005213.794: dtdebug: merge_fragment() end
005222.935: dtdebug: merge_fragment(/soc/pixelvalve@7e207000,/fragment@7/__overlay__)
005222.950: dtdebug:   +prop(status)
005223.384: dtdebug: merge_fragment() end
005232.583: dtdebug: merge_fragment(/soc/pixelvalve@7e20a000,/fragment@8/__overlay__)
005232.599: dtdebug:   +prop(status)
005233.033: dtdebug: merge_fragment() end
005242.416: dtdebug: merge_fragment(/soc/pixelvalve@7ec12000,/fragment@9/__overlay__)
005242.431: dtdebug:   +prop(status)
005242.854: dtdebug: merge_fragment() end
005252.201: dtdebug: merge_fragment(/soc/pixelvalve@7e216000,/fragment@10/__overlay__)
005252.217: dtdebug:   +prop(status)
005252.639: dtdebug: merge_fragment() end
005265.376: dtdebug: merge_fragment(/v3dbus/v3d@7ec04000,/fragment@11/__overlay__)
005265.394: dtdebug:   +prop(status)
005265.644: dtdebug: merge_fragment() end
005276.379: dtdebug: merge_fragment(/gpu,/fragment@12/__overlay__)
005276.393: dtdebug:   +prop(status)
005276.732: dtdebug: merge_fragment() end
005277.982: dtdebug: merge_fragment(/soc/txp@7e004000,/fragment@13/__overlay__)
005278.000: dtdebug:   +prop(status)
005278.753: dtdebug: merge_fragment() end
005289.388: dtdebug: merge_fragment(/soc/fb,/fragment@14/__overlay__)
005289.405: dtdebug:   +prop(status)
005289.754: dtdebug: merge_fragment() end
005299.791: dtdebug: merge_fragment(/soc/firmwarekms@7e600000,/fragment@15/__overlay__)
005299.810: dtdebug:   +prop(status)
005300.200: dtdebug: merge_fragment() end
005309.758: dtdebug: merge_fragment(/soc/vec@7ec13000,/fragment@16/__overlay__)
005309.776: dtdebug:   +prop(status)
005310.196: dtdebug: merge_fragment() end
005310.247: dtdebug: fragment 17 disabled
005310.299: dtdebug: fragment 18 disabled
005310.856: dtdebug: merge_fragment(/chosen,/fragment@19/__overlay__)
005310.874: dtdebug:   +prop(bootargs)
005311.662: dtdebug: merge_fragment() end
005321.349: dtdebug: merge_fragment(/soc/clock@7ef00000,/fragment@20/__overlay__)
005321.367: dtdebug:   +prop(status)
005321.789: dtdebug: merge_fragment() end
005321.840: dtdebug: fragment 21 disabled
005321.892: dtdebug: fragment 22 disabled
005331.701: dtdebug: merge_fragment(/soc/interrupt-controller@7ef00100,/fragment@23/__overlay__)
005331.719: dtdebug:   +prop(status)
005332.142: dtdebug: merge_fragment() end
005332.721: brfs: File read: 3913 bytes
005334.276: dtdebug: Opened overlay file 'overlays/arducam-pivariety.dtbo'
005335.451: brfs: File read: /mfs/sd/overlays/arducam-pivariety.dtbo
005376.059: Loaded overlay 'arducam-pivariety'
005390.233: dtdebug: merge_fragment(/soc/i2c0mux/i2c@1,/fragment@0/__overlay__)
005390.251: dtdebug:   +prop(#address-cells)
005390.619: dtdebug:   +prop(#size-cells)
005390.974: dtdebug:   +prop(status)
005394.938: dtdebug: merge_fragment(/soc/i2c0mux/i2c@1/arducam_pivariety@c,/fragment@0/__overlay__/arducam_pivariety@c)
005394.958: dtdebug:   +prop(compatible)
005395.317: dtdebug:   +prop(reg)
005395.699: dtdebug:   +prop(status)
005396.086: dtdebug:   +prop(clocks)
005396.486: dtdebug:   +prop(clock-names)
005396.902: dtdebug:   +prop(VANA-supply)
005397.560: dtdebug:   +prop(VDIG-supply)
005398.224: dtdebug:   +prop(VDDL-supply)
005398.891: dtdebug:   +prop(rotation)
005399.576: dtdebug:   +prop(orientation)
005400.256: dtdebug:   +prop(phandle)
005404.291: dtdebug: merge_fragment(/soc/i2c0mux/i2c@1/arducam_pivariety@c/port,/fragment@0/__overlay__/arducam_pivariety@c/port)
005407.910: dtdebug: merge_fragment(/soc/i2c0mux/i2c@1/arducam_pivariety@c/port/endpoint,/fragment@0/__overlay__/arducam_pivariety@c/port/endpoint)
005407.926: dtdebug:   +prop(remote-endpoint)
005408.581: dtdebug:   +prop(clock-lanes)
005409.235: dtdebug:   +prop(data-lanes)
005409.675: dtdebug:   +prop(clock-noncontinuous)
005410.338: dtdebug:   +prop(link-frequencies)
005411.002: dtdebug:   +prop(phandle)
005411.395: dtdebug: merge_fragment() end
005411.414: dtdebug: merge_fragment() end
005411.435: dtdebug: merge_fragment() end
005411.472: dtdebug: merge_fragment() end
005421.477: dtdebug: merge_fragment(/soc/csi@7e801000,/fragment@1/__overlay__)
005421.495: dtdebug:   +prop(status)
005421.894: dtdebug:   +prop(brcm,media-controller)
005426.211: dtdebug: merge_fragment(/soc/csi@7e801000/port,/fragment@1/__overlay__/port)
005429.819: dtdebug: merge_fragment(/soc/csi@7e801000/port/endpoint,/fragment@1/__overlay__/port/endpoint)
005429.835: dtdebug:   +prop(remote-endpoint)
005430.502: dtdebug:   +prop(clock-lanes)
005431.172: dtdebug:   +prop(data-lanes)
005431.624: dtdebug:   +prop(clock-noncontinuous)
005432.300: dtdebug:   +prop(phandle)
005432.705: dtdebug: merge_fragment() end
005432.721: dtdebug: merge_fragment() end
005432.742: dtdebug: merge_fragment() end
005440.081: dtdebug: merge_fragment(/soc/i2c@7e205000,/fragment@2/__overlay__)
005440.099: dtdebug:   +prop(status)
005440.648: dtdebug: merge_fragment() end
005452.529: dtdebug: merge_fragment(/cam1_clk,/fragment@3/__overlay__)
005452.546: dtdebug:   +prop(clock-frequency)
005452.864: dtdebug:   +prop(status)
005453.143: dtdebug: merge_fragment() end
005463.323: dtdebug: merge_fragment(/soc/i2c0mux,/fragment@4/__overlay__)
005463.339: dtdebug:   +prop(status)
005463.721: dtdebug: merge_fragment() end
005472.167: brfs: File read: 3026 bytes
005473.758: brfs: File read: /mfs/sd/cmdline.txt
005473.796: Read command line from file 'cmdline.txt':
005473.809: 'console=serial0,115200 console=tty1 root=PARTUUID=28631b65-02 rootfstype=ext4 fsck.repair=yes rootwait'
005558.816: dtparam: cam0-pwdn-ctrl=11
005561.625: dtdebug: found override cam0-pwdn-ctrl
005561.642: dtparam: cam0-pwdn=5
005564.446: dtdebug: found override cam0-pwdn
005564.468: dtparam: arm_freq=1800000000
005567.329: dtdebug: found override arm_freq
005567.344: dtparam: core_freq=500000000
005570.251: dtdebug: /__overrides__ has no core_freq property
005570.261: Unknown dtparam 'core_freq' - ignored
005579.466: dtdebug: delete_node(/hat)
005585.505: brfs: File read: 103 bytes
006306.244: brfs: File read: /mfs/sd/kernel8.img
006306.263: Loaded 'kernel8.img' to 0x80000 size 0x7d6bd0
007477.123: Kernel relocated to 0x200000
007477.137: Device tree loaded to 0x2eff2a00 (size 0xd5ba)
007510.189: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined
009586.239: vchiq_core: vchiq_init_state: slot_zero = 0xcf000000, is_master = 1
commented

Sorry, support for Arducam PiVariety sensors has to come from them. https://www.arducam.com/contact-arducam/
We only have it merged in this tree to make life a little easier for their users, and we largely only ensure it builds. Anything beyond that falls back on Arducam.

6.1 isn't the latest kernel as with Bookworm we've switched to 6.6, and your firmware is over a year old. I wouldn't know if it is any better, but any kernel fixes won't be backported to 6.1 anyway. I'd suggest at least trying against Bookworm instead of your year old Bullseye install.