Also, pass in usbdev to usb_free_pipe().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
return 0;
fail:
dprintf(1, "Unable to configure USB MSC device.\n");
- free_pipe(inpipe);
- free_pipe(outpipe);
+ usb_free_pipe(usbdev, inpipe);
+ usb_free_pipe(usbdev, outpipe);
return -1;
}
return 0;
fail:
- free_pipe(command);
- free_pipe(status);
- free_pipe(data_in);
- free_pipe(data_out);
+ usb_free_pipe(usbdev, command);
+ usb_free_pipe(usbdev, status);
+ usb_free_pipe(usbdev, data_in);
+ usb_free_pipe(usbdev, data_out);
return -1;
}
case USB_TYPE_XHCI:
return xhci_update_pipe(usbdev, pipe, epdesc);
default:
- free_pipe(pipe);
+ usb_free_pipe(usbdev, pipe);
return usb_alloc_pipe(usbdev, epdesc);
}
}
// Free an allocated control or bulk pipe.
void
-free_pipe(struct usb_pipe *pipe)
+usb_free_pipe(struct usbdevice_s *usbdev, struct usb_pipe *pipe)
{
ASSERT32FLAT();
if (!pipe)
req.wLength = 0;
int ret = usb_send_default_control(usbdev->defpipe, &req, NULL);
if (ret) {
- free_pipe(usbdev->defpipe);
+ usb_free_pipe(usbdev, usbdev->defpipe);
return -1;
}
// Configure the device
int count = configure_usb_device(usbdev);
- free_pipe(usbdev->defpipe);
+ usb_free_pipe(usbdev, usbdev->defpipe);
if (!count)
hub->op->disconnect(hub, port);
hub->devcount += count;
int usb_32bit_pipe(struct usb_pipe *pipe_fl);
int usb_send_default_control(struct usb_pipe *pipe
, const struct usb_ctrlrequest *req, void *data);
-void free_pipe(struct usb_pipe *pipe);
+void usb_free_pipe(struct usbdevice_s *usbdev, struct usb_pipe *pipe);
struct usb_pipe *usb_getFreePipe(struct usb_s *cntl, u8 eptype);
void usb_desc2pipe(struct usb_pipe *pipe, struct usbdevice_s *usbdev
, struct usb_endpoint_descriptor *epdesc);