Changeset 481dec00 in mainline
- Timestamp:
- 2011-12-06T21:48:35Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b25199bc
- Parents:
- 2963a0d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/root_hub.c
r2963a0d r481dec00 487 487 case USB_DESCTYPE_HUB: 488 488 usb_log_debug2("USB_DESCTYPE_HUB\n"); 489 /* Hub descriptor was generated locally */ 489 /* Hub descriptor was generated locally. 490 * Class specific request. */ 490 491 TRANSFER_END_DATA(request, instance->descriptors.hub, 491 492 instance->hub_descriptor_size); … … 493 494 case USB_DESCTYPE_DEVICE: 494 495 usb_log_debug2("USB_DESCTYPE_DEVICE\n"); 495 /* Device descriptor is shared (No one should ask for it) */ 496 /* Device descriptor is shared 497 * (No one should ask for it, as the device is already setup) 498 * Standard USB device request. */ 496 499 TRANSFER_END_DATA(request, &ohci_rh_device_descriptor, 497 500 sizeof(ohci_rh_device_descriptor)); … … 500 503 usb_log_debug2("USB_DESCTYPE_CONFIGURATION\n"); 501 504 /* Start with configuration and add others depending on 502 * request size */505 * request size. Standard USB request. */ 503 506 TRANSFER_END_DATA(request, &instance->descriptors, 504 507 instance->descriptors.configuration.total_length); … … 507 510 usb_log_debug2("USB_DESCTYPE_INTERFACE\n"); 508 511 /* Use local interface descriptor. There is one and it 509 * might be modified */ 512 * might be modified. Hub driver should not ask or this 513 * descriptor as it is not part of standard requests set. */ 510 514 TRANSFER_END_DATA(request, &instance->descriptors.interface, 511 515 sizeof(instance->descriptors.interface)); … … 513 517 case USB_DESCTYPE_ENDPOINT: 514 518 /* Use local endpoint descriptor. There is one 515 * it might have max_packet_size field modified*/ 519 * it might have max_packet_size field modified. Hub driver 520 * should not ask for this descriptor as it is not part 521 * of standard requests set. */ 516 522 usb_log_debug2("USB_DESCTYPE_ENDPOINT\n"); 517 523 TRANSFER_END_DATA(request, &instance->descriptors.endpoint, … … 658 664 usb_log_error("Invalid HUB set feature request.\n"); 659 665 TRANSFER_END(request, ENOTSUP); 666 //TODO: Consider standard USB requests: REMOTE WAKEUP, ENDPOINT STALL 660 667 default: 661 668 usb_log_error("Invalid set feature request type: %d\n", 662 669 setup_request->request_type); 663 TRANSFER_END(request, E INVAL);670 TRANSFER_END(request, ENOTSUP); 664 671 } 665 672 } … … 703 710 TRANSFER_END(request, EOK); 704 711 } 712 //TODO: Consider standard USB requests: REMOTE WAKEUP, ENDPOINT STALL 705 713 default: 706 714 usb_log_error("Invalid clear feature request type: %d\n", 707 715 setup_request->request_type); 708 TRANSFER_END(request, E INVAL);716 TRANSFER_END(request, ENOTSUP); 709 717 } 710 718 } … … 777 785 778 786 case USB_DEVREQ_SET_ADDRESS: 779 usb_log_debug("USB_DEVREQ_SET_ADDRESS\n"); 787 usb_log_debug("USB_DEVREQ_SET_ADDRESS: %u\n", 788 setup_request->value); 789 if (uint16_usb2host(setup_request->value) > 127) 790 TRANSFER_END(request, EINVAL); 791 780 792 instance->address = setup_request->value; 781 793 TRANSFER_END(request, EOK); 782 794 783 795 case USB_DEVREQ_SET_CONFIGURATION: 784 usb_log_debug("USB_DEVREQ_SET_CONFIGURATION\n"); 785 /* We don't need to do anything */ 796 usb_log_debug("USB_DEVREQ_SET_CONFIGURATION: %u\n", 797 setup_request->value); 798 /* We have only one configuration, it's number is 1 */ 799 if (uint16_usb2host(setup_request->value) != 1) 800 TRANSFER_END(request, EINVAL); 786 801 TRANSFER_END(request, EOK); 787 802 788 case USB_DEVREQ_SET_DESCRIPTOR: /* Not supported by OHCI RH */ 803 /* Both class specific and std is optional for hubs */ 804 case USB_DEVREQ_SET_DESCRIPTOR: 805 /* Hubs have only one interface GET/SET is not supported */ 806 case USB_DEVREQ_GET_INTERFACE: 807 case USB_DEVREQ_SET_INTERFACE: 789 808 default: 809 /* Hub class GET_STATE(2) falls in here too. */ 790 810 usb_log_error("Received unsupported request: %d.\n", 791 811 setup_request->request);
Note:
See TracChangeset
for help on using the changeset viewer.