-
- Downloads
usb: fusb302: WAR for sending contol packets during PR_SWAP
Fairchild chip cannot send control packets when
TOGDONE interrupt is enabled. Since, TOGDONE is not
needed during PR_SWAP as CC pin is manupulated, do
not enable TOGDONE interrupt to unblock chip on sending
the control messages (i.e) PS_RDY or else the chip
times out while sending the control message.
[ 339.160823] state change SRC_READY -> PR_SWAP_SEND
[ 339.163264] PD TX, header: 0xb6a
[ 339.167324] PD TX complete, status: 0
[ 339.167430] pending state change PR_SWAP_SEND -> PR_SWAP_SEND_TIMEOUT @ 60 ms
[ 339.170034] PD RX, header: 0x643 [1]
[ 339.170044] state change PR_SWAP_SEND -> PR_SWAP_START
[ 339.170074] pending state change PR_SWAP_START -> PR_SWAP_SRC_SNK_TRANSITION_OFF @ 35 ms
[ 339.206735] state change PR_SWAP_START -> PR_SWAP_SRC_SNK_TRANSITION_OFF [delayed 35 ms]
[ 339.206749] vbus:=0 charge=0
[ 339.206885] pending state change PR_SWAP_SRC_SNK_TRANSITION_OFF -> PR_SWAP_SRC_SNK_SOURCE_OFF @ 920 ms
[ 339.208394] VBUS off
[ 339.208399] state change PR_SWAP_SRC_SNK_TRANSITION_OFF -> PR_SWAP_SRC_SNK_SOURCE_OFF
[ 339.208413] cc:=2
[ 339.212535] PD TX, header: 0xd66
// chip times out sending the
[ 339.313335] state change PR_SWAP_SRC_SNK_SOURCE_OFF -> ERROR_RECOVERY
[ 339.320588] Setting voltage/current limit 0 mV 0 mA
[ 339.320610] polarity 0
[ 339.321003] cc:=0
[ 339.322475] pending state change ERROR_RECOVERY -> ERROR_RECOVERY_WAIT_OFF @ 100 ms
[ 339.419997] state change ERROR_RECOVERY -> ERROR_RECOVERY_WAIT_OFF [delayed 100 ms]
[ 339.420005] state change ERROR_RECOVERY_WAIT_OFF -> SNK_UNATTACHED
[ 339.420007] Start DRP toggling
The TOGDONE interrupt is not always expected to happen either as
both the local and remote end can be Rd-Rd when PR_SWAP is in
progress.
Bug: 62492793
Signed-off-by:
Badhri Jagan Sridharan <Badhri@google.com>
Loading
Please register or sign in to comment