Changes in / [474d08e:00db345a] in mainline


Ignore:
Location:
uspace/drv
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-hcd/main.c

    r474d08e r00db345a  
    158158{
    159159        sleep(3);
    160         usb_log_enable(USB_LOG_LEVEL_DEBUG, NAME);
     160        usb_log_enable(USB_LOG_LEVEL_INFO, NAME);
    161161
    162162        return ddf_driver_main(&uhci_driver);
  • uspace/drv/usbhid/hidreq.c

    r474d08e r00db345a  
    143143/*----------------------------------------------------------------------------*/
    144144
     145int usbhid_req_set_idle(usbhid_dev_t *hid_dev, uint8_t duration)
     146{
     147        if (hid_dev == NULL) {
     148                usb_log_error("usbhid_req_set_idle(): no HID device "
     149                    "structure given.\n");
     150                return EINVAL;
     151        }
     152       
     153        /*
     154         * No need for checking other parameters, as they are checked in
     155         * the called function (usb_control_request_set()).
     156         */
     157       
     158        int rc, sess_rc;
     159       
     160        sess_rc = usb_endpoint_pipe_start_session(&hid_dev->ctrl_pipe);
     161        if (sess_rc != EOK) {
     162                usb_log_warning("Failed to start a session: %s.\n",
     163                    str_error(sess_rc));
     164                return sess_rc;
     165        }
     166
     167        usb_log_debug("Sending Set_Idle request to the device ("
     168            "duration: %u, iface: %d).\n", duration, hid_dev->iface);
     169       
     170        uint16_t value = duration << 8;
     171       
     172        rc = usb_control_request_set(&hid_dev->ctrl_pipe,
     173            USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE,
     174            USB_HIDREQ_SET_IDLE, value, hid_dev->iface, NULL, 0);
     175
     176        sess_rc = usb_endpoint_pipe_end_session(&hid_dev->ctrl_pipe);
     177
     178        if (rc != EOK) {
     179                usb_log_warning("Error sending output report to the keyboard: "
     180                    "%s.\n", str_error(rc));
     181                return rc;
     182        }
     183
     184        if (sess_rc != EOK) {
     185                usb_log_warning("Error closing session: %s.\n",
     186                    str_error(sess_rc));
     187                return sess_rc;
     188        }
     189       
     190        return EOK;
     191}
     192
     193/*----------------------------------------------------------------------------*/
     194
    145195/**
    146196 * @}
  • uspace/drv/usbhid/hidreq.h

    r474d08e r00db345a  
    5050int usbhid_req_set_protocol(usbhid_dev_t *hid_dev, usb_hid_protocol_t protocol);
    5151
     52int usbhid_req_set_idle(usbhid_dev_t *hid_dev, uint8_t duration);
     53
    5254/*----------------------------------------------------------------------------*/
    5355
  • uspace/drv/usbhid/kbddev.c

    r474d08e r00db345a  
    3838#include <str_error.h>
    3939#include <fibril.h>
     40#include <stdio.h>
    4041
    4142#include <io/keycode.h>
     
    6263static const size_t BOOTP_BUFFER_SIZE = 8;
    6364static const size_t BOOTP_BUFFER_OUT_SIZE = 1;
     65static const uint8_t IDLE_RATE = 125;
    6466
    6567/** Keyboard polling endpoint description for boot protocol class. */
     
    228230
    229231        if (mod_mask != 0) {
    230                 usb_log_debug2("\n\nChanging mods and lock keys\n");
    231                 usb_log_debug2("\nmods before: 0x%x\n", kbd_dev->mods);
    232                 usb_log_debug2("\nLock keys before:0x%x\n\n",
    233                     kbd_dev->lock_keys);
    234                
    235232                if (type == KEY_PRESS) {
    236                         usb_log_debug2("\nKey pressed.\n");
    237233                        /*
    238234                         * Only change lock state on transition from released
     
    247243                        usbhid_kbd_set_led(kbd_dev);
    248244                } else {
    249                         usb_log_debug2("\nKey released.\n");
    250245                        kbd_dev->lock_keys = kbd_dev->lock_keys & ~mod_mask;
    251246                }
    252247        }
    253248
    254         usb_log_debug2("\n\nmods after: 0x%x\n", kbd_dev->mods);
    255         usb_log_debug2("\nLock keys after: 0x%x\n\n", kbd_dev->lock_keys);
    256        
    257249        if (key == KC_CAPS_LOCK || key == KC_NUM_LOCK || key == KC_SCROLL_LOCK) {
    258250                // do not send anything to the console, this is our business
     
    281273        ev.key = key;
    282274        ev.mods = kbd_dev->mods;
    283        
    284         if (ev.mods & KM_NUM_LOCK) {
    285                 usb_log_debug("\n\nNum Lock turned on.\n\n");
    286         }
    287275
    288276        ev.c = layout[active_layout]->parse_ev(&ev);
     
    389377                }
    390378        }
     379//      // report all currently pressed keys
     380//      for (i = 0; i < kbd_dev->keycode_count; ++i) {
     381//              if (key_codes[i] != 0) {
     382//                      key = usbhid_parse_scancode(key_codes[i]);
     383//                      usb_log_debug2("\nKey pressed: %d (keycode: %d)\n", key,
     384//                          key_codes[i]);
     385//                      usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key);
     386//              }
     387//      }
    391388       
    392389        memcpy(kbd_dev->keycodes, key_codes, kbd_dev->keycode_count);
    393390       
    394         usb_log_debug2("\nNew stored keycodes: ");
     391        char *kc = (char *)malloc(kbd_dev->keycode_count * 4 + 1);
    395392        for (i = 0; i < kbd_dev->keycode_count; ++i) {
    396                 usb_log_debug2("%d ", kbd_dev->keycodes[i]);
    397         }
     393                snprintf(kc + (i * 4), 5, "%4d", key_codes[i]);
     394        }
     395        usb_log_debug("New stored keycodes: %s\n", kc);
    398396}
    399397
     
    410408                return;
    411409        }
    412 
    413         usb_log_debug2("Got keys from parser: ");
    414         unsigned i;
    415         for (i = 0; i < count; ++i) {
    416                 usb_log_debug2("%d ", key_codes[i]);
    417         }
    418         usb_log_debug2("\n");
    419410       
    420411        usbhid_kbd_t *kbd_dev = (usbhid_kbd_t *)arg;
    421412        assert(kbd_dev != NULL);
     413
     414        unsigned i;
     415        char *kc = (char *)malloc(kbd_dev->keycode_count * 4 + 1);
     416        for (i = 0; i < kbd_dev->keycode_count; ++i) {
     417                snprintf(kc + (i * 4), 5, "%4d", key_codes[i]);
     418        }
     419        usb_log_debug("Got keys from parser: %s\n", kc);
    422420       
    423421        if (count != kbd_dev->keycode_count) {
     
    446444        //usb_hid_parse_report(kbd_dev->parser, buffer, actual_size, callbacks,
    447445        //    NULL);
    448         /*usb_log_debug2("Calling usb_hid_boot_keyboard_input_report() with size"
     446        /*//usb_log_debug2("Calling usb_hid_boot_keyboard_input_report() with size"
    449447            " %zu\n", actual_size);*/
    450448        //dump_buffer("bufffer: ", buffer, actual_size);
     
    559557         * Set boot protocol.
    560558         * Set LEDs according to initial setup.
     559         * Set Idle rate
    561560         */
    562561        assert(kbd_dev->hid_dev != NULL);
     
    565564       
    566565        usbhid_kbd_set_led(kbd_dev);
     566       
     567        usbhid_req_set_idle(kbd_dev->hid_dev, IDLE_RATE);
    567568       
    568569        kbd_dev->initialized = 1;
  • uspace/drv/usbhid/main.c

    r474d08e r00db345a  
    8080int main(int argc, char *argv[])
    8181{
    82         usb_log_enable(USB_LOG_LEVEL_INFO, NAME);
     82        usb_log_enable(USB_LOG_LEVEL_DEBUG, NAME);
    8383        return ddf_driver_main(&kbd_driver);
    8484}
Note: See TracChangeset for help on using the changeset viewer.