add -w key to rmmod for prevent resource busy warning - #211
Merged
Merged
Conversation
Collaborator
|
Many thanks ! |
widgetii
added a commit
that referenced
this pull request
Aug 15, 2026
…, osal timer teardown) (#2267) Picks up three commits: 2d637e3 osal: wait for the timer callback before freeing the timer (#211) f69ecc9 kernel/hi3516cv200: recognize the gc2023_mipi sensor type (#207) 849f066 acodec: retune the ADC when a clock change invalidates it (#209) The acodec one fixes an audible tone on the analog mic of every V4 part after a cold boot -- 609 Hz at a 16 kHz sample rate, plus harmonics, up to 20 dB over the noise floor, lasting until something restarted the streamer. The codec's ADC tuning is only valid for the codec clock that was running when it was made, and enabling an audio input reprograms that clock, so the tuning it had a moment earlier is stale and nothing recalibrated. The driver now watches the hardware validity bit and retunes. Reported as OpenIPC/majestic#285, reproduced on gk7205v200 and hi3516ev200; gk7202v300, gk7205v300 and gk7605v100 share the same build target and are covered too. The osal one stops timer teardown freeing a timer whose callback may still be running, or which has re-armed itself -- del_timer() does not wait, and destroy kfree()s straight after. It reaches every module using osal timers: vi, vpss, chnl, pm, rtc, ir, vdec and dis across the V2, V3 and V4 families. Verified on a lab gk7205v200 built from this hash: 33 modules built, the full 36-module stack boots, 10 x load_goke -a teardown cycles, 8 x SIGHUP pipeline rebuilds, video throughout, no oops and no warnings. Cold-boot mic capture goes from 41 LSB rms with the comb to 5 LSB with no coherent tone. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
widgetii
added a commit
that referenced
this pull request
Sep 16, 2026
ipcinfo links libipchw, which knows every SoC vendor and every HiSilicon generation ipctool has ever learned: a detection table for eleven vendor HALs, and a chip-ID table, a sensor-bus back-end, a temperature formula and a die-ID reader for each of ten HiSilicon generations. A camera is one SoC. The rest is code that cannot execute on it, and it ships on all but three of this tree's board configs, onto boards whose rootfs cap leaves tens of KB spare -- gk7205v300_lite sits at 5080KB of 5120KB. Upstream takes both as build options defaulting to "all" (ipctool #178 and #211), and majestic already derives them the same way from its VENDOR and SDK code. This derives them from OPENIPC_SOC_VENDOR and OPENIPC_SOC_FAMILY. The family names are not a coincidence: ipctool's getchipfamily() returns the same strings, so `ipcinfo -f` on a board prints the key the table is indexed by. A vendor that is not HiSilicon reaches hal_hisi through nothing -- the only route is a HiSilicon UART0 base in chipid.c's dispatch -- so those boards drop hal_hisi.c and ispreg.c from the library altogether. Checked rather than assumed, on the two non-HiSilicon lab boards: ssc30kq has no uart line in /proc/iomem at all, and t31 reports 0x10031000, which is not one of the six bases that dispatch (and is one digit from xm510's 0x10030000 without being it). Two families are deliberately unmapped. The 3520DV200 ID sets no chip_generation, and no ID in ipctool's table matches a GK7101 or GK7102, so neither has a generation to name -- they keep every one rather than be trimmed on a guess. Unmapped means nothing is passed and upstream's default applies, so ambarella, anyka and ti keep every HAL too, and a new SoC is never silently trimmed to the wrong thing. Nothing derives IPCHW_SENSORS. A mainline image is per-family and gets flashed onto whatever camera someone bought; `ipcinfo --short-sensor` exists to name a sensor nobody catalogued, and it runs once, on an unprovisioned camera, with the answer written to U-Boot env. Compiling a probe family out turns that into "SENSOR is not detected, aborting". IPCHW_PADMUX is left alone too: --gc-sections already drops it from ipcinfo, and libipchw carries its selection as a PUBLIC compile definition, so setting it would break config_tool in sigmastar-osdrv-infinity6 on ssc325_lite and ssc325de_lite. CONF_OPTS only, never DEPENDENCIES: a _DEPENDENCIES line would add an edge to the graph ci-matrix.py walks and move its frozen board counts. Measured on gk7205v300_lite, same tree and commit, only this file differing: ipcinfo 34916 -> 22036 bytes -12880 (-37%) rootfs.squashfs 5080 -> 5076 KB -4KB, headroom 40KB -> 44KB Verified on a hi3516ev200 (V4, SC2315E, musl armv7), which takes the same options this file gives the Goke family: -c -f -v -s -l -F -i -S -x, every long form, the combined -ci that extutils uses, and -t all answer exactly as the stock 35124-byte binary does. ci-matrix --self-test passes and the frozen counts are unchanged; touching this package builds every board, which is the coverage this wants.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.