<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>RSS Feed</title><link>https://ixit.cz/blog/feed</link><description/><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><item><title>Linux kernel contributions 6.7 → 7.0-rc6</title><link>https://ixit.cz/blog/2026-04-03-kernel-7-0-contribution.md</link><guid>https://ixit.cz/blog/2026-04-03-kernel-7-0-contribution.md</guid><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><description><![CDATA[<style>
  :root {
  --color-background-primary:   #ffffff;
  --color-background-secondary: #f5f5f4;
  --color-text-primary:         #1a1a18;
  --color-text-secondary:       #5a5a56;
  --color-text-tertiary:        #8a8a84;
  --color-text-info:            #185fa5;
  --color-background-info:      #e6f1fb;
  --color-border-tertiary:      rgba(0,0,0,0.10);
  --color-border-secondary:     rgba(0,0,0,0.18);
  --border-radius-md:           8px;
  --border-radius-lg:           12px;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root {
    --color-background-primary:   #1c1c1a;
    --color-background-secondary: #252522;
    --color-text-primary:         #e8e6de;
    --color-text-secondary:       #a0a09a;
    --color-text-tertiary:        #6a6a64;
    --color-text-info:            #85b7eb;
    --color-background-info:      #0c2c4a;
    --color-border-tertiary:      rgba(255,255,255,0.10);
    --color-border-secondary:     rgba(255,255,255,0.18);
  }
}
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: var(--font-sans); }
  .header { padding: 1.5rem 0 1rem; border-bottom: 0.5px solid var(--color-border-tertiary); margin-bottom: 1.5rem; }
  .header h1 { font-size: 20px; font-weight: 500; color: var(--color-text-primary); margin-bottom: 4px; }
  .header p { font-size: 13px; color: var(--color-text-secondary); }
  .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 1.5rem; }
  .stat { background: var(--color-background-secondary); border-radius: var(--border-radius-md); padding: 12px 14px; }
  .stat .num { font-size: 24px; font-weight: 500; color: var(--color-text-primary); line-height: 1; margin-bottom: 4px; }
  .stat .lbl { font-size: 11px; color: var(--color-text-tertiary); text-transform: uppercase; letter-spacing: 0.04em; }
  .stat.accent .num { color: var(--color-text-info); }
  .section { margin-bottom: 1.5rem; }
  .section-title { font-size: 12px; font-weight: 500; color: var(--color-text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 10px; }
  .area-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .area-card { border: 0.5px solid var(--color-border-tertiary); border-radius: var(--border-radius-md); padding: 12px 14px; cursor: pointer; transition: background 0.15s; }
  .area-card:hover { background: var(--color-background-secondary); }
  .area-card .area-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
  .area-card .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
  .area-card .area-name { font-size: 14px; font-weight: 500; color: var(--color-text-primary); }
  .area-card .area-count { font-size: 11px; color: var(--color-text-tertiary); margin-left: auto; }
  .area-card .area-desc { font-size: 12px; color: var(--color-text-secondary); line-height: 1.5; }
  .tag-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
  .tag { font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 0.5px solid var(--color-border-secondary); color: var(--color-text-secondary); }
  .highlight-box { background: var(--color-background-info); border-radius: var(--border-radius-md); padding: 14px 16px; margin-bottom: 1.5rem; }
  .highlight-box p { font-size: 13px; color: var(--color-text-info); line-height: 1.6; }
  .highlight-box strong { font-weight: 500; }
  .detail-panel { display: none; background: var(--color-background-secondary); border-radius: var(--border-radius-md); padding: 14px 16px; margin-top: 10px; }
  .detail-panel.open { display: block; }
  .detail-panel ul { list-style: none; }
  .detail-panel ul li { font-size: 12px; color: var(--color-text-secondary); padding: 3px 0; border-bottom: 0.5px solid var(--color-border-tertiary); line-height: 1.5; }
  .detail-panel ul li:last-child { border-bottom: none; }
  .detail-panel ul li::before { content: "→ "; color: var(--color-text-tertiary); }
  .close-btn { font-size: 11px; color: var(--color-text-tertiary); cursor: pointer; float: right; margin-top: -2px; }
</style>
<p><br></p>
<h2>David Heidelberg</h2>
<p><br></p>
<div class="stats">
  <div class="stat accent">
    <div class="num">76</div>
    <div class="lbl">Commits authored</div>
  </div>
  <div class="stat">
    <div class="num">30</div>
    <div class="lbl">Signed off</div>
  </div>
  <div class="stat">
    <div class="num">27</div>
    <div class="lbl">Reviewed</div>
  </div>
  <div class="stat">
    <div class="num">12</div>
    <div class="lbl">Tested</div>
  </div>
  <div class="stat">
    <div class="num">7</div>
    <div class="lbl">Bugs reported</div>
  </div>
  <div class="stat accent">
    <div class="num">155</div>
    <div class="lbl">Total touches</div>
  </div>
</div>
<div class="highlight-box">
  <p>The bulk of the work centres on the <strong>Snapdragon 845 (SDM845)</strong> platform — bringing mainline Linux closer to fully supporting everyday phones like the OnePlus 6/6T, Xiaomi Mi MIX 2S, SHIFT6mq, and the Google Pixel 3 lineup.</p>
</div>
<div class="section">
  <div class="section-title">Areas of work — click any card for details</div>
  <div class="area-grid">

    <div class="area-card" onclick="toggle('sdm845')">
      <div class="area-head">
        <span class="dot" style="background:#534AB7"></span>
        <span class="area-name">SDM845 devices</span>
        <span class="area-count">~22 commits</span>
      </div>
      <div class="area-desc">Device-tree expansions for OnePlus 6/6T, Pixel 3/3XL, Xiaomi Mi MIX 2S, Pocophone F1, SHIFT6mq, and Samsung Galaxy S9.</div>
      <div class="tag-row">
        <span class="tag">OnePlus</span><span class="tag">Pixel 3</span><span class="tag">Xiaomi</span><span class="tag">SHIFT</span>
      </div>
    </div>
    <div id="sdm845" class="detail-panel">
      <span class="close-btn" onclick="toggle('sdm845')">close ✕</span>
      <ul>
        <li>Added full DTS support for Google Pixel 3 and Pixel 3 XL</li>
        <li>ath10k WiFi calibration data for OnePlus, beryllium, axolotl</li>
        <li>Framebuffer, panel pinctrl, TE GPIO, and regulator fixes for OnePlus</li>
        <li>Firmware path updates across SDM845 boards</li>
        <li>Guard pages for the rmtfs memory region</li>
        <li>SLPI sensor DSP enablement on Xiaomi Pocophone F1</li>
        <li>Notification LED for OnePlus 6 (enchilada)</li>
        <li>Use shared msm-id definitions across SDM845 DTS files</li>
      </ul>
    </div>

    <div class="area-card" onclick="toggle('display')">
      <div class="area-head">
        <span class="dot" style="background:#1D9E75"></span>
        <span class="area-name">Display panels</span>
        <span class="area-count">~18 commits</span>
      </div>
      <div class="area-desc">Major refactoring of the sofef00 and sw43408 panel drivers, plus a brand-new S6E3FC2X01 driver for the OnePlus 6T AMOLED.</div>
      <div class="tag-row">
        <span class="tag">sofef00</span><span class="tag">sw43408</span><span class="tag">S6E3FC2X01</span><span class="tag">drm/panel</span>
      </div>
    </div>
    <div id="display" class="detail-panel">
      <span class="close-btn" onclick="toggle('display')">close ✕</span>
      <ul>
        <li>New Samsung S6E3FC2X01 driver (AMS641RW — OnePlus 6T panel)</li>
        <li>sofef00: non-continuous mode, video burst, LPM always-on, regulator handling, 50% initial brightness</li>
        <li>sofef00: introduced panel-name-aware compatible string</li>
        <li>sofef00: split enable/disable command sequences for clarity</li>
        <li>sw43408: devm regulator bulk, removed manual unprepare, separated reset sequence</li>
        <li>sw43408: introduced LH546WF1-ED01 panel compatible</li>
        <li>DT bindings for SOFEF00 converted to standalone YAML</li>
      </ul>
    </div>

    <div class="area-card" onclick="toggle('iio')">
      <div class="area-head">
        <span class="dot" style="background:#BA7517"></span>
        <span class="area-name">IIO light sensors</span>
        <span class="area-count">~14 commits</span>
      </div>
      <div class="area-desc">Deep cleanup of the Dyna Image AL3010, AL3320a, and AL3000a ambient-light sensor drivers — regmap, error handling, code structure.</div>
      <div class="tag-row">
        <span class="tag">AL3010</span><span class="tag">AL3320a</span><span class="tag">AL3000a</span><span class="tag">regmap</span>
      </div>
    </div>
    <div id="iio" class="detail-panel">
      <span class="close-btn" onclick="toggle('iio')">close ✕</span>
      <ul>
        <li>Implemented regmap support in both AL3010 and AL3320a</li>
        <li>Fixed error handling paths in probe functions across all three</li>
        <li>Split set_pwr into set_pwr_on / set_pwr_off for clarity</li>
        <li>Removed DRV_NAME definitions (use module name instead)</li>
        <li>Switched to unsigned int for array indexing</li>
        <li>Improved error reporting with dev_err_probe()</li>
        <li>Abstracted device references in probe functions</li>
      </ul>
    </div>

    <div class="area-card" onclick="toggle('dt')">
      <div class="area-head">
        <span class="dot" style="background:#993556"></span>
        <span class="area-name">Device-tree bindings</span>
        <span class="area-count">~12 commits</span>
      </div>
      <div class="area-desc">Converting legacy .txt bindings to YAML schemas, adding new generic schemas, and cross-platform DTS fixes (Tegra, Freescale, Rockchip, Marvell).</div>
      <div class="tag-row">
        <span class="tag">YAML</span><span class="tag">dt-schema</span><span class="tag">wireless</span><span class="tag">hwmon</span>
      </div>
    </div>
    <div id="dt" class="detail-panel">
      <span class="close-btn" onclick="toggle('dt')">close ✕</span>
      <ul>
        <li>Added generic wireless-controller.yaml — used by qcom,wcnss, silabs,wfx, bcm4329-fmac</li>
        <li>Added network-class schema for mac-address properties</li>
        <li>Converted msm,iommu-v0 to YAML</li>
        <li>Converted ad5820 camera focus actuator to YAML</li>
        <li>Converted gpio-fan hwmon binding to YAML</li>
        <li>Documented Tegra Nyan boards, fixed Freescale TMU calibration schema</li>
        <li>GPIO-fan matrix fixes across Rockchip, i.MX8, and Marvell DTS</li>
        <li>Idle-state and OPP binding cleanup for ARM Qualcomm targets</li>
      </ul>
    </div>

    <div class="area-card" onclick="toggle('camera')">
      <div class="area-head">
        <span class="dot" style="background:#D85A30"></span>
        <span class="area-name">Camera subsystem</span>
        <span class="area-count">~6 commits</span>
      </div>
      <div class="area-desc">Qualcomm CAMSS improvements, C-PHY lane math fix in the CCS sensor driver, and better power-domain naming for SDM845.</div>
      <div class="tag-row">
        <span class="tag">CAMSS</span><span class="tag">CCS</span><span class="tag">C-PHY</span><span class="tag">media</span>
      </div>
    </div>
    <div id="camera" class="detail-panel">
      <span class="close-btn" onclick="toggle('camera')">close ✕</span>
      <ul>
        <li>CCS driver: fixed C-PHY lane count in clock frequency calculation</li>
        <li>CAMSS: added named power-domain support for SDM845</li>
        <li>CAMSS: documented the csiphy_lanes_cfg structure</li>
        <li>Corrected camss supply description in DT bindings</li>
        <li>PHY info can now be obtained from OF endpoint (documentation)</li>
      </ul>
    </div>

    <div class="area-card" onclick="toggle('older')">
      <div class="area-head">
        <span class="dot" style="background:#888780"></span>
        <span class="area-name">Older Qualcomm &amp; misc</span>
        <span class="area-count">~8 commits</span>
      </div>
      <div class="area-desc">LG Nexus 4 initial DTS, APQ8064 WiFi, MSM8960/MSM8916 fixes, Nokia N900 cleanup, x86 Kconfig documentation tidy-ups.</div>
      <div class="tag-row">
        <span class="tag">Nexus 4</span><span class="tag">MSM8960</span><span class="tag">x86</span><span class="tag">ALSA</span>
      </div>
    </div>
    <div id="older" class="detail-panel">
      <span class="close-btn" onclick="toggle('older')">close ✕</span>
      <ul>
        <li>Initial DTS for LG Nexus 4 (APQ8064 / msm8960-based)</li>
        <li>Enabled WiFi on APQ8064 LG Nexus 4</li>
        <li>MSM8960: corrected memory base, dropped duplicate timer clock frequency</li>
        <li>MSM8916: idle-state compatible fix</li>
        <li>Nokia N900: removed useless io-channel-cells property</li>
        <li>ALSA: stopped building obsolete API</li>
        <li>x86 Kconfig: documented CONFIG_PCI_MMCONFIG, CNB20LE quirk, SPARSEMEM, glibc date</li>
        <li>Reported and triggered reverts of USB gadget NCM regression series</li>
      </ul>
    </div>

  </div>
</div>
<script>
function toggle(id) {
  const panel = document.getElementById(id);
  const isOpen = panel.classList.contains('open');
  document.querySelectorAll('.detail-panel').forEach(p => p.classList.remove('open'));
  if (!isOpen) panel.classList.add('open');
}
</script>
<p><strong>155 total contributions</strong> across Linux 6.7 through 7.0-rc6, with 76 commits fully authored. The work breaks down into a few clear stories:</p>
<p><strong>The Snapdragon 845 marathon.</strong> The heaviest lifting is enabling mainline Linux on real consumer hardware. The Google Pixel 3 and Pixel 3 XL got full device-tree support from scratch. OnePlus 6/6T gained proper display pinctrl, panel regulators, a framebuffer, a notification LED, and WiFi calibration. Similar treatment went to the Xiaomi Mi MIX 2S, Pocophone F1, SHIFT6mq, and Samsung Galaxy S9.</p>
<p><strong>Display driver overhaul.</strong> Two panel drivers — sofef00 (OnePlus 6 display) and sw43408 — were significantly refactored: cleaner regulator handling, split command sequences, better compatible strings, and a proper reset function. On top of that, a brand-new S6E3FC2X01 driver landed for the OnePlus 6T's AMOLED panel.</p>
<p><strong>IIO light sensor cleanup.</strong> The Dyna Image AL3010, AL3320a, and AL3000a drivers got a thorough polish — regmap migration, better error handling with <code>dev_err_probe</code>, splitting the power toggle into on/off helpers, and removing leftover DRV_NAME definitions.</p>
<p><strong>Device-tree schema work.</strong> A generic wireless-controller.yaml was introduced and adopted by three wireless drivers. Several old .txt bindings (ad5820, gpio-fan, iommu-v0) were converted to proper YAML schemas, and cross-platform DTS bugs were fixed across Rockchip, i.MX8, Marvell, and Freescale targets.</p>
<p><strong>Bug hunting.</strong> Seven reported bugs, including triggering a revert series of USB gadget NCM regressions that had broken Ethernet-over-USB functionality.
<br></p>
<hr>
<p><br></p>
<h3>Authored (76):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1ef28ee5c51f21bc3ff493dfdc175827bbabf195">arm64: dts: qcom: oneplus-enchilada: Specify i2c4 clock frequency</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fab13d738c9bd645965464b881335f580d38a54e">clk: qcom: dispcc-sm7150: Fix dispcc_mdss_pclk1_clk_src</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3085977e734dab74adebb1dda195befce25addff">media: ccs: Accommodate C-PHY into the calculation</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=94d14ac1f2d385e57b651b3bef1026a7b8f9cf38">dt-bindings: media: Correct camss supply description</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9bf9c47cd8e54d0653147bc7a7e6c135607286be">arm64: dts: qcom: sdm845-oneplus-enchilada: Sort nodes alphabetically</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a678adbf2d22edcb9078f8ad56706891a0ac9e80">arm64: dts: qcom: Add support for Pixel 3 and Pixel 3 XL</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3845bc888660a238920fdba2f85fe284f01fb95f">dt-bindings: arm: qcom: Add Pixel 3 and 3 XL</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=86057e01967b8eeb8604904322003de044528e7a">arm64: dts: qcom: sdm845-xiaomi-polaris: Update firmware paths</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7e46a9c78880f4a7589bb31f8887ea3edb0596b4">arm64: dts: qcom: sdm845-samsung-starqltechn: Update firmware paths</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5eac5422c0c0a8a14800405b658e99beaacf90de">arm64: dts: qcom: sdm845-axolotl: Update firmware paths</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=29e87dc07d705bd92d57fff77703ca272779e6a0">arm64: dts: qcom: sdm845-oneplus: Update firmware paths</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8e6c237cd759b2297b38d978bd6e14bf0dc4a804">arm64: dts qcom: sdm845-oneplus-enchilada: Specify panel name within the compatible</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=29e208a08a8ebb0f214e815eee0a7beff778864f">drm/panel: sw43408: Improve wording when reset-gpios aren't available</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ed2b818a24760d7adc92d2e9b0e135f2c33edd8c">drm/panel: sw43408: Switch to devm_regulator_bulk_get_const</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=cbc1e99a9e0a6c8b22ddcbb40ca37457066f9493">drm/panel: sw43408: Remove manual invocation of unprepare at remove</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5f0cc92fa0dab7cbb999dedc653f5857a62b2022">drm/panel: sw43408: Separate reset sequence into own function</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=be85d4124dbe6ed597c7a6a16e53d8b98684fab6">drm/panel: sw43408: Introduce LH546WF1-ED01 panel compatible</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dbb5d6010c1ecf01560af405c5b503f4cf2b1149">dt-bindings: panel: sw43408: adjust to reflect the DDIC and panel used</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2c96689038aeea99c18a95b66dd5a171a07eaab2">dt-bindings: panel: s6e3fc2x01: Sort and remove unnecessary properties</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=385a53867b4af266fb800109d7e1e792cd6bf1aa">Input: stmfts - correct wording for the warning message</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=74ac7558ea7630113f0477cff1c718f5b1f54ec8">ALSA: Do not build obsolete API</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8bff3a2bf7c50bf45766edcd5440329d6b5cdf96">drm/panel: sofef00: Non-continuous mode and video burst are supported</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=73540e5e7c52264633c66aad681e53f7e2f54c57">drm/panel: sofef00: Mark the LPM mode always-on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=940c451981ebd0901f39675c9ff3b3e1c9760571">drm/panel: sofef00: Simplify get_modes</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6a353661e7058795a800de3535e4e1448d125676">drm/panel: sofef00: Introduce compatible which includes the panel name</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9f1ba273f55f93759cfd1098e0682b03eb115bb4">drm/panel: sofef00: Introduce page macro</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=18642542ac4916807fc0925cdcb9356f5802e2ae">drm/panel: sofef00: Split sending commands to the enable/disable functions</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dfc7e0859e05991b0920bd249434e44866a11bd1">drm/panel: sofef00: Handle all regulators</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=05aeb5bb4b699b51f88d9f5585005b6eb66a496b">drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1388c08c84a2b1f37abae656c1f88d18ecb1364e">dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=527bb3a747d289e52b717b8ce33f96b888f9a3cb">docs: dt-bindings: Extend the ordering list with a blank newline before status</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a3da84c36b1a6b80814b5a72ca1546648aba9e75">arm64: dts: qcom: sdm845-oneplus: Describe TE gpio</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8dda2fecf76b6c4db5f4c1b81a765b73a7a878ed">arm64: dts: qcom: sdm845-oneplus: Implement panel sleep pinctrl</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6c55c3c261ed7c17fa7823daf4d8f716504ad46e">arm64: dts: qcom: sdm845-oneplus: Group panel pinctrl</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=88148c30ef26593e239ee65284126541b11e0726">drm/panel: Add Samsung S6E3FC2X01 DDIC with AMS641RW panel</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=986f28f3a71e44ebd984ee45c4f75c09109ae7ee">dt-bindings: panel: Add Samsung S6E3FC2X01 DDIC with panel</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ab9a2c821ad229c4e8dd48b0126e40cc85a8cd51">arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=94d885eb8ffe15b3eb4abe92e03d852fce8ba81f">dt-bindings: extcon: linux,extcon-usb-gpio: GPIO must be provided</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f72f3aac4a9a990701455a4759a49393cd5802d6">arm64: dts: qcom: sdm845-oneplus: Deduplicate shared entries</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=285fee8c65efd7969f9376ed9798afece9a0ccc9">arm64: dts: qcom: sdm845*: Use definition for msm-id</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5e1be5d4617f68030eeab0532cf134948e19f5a2">ARM: dts: qcom: apq8064-lg-nexus4-mako: Enable WiFi</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=25259379bc796bf718eae395ffe05e76d42cbe5b">media: dt-bindings: Convert Analog Devices ad5820 to DT schema</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=59b24c0047a2e662325fdffeea4d9c9db2d31916">media: dt-bindings: media: i2c: align filenames format with standard</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=98fd01b4173de0fb1ab2702aca28f7434d2fd234">dt-bindings: wireless: qcom,wcnss: Use wireless-controller.yaml</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c7e35b3b007f168186504c95ee64d23ece71629d">dt-bindings: net: Add generic wireless controller</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1850e6ae7f91135d9224f58d5944ba2fd29261fc">iio: light: al3320a: Implement regmap support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0e5e21e23dd6ca4aaf96c99726230110b1a0b448">iio: light: al3010: Implement regmap support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b8154f3477c46453c8be3257d194cf5fdf5b5a23">iio: light: al3320a: Fix an error handling path in al3320a_probe()</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c0461f8e842495041c18b2c67647501d55c17441">iio: light: al3000a: Fix an error handling path in al3000a_probe()</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=42b1a2663f4b7630f3a2793969f9c8f2ff451db4">iio: light: al3010: Improve al3010_init error handling with dev_err_probe()</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=868fb0708087a9583cbf33ebc15eb6d2898b8787">iio: light: al3320a: Split set_pwr function into set_pwr_on and _off</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2eaf77b4645ef43f8ad04bfefb9275c45eabada4">iio: light: al3010: Split set_pwr function into set_pwr_on and _off</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=26763a34812b38cdffbd8567f90c8b8c673fadda">iio: light: al3320a: Abstract device reference in the probe function</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=861cc66854d611627649b2522c49914e09ddc026">iio: light: al3010: Abstract device reference in the probe function</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dd3f76931e718663a8312ce65433c81c171808fb">iio: light: al3320a: Remove DRV_NAME definition</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=58c8c655f4ca24b06a75eed28ade1729f1b5002c">iio: light: al3010: Remove DRV_NAME definition</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=cddd6a959c1e4833402650a098c5de8c876936b3">iio: light: al3320a: Use unsigned int for the indexing</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a29542e614014a081c507539ff1bb7d21cb046fc">iio: light: al3010: Use unsigned int for the indexing</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=614665105d12f5a669be018ed8a2d2f3db4006b2">ARM: dts: nokia n900: remove useless io-channel-cells property</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2ac0bd27133114ae00420da10aed2af739bdacb2">media: Documentation: PHY information can be obtained from OF endpoint too</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c20ebc7fbd2ac3af28e8c712cdaf5b20b524bfba">dt-bindings: arm: tegra: Document Nyan, all revisions in kernel tree</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f2087995fb7165a88b50dde02f3909e448522e0a">mailmap: update entry for David Heidelberg</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b577060ac7ba6085d54f2066d185de4a318c913c">dt-bindings: iommu: Convert msm,iommu-v0 to yaml</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c1842643a3df6004d1bc9df74e34d8b72997d886">ARM: dts: qcom: msm8960: correct memory base</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8f2cc88cd4a35e33931ca1375ea508c8c9267b57">ARM: dts: qcom: msm8916: idle-state compatible require the generic idle-state</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e48919dc1ed568f895eca090dc6c5dc56b12480c">ARM: dts: qcom: include cpu in idle-state node names</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=13c8cf339e1a7a3d3e48fdebbb882b3a5a90f708">dt-bindings: opp: drop maxItems from inner items</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=afe9867a0c0e10ba618c15d4ef6f8699872f6cc3">arm64: dts: qcom: sdm845-oneplus-common: improve DAI node naming</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=be8db0cd5e4c869db73dbfec4c5af5db248fe585">ARM: dts: qcom: msm8960: drop 2nd clock frequency from timer</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff5912b96f039cc3609eb1d8edc20dfccbfb3a25">dt-bindings: arm: merge qcom,idle-state with idle-state</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4ec21eeac4772e2d931103599569ff010c5b405e">dt-bindings: hwmon: gpio-fan: Convert txt bindings to yaml</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9ec1d7486e2520b4898d7f8e1ec3acc7c13c8dc8">powerpc/fsl: Fix fsl,tmu-calibration to match the schema</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f43c3a62e7d57e5da8d5f0c50d7254808af15920">arm64: dts: freescale: fix the schema check errors for fsl,tmu-calibration</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=62f34e3ec2befcbe5d8a5003f21d53dab80bb03c">ARM: dts: marvell: make dts use gpio-fan matrix instead of array</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c87847cfc1f4e09a1ad9a5dd04b862da81c8102e">arm64: dts: rockchip: make dts use gpio-fan matrix instead of array</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c0ac4eb8b8e9d351d3e546ed0b120926ceebdc30">arm64: dts: imx8mq-phanbell: make dts use gpio-fan matrix instead of array</a></li>
</ul>
<h3>Signed-off-by (30):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ad33ee060be46794a03d033894c9db3a9d6c1a0f">arm64: dts: qcom: sdm845-oneplus: Mark l14a regulator as boot-on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=45d1f42d3e84b5880cf9fab1eb24a7818320eeb7">arm64: dts: qcom: sdm845-oneplus: Don't keep panel regulator always on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c9b98b9dad9749bf2eb7336a6fca31a6af1039d7">arm64: dts: qcom: sdm845-oneplus: Don't mark ts supply boot-on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a7dac907be27bd0b86a6f2df3f5feedcb538263">arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable SLPI</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b0d5c96e860c28159541e7bb8ed277b0fee13a0c">arm64: dts: qcom: sdm845-oneplus: Add framebuffer</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=31deed7b05079b2eb24589d37778466a2a55f4f2">arm64: dts: qcom: sdm845-shift-axolotl: Add ath10k calibration variant</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ea6926f61a857531d02a72bb5b040e23573fb393">arm64: dts: qcom: sdm845-xiaomi-beryllium: Add ath10k calibration variant</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=252f98ecb3c71acd818592443496252ecd5ccd6f">arm64: dts: qcom: sdm845-oneplus: add ath10k calibration variant</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=733a8924229ff8c0385121a30fcd00bf70644743">Input: add ABS_SND_PROFILE</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=995186145d682077470e1d4e657548d872602e6a">Input: stmfts - use sysfs_emit() instead of sprintf()</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f5c3c77b8661bf6b17fa2246e14cdf13ca94e840">Input: stmfts - make comments correct</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=20c734cb678332883d317b17bf8fe7361648e170">ASoC: qcom: sdm845: set quaternary MI2S codec DAI to I2S format</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e2e94464cf44f91c92eb631d609f812c7aef8840">drm/panel: sofef00: Initialise at 50% brightness</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1e534a56578bbea59165c3507d2b967f29771792">drm/panel: sofef00: Add prepare_prev_first flag to drm_panel</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=69b8bbde238a1503ac45998a911ea56ddb7610cf">arm64: dts: qcom: sdm845-oneplus: Update compatbible and add DDIC supplies</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d7ec7d34237498fab7a6afed8da4b7139b0e387c">arm64: dts: qcom: sdm845-oneplus: Correct gpio used for slider</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8b9b2af6de97e2d2cfcfb5d92178c198f01e1559">arm64: dts: qcom: sdm845-enchilada: Add notification LED</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c301db25dd69d656b13f3ad2844e6349ac932c7e">dt-bindings: wireless: silabs,wfx: Use wireless-controller.yaml</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3c3606793f7ed926c32555485ae7f7e7c03ef58a">dt-bindings: wireless: bcm4329-fmac: Use wireless-controller.yaml schema</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dede36400714b34bdaf79be2c84f540f07102554">dt-bindings: net: Add network-class schema for mac-address properties</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e1eb7293ab4107e9e19fa609835e657fe30dfec7">drm/panel: samsung-sofef00: Drop s6e3fc2x01 support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=de7115636c41fd0c654f5865d513df52a0798f5c">x86/Kconfig: Document release year of glibc 2.3.3</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d9f87802676bb23b9425aea8ad95c76ad9b50c6e">x86/Kconfig: Make CONFIG_PCI_CNB20LE_QUIRK depend on X86_32</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=21d8fb8d4e7071b2e60bc48c217ff1b4ce8cb855">x86/Kconfig: Document CONFIG_PCI_MMCONFIG</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4047e8773fb627df3779291d9138e425537573af">x86/Kconfig: Update lists in X86_EXTENDED_PLATFORM</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e35e328d37ee20df9a4dc9c4b0478f9e6b2c8c3e">x86/Kconfig: Move all X86_EXTENDED_PLATFORM options together</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=31be5041dca37a67c11042678c55804e964e5145">x86/Kconfig: Always enable ARCH_SPARSEMEM_ENABLE</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f5b7564fedcfd32df68d56781b9d7698343f8fbf">ARM: dts: qcom: Initial dts for LG Nexus 4</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=acd83e8e684f9af5578c97066395ded8fb9b91fa">media: qcom: camss: Add sm845 named power-domain support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b3347d7d618dbe94c73b4091781cb99023f295b6">media: qcom: camss: document csiphy_lanes_cfg structure</a></li>

</ul>
<h3>Co-developed-by (3):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b0d5c96e860c28159541e7bb8ed277b0fee13a0c">arm64: dts: qcom: sdm845-oneplus: Add framebuffer</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=69b8bbde238a1503ac45998a911ea56ddb7610cf">arm64: dts: qcom: sdm845-oneplus: Update compatbible and add DDIC supplies</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f5b7564fedcfd32df68d56781b9d7698343f8fbf">ARM: dts: qcom: Initial dts for LG Nexus 4</a></li>
</ul>
<h3>Reviewed-by (27):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a1d63493634e98360140027fef49d82b1ff0a267">clk: qcom: dispcc-sdm845: Enable parents for pixel clocks</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bc6af7695a511b93f43e5ab4f872bcbccb580380">media: ccs: Clean up ccs_get_hwcfg() a little</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5bde31dc7b17b668a02857c30359ac86c23c9e55">arm64: dts: qcom: sdm845-xiaomi-beryllium: Add placeholders and sort</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e5e22c8ea49e62c390e3843a632727569f6470a2">ARM: dts: qcom: msm8974-hammerhead: Update model property</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2bfca4fe1f36eb6618e5712a8b5b41433bb6f10b">drm/panel: visionox-rm69299: Depend on BACKLIGHT_CLASS_DEVICE</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc6a6da64fd847c3122848c5a0850daaeb0874e5">leds: rgb: leds-qcom-lpg: Allow LED_COLOR_ID_MULTI</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=578ccfe344c5f421c2c6343b872995b397ffd3ff">ASoC: codecs: wcd937x: Fix error handling in wcd937x codec driver</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f5e297a112fa0dd31e09246709c859bb38dfba0b">crypto: qce - Provide dev_err_probe() status on DMA failure</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2377626fd216ebdf17294ac0cabc27614fff07d1">arm64: dts: qcom: add gpu_zap_shader label</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d994ae0427a83087bedcfbb8afabe620529ef594">arm64: dts: qcom: sc7180: add gpu_zap_shader label</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=00d3f7b0536dec3b5660e25d0767f61ee38941a7">arm64: dts: qcom: sm8250: drop duplicate memory-region defs</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6e9612ced0c90fc19d9b27508f84ebcf5718b8a2">arm64: dts: qcom: sc8280xp: create common zap-shader node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e3f81bdd46dc4120e9ee373aa8794b84c7dfd2f1">arm64: dts: qcom: sc8180x: create common zap-shader node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8464b804bd35cf4068e3a7cd19163c0f8a063852">arm64: dts: qcom: sdm845: create common zap-shader node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f85592223d5bf983b6c495f33cfa0344a9930d5b">arm64: dts: qcom: sdm670: create common zap-shader node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=577242cdcbc5e525530ecb486df8a10b2af89597">dt-bindings: media: Convert ti,tvp5150.txt to yaml format.</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0a84f5105b405d8506707d244f225b040dfb04f4">dt-bindings: iio: light: Simplify interrupts property in the example</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=07306551cb76d61b02391d26a2e85c7711e92e1c">dt-bindings: iio: Drop unused header includes in examples</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fdb4e289d2d6fd172591d802db71cef3134c1cf8">drm: panel: Add support for Hydis HV101HD1 MIPI DSI panel</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=128c0704821e7101257951c1d32459e2fc3e591b">dt-bindings: power: supply: summit,smb347: Add missing power-supply ref</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d380dcad084b60d2f929c8ab8f74e3e7bf6bad1d">MAINTAINERS: adjust file entry in OMNIVISION OV7670 SENSOR DRIVER</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d531b9f78949533691bf72d95e3af14b657047d9">iio: light: Add support for AL3000a illuminance sensor</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5f763d31a53643659499b5eba8e882900a0717b8">dt-bindings: iio: light: al3010: add al3000a support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=42aa8daecd80d18bc12c43d7be6fd82c6fd526a1">arm64: dts: mediatek: Add missing chassis-type to MT8192 Chromebooks</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3d6ab124a4d5dece5778ac6b7ebea6b6754e7e28">drm/msm/adreno: Add A305B support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0be7a75b66dfddd2e8d8bb528cb8d37f627c5bfc">dt-bindings: display/msm: gpu: Allow multiple digits for patchid</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=77a6557d2a58ad9abea0537509d6dfc946cddfd3">arm64: defconfig: Enable PSTORE_RAM</a></li>
</ul>
<h3>Tested-by (12):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=39a750ff5fc9cab1085dc2d4b6a3f34fe1ad23c3">drm/msm/dpu: Add DSPP GC driver to provide GAMMA_LUT DRM property</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0145e7acd29855dfba4a2f387d455b5d9a520f0e">usb: gadget: f_fs: fix DMA-BUF OUT queues</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4d1e8c8f11c611db5828e4bae7292bc295eea8ef">platform/x86: int3472: Debug log when remapping pins</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c5d0393272048748ace2dd4ff8326fc0bf70b262">platform/x86: int3472: Add handshake pin support</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4455dcf578ae83a3c7f751c2c9758efe5ba08a38">platform/x86: int3472: Prepare for registering more than 1 GPIO regulator</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ccda394e1ef17c3de33e31e7a4d2e647be6a362d">platform/x86: int3472: Avoid GPIO regulator spikes</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=033234bdc6cfb88a797a16aa3a9df815bbe01a28">platform/x86: int3472: Make regulator supply name configurable</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=38ff83a374cdaf146ee6f6d1007419f7fad70e8f">platform/x86: int3472: Rework AVDD second sensor quirk handling</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b6d3d739b72ae1913d18d62126aee6039e2a42b1">platform/x86: int3472: Drop unused gpio field from struct int3472_gpio_regulator</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ea890cdd41fe34836475eec801a1735c6f9ebcd0">platform/x86: int3472: Stop setting a supply-name for GPIO regulators</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1d78798b4e6f48c1d7e506f695bb613b0e9c37e6">platform/x86: int3472: Add skl_int3472_register_clock() helper</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e521f516716de7895acd1b5b7fac788214a390b9">dmaengine: Revert "dmaengine: qcom: bam_dma: Avoid writing unavailable register"</a></li>
</ul>
<h3>Reported-by (7):</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7587fbf5adc23d180a5ea9aa6944292c22328703">media: ccs: Avoid deadlock in ccs_init_state()</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3131c1aff7cdffb96239f06f98e16188cbc2083f">Revert "usb: gadget: u_ether: add gether_opts for config caching"</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3549d0ae5f7e647ffd09d69f927a18ae7a520f6f">Revert "usb: gadget: u_ether: use <linux/hex.h> header file"</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=46662d3a1ad40282ba9f753cccc6f909ec4468cc">Revert "usb: gadget: u_ether: Add auto-cleanup helper for freeing net_device"</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=37893bc5de2460c543ec1aa8250c37a305234054">Revert "usb: gadget: f_ncm: align net_device lifecycle with bind/unbind"</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f2524c0e6ff0a5f72f1e1a32441c69d3b56430c4">Revert "usb: legacy: ncm: Fix NPE in gncm_bind"</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=11199720fac2debbe718aec11e026ab3330dc80d">Revert "usb: gadget: f_ncm: Fix atomic context locking issue"</a></li>
</ul>]]></description></item><item><title>Why I Will No Longer Contribute to postmarketOS</title><link>https://ixit.cz/blog/2026-01-16-postmarketOS-BAN-2</link><guid>https://ixit.cz/blog/2026-01-16-postmarketOS-BAN-2</guid><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><description><![CDATA[<p>If there were dozens or hundreds of Mobile Linux projects, this situation would matter less. In reality, there are only a few active and relevant ones: postmarketOS, Mobian, NixOS Mobile, Phosh, etc.</p>
<p>After receiving a carefully worded email from the postmarketOS core team, I came away with a strong impression that the project has chosen to use its Code of Conduct (CoC) processes in a way that advances internal agendas rather than fostering constructive cooperation and healthy project relationships.</p>
<p>This is disappointing.</p>
<p>Prior to that email, I participated in a two-and-a-half-hour call with members of the CoC team (three out of four members were present, including one who had previously shared a private conversation referenced in an earlier blog post). Based on that discussion, I reached the following conclusions about the current situation within postmarketOS:</p>
<ul>
<li>
<p>Personal agendas appear to be prioritized over maintaining good internal relationships.</p>
</li>
<li>
<p>The Code of Conduct is being used, at least in part, as a mechanism for managing power dynamics and personal insecurities rather than as a neutral governance tool.</p>
</li>
<li>
<p>There is a lack of transparency. One CoC member acknowledged that information they had provided about the CoC process was misinterpreted. While I cannot determine intent, no effort has been made to clarify or correct that information to this day.</p>
</li>
</ul>
<p>From my perspective, this is a bloody mess.</p>
<p>As a result, I have decided to step away from the postmarketOS project and request that I no longer be associated with it in any capacity.</p>
<p>Fortunately, there are many other projects with leadership structures I consider fair and constructive. I will continue contributing my efforts there, with the goal of advancing Mobile Linux as a first-class platform.</p>
<p>Ref: <a href="https://ixit.cz/blog/2025-11-20-postmarketOS-BAN">Original post</a></p>]]></description></item><item><title>Ohlédnutí za letošním OpenAltem 2025</title><link>https://ixit.cz/blog/2025-12-22-OpenAlt</link><guid>https://ixit.cz/blog/2025-12-22-OpenAlt</guid><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><description><![CDATA[<p>Na letošní brněnské konferenci OpenAlt konající se o víkendu 1. a 2. 11. 2025 na akademické půdě VUT fakultě informačních technologií sešlo několik stovek zájemců a desítky přednášejících.</p>
<p>Při příchodu na konferenci vás osloví už samotné místo kartuziánského kláštera které je velmi šetrně zrekonstruováno se zachováním historického ducha budovy a zároveň učebny a posluchárny protkány moderními technologiemi.</p>
<p><img src="/media/OpenAlt25-cover.webp" alt="Cover" />
<small>Foto: Barbora Viski</small></p>
<p>Konference samotná je zaměřena na propojování lidí, komunit, ale i velkých celků se společným zájmem o open-source a otevřený hardware. Zhruba v 5 přednáškových sálech a 2 menších podpůrných místnostech studentského klubu Kacnička se střídaly přednášky klasického formátu s workshopy a krátkými přednáškami. Jeden z tématických tracků byl věnován problematice mobilního Linuxu.</p>
<p>Na pódiu se střídala jména jako Alfred Neumayer (Ubuntu Touch), David Heidelberg (obecný vývoj mobilního Linuxu) nebo Ondřej Kolín (Boiling the Ocean). Foajé budovy bylo zaplněno stánky různých uskupení – od hackerspace, retroherny a laserové střelnice až po prezentace distribucí SuSE a Red Hat. Nechyběl ani stánek OpenSSL a v neposlední řadě byl výrazně zastoupen mobilní Linux, a to hned dvěma stánky: Ubuntu Touch a stánek Mobilního Linuxu s vystavenými telefony běžícími na Mobianu, Droidianu a postmarketOS (organizovaný Davidem Heidelbergem, Petrem Hoškem a Stanislavem Radouchem).</p>
<p>Stánek mobilního Linuxu byl po celou dobu obklopen zájemci o problematiku svobodného telefonu, který – v duchu celé konference – představuje jediný skutečně „vlastněný“ telefon na rozdíl od proprietárních systémů. Se zájemci zde diskutovali a pomáhali mladí nadšenci nejen z České, ale i ze Slovenské republiky.</p>
<p><img src="/media/OpenAlt25-stanek.jpg" alt="Stánek" />
<small>Foto: Barbora Viski</small></p>
<p>Ve chvílích, kdy tým potřeboval pauzu nebo měl David přednášku, jej na stánku zastoupil Ondřej Kolín z berlínské komunity Boiling the Ocean, případně další legenda mobilního Linuxu Jozef Mlich (NemoMobile) z brněnského spolku OpenAlt.</p>
<p>Návštěvníci si mohli vyzkoušet jeden z mnoha telefonů, například OnePlus 6/6T, Fairphone 4/5, Pixel 3a, Pine64 PinePhone nebo i stařičkou legendární Nokii N900. Telefony měly předinstalované systémy Droidian, postmarketOS a Mobian s prostředími jako Phosh/GNOME, Plasma Mobile a dalšími. Na PinePhonu bylo k dispozici také NemoMobile, nainstalované a připravené Jozefem Mlichem.</p>
<p>Velký ohlas zaznamenala rovněž sbírka starších, nepoužívaných či poškozených telefonů. Na stánku se tak sešlo hned několik zařízení, která přinesli sami návštěvníci konference. Tyto telefony budou následně využity pro hardwarovou testovací a debugovací farmu, případně pro další testování a vývoj.</p>
<p><img src="/media/OpenAlt25-aktivni-Ondra.webp" alt="Ondra vysvětluje" />
<small>Foto: Barbora Viski</small></p>
<p>Pokud jste zmeškali tento ročník akce OpenAlt, určitě to v příštích ročnících napravte, stojí to za to.</p>
<p>Budeme se na Váš těšit příští rok!</p>]]></description></item><item><title>A month of upstreaming phones based on Snapdragon 845</title><link>https://ixit.cz/blog/2025-12-21-upstreaming-0</link><guid>https://ixit.cz/blog/2025-12-21-upstreaming-0</guid><pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate><description><![CDATA[<h3>Intro</h3>
<p>The sdm845-mainline tree and its contributors have done a tremendous amount of work to bring up devices and keep them working for distributions. But accumulating more and more patches over time slows down the process and puts additional burden on the maintainers. This can lead to patches on top of patches that are in a non mainlineable shape making upstreaming to Linus tree even harder.</p>
<p>I <strong>understand</strong>,</p>
<ul>
<li>that getting devices work is important (even in questionable quality), <strong>but</strong> there also needs to be effort to guide people to contribute to mainline</li>
<li>that rebases are sometimes pain and very hard to do, when debugging multiple devices issues at the time, <strong>but</strong> I would definitely love to see higher quality rebase and maintainance of the tree, where I believe maintainers have the experience to get there, but that get us to the third point...</li>
<li>maintainers may not have that much free time to focus on sdm845-mainline. As far I know, it's volunteer work, so no-one (!) should demand time of the people volunteering, <strong>but</strong> then, at least for projects with huge impact on the community, it's the duty of maintainers to find someone who will.</li>
</ul>
<p>More than a month ago I decided to proactively push towards the future I was hoping will happen few years ago.</p>
<p>The power of open-source I believe is in <strong>forking</strong>. When you see something doesn't work for you or the community, you're free to fork.
<strong>It's also double-edged sword</strong>. Multiple forks may hurt the community.
Luckily here, we have <strong>one mainline</strong> kernel, where interests of everyone meets!</p>
<hr />
<h4>Week 0 (14. ‒ 20. 11.)</h4>
<p>Needed to setup the basics, communication channels, invite people interested in progress, and get the repository running.</p>
<p>Code won't compile, many bugs. We need to sort out patches. Moved multiple commits supporting devices I don't posses into MR aside, to get basics working first.</p>
<p>The toughest week. <strong>Nothing works.</strong> There will be dragons.</p>
<p>Many patches needs big re-bases and rework, everything conflict with anything. This needs to be addressed.</p>
<h5>David Heidelberg</h5>
<ul>
<li>Created Matrix room <a href="https://matrix.to/#/#sdm845:ixit.cz">#sdm845:ixit.cz</a> setup, invites.</li>
<li>Started using b4 commits as a separators for patchsets in sdm845-next. 
<ul>
<li>This provides amazing ability to change <code>b4/</code> branches and then just cherry-pick commits into the integration branch <code>sdm845-next</code></li>
</ul></li>
<li>Resolved merge conflicts for most of the patches from sdm845-mainline so it applies on <code>-next</code> tree.</li>
<li>Nothing boots, luckily I have borrowed Google Pixel serial dongle, so found out there has to be compiled in Qualcomm RefGen driver.</li>
<li>Reviewed NekoCWD focus coil patches.</li>
<li>Wrote small tool to visualize the b4 commits inside the git oneline log.</li>
<li>Did multiple small cleanups of the patches in the tree to eliminate warnings.</li>
<li>Fixed TAS2557 and TAS2559 drivers and re-added.</li>
<li>Authored:
<ul>
<li><a href="https://lore.kernel.org/r/20251118-only-one-vmalloc-v1-1-29f8eacb4605@ixit.cz">mm/vmalloc: warn only once when vmalloc detect invalid gfp flags</a></li>
<li><a href="https://lore.kernel.org/r/20251119-sofef00-rebuild-v3-0-6cd55471e84e@ixit.cz">[v3 00/12] Make Samsung SOFEF00 DDIC and panel work</a></li>
<li><a href="https://lore.kernel.org/r/20251118-pixel-3-v3-0-317a2b400d8a@ixit.cz">[v3 0/8] Add support for Pixel 3 and Pixel 3 XL</a></li>
</ul></li>
<li>Started discussion on framebuffer commonize from sdm845-mainline: 
<ul>
<li><a href="https://lore.kernel.org/all/20251117-commonize-framebuffer-v1-1-e4c099b383c9@ixit.cz/">[RFC] arm64: dts: qcom: sdm845: add framebuffer reserved memory</a></li>
</ul></li>
<li>Cleaned up and sent number of changes to the upstream: 
<ul>
<li><a href="https://lore.kernel.org/r/20251114-sdm845-quaternary-v2-1-9d803bf5f7c9@ixit.cz">[v2] ASoC: qcom: sdm845: set quaternary MI2S codec DAI to I2S format</a></li>
<li><a href="https://lore.kernel.org/r/20251118-dts-oneplus-regulators-v1-0-79fb2f0f253b@ixit.cz">[00/03] Regulator adjustments for OnePlus 6 and 6T</a></li>
</ul></li>
</ul>
<h5>Vasiliy &quot;NekoCWD&quot; Doylov</h5>
<ul>
<li>Discussed focus for the main camera.</li>
<li>Shared focus coil (lc898217xc) patches and send to mailing list!</li>
</ul>
<h5>agx</h5>
<ul>
<li>Did lot of build-testing :)</li>
<li>Hit another compilation issue from the imported sdm845-mainline patches, where things didn't worked with gcc, but only clang.</li>
</ul>
<h5>Petr Hodina</h5>
<ul>
<li>Did initial testing and found we still don't have display working on OP6/6T.</li>
<li>Insight into Pixel 3 Citadel/Titan/SPI stuff.</li>
</ul>
<h5>Sam</h5>
<ul>
<li>Proposed more transparency, room is visible outside.</li>
<li>Contributed to the CI discussion and focusing of the sdm845-next project.</li>
</ul>
<hr />
<h4>Week 1 (21. ‒ 27. 11.)</h4>
<p>Something working, we're not there yet.</p>
<p>We have stability issues such as</p>
<pre><code>disp_cc_mdss_pclk0_clk_src: rcg didn't update its configuration.</code></pre>
<p>and consequent crashes (Pixel 3) or Qualcomm Crashdumps (OnePlus 6/6T).</p>
<p>Haptics is broken as the upstream sent patches doesn't work.</p>
<p>No cameras currently working.</p>
<h5>David Heidelberg</h5>
<ul>
<li>Started writing a changelog for the PMI8998 Fuel Gauge patchset, which had many different revisions and changes on top of.
<ul>
<li>Thanks to clean-up done by Barnabás Czémán (barni2000), the chances to get mainlined rised a lot. Thank you Barni!</li>
</ul></li>
<li>Asked Stephan Gerhold about the <code>qdsp6</code> patchset series. 
<ul>
<li>I got feedback that these patches needs full rewrite and more work</li>
<li>2 ‒ 3 months of paid work likely, discussion being done regarding to financing (outside of current scope <code>sdm845-next</code>)</li>
</ul></li>
<li>More cleanups and polishing. (I can write this forever...ever...ever).</li>
<li>Ongoing discussion on handling firmware bug on Xiaomi Poco F1, 
<ul>
<li>ath10k: Introduce a devicetree quirk to skip host cap QMI requests </li>
<li>started from device-tree quirk, but maintainers wants to have firmware quirk. Make sense.</li>
<li>ath10k: Introduce a firmware quirk to skip host cap QMI requests </li>
<li>Driver needs to know firmware quirk before firmware is loaded. OOOPS.</li>
<li>We need to figure out what's next. Paul Sajna (sajattack) has same problem on LG G7 and V35, we need to find the right solution.</li>
</ul></li>
<li>Discussion started on mailing lists: 
<ul>
<li><a href="https://lore.kernel.org/r/20251126-sdm845-config-question-v1-1-ffa91ed53095@ixit.cz">[QUESTION] arm64: configs: Add Snapdragon 845 config fragment</a></li>
<li>hopefully this may lead to having fragments bundled with kernel, which should make building Linux kernel more error-prone.</li>
</ul></li>
<li>Patches polished and sent: 
<ul>
<li><a href="https://lore.kernel.org/r/20251124-pmi8998_fuel_gauge-v1-0-dd3791f61478@ixit.cz">[RFC 0/8] Qualcomm 3rd gen fuel gauge support</a></li>
<li><a href="https://lore.kernel.org/r/20251125-pixel-3-v4-0-3b706f8dcc96@ixit.cz">[v4 0/8] Add support for Pixel 3 and Pixel 3 XL</a></li>
</ul></li>
</ul>
<h5>agx</h5>
<ul>
<li>Started testing Shift 6MQ and found out display won't initialize, later provided patch to hack around the initialization (use the panel driver as module <code>=m</code>).</li>
</ul>
<h5>Petr Hodina</h5>
<ul>
<li>Experimented with touchscreen driver for Pixel 3, found alternation to existing driver to run touchscreen, thou it works a bit weird.</li>
</ul>
<h5>Vasiliy &quot;NekoCWD&quot; Doylov</h5>
<ul>
<li>Actuator discussions, Most of OnePlus enchiladas have <code>lc*</code> actuators, fajitas - <code>sa*</code> or a mix.</li>
</ul>
<h5>longnoserob</h5>
<ul>
<li>Prepared <code>b4/</code> branch for SLPI Xiaomi Poco F1 patches with promise to upstream. Included in our tree.</li>
<li>Patches polished and sent: 
<ul>
<li><a href="https://lore.kernel.org/r/20251126-slpi-v1-0-c101d08beaf2@gmail.com">[0/2] arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable SLPI</a></li>
</ul></li>
</ul>
<h5>Marco Mattiolo (Tiol)</h5>
<ul>
<li>Started working on 6.18 kernel for Mobian using some of our polished patches, asked mostly about the C-PHY patchset for enablement of the main rear camera (imx519 driver).</li>
</ul>
<hr />
<h4>Week 2 (28. 11. ‒ 4. 12.)</h4>
<p>Upstream wants to have all new firmware paths in format</p>
<p><code>sdm845/Vendor/codename</code> instead of our usual <code>sdm845/codename</code>.
Make sense, but we'll going to make unpleasant changes to the distributions.</p>
<p>📝 Made a small helper function, for cherry-picking from <code>b4</code> branches, as the merging is not so convinient as it creates the merge commit and re-sort commits when rebased.</p>
<ol>
<li>We find a tag (thus we assume <code>b4</code> branch is based on <code>next</code>, <code>linus</code>, or just something tagged.</li>
<li>Print range of the commits, so we see what is being picked and wait for conformation.</li>
<li>Just <code>cherry-pick</code>, but we want to keep &quot;empty&quot; b4 commits, which provides nice separator, changelog, and links to the previously sent version.</li>
</ol>
<pre><code class="language-fish">$ cat ~/.config/fish/functions/cpick.fish
function cpick
  set base_tag $(git describe $argv[1] --no-abbrev)
  set range $base_tag..$argv[1]
  git log --oneline $range
  read -P "Cherry pick into current tree $(set_color green; git describe --all)$(set_color normal). y/n?" -l confirm     
  switch $confirm
    case y Y
      git cherry-pick --empty=keep $range
  end
end
$ cpick b4/qcom-cphy  # picks commit from the given branch</code></pre>
<p><img src="/media/cpick.png" alt="cpick workflow screenshot" /></p>
<h5>David Heidelberg</h5>
<ul>
<li>Noticed that i2c bus on Pixel 3 may not have high enough clock to run touchscreen well, proposed 400 kHz, later found that upstream even does 1 MHz.</li>
<li>Figured out, why cameras aren't working. 
<ol>
<li>v4l2 can't handle incomplete setup, so let's check</li>
<li><code>/sys/kernel/debug/v4l2-async/pending_async_subdevices</code></li>
<li>Why is there focus coil in the waiting list?</li>
<li>Oh, I didn't have enabled it in <code>.config</code>. Big mystery found.</li>
</ol></li>
<li>We have now all three cameras working (D-PHY/C-PHY; rear main, rear secondary, front).</li>
<li>Did review of latest NekoCWD focus coil patches.</li>
<li>Discussion with dsankouski regarding to small bug in <code>s6e3ha8</code> panel driver.</li>
<li>Patches sent: 
<ul>
<li><a href="https://lore.kernel.org/r/20251204-qcom-cphy-v2-0-6b35ef8b071e@ixit.cz">[WIP v2 0/8] media: camss: Add support for C-PHY configuration on Qualcomm platforms</a></li>
<li><a href="https://lore.kernel.org/r/20251203-old-alsa-v1-1-ac80704f52c3@ixit.cz">ALSA: Do not build obsolete API</a></li>
<li><a href="https://lore.kernel.org/r/20251202-tama-labibb-v1-1-f8f3fda53d1d@ixit.cz">arm64: dts: qcom: sdm845-tama: Keep labibb on, so kernel can disable it</a></li>
</ul></li>
</ul>
<h5>Petr Hodina</h5>
<ul>
<li>Worked on getting upstream <code>ftmsts</code> driver work with Pixel 3.</li>
</ul>
<h5>NekoCWD</h5>
<ul>
<li>Sent improved version of focus coil to mailing list. 
<ul>
<li><a href="https://lore.kernel.org/r/20251201-media-i2c-lc898217xc-initial-driver-v3-0-46e23897e921@mainlining.org">[v3 0/3] media: i2c: lc898217xc: initial driver</a></li>
</ul></li>
</ul>
<h5>Marco Mattiolo (Tiol)</h5>
<ul>
<li>Figured out, why main rear camera didn't work for him on 6.18 ‒ old C-PHY patch (most likely my early patch included in sdm845-mainline).</li>
</ul>
<h5>Pavel Píša and Sam</h5>
<ul>
<li>Had nice discussion regarding to multi-function compose gadget, g_ether and other USB configuration options.</li>
</ul>
<hr />
<h4>Week 3 (5. ‒ 12. 12.)</h4>
<p>We're getting stable.</p>
<h5>David Heidelberg</h5>
<ul>
<li>Thanks to Konrad, improved C-PHY initialization sequence for C-PHY patchset.</li>
<li>Pixel 3 XL boots into framebuffer, so screen works now (disabled <code>dispcc</code> which interfered with framebuffer)</li>
<li>Cleaned up of Xiaomi Mi Mix 3 (perseus).</li>
<li>Firmware sent: 
<ul>
<li><a href="https://lore.kernel.org/ath10k/7561bd0f-bf2d-4126-9c9f-919616cf9609@ixit.cz/T/#m11c9843f8de8e0625b232aa8643b828989c0f7b5">Pixel 3 WiFi firmware</a></li>
<li><a href="https://lore.kernel.org/ath10k/7561bd0f-bf2d-4126-9c9f-919616cf9609@ixit.cz/T/#m74249e7a3c46490cc51caf94c552b6306e55f98a">Pixel 3 XL WiFi firmware</a></li>
</ul></li>
<li>Reviewed: 
<ul>
<li><code>[PATCH v4 00/12] arm64: dts: qcom: sdm845-lg-{common, judyln}: Improve HW support in dts</code></li>
</ul></li>
</ul>
<h5>longnoserob</h5>
<ul>
<li>Sent v2 of SLPI enablement on Xiaomi Poco F1 patches. 
<ul>
<li>Including firmware paths change.</li>
</ul></li>
</ul>
<h5>Vasiliy &quot;NekoCWD&quot; Doylov</h5>
<ul>
<li>Small build fixes.</li>
</ul>
<h5>Petr Hodina</h5>
<ul>
<li>Porting stuff from older trees to get Sony Xperia XZ3 (akatsuki) working again on `-next`.</li>
</ul>
<hr />
<h3>Next month</h3>
<p>There is long journey ahead of us. Mainlining fuel gauge will likely bring more stability and better charging, on other hand I assume it'll ask for another month of work.</p>
<h3>EOM ‒ End of Month</h3>
<h4>Journey</h4>
<p>We started with hardly booting <code>-next</code> tree. After month, we're close to having fully functional phones and <strong>numbers of patches</strong> are <strong>increasing</strong> (due to good people fixing issues), but also <strong>decreasing</strong>, as we having no-keep, <strong>everything to upstream policy</strong>.</p>
<p>Except rare or patches not meant to be upstream, we preparing and sending patches where they belong. Mainline.</p>
<p>I hope, one day this community will turn into direct kernel contributors and maintainers. Hopefully our effort will lead to the state, where patches contained in <code>sdm845-next</code> a top of actual <code>-next</code> repository can be counted on one hand.</p>
<h4>Devices</h4>
<p>🗒️ keep in mind we started with hardly booting kernel.</p>
<table>
<thead>
<tr>
<th>Device</th>
<th>Works</th>
<th>Work-in-progress (WIP)</th>
<th>Doesn't work</th>
</tr>
</thead>
<tbody>
<tr>
<td>OnePlus 6</td>
<td>Hopefully everything</td>
<td></td>
<td>calls</td>
</tr>
<tr>
<td>OnePlus 6T</td>
<td>Hopefully everything</td>
<td></td>
<td>calls</td>
</tr>
<tr>
<td>Xiaomi Poco F1</td>
<td>Something should work.</td>
<td></td>
<td>calls</td>
</tr>
<tr>
<td>SHIFT 6MQ</td>
<td>Boots, display works.</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Pixel 3</td>
<td>WiFi, framebuffer, display (only one way -&gt; on)</td>
<td>Display stability and touchscreen (Petr Hodina)</td>
<td></td>
</tr>
<tr>
<td>Pixel 3 XL</td>
<td>WiFi, framebuffer</td>
<td>Display (David Heidelberg)</td>
<td></td>
</tr>
</tbody>
</table>
<h3>Ending titles</h3>
<p>I would like to thank to everyone who contributed within the sdm845-next project, but also to everyone who contributed outside of our channel, as f.e. Paul Sajna (sajattack) who worked on LG G7 ThinQ and V35 ThinQ mainline improvements.</p>
<p>There's an upcoming hackday planned for 13th January 2026 from 10:00 to evening in Prague. Stay tuned for more information!</p>
<h3>Join us!</h3>
<p>If you want to contribute, learn, or being curious, everyone with our goals in mind is welcome to join!</p>
<h3>Expenses report</h3>
<table>
<thead>
<tr>
<th></th>
<th>Category</th>
<th>Time spent</th>
</tr>
</thead>
<tbody>
<tr>
<td>David Heidelberg (donate with <a href="https://liberapay.com/dh">LiberaPay</a>)</td>
<td>Development</td>
<td>10 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Review</td>
<td>6 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Q&amp;A</td>
<td>4 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Events / Meetings</td>
<td>1.5 člověkodne</td>
</tr>
<tr>
<td>Petr Hodina (done with <a href="https://liberapay.com/phodina">LiberaPay</a>)</td>
<td>Development</td>
<td>5 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Research</td>
<td>1.5 člověkodne</td>
</tr>
<tr>
<td></td>
<td>Q&amp;A</td>
<td>12.5 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Events/ Meetings</td>
<td>1.5 člověkodne</td>
</tr>
<tr>
<td>Vasiliy &quot;NekoCWD&quot; Doylov</td>
<td>Development</td>
<td>5 člověkodnů</td>
</tr>
<tr>
<td></td>
<td>Review</td>
<td>7 člověkohodin</td>
</tr>
<tr>
<td></td>
<td>Q&amp;A</td>
<td>7 člověkohodin</td>
</tr>
<tr>
<td>longnoserob</td>
<td>Development</td>
<td>3 člověkohodiny</td>
</tr>
<tr>
<td></td>
<td>Events / Meetings</td>
<td>1 člověkohodina</td>
</tr>
<tr>
<td>agx (contribute to <a href="https://ev.phosh.mobi/donate/">Phosh e.v.</a>)</td>
<td>Q&amp;A</td>
<td>0.5 člověkohodiny</td>
</tr>
<tr>
<td>Marco &quot;Tiol&quot; Mattiolo</td>
<td>Q&amp;A</td>
<td>4 člověkohodiny</td>
</tr>
</tbody>
</table>
<ul>
<li>Development ‒ writing new code, fixing and rebasing existing one, writing the documentation.</li>
<li>Review ‒ trying to understand existing code, helping other with preparation of their code for upstreaming.</li>
<li>Q&amp;A ‒ flashing images &amp; testing them on DUT, debugging issues</li>
<li>Events / Meeting ‒ organizing, attending, and contributing to the events and occasional sync-up meetings.</li>
<li>Time spent, measured in <a href="https://cs.wikipedia.org/wiki/%C4%8Clov%C4%9Bkoden">&quot;člověkoden&quot;</a> (also knows as work-day, man-day / MD, or a cat-day) or <a href="https://cs.wikipedia.org/wiki/%C4%8Clov%C4%9Bkohodina">&quot;člověkohodina&quot;</a> .</li>
</ul>]]></description></item><item><title>postmarketOS gave me a one month BAN! What have I done?</title><link>https://ixit.cz/blog/2025-11-20-postmarketOS-BAN</link><guid>https://ixit.cz/blog/2025-11-20-postmarketOS-BAN</guid><pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate><description><![CDATA[<p>Short version: I wanted to write more, but my friend said “TL;DR”.</p>
<p>Many people asked me about the postmarketOS ban I've been given, so here we go.</p>
<h2>What was I accused of?</h2>
<p>On 10.11.2025 I received an email that the postmarketOS team had received CoC reports that they would like to discuss over Jitsi.</p>
<h3>13.11.2025 ‒ The Call</h3>
<p>After a short introduction I was told that the reason for the call was:</p>
<ol>
<li>I used the wrong pronouns.</li>
<li>The COVID thing.</li>
<li>I promoted AI within the postmarketOS channels.</li>
</ol>
<h3>The CoC process</h3>
<p>I had the feeling that the CoC should be more neutral. The process felt like:</p>
<blockquote>
<p>Hey, here's the ban, goodbye.</p>
</blockquote>
<p>No evidence was presented to me.</p>
<p>Enforcement completely skipped</p>
<ol>
<li>Correction  </li>
<li>Warning  </li>
</ol>
<p>and we went directly to the</p>
<ol start="3">
<li>Temporary ban.</li>
</ol>
<p>See: <a href="https://docs.postmarketos.org/policies-and-processes/community/code-of-conduct.html#coc-enforcement">postmarketOS Code of Conduct page</a></p>
<p>Hopefully, the upcoming CoC training mentioned in the news will yield some results:</p>
<blockquote>
<p>The team approved a new entry to the budget of 1800€ for Code of Conduct enforcement training.</p>
</blockquote>
<h2>What I did</h2>
<h3>Pronouns</h3>
<p>Yes. On 4 March 2025, in a conversation with my friend (now ex-friend), I used the wrong pronouns when I was speaking about a other friend in a private conversation.</p>
<p>This conversation was later screenshotted by my ex-friend and given to the friend I was speaking about, including the part where, after writing the wrong pronouns, I said I don't care much about pronouns.</p>
<p>Guilty. Yes.</p>
<p>After a long time, on August 31, I was told by my friend in question that they didn't feel comfortable working with me.</p>
<p>I tried to explain my attitude and ensure there was enough of respect towards my friend identity, but the conversation ended with my friend still not being comfortable to continue working with me.</p>
<p>Well, if you can’t fix things online, why not try offline? There are events where you can meet people.</p>
<p>I tried to address the issue also in person at an event, where we sat for about an hour, accepted mediation from another community member, and then another 3–4 people later joined. I presented my views and listened to my friend about the topic. I felt like we were moving forward, as we started speaking again.  </p>
<p>Here I understood that some members of communities really consider pronouns very important.</p>
<p>Another event was a bit quiet, as it directly followed the previous one in a different location and we were both very tired, but there were no major changes.</p>
<h3>COVID</h3>
<p>COVID divided Czechia, where I live, quite a lot: many opinions, vaxxers, anti-vaxxers, etc. etc. I honestly cannot remember what this was about. I was told that someone dislikes me because of something related to COVID already about 2 years ago, but no one told me who and why exactly.</p>
<p>Since COVID I have personally been keeping my opinions on politics, health issues, and lifestyle to myself and sharing them only with my close friends.</p>
<h3>AI</h3>
<p>Yes, I used AI to review my code, and honestly it spotted a mistake I made in my C-PHY patches approx. year ago. The broken code was pulled into postmarketOS and no one noticed until AI gave me a hint.</p>
<p>I understand a policy where a project doesn't like people shouting nonsense about AI in their channels. I respect that. On the other hand…</p>
<p>Taking away the freedom to speak openly about today’s relevant topics (putting aside whether AI is good or bad) feels oppressive and not aligned with Free and Open Source values.</p>
<p>In the future, I'll most likely adhere to the Linux kernel AI/LLM recommendations and rules, though I'll definitely avoid speaking about AI in any postmarketOS channel to avoid upsetting people.</p>
<p>Excerpt from the last paragraph of the policy (hard to be found):</p>
<p><img src="/media/postmarketOS-AI-warning.png" alt="pmOS AI policy CoC" /></p>
<p><a href="https://docs.postmarketos.org/policies-and-processes/development/contributing-and-ai.html">postmarketOS Contributing and AI page</a></p>
<h2>The rules</h2>
<p>Was my effort enough? Maybe not for the postmarketOS project. Hopefully, they will clarify in the future what is important and make the rules clearer, so situations like my ban can be avoided.</p>
<h2>Wrapping up</h2>
<p>People are more than a few letters to me. Doesn't matter if it's pronouns, university title, or anything which we will see in the future before or after the name.
We cannot reduce human complexity to a few simple rules. We need to use social intelligence (which is much harder to apply in the online world, where we only see text, without emotions and human expressions).</p>
<p>I think real life is much easier to navigate than the online world, as we can feel others better and react to their needs and expressed feelings.</p>
<p>What do you think?</p>]]></description></item><item><title>Linux Phones Hackday #3</title><link>https://ixit.cz/blog/2025-09-08-hackday3</link><guid>https://ixit.cz/blog/2025-09-08-hackday3</guid><pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate><description><![CDATA[<p>Third hackday happend on 2nd September as planned. Here are few topic we worked on.</p>
<h3>Attendees</h3>
<ul>
<li>Andrea</li>
<li>David Heidelberg</li>
<li>Pavel Machek</li>
<li>Jakub Jirutka</li>
<li>Petr Hodina</li>
</ul>
<h3>Videos on Librem 5</h3>
<p>Pavel presented his pipeline for recording videos on the Librem 5 with reasonable quality.</p>
<h3>Xiaomi 11 Lite 5G</h3>
<p>Next time, Pavel Machek will brief us about his new phone based on the Snapdragon 778G.</p>
<h3>Smart Charging</h3>
<p>David and Pavel discussed possibilities to make the phone smarter during charging to optimize for longer battery life. Pavel shared his scripts for achieving something similar on his previous phone.</p>
<h3>Purism Librem 5 + Dell U2723QE</h3>
<p>We tested the Dell U2723QE together with the Librem 5 phone, and it seems that both charging and 4K output at 30 Hz work well (for some reason, the correct resolutions are only detected after the second USB-C plug-in).</p>
<p>Since the phone start heating up, we cooled it with cooling pad.</p>
<h3>LD_PRELOAD, using glibc optimizations under musl-libc</h3>
<p>David and Jakub discussed the possibility of using more assembly optimizations in Alpine/postmarketOS by leveraging existing performance optimizations done for glibc (licensed under GPL, thus they cannot be shared upstream with musl-libc).  </p>
<p>Outcome: Separate optimized functions, preloaded.</p>
<h3>OpenWRT on Acer Predator W6X</h3>
<p>Together with Andrea, we tried to improve the router device tree, but later discovered it had already been mainlined the previous month.</p>
<h3>Lenovo A6010</h3>
<p>Andrea flashed her first Linux phone.<br />
Things to address:</p>
<ul>
<li>Enable charging in Linux.</li>
<li>Fix Adreno 306 display flickering.</li>
</ul>
<h3>Mainline on Sony Devices Powered by Snapdragon 845</h3>
<p>Petr prepared the kernel to test patches that support UFS storage without wiping its contents (previously an issue due to poor design of SDM845-based Sony phones). Testing should happen in the coming days on one device in very poor condition (so no big loss if it fails).</p>]]></description></item><item><title>InstallFest 2024 [CZ]</title><link>https://ixit.cz/blog/2024-03-17-InstallFest2024</link><guid>https://ixit.cz/blog/2024-03-17-InstallFest2024</guid><pubDate>Sun, 17 Mar 2024 00:00:00 +0000</pubDate><description><![CDATA[<h3>První den</h3>
<h4>Boston Dynamics - Spot</h4>
<img style="float: right; width: 240px;" src="/media/Spot.jpg" alt="image of Spot">
<p>Před mojí přednáškou na téma linuxových telefonů jsem strávil trochu času se Spotem. <a href="https://bostondynamics.com/products/spot/">Spot</a> je &quot;imitace&quot; psa s hromadou schopností. Co je na něm ovšem nejzajímavější z mého pohledu je model licencování funkčnosti, kdy mnohé i relativně běžné funkce (např. skok) musíte dokoupit.
Celkově je ovládání Spota perfektní, plynulé a jeho autonomní schopnost se vyhýbat nástrahám výborná.</p>
<h4>Přednáška</h4>
<p>V 15:00 začal můj talk, provázen tichem způsobeným ztlumeným vysílačem, připnutým na mém boku. Díky rychlé reakci organizátorům jsem se pouze znovu představil, ale tentokrát již do záznamu i internetového vysílání.</p>
<h4>Banky</h4>
<p>Po přednášce mě příjemně potěšil dotaz na internetové bankovnictví v ČR. To je bohužel výzva i na otevřených (tzn. rootnutých) telefonech použivaných s Androidem či AOSP. Banky se snaží minimalizovat rizika a tak se snaží proniknout do soukromí uživatelů a vyzjistit, co na daném telefonu běží. Pokud narazí na otevřený telefon, některé jen uživatele upozorní (čest těmto bankám), jiné odmítnou fungovat. To bohužel může způsobit problémy uživatelům Linuxu.</p>
<p>Zmínil jsem též situaci v Německu, kde standard <a href="https://cs.wikipedia.org/wiki/FinTS">FinTS</a> je podporován většinou tamních banek. Pevně věřím, že čeští politici s přispěním strany Pirátů najdou způsob jak motivovat banky, aby poskytly obyvatelům kvalitní bankovnictví nezávislé na proprietárních aplikacích.</p>
<p><a href="https://www.youtube.com/watch?v=8YB76RBusOU">Přednáška na Youtube</a></p>
<h3>Druhý den</h3>
<p>...byl po probuzení též plný setkání a zajímavých přednášek. Rád bych ovšem vypíchl <a href="https://www.youtube.com/watch?v=o9TwtMywEuI">přednášku Jendy Hracha</a> nazvanou <strong>Od umělého neuronu k ChatGPT</strong>. Jedna v ní nádherně shrnul snad vše o čem se v souvislosti s AI/ML mluví.</p>
<p>Rád bych poděkoval organizátorům za jejich skvělou práci a budu se těšit na InstallFest 2025!</p>]]></description></item><item><title>How to help the Linux mobile community? Pt. 1: Minetest</title><link>https://ixit.cz/blog/2023-12-21-Minetest-Linux-touch-pt1</link><guid>https://ixit.cz/blog/2023-12-21-Minetest-Linux-touch-pt1</guid><pubDate>Thu, 21 Dec 2023 00:00:00 +0000</pubDate><description><![CDATA[<p><img src="/media/minetest.webp" alt="Minetest on phones" /></p>
<h3>Prelude</h3>
<p>Gaming is important. When I was 15 years old, the ability to play games on Linux was one factor that accelerated my transition from Windows to Linux, and I believe this holds true for many of you.</p>
<p>Two years ago, I successfully compiled and <a href="https://twitter.com/okiasx/status/1438997124193136641">run</a> the <a href="https://github.com/halpz/re3">re3 engine</a>, specifically reVC, which is designed to work with GTA Vice City game data, on my Linux phone. However, due to the absence of touchscreen controls, playing the game required a connected keyboard. While a touchscreen could still be utilized for aiming, the experience was less than optimal.</p>
<p><img src="/media/reVC.webp" alt="reVC running on OnePlus 6" /></p>
<p>Let me say ‒ these days I'm no <a href="https://www.minetest.net/">Minetest</a>, Minecraft, or <a href="https://content.minetest.net/packages/Wuzzy/mineclone2/">MineClone2</a> daily player.
I installed Minetest on Android phone approximately a year ago. I played it for a bit, and, certainly, I liked it.</p>
<p>What I also did was creating <a href="https://github.com/minetest/minetest/issues/12785">an issue</a> to bring attention to the existence of Linux phones and express my desire for their support.</p>
<h3>First peak</h3>
<p>A few weeks ago, an idea crossed my mind that gaming on Linux phones isn't 'on fire.' While the Linux world offers numerous games, <strong>not many come equipped with on-screen controls</strong>.</p>
<p>Being aware that the Android game and other platforms' codebases are the same, I began exploring options to enable touchscreen functionality.</p>
<blockquote>
<p><code>$ cmake ... -DENABLE_TOUCH=true</code></p>
</blockquote>
<p>What I did was a quick recompilation of Minetest 5.7.0 with this option enabled. For this, I utilized the Alpine APKBUILD file and Continuous Integration (CI) provided by postmarketOS. After the GitLab CI artifacts were built, I <a href="https://wiki.postmarketos.org/wiki/Installing_packages_on_a_running_phone">sideloaded</a> the .apk files onto my phone, and voila!
It worked; however, it had side effects. The UI ceased to function on desktops with keyboard and mouse-driven workflows.</p>
<h3>Quick, inefficient, and ugly way.. do the local distribution hack</h3>
<p>My first thought was, let's patch the game for <a href="https://postmarketos.org/">postmarketOS</a> so people can use it. postmarketOS is distribution primarily aimed at phones and tablets, so the number of people playing Minetest and also using the machines with keyboard and mouse will be close to zero.</p>
<p>There is of course the cost, and that's the difference between Alpine and postmarketOS, and someone has to maintain the additional package and take care of potential problems.</p>
<h3>We have to go deeper... Alpine.</h3>
<p>Then for sure, I could send a patch to the Alpine which will change the default behavior, but that would mean many users on a desktop will get affected. We don't want that.</p>
<p>An option arose to distribute two binaries. One <code>minetest</code> with default desktop settings and <code>minetest-touch</code> which will provide the necessary build for touch-based devices.</p>
<p>At that point I started looking at <a href="https://github.com/minetest/minetest/">upstream minetest</a> code and how to make touchscreen enabled and disabled by runtime option.</p>
<h3>The (very often) right way to make a contribution</h3>
<p>Looking first time in my life at Minetest codebase isn't promising very fast progress, as I never worked with game code (except writing simple GUI Chess in Java at University when I was 20).</p>
<p>The options were hardcoded by <code>#ifdef</code>s and within LUA code by variable hardcoded at LUA initialization.</p>
<p>At the end of one very sunny Saturday, my rewrite was complete, but what bugged me, was that the touchscreen still didn't work on Minetest 5.8.0 with my patch.</p>
<p>My way of testing was picking APKBUILD from <a href="https://gitlab.alpinelinux.org/alpine/aports/">aports</a> supplying patch generated from my upstream <a href="https://github.com/minetest/minetest/pull/14075">minetest PR</a> and uploading packages into my phone.</p>
<p>Did I make a mistake somewhere?</p>
<h3>Regression</h3>
<p>After spending a long time going through my code and fixing some small issues, I started to feel like the issue wasn't on my side.</p>
<p>I recompiled the 5.8.0 without mine patch with <code>-DENABLE_TOUCH=true</code> but still didn't work. That's weird, it should.</p>
<p>But wait, the first trial was around one month ago and meanwhile 5.8.0 was released. Let me pick the original binary package from 5.7.0 from CI... Yes, the touch stopped working between the 5.7 and 5.8 versions.</p>
<p>Time to report <a href="https://github.com/minetest/minetest/issues/14111">a bug</a>. We want to be good team players and provide feedback ASAP on our favorite projects.</p>
<h3>Bisecting a long way to victory</h3>
<p>Many of you are familiar with <a href="https://www.metaltoad.com/blog/beginners-guide-git-bisect-process-elimination">the bisection process</a>, which takes some time, but not as much as building, uploading, and testing 1000 revisions of code.</p>
<p>I'm a lazy person. Bisecting is useful, but guessing with some knowledge can work too. In my case, I used <code>git log -p 5.7.0..5.8.0</code> and searched for any occurrences related to touchscreens.</p>
<blockquote>
<p><code>Formspec: Pass the second-touch event as is (#13872)</code></p>
</blockquote>
<p>was only adept and also touching code which processes press and release. This was exactly what stopped working.</p>
<p>Reverting the patch immediately resolved my issue. Time to report this finding into the GitHub issue we created in the previous step.</p>
<h3>Are Ya Winning, Son?</h3>
<p>Now we know where the problem lies, we have a contribution that allows runtime alternation of input modes between touchscreen and mouse+keyboard.</p>
<p>My work is not finished yet; I need to wait for reviews, address comments, and implement proposed changes.</p>
<h3>Are we there yet?</h3>
<p>The Minetest project decided to switch input handling to the SDL2 layer, which is a step in the right direction. This means the bug I encountered will not exist in future code. The fix that has been published is most likely useful for 5.8.x series, but not 5.9.x.
Does the effort put into fixing the bug make sense then?</p>
<p>Yes, many developers who create for fun sometimes forget (Hello <a href="https://github.com/SFTtech/openage/discussions/1396">OpenAGE</a>!) that what they do is also a product that should reach its customers. Creating the most beautiful masterpiece is a loss to the world if no one sees it.</p>
<h3>Afterparty</h3>
<p>The Minetest 5.8 series has been released this month. That means, we need to ship the patch to the mobile distributions anyway, so users can benefit from it ASAP.</p>
<p>We're kinda back at the beginning of our journey, but the difference here is</p>
<ul>
<li>one reported bug and</li>
<li>patch which leads to not having to do this again for other releases.</li>
</ul>
<p>This is the value of FOSS (Free and open-source software).</p>
<h3>I have postmarketOS, can I play the Minetest now?</h3>
<p>After reading <a href="https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/55520">Alpine MR</a> description, run</p>
<pre><code class="language-shell"># apk add mrtest
# mrtest add -a 55520</code></pre>
<p>(thanks to <a href="https://fosstodon.org/@fraolt/111618671008730658">Frank</a> sharing the simplified process)</p>
<video width="720" height="480" controls>
  <source src="/media/video/minetest-linux-touch.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video> 
<h3>Thank you for reading!</h3>
<p>... and hoping to see one day your contribution to the FOSS world too!</p>
<p>Resources:</p>
<ul>
<li><a href="https://gitlab.com/postmarketOS/pmaports/-/merge_requests/4556">postmarketOS discussion (prev. packaging)</a></li>
<li><a href="https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/55520/">Alpine packaging</a></li>
<li><a href="https://github.com/minetest/minetest/pull/14075">MR needed for runtime switching</a></li>
<li><a href="https://github.com/minetest/minetest/pull/14117">MR needed for gameplay</a></li>
</ul>]]></description></item><item><title>Mesa3D nightly builds for Debian</title><link>https://ixit.cz/blog/2023-12-11-MiniDebConf2023-Cambridge</link><guid>https://ixit.cz/blog/2023-12-11-MiniDebConf2023-Cambridge</guid><pubDate>Mon, 11 Dec 2023 00:00:00 +0000</pubDate><description><![CDATA[<h3>Where did the idea come from?</h3>
<p>Back in 2014 when we were developing the <a href="https://wiki.ixit.cz/d3d9">Gallium Nine</a>, back then not yet merged code had to be shipped to the users somehow. These Ubuntu PPA repositories accepted our patches before they got into the Mesa3D and shipped them to users.</p>
<ul>
<li><a href="https://launchpad.net/~oibaf/+ppa-packages">https://launchpad.net/~oibaf/+ppa-packages</a></li>
<li><a href="https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa">https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa</a></li>
</ul>
<p>Sadly, Debian doesn't offer any PPA with similar coverage.</p>
<h3>Why do we need nightly builds?</h3>
<ul>
<li>verifying that issues got fixed before the release</li>
<li>testing new features before Mesa3D gets released</li>
<li>enjoying games at max FPS!</li>
</ul>
<h3>Where are we now?</h3>
<p>The repository is autogenerated every night for Debian 13 (Trixie).</p>
<pre>$ cat /etc/apt/sources.list.d/gfx-ci.list
deb [trusted=yes] gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/trixie trixie main</pre>
<p>There are a few future challenges:</p>
<ul>
<li>let people know it exists (you don't have to compile Mesa3D on weak arm64 devkit)</li>
<li>automated signing of releases</li>
<li>integrate into Debian world (right now builds are produced by <a href="https://www.freedesktop.or">FDO</a> GitLab)</li>
</ul>
<p>If you want to help, feel free to contact me on Matrix, IRC, or LinkedIn.</p>
<h3>Quirks and perks</h3>
<p>One of the amazing features of this repository is versioning.</p>
<p>If you run software that regressed and you're not certain when it worked last time, you can browse the <a href="https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/commits/trixie/?ref_type=heads">repository revisions</a> and replace <code>trixie</code> with <code>$git_hash</code> of previous days and reinstall Mesa3D packages to figure out, when your stuff broke out.</p>
<p>Here it's my lightning talk about this topic on <a href="https://wiki.debian.org/DebianEvents/gb/2023/MiniDebConfCambridge">MiniDebConf in Cambridge</a>:</p>
<video width="720" height="480" controls>
  <source src="/media/video/MiniDebConf2023-Cambridge-lightning-talk.webm" type="video/webm">
  Your browser does not support the video tag.
</video> ]]></description></item><item><title>My contribution to the Linux 6.0 - 6.6</title><link>https://ixit.cz/blog/2023-11-30-kernel-6-6-contribution.md</link><guid>https://ixit.cz/blog/2023-11-30-kernel-6-6-contribution.md</guid><pubDate>Thu, 30 Nov 2023 00:00:00 +0000</pubDate><description><![CDATA[<h2>Quiet times</h2>
<p>Throughout Linux 6.0 ‒ 6.6, I worked mainly on different projects, so I did especially reviews and testing patches, but still squeezed some time to send a few fixes.</p>
<h3>Authored</h3>
<p><strong>David Heidelberg (10):</strong><br></p>
<ul>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c7e151a7100eb298bb03c83c1a7372112fce2571">dt-bindings: thermal: lmh: update maintainer address</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3cfa5569cedf1e5d125b62e690c1915d6b757a47">ARM: dts: qcom: apq8064: add support to gsbi4 uart</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ae6546835efaa7195aaaa10e5ff4e695cd82a816">drm/panel: JDI LT070ME05000 simplify with dev_err_probe()</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=cd8ee8aba1f3b5dd4118dc8cea05b73734983288">dt-bindings: sound: gtm601: convert to YAML</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=29e31a8ee811f5d85274f0381f13cd6fe650aea4">Documentation: ACPI: fix typo in ssdt-overlays.rst</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2060c9b8ae2a1f6abec483709f4209b6e3602b89">ASoC: nvidia,tegra-audio: add RT5631 CODEC</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=527c9552f5f8a99b6c31bfb39e9470cec07faf49">arm64: dts: meson-gxm-khadas-vim2: use gpio-fan matrix instead of an array</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b592f9ee1fb4467de374b4a60009d7ec55fd2d06">Docs/admin-guide/mm/zswap: remove a paragraph about zswap being a new feature</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fcab9b441d2d0e08f55654a4adf2d51cd4680469">mm: remove EXPERIMENTAL flag for zswap</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1c46589d4ec04c9691e984eab3a42f36788dced1">dt-bindings: firmware: convert Qualcomm SCM binding to the yaml</a></li>

