[OpenBIOS] [PATCH] ppc: fix CUDA autopoll packet handling
Cormac O'Brien
cormac at c-obrien.org
Sun Jul 19 22:44:10 CEST 2015
QEMU's CUDA packet handling model has been updated to provide a correct 3-byte
header. This patch allows OpenBIOS to handle this special case correctly.
Signed-off-by: Cormac O'Brien <cormac at c-obrien.org>
---
drivers/cuda.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/cuda.c b/drivers/cuda.c
index 9555dea..5fe75a4 100644
--- a/drivers/cuda.c
+++ b/drivers/cuda.c
@@ -58,6 +58,7 @@
#define CUDA_PACKET 1
/* CUDA commands (2nd byte) */
+#define CUDA_AUTOPOLL 0x01
#define CUDA_GET_TIME 0x03
#define CUDA_SET_TIME 0x09
#define CUDA_POWERDOWN 0x0a
@@ -147,8 +148,14 @@ static int cuda_adb_req (void *host, const uint8_t *snd_buf, int len,
pos = buffer + 2;
len -= 2;
} else {
- pos = buffer + 1;
- len = -1;
+ /* Autopoll packet headers are 3 bytes */
+ if (len > 2 && buffer[1] == CUDA_AUTOPOLL) {
+ pos = buffer + 3;
+ len -= 3;
+ } else {
+ pos = buffer + 1;
+ len = -1;
+ }
}
memcpy(rcv_buf, pos, len);
--
2.4.6
More information about the OpenBIOS
mailing list