*/
struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, unsigned ifnum)
{
+ struct usb_host_config *config = dev->actconfig;
int i;
- for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++)
- if (dev->actconfig->interface[i]->altsetting[0]
+ if (!config)
+ return NULL;
+ for (i = 0; i < config->desc.bNumInterfaces; i++)
+ if (config->interface[i]->altsetting[0]
.desc.bInterfaceNumber == ifnum)
- return dev->actconfig->interface[i];
+ return config->interface[i];
return NULL;
}
struct usb_endpoint_descriptor *
usb_epnum_to_ep_desc(struct usb_device *dev, unsigned epnum)
{
+ struct usb_host_config *config = dev->actconfig;
int i, k;
- for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {
+ if (!config)
+ return NULL;
+ for (i = 0; i < config->desc.bNumInterfaces; i++) {
struct usb_interface *intf;
struct usb_host_interface *alt;
- /* only endpoints in current altseting are active */
- intf = dev->actconfig->interface[i];
+ /* only endpoints in current altsetting are active */
+ intf = config->interface[i];
alt = intf->altsetting + intf->act_altsetting;
for (k = 0; k < alt->desc.bNumEndpoints; k++)