</ul>
<h3>Signed-off-by</h3>
<p><strong>David Heidelberg (1):</strong><br></p>
<ul>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ed18a9b140bc2e3728be9c18b97df07cdd0fe33a">dt-bindings: misc: fastrpc convert bindings to yaml</a></li>

</ul>
<h3>Reviewed-by</h3>
<p><strong>David Heidelberg (16):</strong><br></p>
<ul>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6870f41033d839fa72195fd2dd37f902b37ea62b">dt-bindings: sound: gtm601: Add description</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4d08b19629495b29601991d09d07865694c25199">arm64: dts: rockchip: Drop invalid regulator-init-microvolt property</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=58fab79731db95776ff743035a06094bb528547d">dt-bindings: display: msm: sm8350-mdss: Fix DSI compatible</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b9745c275246a7e43c34d1b3be5ff9a9f3cf9305">ARM: dts: qcom-apq8064: Fix opp table child name</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5cea1fa12bc37ae2beebea41ad7da4beb0bc14e2">ARM: dts: qcom: apq8064: add compat qcom,apq8064-dsi-ctrl</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ad428de325d27964f1c471ae496232df89b22885">iio: light: al3010: Convert to i2c's .probe_new()</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0a6df9f16f51bae699a2dee067e92d82a2a3ff05">dt-bindings: mfd: qcom,spmi-pmic: Add missing compatibles</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdfd92cb14d97ef58600926ea6b2788b31c719f">ARM: dts: qcom: pmx55: align SPMI PMIC Power-on node name with dtschema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7b357d3126226b7ec4810e26f4ded44b2286d197">ARM: dts: qcom: pm8941: align SPMI PMIC LPG node name with dtschema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=662e305dfc29b96913a03dde1e89e8968da65238">ARM: dts: qcom: align SPMI PMIC ADC node name with dtschema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=209a04885ab5f76722a1671d0fbf0a5b4bccacec">arm64: dts: qcom: sdm845-mtp: correct ADC settle time</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5589ffb2da2a66988ab3a68334dad3e68b42e3a9">arm64: dts: qcom: sc7280-idp: correct ADC channel node name and unit address</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=09a19abffbd54c20809acb969ebbacc25178f720">arm64: dts: qcom: align PMIC GPIO pin configuration with DT schema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=87783dbe1c289adf0998aed0fb4bb846130ec580">arm64: dts: qcom: align SPMI PMIC Power-on node name with dtschema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=15f50a487121f382f95975ad6cce14a2fe51baa3">arm64: dts: qcom: align SPMI PMIC LPG node name with dtschema</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c29ed5af6f3af7f8c74e41a97917db7a064a7984">arm64: dts: qcom: align SPMI PMIC regulators node name with dtschema</a></li>

