remove get_endpoint_descriptor and change all functions needing

descriptor to just receive it as argument rather than endpoint
	address.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2013-03-19 11:19:36 +01:00
parent 5dd6f58789
commit e5a2dd7b55
11 changed files with 51 additions and 70 deletions

View file

@ -124,7 +124,7 @@ grub_usbserial_fetch (struct grub_serial_port *port, grub_size_t header_size)
if (port->bufstart < port->bufend)
return port->buf[port->bufstart++];
err = grub_usb_bulk_read_extended (port->usbdev, port->in_endp->endp_addr,
err = grub_usb_bulk_read_extended (port->usbdev, port->in_endp,
sizeof (port->buf), port->buf, 10,
&actual);
if (err != GRUB_USB_ERR_NONE)

View file

@ -128,7 +128,7 @@ ftdi_hw_put (struct grub_serial_port *port, const int c)
real_config (port);
grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
}
static grub_err_t

View file

@ -146,7 +146,7 @@ pl2303_hw_put (struct grub_serial_port *port, const int c)
real_config (port);
grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
}
static grub_err_t

View file

@ -41,7 +41,7 @@ usbdebug_late_hw_put (struct grub_serial_port *port, const int c)
{
char cc = c;
grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
}
static grub_err_t

View file

@ -147,31 +147,6 @@ grub_usb_get_descriptor (grub_usb_device_t dev,
0, size, data);
}
struct grub_usb_desc_endp *
grub_usb_get_endpdescriptor (grub_usb_device_t usbdev, int addr)
{
int i;
for (i = 0; i < usbdev->config[0].descconf->numif; i++)
{
struct grub_usb_desc_if *interf;
int j;
interf = usbdev->config[0].interf[i].descif;
for (j = 0; j < interf->endpointcnt; j++)
{
struct grub_usb_desc_endp *endp;
endp = &usbdev->config[0].interf[i].descendp[j];
if (endp->endp_addr == addr)
return endp;
}
}
return NULL;
}
grub_usb_err_t
grub_usb_device_initialize (grub_usb_device_t dev)
{

View file

@ -173,7 +173,7 @@ grub_usb_add_hub (grub_usb_device_t dev)
if (len > sizeof (dev->statuschange))
len = sizeof (dev->statuschange);
dev->hub_transfer
= grub_usb_bulk_read_background (dev, endp->endp_addr, len,
= grub_usb_bulk_read_background (dev, endp, len,
(char *) &dev->statuschange);
break;
}
@ -342,7 +342,7 @@ poll_nonroot_hub (grub_usb_device_t dev)
if (len > sizeof (dev->statuschange))
len = sizeof (dev->statuschange);
dev->hub_transfer
= grub_usb_bulk_read_background (dev, dev->hub_endpoint->endp_addr, len,
= grub_usb_bulk_read_background (dev, dev->hub_endpoint, len,
(char *) &dev->statuschange);
if (err || actual == 0 || changed == 0)

View file

@ -27,21 +27,14 @@
static inline unsigned int
grub_usb_bulk_maxpacket (grub_usb_device_t dev, int endpoint)
grub_usb_bulk_maxpacket (grub_usb_device_t dev,
struct grub_usb_desc_endp *endpoint)
{
unsigned int max = 64;
/* Use the maximum packet size given in the endpoint descriptor. */
if (dev->initialized)
{
struct grub_usb_desc_endp *endpdesc;
endpdesc = grub_usb_get_endpdescriptor (dev, endpoint);
if (dev->initialized && endpoint)
return endpoint->maxpacket;
if (endpdesc)
max = endpdesc->maxpacket;
}
return max;
return 64;
}
@ -219,7 +212,8 @@ grub_usb_control_msg (grub_usb_device_t dev,
static grub_usb_transfer_t
grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
int endpoint, grub_size_t size0, char *data_in,
struct grub_usb_desc_endp *endpoint,
grub_size_t size0, char *data_in,
grub_transfer_type_t type)
{
int i;
@ -230,7 +224,7 @@ grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
grub_uint32_t data_addr;
struct grub_pci_dma_chunk *data_chunk;
grub_size_t size = size0;
int toggle = dev->toggle[endpoint];
int toggle = dev->toggle[endpoint->endp_addr];
grub_dprintf ("usb", "bulk: size=0x%02lx type=%d\n", (unsigned long) size,
type);
@ -257,7 +251,7 @@ grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
datablocks = ((size + max - 1) / max);
transfer->transcnt = datablocks;
transfer->size = size - 1;
transfer->endpoint = endpoint;
transfer->endpoint = endpoint->endp_addr;
transfer->devaddr = dev->addr;
transfer->type = GRUB_USB_TRANSACTION_TYPE_BULK;
transfer->dir = type;
@ -323,7 +317,8 @@ grub_usb_bulk_finish_readwrite (grub_usb_transfer_t transfer)
static grub_usb_err_t
grub_usb_bulk_readwrite (grub_usb_device_t dev,
int endpoint, grub_size_t size0, char *data_in,
struct grub_usb_desc_endp *endpoint,
grub_size_t size0, char *data_in,
grub_transfer_type_t type, int timeout,
grub_size_t *actual)
{
@ -343,7 +338,7 @@ grub_usb_bulk_readwrite (grub_usb_device_t dev,
static grub_usb_err_t
grub_usb_bulk_readwrite_packetize (grub_usb_device_t dev,
int endpoint,
struct grub_usb_desc_endp *endpoint,
grub_transfer_type_t type,
grub_size_t size, char *data)
{
@ -380,7 +375,8 @@ grub_usb_bulk_readwrite_packetize (grub_usb_device_t dev,
grub_usb_err_t
grub_usb_bulk_write (grub_usb_device_t dev,
int endpoint, grub_size_t size, char *data)
struct grub_usb_desc_endp *endpoint,
grub_size_t size, char *data)
{
return grub_usb_bulk_readwrite_packetize (dev, endpoint,
GRUB_USB_TRANSFER_TYPE_OUT,
@ -389,7 +385,8 @@ grub_usb_bulk_write (grub_usb_device_t dev,
grub_usb_err_t
grub_usb_bulk_read (grub_usb_device_t dev,
int endpoint, grub_size_t size, char *data)
struct grub_usb_desc_endp *endpoint,
grub_size_t size, char *data)
{
return grub_usb_bulk_readwrite_packetize (dev, endpoint,
GRUB_USB_TRANSFER_TYPE_IN,
@ -414,7 +411,8 @@ grub_usb_check_transfer (grub_usb_transfer_t transfer, grub_size_t *actual)
grub_usb_transfer_t
grub_usb_bulk_read_background (grub_usb_device_t dev,
int endpoint, grub_size_t size, void *data)
struct grub_usb_desc_endp *endpoint,
grub_size_t size, void *data)
{
grub_usb_err_t err;
grub_usb_transfer_t transfer;
@ -441,7 +439,8 @@ grub_usb_cancel_transfer (grub_usb_transfer_t transfer)
grub_usb_err_t
grub_usb_bulk_read_extended (grub_usb_device_t dev,
int endpoint, grub_size_t size, char *data,
struct grub_usb_desc_endp *endpoint,
grub_size_t size, char *data,
int timeout, grub_size_t *actual)
{
return grub_usb_bulk_readwrite (dev, endpoint, size, data,