diff options
| author | Jack Pham <jackp@codeaurora.org> | 2016-10-31 15:52:11 -0700 |
|---|---|---|
| committer | Jack Pham <jackp@codeaurora.org> | 2016-11-01 15:54:59 -0700 |
| commit | 9d735f227869417635bb126a4aa0382d45ec8df3 (patch) | |
| tree | 1a2d07b0de5797ea9df0b36715220b602f2e57f6 /drivers/devfreq/devfreq.c | |
| parent | 015c20d6be498433ab180a8aed1eca3c53936c8b (diff) | |
usb: pd: Implement RX message queuing
Add a queue to store messages in the phy_msg_received() callback.
This eliminates the call to flush_work() and allows for more
robust handling of incoming messages especially if they arrive
while the usbpd_sm work function is in progress.
In particular this fixes a bug seen when a REQUEST message is
received just after sending a SRC_CAPABILITIES, but since there
may not be a previous message, flush_work() is not called, and the
end of usbpd_sm() overwrites pd->rx_msg_type and pd->rx_msg_len
to 0. As a result, when usbpd_sm() is run again, it will see no
message and proceed to SRC_HARD_RESET.
Change-Id: I4510f91e7d23ab161517c13702462da4ec8d7a2e
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Diffstat (limited to 'drivers/devfreq/devfreq.c')
0 files changed, 0 insertions, 0 deletions