</ul>
<h3>Tested-by</h3>
<p><strong>David Heidelberg (17):</strong><br></p>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=74cec60c0e30b1d3184d2729457a8af0dd76d6a1">arm64: dts: imx8mq-librem5-devkit: Mark buck2 as always on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=38e27a6fbf2206b18417c5985dbcdeca0f2026b8">drm/msm/a6xx: don't set IO_PGTABLE_QUIRK_ARM_OUTER_WBWA with coherent SMMU</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2e312b3429244eae1b105cb942550f2e5282f887">ARM: dts: qcom: msm8960: add clocks to the MMCC device node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f79742da254e47d38ea934813fb44a91aa834ee9">ARM: dts: qcom: apq8064: add clocks to the MMCC device node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=80787e417f3058c6ea59af726e803ca307b67867">ARM: dts: qcom: msm8960: add clocks to the GCC device node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=85ddc865219b04ea7930a8107943fe3c2e3af886">ARM: dts: qcom: apq8064: add clocks to the GCC device node</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6e9b4595609adf4ee97970a84a6eaeb1610aacb3">ARM: dts: qcom: msm8960: add clocks to the LCC device node</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=30f17249c171c9ac50e9f6d51c0bb5db1f5b2403">ARM: dts: qcom: apq8064: add clocks to the LCC device node</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c3ddc1848c91116aa53197f59e5f503eb6030095">clk: qcom: mmcc-msm8960: use parent_hws/_data instead of parent_names</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d226c5f07f0adc5dd8eb978d6141cf84b07e6f63">clk: qcom: mmcc-msm8960: move clock parent tables down</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=53e1409c181db6a0f532ee7d6b4a3be37e51476d">clk: qcom: mmcc-msm8960: use ARRAY_SIZE instead of specifying num_parents</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a6976f85269063e47e5155e5dcfe826b0a3ac8e7">clk: qcom: lcc-msm8960: use parent_hws/_data instead of parent_names</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7026af10aa9196fd08d51eeea81af3de6440c72b">clk: qcom: lcc-msm8960: use macros to implement mi2s clocks</a></li>

