Skip to content

Fix stale PTT pin used when PttHidraw reopens the HID device - #804

Open
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-ptthidraw-stale-pin
Open

Fix stale PTT pin used when PttHidraw reopens the HID device#804
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-ptthidraw-stale-pin

Conversation

@MarkRose

Copy link
Copy Markdown
Contributor
  • PttHidraw::setTxOn() built its 5-byte HID GPIO report from m_pin
    before checking whether the device needed to be reopened. When a
    prior write() failure had closed the device, closeDevice() resets
    m_pin to 0, so the very next setTxOn(true) call assembled a no-op
    report (all zero GPIO bits) using the stale m_pin, and only
    afterwards reopened the device and restored the real pin mask. The
    no-op report was written successfully and setTxOn() returned true,
    so the caller believed PTT had been keyed while the GPIO line never
    actually changed. Fixed by reopening the device (and thus
    refreshing m_pin/m_active_low) before building the report, so the
    report always reflects the currently configured pin.

Co-Authored-By: Claude Opus 4.8 [email protected]

- PttHidraw::setTxOn() built its 5-byte HID GPIO report from m_pin
  before checking whether the device needed to be reopened. When a
  prior write() failure had closed the device, closeDevice() resets
  m_pin to 0, so the very next setTxOn(true) call assembled a no-op
  report (all zero GPIO bits) using the stale m_pin, and only
  afterwards reopened the device and restored the real pin mask. The
  no-op report was written successfully and setTxOn() returned true,
  so the caller believed PTT had been keyed while the GPIO line never
  actually changed. Fixed by reopening the device (and thus
  refreshing m_pin/m_active_low) before building the report, so the
  report always reflects the currently configured pin.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@MarkRose MarkRose closed this Jul 12, 2026
@MarkRose MarkRose reopened this Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant