Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbhid/main.c

    rb43bcf1 r03197ffc  
    4545#include <str_error.h>
    4646#include <fibril.h>
    47 #include <usb/debug.h>
    48 #include <usb/classes/classes.h>
    4947#include <usb/classes/hid.h>
    5048#include <usb/classes/hidparser.h>
     
    6361#define GUESSED_POLL_ENDPOINT 1
    6462
    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 = 0
    73 };
    74 
    7563static void default_connection_handler(device_t *, ipc_callid_t, ipc_call_t *);
    7664static device_ops_t keyboard_ops = {
     
    342330        }
    343331       
    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_description
    351                 }
    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 
    371332        kbd_dev->conf = (usb_hid_configuration_t *)calloc(1,
    372333            sizeof(usb_hid_configuration_t));
     
    376337        }
    377338       
    378         /*rc = usbkbd_parse_descriptors(descriptors, transferred, kbd_dev->conf);
     339        rc = usbkbd_parse_descriptors(descriptors, transferred, kbd_dev->conf);
    379340        free(descriptors);
    380341        if (rc != EOK) {
     
    383344        }
    384345
    385         // get and report descriptors*/
     346        // get and report descriptors
    386347        rc = usbkbd_get_report_descriptor(kbd_dev);
    387348        if (rc != EOK) {
     
    400361     *    as the endpoint for polling
    401362         */
    402 
     363       
    403364        return EOK;
    404365}
     
    435396        if (rc != EOK) {
    436397                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",
    437406                    str_error(rc));
    438407                goto error_leave;
     
    449418        usb_endpoint_pipe_start_session(&kbd_dev->ctrl_pipe);
    450419        //usb_request_set_configuration(&kbd_dev->ctrl_pipe, 1);
    451         rc = usbkbd_process_descriptors(kbd_dev);
     420        usbkbd_process_descriptors(kbd_dev);
    452421        usb_endpoint_pipe_end_session(&kbd_dev->ctrl_pipe);
    453         if (rc != EOK) {
    454                 goto error_leave;
    455         }
    456422
    457423        return kbd_dev;
     
    611577int main(int argc, char *argv[])
    612578{
    613         usb_log_enable(USB_LOG_LEVEL_INFO, "usbhid");
    614579        return driver_main(&kbd_driver);
    615580}
Note: See TracChangeset for help on using the changeset viewer.