usb: Fix error handling in musb_hcd.c
The wait_until_[rx|tx]ep_ready functions return a u8 to indicate success containing the value 0, 1 or -1. This patch changes the return type to an int to accommodate the negative return values. These functions are used in the file using calls such as if (!wait_until... Where a -1 is returned it is mishandled and treated as success instead of a CRC error. This patch addresses this. Cc: Marek Vasut <marex@denx.de> Cc: Tom Rini <trini@ti.com> Signed-off-by: Andrew Murray <amurray@embedded-bits.co.uk> Acked-by: Marek Vasut <marex@denx.de>
This commit is contained in:
parent
6478cde618
commit
ddd025bb6e
|
@ -267,7 +267,7 @@ static int wait_until_ep0_ready(struct usb_device *dev, u32 bit_mask)
|
|||
/*
|
||||
* waits until tx ep is ready. Returns 1 when ep is ready and 0 on error.
|
||||
*/
|
||||
static u8 wait_until_txep_ready(struct usb_device *dev, u8 ep)
|
||||
static int wait_until_txep_ready(struct usb_device *dev, u8 ep)
|
||||
{
|
||||
u16 csr;
|
||||
int timeout = CONFIG_MUSB_TIMEOUT;
|
||||
|
@ -299,7 +299,7 @@ static u8 wait_until_txep_ready(struct usb_device *dev, u8 ep)
|
|||
/*
|
||||
* waits until rx ep is ready. Returns 1 when ep is ready and 0 on error.
|
||||
*/
|
||||
static u8 wait_until_rxep_ready(struct usb_device *dev, u8 ep)
|
||||
static int wait_until_rxep_ready(struct usb_device *dev, u8 ep)
|
||||
{
|
||||
u16 csr;
|
||||
int timeout = CONFIG_MUSB_TIMEOUT;
|
||||
|
@ -1009,7 +1009,7 @@ int submit_bulk_msg(struct usb_device *dev, unsigned long pipe,
|
|||
writew(csr | MUSB_TXCSR_TXPKTRDY, &musbr->txcsr);
|
||||
|
||||
/* Wait until the TxPktRdy bit is cleared */
|
||||
if (!wait_until_txep_ready(dev, MUSB_BULK_EP)) {
|
||||
if (wait_until_txep_ready(dev, MUSB_BULK_EP) != 1) {
|
||||
readw(&musbr->txcsr);
|
||||
usb_settoggle(dev, ep, dir_out,
|
||||
(csr >> MUSB_TXCSR_H_DATATOGGLE_SHIFT) & 1);
|
||||
|
@ -1044,7 +1044,7 @@ int submit_bulk_msg(struct usb_device *dev, unsigned long pipe,
|
|||
writew(csr | MUSB_RXCSR_H_REQPKT, &musbr->rxcsr);
|
||||
|
||||
/* Wait until the RxPktRdy bit is set */
|
||||
if (!wait_until_rxep_ready(dev, MUSB_BULK_EP)) {
|
||||
if (wait_until_rxep_ready(dev, MUSB_BULK_EP) != 1) {
|
||||
csr = readw(&musbr->rxcsr);
|
||||
usb_settoggle(dev, ep, dir_out,
|
||||
(csr >> MUSB_S_RXCSR_H_DATATOGGLE) & 1);
|
||||
|
@ -1217,7 +1217,7 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe,
|
|||
writew(csr | MUSB_RXCSR_H_REQPKT, &musbr->rxcsr);
|
||||
|
||||
/* Wait until the RxPktRdy bit is set */
|
||||
if (!wait_until_rxep_ready(dev, MUSB_INTR_EP)) {
|
||||
if (wait_until_rxep_ready(dev, MUSB_INTR_EP) != 1) {
|
||||
csr = readw(&musbr->rxcsr);
|
||||
usb_settoggle(dev, ep, dir_out,
|
||||
(csr >> MUSB_S_RXCSR_H_DATATOGGLE) & 1);
|
||||
|
|
Loading…
Reference in New Issue