Changeset 65c3794 in mainline


Ignore:
Timestamp:
2011-06-01T15:59:34Z (13 years ago)
Author:
Matus Dekanek <smekideki@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49ba19d
Parents:
c9f0975
Message:

change from lelian: USB hid subdriver receives parsed report from HID core
uhci root hub: change message level from info to debug

Location:
uspace/drv
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ohci/root_hub.c

    rc9f0975 r65c3794  
    251251        int opResult;
    252252        if (request->ep->transfer_type == USB_TRANSFER_CONTROL) {
    253                 usb_log_info("Root hub got CONTROL packet\n");
     253                usb_log_debug("Root hub got CONTROL packet\n");
    254254                opResult = process_ctrl_request(instance, request);
    255255                usb_transfer_batch_finish_error(request, opResult);
    256256        } else if (request->ep->transfer_type == USB_TRANSFER_INTERRUPT) {
    257                 usb_log_info("Root hub got INTERRUPT packet\n");
     257                usb_log_debug("Root hub got INTERRUPT packet\n");
    258258                create_interrupt_mask_in_instance(instance);
    259259                if (is_zeros(instance->interrupt_buffer,
  • uspace/drv/usbhid/generic/hiddev.c

    rc9f0975 r65c3794  
    231231/*----------------------------------------------------------------------------*/
    232232
    233 bool usb_generic_hid_polling_callback(usb_hid_dev_t *hid_dev, void *data,
    234     uint8_t *buffer, size_t buffer_size)
    235 {
    236         usb_log_debug2("usb_hid_polling_callback(%p, %p, %zu)\n",
    237             hid_dev, buffer, buffer_size);
    238         usb_debug_str_buffer(buffer, buffer_size, 0);
     233bool usb_generic_hid_polling_callback(usb_hid_dev_t *hid_dev, void *data/*,
     234    uint8_t *buffer, size_t buffer_size*/)
     235{
     236//      usb_log_debug2("usb_hid_polling_callback(%p, %p, %zu)\n",
     237//          hid_dev, buffer, buffer_size);
     238//      usb_debug_str_buffer(buffer, buffer_size, 0);
    239239        return true;
    240240}
  • uspace/drv/usbhid/generic/hiddev.h

    rc9f0975 r65c3794  
    5050int usb_generic_hid_init(struct usb_hid_dev *hid_dev, void **data);
    5151
    52 bool usb_generic_hid_polling_callback(struct usb_hid_dev *hid_dev, void *data,
    53     uint8_t *buffer, size_t buffer_size);
     52bool usb_generic_hid_polling_callback(struct usb_hid_dev *hid_dev, void *data/*,
     53    uint8_t *buffer, size_t buffer_size*/);
    5454
    5555#endif // USB_HID_HIDDDEV_H_
  • uspace/drv/usbhid/kbd/kbddev.c

    rc9f0975 r65c3794  
    529529 *     usb_hid_parse_report().
    530530 */
    531 static void usb_kbd_process_data(usb_hid_dev_t *hid_dev, usb_kbd_t *kbd_dev,
    532                                  uint8_t *buffer, size_t actual_size)
     531static void usb_kbd_process_data(usb_hid_dev_t *hid_dev, usb_kbd_t *kbd_dev/*,
     532                                 uint8_t *buffer, size_t actual_size*/)
    533533{
    534534        assert(hid_dev->report != NULL);
     
    536536        assert(kbd_dev != NULL);
    537537
    538         usb_log_debug("Calling usb_hid_parse_report() with "
    539             "buffer %s\n", usb_debug_str_buffer(buffer, actual_size, 0));
     538//      usb_log_debug("Calling usb_hid_parse_report() with "
     539//          "buffer %s\n", usb_debug_str_buffer(buffer, actual_size, 0));
    540540       
    541541        usb_hid_report_path_t *path = usb_hid_report_path();
    542542        usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0);
    543543
    544         uint8_t report_id;
    545         int rc = usb_hid_parse_report(hid_dev->report, buffer, actual_size,
    546             &report_id);
    547        
    548         if (rc != EOK) {
    549                 usb_log_warning("Error in usb_hid_parse_report():"
    550                     "%s\n", str_error(rc));
    551         }
    552        
    553         usb_hid_report_path_set_report_id (path, report_id);
     544//      uint8_t report_id;
     545//      int rc = usb_hid_parse_report(hid_dev->report, buffer, actual_size,
     546//          &report_id);
     547       
     548//      if (rc != EOK) {
     549//              usb_log_warning("Error in usb_hid_parse_report():"
     550//                  "%s\n", str_error(rc));
     551//      }
     552       
     553        usb_hid_report_path_set_report_id (path, hid_dev->report_id);
    554554       
    555555        // fill in the currently pressed keys
     
    848848/*----------------------------------------------------------------------------*/
    849849
    850 bool usb_kbd_polling_callback(usb_hid_dev_t *hid_dev, void *data,
    851      uint8_t *buffer, size_t buffer_size)
    852 {
    853         if (hid_dev == NULL || buffer == NULL || data == NULL) {
     850bool usb_kbd_polling_callback(usb_hid_dev_t *hid_dev, void *data/*,
     851     uint8_t *buffer, size_t buffer_size*/)
     852{
     853        if (hid_dev == NULL/* || buffer == NULL*/ || data == NULL) {
    854854                // do not continue polling (???)
    855855                return false;
     
    860860       
    861861        // TODO: add return value from this function
    862         usb_kbd_process_data(hid_dev, kbd_dev, buffer, buffer_size);
     862        usb_kbd_process_data(hid_dev, kbd_dev/*, buffer, buffer_size*/);
    863863       
    864864        return true;
  • uspace/drv/usbhid/kbd/kbddev.h

    rc9f0975 r65c3794  
    122122int usb_kbd_init(struct usb_hid_dev *hid_dev, void **data);
    123123
    124 bool usb_kbd_polling_callback(struct usb_hid_dev *hid_dev, void *data,
    125                               uint8_t *buffer, size_t buffer_size);
     124bool usb_kbd_polling_callback(struct usb_hid_dev *hid_dev, void *data/*,
     125                              uint8_t *buffer, size_t buffer_size*/);
    126126
    127127int usb_kbd_is_initialized(const usb_kbd_t *kbd_dev);
  • uspace/drv/usbhid/mouse/mousedev.c

    rc9f0975 r65c3794  
    225225
    226226static bool usb_mouse_process_report(usb_hid_dev_t *hid_dev,
    227                                      usb_mouse_t *mouse_dev, uint8_t *buffer,
    228                                      size_t buffer_size)
     227                                     usb_mouse_t *mouse_dev/*, uint8_t *buffer,
     228                                     size_t buffer_size*/)
    229229{
    230230        assert(mouse_dev != NULL);
    231231       
    232         usb_log_debug2("got buffer: %s.\n",
    233             usb_debug_str_buffer(buffer, buffer_size, 0));
     232//      usb_log_debug2("got buffer: %s.\n",
     233//          usb_debug_str_buffer(buffer, buffer_size, 0));
    234234       
    235235        if (mouse_dev->mouse_phone < 0) {
     
    242242         */
    243243       
    244         usb_log_debug(NAME " Calling usb_hid_parse_report() with "
    245             "buffer %s\n", usb_debug_str_buffer(buffer, buffer_size, 0));
    246        
    247         uint8_t report_id;
    248        
    249         int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size,
    250             &report_id);
    251        
    252         if (rc != EOK) {
    253                 usb_log_warning(NAME "Error in usb_hid_parse_report(): %s\n",
    254                     str_error(rc));
    255                 return true;
    256         }
     244//      usb_log_debug(NAME " Calling usb_hid_parse_report() with "
     245//          "buffer %s\n", usb_debug_str_buffer(buffer, buffer_size, 0));
     246       
     247//      uint8_t report_id;
     248       
     249//      int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size,
     250//          &report_id);
     251       
     252//      if (rc != EOK) {
     253//              usb_log_warning(NAME "Error in usb_hid_parse_report(): %s\n",
     254//                  str_error(rc));
     255//              return true;
     256//      }
    257257       
    258258        /*
     
    265265            USB_HIDUT_USAGE_GENERIC_DESKTOP_X);
    266266
    267         usb_hid_report_path_set_report_id(path, report_id);
     267        usb_hid_report_path_set_report_id(path, hid_dev->report_id);
    268268
    269269        usb_hid_report_field_t *field = usb_hid_report_get_sibling(
     
    288288            USB_HIDUT_USAGE_GENERIC_DESKTOP_Y);
    289289
    290         usb_hid_report_path_set_report_id(path, report_id);
     290        usb_hid_report_path_set_report_id(path, hid_dev->report_id);
    291291
    292292        field = usb_hid_report_get_sibling(
     
    316316            USB_HIDUT_USAGE_GENERIC_DESKTOP_WHEEL);
    317317
    318         usb_hid_report_path_set_report_id(path, report_id);
     318        usb_hid_report_path_set_report_id(path, hid_dev->report_id);
    319319       
    320320        field = usb_hid_report_get_sibling(
     
    340340        path = usb_hid_report_path();
    341341        usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_BUTTON, 0);
    342         usb_hid_report_path_set_report_id(path, report_id);
     342        usb_hid_report_path_set_report_id(path, hid_dev->report_id);
    343343       
    344344        field = usb_hid_report_get_sibling(
     
    505505/*----------------------------------------------------------------------------*/
    506506
    507 bool usb_mouse_polling_callback(usb_hid_dev_t *hid_dev, void *data,
    508      uint8_t *buffer, size_t buffer_size)
     507bool usb_mouse_polling_callback(usb_hid_dev_t *hid_dev, void *data/*,
     508     uint8_t *buffer, size_t buffer_size*/)
    509509{
    510510        usb_log_debug("usb_mouse_polling_callback()\n");
    511         usb_debug_str_buffer(buffer, buffer_size, 0);
     511//      usb_debug_str_buffer(buffer, buffer_size, 0);
    512512       
    513513        if (hid_dev == NULL || data == NULL) {
     
    519519        usb_mouse_t *mouse_dev = (usb_mouse_t *)data;
    520520               
    521         return usb_mouse_process_report(hid_dev, mouse_dev, buffer,
    522                                         buffer_size);
     521        return usb_mouse_process_report(hid_dev, mouse_dev/*, buffer,
     522                                        buffer_size*/);
    523523}
    524524
  • uspace/drv/usbhid/mouse/mousedev.h

    rc9f0975 r65c3794  
    6565int usb_mouse_init(struct usb_hid_dev *hid_dev, void **data);
    6666
    67 bool usb_mouse_polling_callback(struct usb_hid_dev *hid_dev, void *data,
    68     uint8_t *buffer, size_t buffer_size);
     67bool usb_mouse_polling_callback(struct usb_hid_dev *hid_dev, void *data/*,
     68    uint8_t *buffer, size_t buffer_size*/);
    6969
    7070void usb_mouse_deinit(struct usb_hid_dev *hid_dev, void *data);
  • uspace/drv/usbhid/multimedia/multimedia.c

    rc9f0975 r65c3794  
    269269/*----------------------------------------------------------------------------*/
    270270
    271 bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data,
    272     uint8_t *buffer, size_t buffer_size)
     271bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data/*,
     272    uint8_t *buffer, size_t buffer_size*/)
    273273{
    274274        // TODO: checks
    275         if (hid_dev == NULL || data == NULL || buffer == NULL) {
     275        if (hid_dev == NULL || data == NULL/* || buffer == NULL*/) {
    276276                return false;
    277277        }
    278278       
    279         usb_log_debug(NAME " usb_lgtch_polling_callback(%p, %p, %zu)\n",
    280             hid_dev, buffer, buffer_size);
     279//      usb_log_debug(NAME " usb_lgtch_polling_callback(%p, %p, %zu)\n",
     280//          hid_dev, buffer, buffer_size);
    281281       
    282282        usb_multimedia_t *multim_dev = (usb_multimedia_t *)data;
    283283
    284         usb_log_debug(NAME " Calling usb_hid_parse_report() with "
    285             "buffer %s\n", usb_debug_str_buffer(buffer, buffer_size, 0));
     284//      usb_log_debug(NAME " Calling usb_hid_parse_report() with "
     285//          "buffer %s\n", usb_debug_str_buffer(buffer, buffer_size, 0));
    286286       
    287287        usb_hid_report_path_t *path = usb_hid_report_path();
    288288        usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_CONSUMER, 0);
    289289
    290         uint8_t report_id;
    291        
    292         int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size,
    293             &report_id);
    294        
    295         if (rc != EOK) {
    296                 usb_log_warning(NAME "Error in usb_hid_parse_report(): %s\n",
    297                     str_error(rc));
    298                 return true;
    299         }
    300        
    301         usb_hid_report_path_set_report_id(path, report_id);
     290//      uint8_t report_id;
     291       
     292//      int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size,
     293//          &report_id);
     294       
     295//      if (rc != EOK) {
     296//              usb_log_warning(NAME "Error in usb_hid_parse_report(): %s\n",
     297//                  str_error(rc));
     298//              return true;
     299//      }
     300       
     301        usb_hid_report_path_set_report_id(path, hid_dev->report_id);
    302302
    303303        usb_hid_report_field_t *field = usb_hid_report_get_sibling(
  • uspace/drv/usbhid/multimedia/multimedia.h

    rc9f0975 r65c3794  
    4747void usb_multimedia_deinit(struct usb_hid_dev *hid_dev, void *data);
    4848
    49 bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data,
    50     uint8_t *buffer, size_t buffer_size);
     49bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data/*,
     50    uint8_t *buffer, size_t buffer_size*/);
    5151
    5252/*----------------------------------------------------------------------------*/
  • uspace/drv/usbhid/subdrivers.h

    rc9f0975 r65c3794  
    4949/*----------------------------------------------------------------------------*/
    5050
    51 /* TODO: This mapping must contain some other information to get the proper
    52  *       interface.
     51/** Structure representing the mapping between device requirements and the
     52 *  subdriver supposed to handle this device.
     53 *
     54 * By filling in this structure and adding it to the usb_hid_subdrivers array,
     55 * a new subdriver mapping will be created and used by the HID driver when it
     56 * searches for appropriate subdrivers for a device.
    5357 */
    5458typedef struct usb_hid_subdriver_mapping {
     59        /** Usage path that the device's Input reports must contain.
     60         *
     61         * It is an array of pairs <usage_page, usage>, terminated by a <0, 0>
     62         * pair. If you do not wish to specify the device in this way, set this
     63         * to NULL.
     64         */
    5565        const usb_hid_subdriver_usage_t *usage_path;
     66       
     67        /** Report ID for which the path should apply. */
    5668        int report_id;
     69       
     70        /** Compare type for the Usage path. */
    5771        int compare;
     72       
     73        /** Vendor ID (set to -1 if not specified). */
    5874        int vendor_id;
     75       
     76        /** Product ID (set to -1 if not specified). */
    5977        int product_id;
     78       
     79        /** Subdriver for controlling this device. */
    6080        usb_hid_subdriver_t subdriver;
    6181} usb_hid_subdriver_mapping_t;
  • uspace/drv/usbhid/usbhid.c

    rc9f0975 r65c3794  
    582582        }
    583583       
     584        // parse the input report
     585       
     586        int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size,
     587            &hid_dev->report_id);
     588       
     589        if (rc != EOK) {
     590                usb_log_warning("Error in usb_hid_parse_report():"
     591                    "%s\n", str_error(rc));
     592        }       
     593       
    584594        bool cont = false;
    585595       
     
    588598                if (hid_dev->subdrivers[i].poll != NULL
    589599                    && hid_dev->subdrivers[i].poll(hid_dev,
    590                         hid_dev->subdrivers[i].data, buffer, buffer_size)) {
     600                        hid_dev->subdrivers[i].data/*, buffer, buffer_size*/)) {
    591601                        cont = true;
    592602                }
  • uspace/drv/usbhid/usbhid.h

    rc9f0975 r65c3794  
    5050typedef int (*usb_hid_driver_init_t)(struct usb_hid_dev *, void **data);
    5151typedef void (*usb_hid_driver_deinit_t)(struct usb_hid_dev *, void *data);
    52 typedef bool (*usb_hid_driver_poll)(struct usb_hid_dev *, void *data, uint8_t *,
    53                                     size_t);
    54 typedef int (*usb_hid_driver_poll_ended)(struct usb_hid_dev *, void *data,
     52typedef bool (*usb_hid_driver_poll_t)(struct usb_hid_dev *, void *data);
     53typedef int (*usb_hid_driver_poll_ended_t)(struct usb_hid_dev *, void *data,
    5554                                         bool reason);
    5655
     
    6160        usb_hid_driver_deinit_t deinit;
    6261        /** Function to be called when data arrives from the device. */
    63         usb_hid_driver_poll poll;
     62        usb_hid_driver_poll_t poll;
    6463        /** Function to be called when polling ends. */
    65         usb_hid_driver_poll_ended poll_end;
     64        usb_hid_driver_poll_ended_t poll_end;
    6665        /** Arbitrary data needed by the subdriver. */
    6766        void *data;
     
    9392        /** HID Report parser. */
    9493        usb_hid_report_t *report;
     94       
     95        uint8_t report_id;
    9596       
    9697        uint8_t *input_report;
Note: See TracChangeset for help on using the changeset viewer.