Ignore:
Timestamp:
2018-02-28T16:37:50Z (6 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1b20da0
Parents:
f5e5f73 (diff), b2dca8de (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Jakub Jermar <jakub@…> (2018-02-28 16:06:42)
git-committer:
Jakub Jermar <jakub@…> (2018-02-28 16:37:50)
Message:

Merge github.com:helenos-xhci-team/helenos

This commit merges support for USB 3 and generally refactors, fixes,
extends and cleans up the existing USB framework.

Notable additions and features:

  • new host controller driver has been implemented to control various xHC models (among others, NEC Renesas uPD720200)
  • isochronous data transfer mode
  • support for explicit USB device removal
  • USB tablet driver
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/hid/usbhid/generic/hiddev.c

    rf5e5f73 rdf6ded8  
    11/*
    22 * Copyright (c) 2011 Lubos Slovak
     3 * Copyright (c) 2018 Ondrej Hlavaty
    34 * All rights reserved.
    45 *
     
    9697        const usb_hid_dev_t *hid_dev = fun_hid_dev(fun);
    9798
    98         usb_log_debug2("hid_dev: %p, Max input report size (%zu).\n",
     99        usb_log_debug2("hid_dev: %p, Max input report size (%zu).",
    99100            hid_dev, hid_dev->max_input_report_size);
    100101
     
    105106    size_t size, size_t *act_size, int *event_nr, unsigned int flags)
    106107{
    107         usb_log_debug2("Generic HID: Get event.\n");
     108        usb_log_debug2("Generic HID: Get event.");
    108109
    109110        if (buffer == NULL || act_size == NULL || event_nr == NULL) {
     
    115116
    116117        if (hid_dev->input_report_size > size) {
    117                 usb_log_debug("input_report_size > size (%zu, %zu)\n",
     118                usb_log_debug("input_report_size > size (%zu, %zu)",
    118119                    hid_dev->input_report_size, size);
    119120                return EINVAL;  // TODO: other error code
     
    126127        *event_nr = usb_hid_report_number(hid_dev);
    127128
    128         usb_log_debug2("OK\n");
     129        usb_log_debug2("OK");
    129130
    130131        return EOK;
     
    133134static size_t usb_generic_get_report_descriptor_length(ddf_fun_t *fun)
    134135{
    135         usb_log_debug("Generic HID: Get report descriptor length.\n");
    136 
    137         const usb_hid_dev_t *hid_dev = fun_hid_dev(fun);
    138 
    139         usb_log_debug2("hid_dev->report_desc_size = %zu\n",
     136        usb_log_debug("Generic HID: Get report descriptor length.");
     137
     138        const usb_hid_dev_t *hid_dev = fun_hid_dev(fun);
     139
     140        usb_log_debug2("hid_dev->report_desc_size = %zu",
    140141            hid_dev->report_desc_size);
    141142
     
    146147    size_t size, size_t *actual_size)
    147148{
    148         usb_log_debug2("Generic HID: Get report descriptor.\n");
     149        usb_log_debug2("Generic HID: Get report descriptor.");
    149150
    150151        const usb_hid_dev_t *hid_dev = fun_hid_dev(fun);
     
    162163static errno_t usb_generic_hid_client_connected(ddf_fun_t *fun)
    163164{
    164         usb_log_debug("Generic HID: Client connected.\n");
     165        usb_log_debug("Generic HID: Client connected.");
    165166        return EOK;
    166167}
     
    173174
    174175        if (ddf_fun_unbind(fun) != EOK) {
    175                 usb_log_error("Failed to unbind generic hid fun.\n");
     176                usb_log_error("Failed to unbind generic hid fun.");
    176177                return;
    177178        }
    178         usb_log_debug2("%s unbound.\n", ddf_fun_get_name(fun));
     179        usb_log_debug2("%s unbound.", ddf_fun_get_name(fun));
    179180        ddf_fun_destroy(fun);
    180181}
     
    189190
    190191        /* Create the exposed function. */
    191         usb_log_debug("Creating DDF function %s...\n", HID_GENERIC_FUN_NAME);
     192        usb_log_debug("Creating DDF function %s...", HID_GENERIC_FUN_NAME);
    192193        ddf_fun_t *fun = usb_device_ddf_fun_create(hid_dev->usb_dev,
    193194            fun_exposed, HID_GENERIC_FUN_NAME);
    194195        if (fun == NULL) {
    195                 usb_log_error("Could not create DDF function node.\n");
     196                usb_log_error("Could not create DDF function node.");
    196197                return ENOMEM;
    197198        }
     
    204205        errno_t rc = ddf_fun_bind(fun);
    205206        if (rc != EOK) {
    206                 usb_log_error("Could not bind DDF function: %s.\n",
     207                usb_log_error("Could not bind DDF function: %s.",
    207208                    str_error(rc));
    208209                ddf_fun_destroy(fun);
     
    210211        }
    211212
    212         usb_log_debug("HID function created. Handle: %" PRIun "\n",
     213        usb_log_debug("HID function created. Handle: %" PRIun "",
    213214            ddf_fun_get_handle(fun));
    214215        *data = fun;
     
    219220bool usb_generic_hid_polling_callback(usb_hid_dev_t *hid_dev, void *data)
    220221{
     222        /* Continue polling until the device is about to be removed. */
    221223        return true;
    222224}
Note: See TracChangeset for help on using the changeset viewer.