<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e38fc8f036a0b2908721aee9b75864acb8445be4">clk: qcom: gcc-msm8960: use parent_hws/_data instead of parent_names</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d247abe67bd1a819b87f08fe673081ce5f1fd529">clk: qcom: gcc-msm8960: use ARRAY_SIZE instead of specifying num_parents</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=861466d4fbdaa7d5256a116ee2756422a764c938">dt-bindings: clocks: qcom,mmcc: define clocks/clock-names for MSM8960</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e18e181ca542ecd56a1415fdff7d4609d400b756">dt-bindings: clocks: qcom,gcc-apq8064: define clocks/-names properties</a></li>
</ul>
<h3>Reported-by</h3>
<p><strong>David Heidelberg (3):</strong><br></p>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=60ac8a775a9147867a9d222d970ab2ca158dc23a">arm64: dts: imx8mq-librem5-devkit: Drop power-supply</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=74cec60c0e30b1d3184d2729457a8af0dd76d6a1">arm64: dts: imx8mq-librem5-devkit: Mark buck2 as always on</a></li>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=38e27a6fbf2206b18417c5985dbcdeca0f2026b8">drm/msm/a6xx: don't set IO_PGTABLE_QUIRK_ARM_OUTER_WBWA with coherent SMMU</a></li>
</ul>]]></description></item><item><title>Managing Complex GPU Testing Infrastructure: A Talk at DevConf.CZ 2023</title><link>https://ixit.cz/blog/2023-07-18-devconf</link><guid>https://ixit.cz/blog/2023-07-18-devconf</guid><pubDate>Tue, 18 Jul 2023 00:00:00 +0000</pubDate><description><![CDATA[<p>Funny fact:
When we began considering giving a presentation, we believed that 25+10 minutes would be sufficient. However, during our rehearsal, I realized that condensing the introduction of our CI into 20 minutes would be quite challenging. Even if we reduced the question time to 5 minutes, Erico's section on running the LAVA lab would still be significantly shortened.</p>
<p>On the morning of the presentation day, I sadly examined the slides, contemplating which one should be eliminated. Fortunately, a cup of coffee resolved the issue by increasing my pace, allowing me to fit everything within the 20-minute time limit.</p>
<p>Note: <a href="https://www.youtube.com/watch?v=SPJ5KFsqU84">I may sound like a squirrel on coffee.</a>. I hope you enjoy the talk as much as we enjoyed the conference!</p>
<video width="720" height="540" controls>
  <source src="/media/video/Managing_CI_Across_Multiple_Farms_for_GPU_Testing-DevConf.CZ_2023.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video> ]]></description></item><item><title>MiniDebConf ‒ Hamburg (2023)</title><link>https://ixit.cz/blog/2023-06-05-DebianReunionHamburg</link><guid>https://ixit.cz/blog/2023-06-05-DebianReunionHamburg</guid><pubDate>Mon, 05 Jun 2023 00:00:00 +0000</pubDate><description><![CDATA[<p>I've been lucky to be part of this great event for second time this year. It's amazing opportunity to meet fellow Debian developers working on many interesting topics. For me, most interesting topic is currently packaging and development of Debian Mobile ecosystem.</p>
