yes
All checks were successful
Build kernel module / build (1:6.18.34-1+rpt1, trixie) (pull_request) Successful in 1m23s
Build kernel module / build (1:6.12.93-1+rpt1, bookworm) (pull_request) Successful in 1m24s
Build kernel module / package (pull_request) Successful in 17s
Build kernel module / release (pull_request) Has been skipped
All checks were successful
Build kernel module / build (1:6.18.34-1+rpt1, trixie) (pull_request) Successful in 1m23s
Build kernel module / build (1:6.12.93-1+rpt1, bookworm) (pull_request) Successful in 1m24s
Build kernel module / package (pull_request) Successful in 17s
Build kernel module / release (pull_request) Has been skipped
This commit is contained in:
parent
b2e4f9710d
commit
63adefea86
@ -242,7 +242,16 @@ static enum iec_rx receive_byte(u8 *out, bool *eoi, bool data_phase)
|
||||
value |= (1u << i);
|
||||
}
|
||||
|
||||
/* 4. BYTE ACKNOWLEDGE: pull DATA low (Tf), hold for the next RFD */
|
||||
/* 4. BYTE ACKNOWLEDGE: wait for the talker to pull CLK low at end of
|
||||
* byte (mirrors the reference listener), THEN pull DATA low (Tf).
|
||||
* Without this wait we would assert the ack while CLK is still high
|
||||
* from bit 7, racing the talker's end-of-byte edge and desyncing the
|
||||
* handshake. The next receive_byte() releases DATA after CLK goes high
|
||||
* again (RFD), completing the per-byte handshake. */
|
||||
rc = wait_clk(true /* asserted: talker finished the byte */,
|
||||
IEC_CLK_TIMEOUT_US, data_phase);
|
||||
if (rc != IEC_RX_OK)
|
||||
goto out;
|
||||
iec_data_assert();
|
||||
*out = value;
|
||||
rc = IEC_RX_OK;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user