Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b900d579 authored by Hemmo Nieminen's avatar Hemmo Nieminen Committed by Greg Kroah-Hartman
Browse files

staging: rtl8712: Improve suspend/resume functionality.



Fix a driver hang caused by earlier suspend/resume cycles. By handling a
ENODEV error during suspend as a real error we eventually end up stopping
the whole driver.

Fix this by handling the ENODEV error (during suspend) essentially by
retrying.

Signed-off-by: default avatarHemmo Nieminen <hemmo.nieminen@iki.fi>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f99ca866
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -228,16 +228,18 @@ static void r8712_usb_read_port_complete(struct urb *purb)
		}
	} else {
		switch (purb->status) {
		case -ENOENT:
			if (padapter->bSuspended)
				break;
			/* Fall through. */
		case -EINVAL:
		case -EPIPE:
		case -ENODEV:
		case -ESHUTDOWN:
			padapter->bDriverStopped = true;
			break;
		case -ENOENT:
			if (!padapter->bSuspended) {
				padapter->bDriverStopped = true;
				break;
			}
			/* Fall through. */
		case -EPROTO:
			precvbuf->reuse = true;
			r8712_read_port(padapter, precvpriv->ff_hwaddr, 0,