Skip to content

hisilicon-opensdk: bump ff20187b → 2d637e35 (V4 mic tone on cold boot, osal timer teardown) - #2267

Merged
widgetii merged 1 commit into
masterfrom
bump/opensdk-2d637e35
Aug 15, 2026
Merged

hisilicon-opensdk: bump ff20187b → 2d637e35 (V4 mic tone on cold boot, osal timer teardown)#2267
widgetii merged 1 commit into
masterfrom
bump/opensdk-2d637e35

Conversation

@widgetii

Copy link
Copy Markdown
Member

Bumps hisilicon-opensdk ff20187b2d637e35 so the V4 microphone fix reaches nightlies.

What it picks up

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)

acodec — the analog mic on every V4 part comes up with an audible tone after a cold boot: 609 Hz at a 16 kHz sample rate plus five harmonics, up to 20 dB over the noise floor, lasting until something restarts 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 that was correct a moment earlier is stale, and nothing recalibrated. The driver now watches the hardware validity bit and retunes. Reported as OpenIPC/majestic#285.

Affects gk7205v200, gk7205v300, gk7202v300, gk7605v100 and hi3516ev200/ev300 — reproduced on gk7205v200 and hi3516ev300, and the rest share the same build target.

osal — timer teardown could free a timer whose callback was still running, or which had re-armed itself: del_timer() does not wait, and destroy kfree()s straight after. Reaches every module using osal timers — vi, vpss, chnl, pm, rtc, ir, vdec, dis across V2, V3 and V4.

sensor — gc2023_mipi recognised on hi3516cv200, pairing with #2248 which just landed here.

Verification

Built gk7205v200_lite from this exact hash (tarball fetched from GitHub, no local override): 33 modules build clean, and both fixes are present in the resulting open_acodec.ko and open_osal.ko.

Flashed onto a lab gk7205v200:

  • full 36-module stack boots, video serving
  • 10 × load_goke -a teardown/reload cycles — 36 modules back every time
  • 8 × SIGHUP pipeline rebuilds
  • zero oops, zero warnings throughout
  • cold-boot mic capture: 41 LSB rms with the comb before, 5 LSB and no coherent tone after

Camera restored to stock afterwards and re-verified.

Upstream CI on openhisilicon was 35/35 green on 2d637e35, including Build SDK and QEMU boot for every supported chip.

…, osal timer teardown)

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>
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Bump hisilicon-opensdk to 2d637e35 (mic cold-boot fix, safer osal timers)

⚙️ Configuration changes ✨ Enhancement 🕐 Less than 10 minutes

Grey Divider

AI Description

• Bump hisilicon-opensdk source revision from ff20187b to 2d637e35.
• Pull in upstream fixes for V4 analog mic cold-boot tone and osal timer teardown safety.
• Enable gc2023_mipi sensor recognition on hi3516cv200 via the updated SDK snapshot.
Diagram

graph TD
  A["Build system"] --> B["hisilicon-opensdk.mk"] --> C["GitHub: openhisilicon"] --> D["SDK sources @ 2d637e35"] --> E["Built kernel modules"]
  subgraph Legend
    direction LR
    _cfg["Config/Pin"] ~~~ _ext{{"External repo"}} ~~~ _out["Build output"]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Pin to an upstream release tag (if available)
  • ➕ Improves traceability and human readability versus raw commit hashes
  • ➕ May align with upstream changelog/release notes
  • ➖ Not always available for SDK snapshots
  • ➖ May reduce ability to quickly pick specific fixes
2. Add/verify a fixed source integrity hash alongside the revision
  • ➕ Stronger supply-chain integrity; detects upstream retags/force-pushes
  • ➕ More reproducible builds across mirrors
  • ➖ Requires maintaining hash updates with each bump
  • ➖ Depends on existing build system support for hash pinning

Recommendation: The current approach (pinning a specific upstream commit) is appropriate for quickly delivering targeted upstream fixes into nightlies. If the build system supports it, consider adding a source hash to strengthen reproducibility/integrity; otherwise, keeping a precise commit pin is the right trade-off for SDK snapshot consumption.

Files changed (1) +1 / -1

Other (1) +1 / -1
hisilicon-opensdk.mkBump hisilicon-opensdk revision to 2d637e35 +1/-1

Bump hisilicon-opensdk revision to 2d637e35

• Updates 'HISILICON_OPENSDK_VERSION' from 'ff20187b' to '2d637e35', changing which upstream openhisilicon snapshot is fetched and built. This pulls in upstream fixes (acodec ADC retune on clock changes, osal timer teardown safety, and gc2023_mipi sensor recognition for hi3516cv200).

general/package/hisilicon-opensdk/hisilicon-opensdk.mk

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can turn on the rule miner and Qodo learns your standards from review history

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@widgetii
widgetii enabled auto-merge (squash) August 15, 2026 16:14
@widgetii
widgetii merged commit 3931712 into master Aug 15, 2026
107 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant