Changes in uspace/drv/usbhid/kbd/kbddev.c [1b7dc5e9:323b0ec] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/kbd/kbddev.c
r1b7dc5e9 r323b0ec 255 255 256 256 if (hid_dev == NULL || hid_dev->data == NULL) { 257 usb_log_debug("default_connection_handler: "258 "Missing parameter.\n");259 257 async_answer_0(icallid, EINVAL); 260 258 return; … … 269 267 270 268 if (kbd_dev->console_phone != -1) { 271 usb_log_debug("default_connection_handler: "272 "console phone already set\n");273 269 async_answer_0(icallid, ELIMIT); 274 270 return; … … 276 272 277 273 kbd_dev->console_phone = callback; 278 279 usb_log_debug("default_connection_handler: OK\n");280 274 async_answer_0(icallid, EOK); 281 275 return; 282 276 } 283 277 284 usb_log_debug("default_connection_handler: Wrong function.\n");285 278 async_answer_0(icallid, EINVAL); 286 279 } … … 562 555 usb_log_debug2("Key pressed: %d (keycode: %d)\n", key, 563 556 kbd_dev->keys[i]); 557 usb_kbd_push_ev(hid_dev, kbd_dev, KEY_PRESS, key); 564 558 if (!usb_kbd_is_lock(key)) { 565 559 usb_kbd_repeat_start(kbd_dev, key); 566 560 } 567 usb_kbd_push_ev(hid_dev, kbd_dev, KEY_PRESS, key);568 561 } else { 569 562 // found, nothing happens … … 773 766 774 767 /*----------------------------------------------------------------------------*/ 775 776 static int usb_kbd_create_function(usb_hid_dev_t *hid_dev)777 {778 assert(hid_dev != NULL);779 assert(hid_dev->usb_dev != NULL);780 781 /* Create the function exposed under /dev/devices. */782 usb_log_debug("Creating DDF function %s...\n", HID_KBD_FUN_NAME);783 ddf_fun_t *fun = ddf_fun_create(hid_dev->usb_dev->ddf_dev, fun_exposed,784 HID_KBD_FUN_NAME);785 if (fun == NULL) {786 usb_log_error("Could not create DDF function node.\n");787 return ENOMEM;788 }789 790 /*791 * Store the initialized HID device and HID ops792 * to the DDF function.793 */794 fun->ops = &hid_dev->ops;795 fun->driver_data = hid_dev; // TODO: maybe change to hid_dev->data796 797 int rc = ddf_fun_bind(fun);798 if (rc != EOK) {799 usb_log_error("Could not bind DDF function: %s.\n",800 str_error(rc));801 ddf_fun_destroy(fun);802 return rc;803 }804 805 usb_log_debug("Adding DDF function to class %s...\n",806 HID_KBD_CLASS_NAME);807 rc = ddf_fun_add_to_class(fun, HID_KBD_CLASS_NAME);808 if (rc != EOK) {809 usb_log_error(810 "Could not add DDF function to class %s: %s.\n",811 HID_KBD_CLASS_NAME, str_error(rc));812 ddf_fun_destroy(fun);813 return rc;814 }815 816 return EOK;817 }818 819 /*----------------------------------------------------------------------------*/820 768 /* API functions */ 821 769 /*----------------------------------------------------------------------------*/ … … 982 930 usb_log_debug("HID/KBD device structure initialized.\n"); 983 931 984 usb_log_debug("Creating KBD function...\n");985 int rc = usb_kbd_create_function(hid_dev);986 if (rc != EOK) {987 usb_kbd_free(&kbd_dev);988 return rc;989 }990 991 932 return EOK; 992 933 } … … 1052 993 if ((*kbd_dev)->led_data != NULL) { 1053 994 free((*kbd_dev)->led_data); 995 } 996 if ((*kbd_dev)->output_buffer != NULL) { 997 free((*kbd_dev)->output_buffer); 1054 998 } 1055 999 if ((*kbd_dev)->led_path != NULL) {
Note:
See TracChangeset
for help on using the changeset viewer.