<p>Since I'm working on Mesa3D CI, one of things which interested me would be how to optimize container builds, which currently consist by lengthy compilation of multiple software pieces and dependencies.</p>
<p>Regular Debian repository isn't answer for our needs, so after discussion with Jochen I started hacking up proof of concept of our versioned repository, which in theory can be maintainable by users (Mesa3D developers) without Debian packaging knowledge. </p>
<p>Second part of work started on MiniDebConf was slight redesign of <a href="https://mobian.org/">Mobian</a> website and download page to improve the readability and usability of the pages.</p>
<p>I really enjoyed the stay and met many great developers. See ya 2024!</p>
<p><img src="/media/DebianReunionHamburg2023_groupphoto.jpg" alt="Group picture" /></p>]]></description></item><item><title>Mobile Linux on OpenALT 2022</title><link>https://ixit.cz/blog/2022-09-25-OpenALT</link><guid>https://ixit.cz/blog/2022-09-25-OpenALT</guid><pubDate>Sun, 25 Sep 2022 00:00:00 +0000</pubDate><description><![CDATA[<p><img src="/media/openalt-2022-nedele-14.jpg" alt="David Heidelberg talking" /> </p>
<p>I decided to talk again about mobile phones with Linux OS.
On the market, there are Apple and Google, but nothing in between. That's why I think Linux on phones is a must.</p>
<p>I was very happy to meet many amazing people like Pavel Píša (who had a great talk about Librem 5 hardware internals), Pavel Machek, and many others.</p>
<p>The Linux phones at the conference included PinePhone with Fedora, Librem 5 with PureOS, OnePlus 6 with postmarketOS, OnePlus 6T with Mobian, and a few Ubuntu Touch phones.</p>
<p>Let's sum up my talk.</p>
<h3>History</h3>
<p>It's important to see how it went to the point where we are now.
Since it's already a historical milestone, I also mentioned PINE64 PinePhone and Purism Librem 5.</p>
<h3>Ecosystems</h3>
<ul>
<li>We had Symbian and Microsoft Windows Mobile (WM)
payment model: together with device
ecosystem: You can do whatever you want. Worked back then with less harmful software while users didn't have so much sensitive data on devices.</li>
<li>Google Android
payment model: pay as you use (with your data and personal information converted later to profit).
ecosystem: you are severely limited in your ability to do what you (or your application) requires.</li>
<li>Apple iOS
payment model: together with device + Apple services
ecosystem: restricted to what Apple wants. I call it a golden cage.</li>
<li>Mobile Linux
payment model: voluntary contribution of time or money.
ecosystem: open, with the possibility to engage restricted (e.g., Flatpak) when needed (untrustworthy applications).</li>
</ul>
<h3>Technology</h3>
<ul>
<li>PinePhone PRO (in EU with 2yrs warranty): 14 600 CZK</li>
<li>Librem 5: 31 800 CZK + VAT and customs</li>
<li>converted Android phones as OnePlus 6/6T, Xiaomi PocoPhone: 2500 – 4000 CZK</li>
<li>FairPhone working on Linux support (no ETA available)</li>
</ul>
<h3>Distributions</h3>
<ul>
<li>iOS - it's not like you have an option</li>
<li>Android - you can find few decent ROMs as GrapheneOS or CalyxOS, thou it's not perfect</li>
<li>Linux - as usual, too many choices.
first born: postmarketOS
funded: PureOS → Debian → Mobian</li>
</ul>
<h3>Community</h3>
<p><strong>Join today!</strong> Some devices, such as the Librem 5 or PinePhone, can be used for daily driving. Because it's the first generation, you have to expect that the Librem 5 will quickly deplete your battery. The PinePhone (1) is not the fastest one (GPU with a limitation to GLES 2 is a major annoyance).</p>
<h3>Resources</h3>
<ul>
<li><a href="https://www.root.cz/clanky/linux-na-telefonech-radioamaterem-ve-21-stoleti-a-rust-na-esp32/#h20">https://www.root.cz/clanky/linux-na-telefonech-radioamaterem-ve-21-stoleti-a-rust-na-esp32/#h20</a> [Czech language]</li>
<li><a href="https://www.youtube.com/watch?v=MScGK7ltcvo">https://www.youtube.com/watch?v=MScGK7ltcvo</a> [Czech language]</li>
</ul>]]></description></item><item><title>64-bit WINE in CI without the 32-bit part</title><link>https://ixit.cz/blog/2022-07-21-wine-in-CI</link><guid>https://ixit.cz/blog/2022-07-21-wine-in-CI</guid><pubDate>Thu, 21 Jul 2022 00:00:00 +0000</pubDate><description><![CDATA[<h2>The Debian way</h2>
<p>When you suffice with the Debian wine version, you just do <code>apt install wine</code> and you're done. If your application doesn't need it, there is no need to install the whole 32-bit system. Beware, application often does.</p>
<h2>My Debian CI image is based on stable and we need new WINE...</h2>
<p>Then you have to go for <a href="https://wiki.winehq.org/Debian">Debian WINEHQ repository</a>.</p>
<h2>...but I don't want the 32-bit environment...</h2>
<p>Probably (?) for good reason (avoiding users' issues due to missing i386 environment, which many amd64 application components do use), WINE developers decided to force you to install 32-bit libraries. This in fact means, you have to install 32-bit multiarch.</p>
<p>We don't want to do that in our CI, which will run one 64-bit application (<a href="https://apitrace.github.io/">Apitrace</a>).</p>
<p>In this example, I'll use <code>wine-stable</code>.</p>
<p>We want to do the basic steps:</p>
<pre><code>apt-key add /winehq.gpg.key
apt-add-repository https://dl.winehq.org/wine-builds/debian/
apt-get -y install --no-install-recommends wine-stable-amd64</code></pre>
<p>and then continue with hacks to get debian the package right.</p>
<pre><code>apt download wine-stable
dpkg --ignore-depends=wine-stable-i386 -i wine-stable*.deb
rm wine-stable*.deb
sed -i "/wine-stable-i386/d" /var/lib/dpkg/status</code></pre>
<p>voila! It's not nice, but it does work.</p>]]></description></item><item><title>OnePlus 6T audio driver for 5.19</title><link>https://ixit.cz/blog/2022-07-20-OP6T-audio</link><guid>https://ixit.cz/blog/2022-07-20-OP6T-audio</guid><pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate><description><![CDATA[<p>The OnePlus 6 got upstream audio support a while ago, but the OnePlus 6T has no audio support for now.</p>
<p>A week ago I <a href="https://gitlab.com/sdm845-mainline/linux/-/merge_requests/36">sent merge request</a> for integration of the <a href="https://github.com/J0SH1X/tfa98xx/">downstream TFA98xx</a> driver for audio.</p>
<p>Since Linux 5.19 (<a href="https://gitlab.com/sdm845-mainline/linux/">the development kernel</a>, used in postmarketOS and Mobian) OnePlus 6T will also gain support for audio playback. It's not the final upstream Linux driver, but it's a step in getting to a fully functional phone.</p>
<p>The driver needs official firmware, available <a href="https://github.com/J0SH1X/tfa98xx/raw/mainline/tfa98xx.cnt">here</a>, but I assume at the time of the 5.19 release it will be packaged by both Mobian and postmarketOS.</p>
<p>While looking for an upstream driver repository, I noticed that there was an <a href="https://github.com/Goodix-vas/tfa98xx/">officially looking repository</a>, so I wrote a message to Goodix about considering upstreaming their driver officially. Sadly, they decided for now to <a href="https://github.com/Goodix-vas/tfa98xx/issues/1">not spend resources</a> on upstreaming.</p>]]></description></item></channel></rss>
