mirror of https://github.com/xemu-project/xemu.git
Fix signed/unsigned comparisons in OHCI host.
ADS7846 is partially compatible with TSC2046. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3635 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
3f9b2b1f63
commit
87283515f5
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* TI ADS7846 chip emulation.
|
* TI ADS7846 / TSC2046 chip emulation.
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006 Openedhand Ltd.
|
* Copyright (c) 2006 Openedhand Ltd.
|
||||||
* Written by Andrzej Zaborowski <balrog@zabor.org>
|
* Written by Andrzej Zaborowski <balrog@zabor.org>
|
||||||
|
|
|
@ -739,7 +739,7 @@ static int ohci_service_iso_td(OHCIState *ohci, struct ohci_ed *ed,
|
||||||
OHCI_CC_NOERROR);
|
OHCI_CC_NOERROR);
|
||||||
OHCI_SET_BM(iso_td.offset[relative_frame_number], TD_PSW_SIZE, 0);
|
OHCI_SET_BM(iso_td.offset[relative_frame_number], TD_PSW_SIZE, 0);
|
||||||
} else {
|
} else {
|
||||||
if (ret > len) {
|
if (ret > (ssize_t) len) {
|
||||||
printf("usb-ohci: DataOverrun %d > %zu\n", ret, len);
|
printf("usb-ohci: DataOverrun %d > %zu\n", ret, len);
|
||||||
OHCI_SET_BM(iso_td.offset[relative_frame_number], TD_PSW_CC,
|
OHCI_SET_BM(iso_td.offset[relative_frame_number], TD_PSW_CC,
|
||||||
OHCI_CC_DATAOVERRUN);
|
OHCI_CC_DATAOVERRUN);
|
||||||
|
@ -865,7 +865,7 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed)
|
||||||
dprintf(" TD @ 0x%.8x %u bytes %s r=%d cbp=0x%.8x be=0x%.8x\n",
|
dprintf(" TD @ 0x%.8x %u bytes %s r=%d cbp=0x%.8x be=0x%.8x\n",
|
||||||
addr, len, str, flag_r, td.cbp, td.be);
|
addr, len, str, flag_r, td.cbp, td.be);
|
||||||
|
|
||||||
if (len >= 0 && dir != OHCI_TD_DIR_IN) {
|
if (len > 0 && dir != OHCI_TD_DIR_IN) {
|
||||||
dprintf(" data:");
|
dprintf(" data:");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
printf(" %.2x", ohci->usb_buf[i]);
|
printf(" %.2x", ohci->usb_buf[i]);
|
||||||
|
@ -1062,7 +1062,8 @@ static void ohci_process_lists(OHCIState *ohci, int completion)
|
||||||
{
|
{
|
||||||
if ((ohci->ctl & OHCI_CTL_CLE) && (ohci->status & OHCI_STATUS_CLF)) {
|
if ((ohci->ctl & OHCI_CTL_CLE) && (ohci->status & OHCI_STATUS_CLF)) {
|
||||||
if (ohci->ctrl_cur && ohci->ctrl_cur != ohci->ctrl_head)
|
if (ohci->ctrl_cur && ohci->ctrl_cur != ohci->ctrl_head)
|
||||||
dprintf("usb-ohci: head %x, cur %x\n", ohci->ctrl_head, ohci->ctrl_cur);
|
dprintf("usb-ohci: head %x, cur %x\n",
|
||||||
|
ohci->ctrl_head, ohci->ctrl_cur);
|
||||||
if (!ohci_service_ed_list(ohci, ohci->ctrl_head, completion)) {
|
if (!ohci_service_ed_list(ohci, ohci->ctrl_head, completion)) {
|
||||||
ohci->ctrl_cur = 0;
|
ohci->ctrl_cur = 0;
|
||||||
ohci->status &= ~OHCI_STATUS_CLF;
|
ohci->status &= ~OHCI_STATUS_CLF;
|
||||||
|
|
Loading…
Reference in New Issue