$ the-wire · showcase
Linux i2c fixes close DMA leaks, Omarchy swaps its screenshot and video stack
By RepoJournal · Filed · About Linux · Composed from the cited sources · methodology
The i2c subsystem's error paths got a coordinated cleanup for leaked DMA channels and device nodes, while Omarchy replaced two core components, Omasnap for screenshots and OWE for desktop video, and migrated existing installs.
Merge tag 'i2c-fixes-7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux torvalds/linux
Andi Shyti's fixes pull request is now merged, covering DMA resource management and device-node cleanup across at91, imx, qcom-cci, atr and qcom-geni. The bulk of it is error-path hygiene, so the practical impact is on machines that bind and unbind these controllers repeatedly.
i2c: at91: release DMA channels on remove and probe error torvalds/linux
at91_twi_configure_dma() requested exclusive tx/rx DMA channels that nothing ever released on detach, and the probe error path after acquisition returned without freeing them because remove is not called after a failed probe. The release now lives in a helper called from the configure-failure path, the adapter-registration failure path and remove.
i2c: imx: release DMA channels on probe error torvalds/linux
i2c_imx_dma_request() is optional, so errors other than -EPROBE_DEFER fall back to PIO and probe continues; if adapter registration then failed, the channels leaked because probe unwound through clk_notifier_unregister instead of the remove path. Probe now releases them, mirroring i2c_imx_remove().
i2c: qcom-geni: release DMA channels on probe error torvalds/linux
geni_i2c_init() grabs exclusive GPI tx/rx channels, and the adapter-registration failure path used to free them via its err_dma label. That release was dropped when the probe tail was restructured into geni_i2c_init(), so the leak returned on the error path only.
i2c: qcom-cci: fix device_node refcount leak in cci_probe()/cci_remove() torvalds/linux
In qcom-cci, the of_node_put() matching of_node_get() ran after i2c_del_adapter(), whose trailing memset() zeroes adap->dev.of_node and turned the put into a no-op, leaking the node on every adapter removal. It is now a devm action that captures the pointer at registration, replacing three manual puts.
Use Omasnap for screenshots basecamp/omarchy
Omasnap is now the implementation behind omarchy screenshot, with capture modes, the positional copy/save forms and the legacy OMARCHY_SCREENSHOT_DIR override preserved, and it replaces Tensaku in the base package set. Existing installs are migrated by adding Omasnap first and updating the old entry; imv and clipboard-history reopen paths follow the same switch.
Replace the shell's desktop video path with OWE basecamp/omarchy
Desktop video playback moves to OWE, with a single muted lock feed shared across lock-screen outputs while still backgrounds and cached posters stay visible if the feed stalls or drops. Fresh installs get owed.service enabled; existing users get owe and owe-lockfeed installed, the service enabled and a theme refresh hook.
Remove obsolete Elsewhen plugin symlink basecamp/omarchy
The Elsewhen plugin symlink is gone, and a follow-up fixes the Elsewhen migration for dev checkouts, closing out the transition.
Action items