uhid_snes: Remove USB_ST_TRANSFERRED handling for the status request.

The result of the request computed in new_status was never returned to
the caller leaving new_status as a set-but-unused variable.  Removing
new_status leaves sc->previous_status as a write-only variable.
Removing sc->previous_status leaves current_status as a write-only
variable, so it collapses down to removing the entire
USB_ST_TRANSFERRED case.

Arguably, all of the support for UHID_SNES_STATUS_DT_RD should be
removed as it doesn't return anything to the caller.  If the request
should be fixed instead then this commit should be reverted and
new_status should be returned to whoever submitted the request.

Differential Revision:	https://reviews.freebsd.org/D34840
This commit is contained in:
John Baldwin 2022-04-18 12:27:48 -07:00
parent 7c1ff7146b
commit 540ac338d5

View File

@ -94,7 +94,6 @@ struct uhid_snes_softc {
int sc_fflags;
struct usb_fifo *sc_fifo_open[2];
uint8_t sc_zero_length_packets;
uint8_t sc_previous_status;
uint8_t sc_iid;
uint8_t sc_oid;
uint8_t sc_fid;
@ -498,7 +497,6 @@ uhid_snes_status_callback(struct usb_xfer *transfer, usb_error_t error)
struct uhid_snes_softc *sc = usbd_xfer_softc(transfer);
struct usb_device_request req;
struct usb_page_cache *pc;
uint8_t current_status, new_status;
switch (USB_GET_STATE(transfer)) {
case USB_ST_SETUP:
@ -517,13 +515,6 @@ uhid_snes_status_callback(struct usb_xfer *transfer, usb_error_t error)
usbd_transfer_submit(transfer);
break;
case USB_ST_TRANSFERRED:
pc = usbd_xfer_get_frame(transfer, 1);
usbd_copy_out(pc, 0, &current_status, 1);
new_status = current_status & ~sc->sc_previous_status;
sc->sc_previous_status = current_status;
break;
default:
break;
}