usb_c: pe: fix PE state on DRS sender response timeout#106455
Open
ncadieux wants to merge 1 commit intozephyrproject-rtos:mainfrom
Open
usb_c: pe: fix PE state on DRS sender response timeout#106455ncadieux wants to merge 1 commit intozephyrproject-rtos:mainfrom
ncadieux wants to merge 1 commit intozephyrproject-rtos:mainfrom
Conversation
When the SenderResponseTimer expires in PE_DRS_SEND_SWAP, PE was unconditionally transitioning to PE_SNK_READY. This is incorrect when the port is operating as a Source, as it should return to PE_SRC_READY. Replace pe_set_state(dev, PE_SNK_READY) with pe_set_ready_state(dev), which selects the correct ready state based on the current power role. Signed-off-by: Nicholas Cadieux <ncadieux@qti.qualcomm.com>
73e735a to
bd2d1c0
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



When the SenderResponseTimer expires in
PE_DRS_SEND_SWAP, the Policy Engine was unconditionally transitioning toPE_SNK_READY. This is incorrect when the port is operating as a Source, it should return toPE_SRC_READYinstead.Replace the hardcoded
pe_set_state(dev, PE_SNK_READY)withpe_set_ready_state(dev), which selects the correct ready state based on the current power role.This bug would cause a Source port to enter the wrong PE state after a rejected or timed-out Data Role Swap, potentially leading to a protocol error or Hard Reset.
Fixes: #106454