Changes in uspace/drv/usbhid/main.c [b43bcf1:03197ffc] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/main.c
rb43bcf1 r03197ffc 45 45 #include <str_error.h> 46 46 #include <fibril.h> 47 #include <usb/debug.h>48 #include <usb/classes/classes.h>49 47 #include <usb/classes/hid.h> 50 48 #include <usb/classes/hidparser.h> … … 63 61 #define GUESSED_POLL_ENDPOINT 1 64 62 65 /** Keyboard polling endpoint description for boot protocol class. */66 static usb_endpoint_description_t poll_endpoint_description = {67 .transfer_type = USB_TRANSFER_INTERRUPT,68 .direction = USB_DIRECTION_IN,69 .interface_class = USB_CLASS_HID,70 .interface_subclass = USB_HID_SUBCLASS_BOOT,71 .interface_protocol = USB_HID_PROTOCOL_KEYBOARD,72 .flags = 073 };74 75 63 static void default_connection_handler(device_t *, ipc_callid_t, ipc_call_t *); 76 64 static device_ops_t keyboard_ops = { … … 342 330 } 343 331 344 /*345 * Initialize the interrupt in endpoint.346 */347 usb_endpoint_mapping_t endpoint_mapping[1] = {348 {349 .pipe = &kbd_dev->poll_pipe,350 .description = &poll_endpoint_description351 }352 };353 rc = usb_endpoint_pipe_initialize_from_configuration(354 endpoint_mapping, 1,355 descriptors, config_desc.total_length,356 &kbd_dev->wire);357 if (rc != EOK) {358 usb_log_error("Failed to initialize poll pipe: %s.\n",359 str_error(rc));360 return rc;361 }362 if (!endpoint_mapping[0].present) {363 usb_log_warning("Not accepting device, " \364 "not boot-protocol keyboard.\n");365 return EREFUSED;366 }367 368 369 370 371 332 kbd_dev->conf = (usb_hid_configuration_t *)calloc(1, 372 333 sizeof(usb_hid_configuration_t)); … … 376 337 } 377 338 378 /*rc = usbkbd_parse_descriptors(descriptors, transferred, kbd_dev->conf);339 rc = usbkbd_parse_descriptors(descriptors, transferred, kbd_dev->conf); 379 340 free(descriptors); 380 341 if (rc != EOK) { … … 383 344 } 384 345 385 // get and report descriptors */346 // get and report descriptors 386 347 rc = usbkbd_get_report_descriptor(kbd_dev); 387 348 if (rc != EOK) { … … 400 361 * as the endpoint for polling 401 362 */ 402 363 403 364 return EOK; 404 365 } … … 435 396 if (rc != EOK) { 436 397 printf("Failed to initialize default control pipe: %s.\n", 398 str_error(rc)); 399 goto error_leave; 400 } 401 402 rc = usb_endpoint_pipe_initialize(&kbd_dev->poll_pipe, &kbd_dev->wire, 403 GUESSED_POLL_ENDPOINT, USB_TRANSFER_INTERRUPT, USB_DIRECTION_IN); 404 if (rc != EOK) { 405 printf("Failed to initialize interrupt in pipe: %s.\n", 437 406 str_error(rc)); 438 407 goto error_leave; … … 449 418 usb_endpoint_pipe_start_session(&kbd_dev->ctrl_pipe); 450 419 //usb_request_set_configuration(&kbd_dev->ctrl_pipe, 1); 451 rc =usbkbd_process_descriptors(kbd_dev);420 usbkbd_process_descriptors(kbd_dev); 452 421 usb_endpoint_pipe_end_session(&kbd_dev->ctrl_pipe); 453 if (rc != EOK) {454 goto error_leave;455 }456 422 457 423 return kbd_dev; … … 611 577 int main(int argc, char *argv[]) 612 578 { 613 usb_log_enable(USB_LOG_LEVEL_INFO, "usbhid");614 579 return driver_main(&kbd_driver); 615 580 }
Note:
See TracChangeset
for help on using the changeset viewer.