Ignore:
File:
1 edited

Legend:

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

    re89bb50 r7d521e24  
    6161        .vendor_id = 0x16db,
    6262        .product_id = 0x0001,
     63        /// \TODO these values migt be different
    6364        .str_serial_number = 0,
    6465        .usb_spec_version = 0x110,
     
    118119static const uint32_t hub_clear_feature_by_writing_one_mask =
    119120   RHS_CLEAR_PORT_POWER;
     121   // 1 << USB_HUB_FEATURE_C_HUB_LOCAL_POWER;
    120122
    121123/**
     
    125127    RHS_LPSC_FLAG |
    126128    RHS_OCIC_FLAG;
     129    //(1 << USB_HUB_FEATURE_C_HUB_OVER_CURRENT) |
     130    //(1 << USB_HUB_FEATURE_C_HUB_LOCAL_POWER);
    127131
    128132/**
     
    131135static const uint32_t hub_set_feature_direct_mask =
    132136    RHS_SET_PORT_POWER;
     137    //(1 << USB_HUB_FEATURE_C_HUB_OVER_CURRENT);
    133138
    134139/**
     
    155160    RHPS_PRSC_FLAG;
    156161
     162/*
     163
     164    (1 << USB_HUB_FEATURE_PORT_CONNECTION) |
     165    (1 << USB_HUB_FEATURE_PORT_SUSPEND) |
     166    (1 << USB_HUB_FEATURE_PORT_OVER_CURRENT) |
     167    (1 << USB_HUB_FEATURE_PORT_POWER) |
     168    (1 << USB_HUB_FEATURE_C_PORT_CONNECTION) |
     169    (1 << USB_HUB_FEATURE_C_PORT_ENABLE) |
     170    (1 << USB_HUB_FEATURE_C_PORT_SUSPEND) |
     171    (1 << USB_HUB_FEATURE_C_PORT_OVER_CURRENT) |
     172    (1 << USB_HUB_FEATURE_C_PORT_RESET);
     173 */
    157174//note that USB_HUB_FEATURE_PORT_POWER bit is translated into
    158175//USB_HUB_FEATURE_PORT_LOW_SPEED for port set feature request
     
    162179 */
    163180static const uint32_t port_status_change_mask = RHPS_CHANGE_WC_MASK;
     181/*    (1 << USB_HUB_FEATURE_C_PORT_CONNECTION) |
     182    (1 << USB_HUB_FEATURE_C_PORT_ENABLE) |
     183    (1 << USB_HUB_FEATURE_C_PORT_OVER_CURRENT) |
     184    (1 << USB_HUB_FEATURE_C_PORT_RESET) |
     185    (1 << USB_HUB_FEATURE_C_PORT_SUSPEND);
     186*/
    164187
    165188static int create_serialized_hub_descriptor(rh_t *instance);
     
    397420 * create answer to port status_request
    398421 *
    399  * Copy content of corresponding port status register to answer buffer. The
    400  * format of the port status register and port status data is the same (
    401  * see OHCI root hub and USB hub documentation).
     422 * Copy content of corresponding port status register to answer buffer.
    402423 *
    403424 * @param instance root hub instance
     
    410431        if (port < 1 || port > instance->port_count)
    411432                return EINVAL;
     433        uint32_t * uint32_buffer = (uint32_t*) request->data_buffer;
    412434        request->transfered_size = 4;
    413         uint32_t data = instance->registers->rh_port_status[port - 1];
    414         memcpy(request->data_buffer,&data,4);
     435        uint32_buffer[0] = instance->registers->rh_port_status[port - 1];
    415436#if 0
    416437        int i;
     
    429450 * create answer to port status_request
    430451 *
    431  * This copies flags in hub status register into the buffer. The format of the
    432  * status register and status message is the same, according to USB hub
    433  * specification and OHCI root hub specification.
     452 * Copy content of hub status register to answer buffer.
    434453 *
    435454 * @param instance root hub instance
     
    439458static int process_get_hub_status_request(rh_t *instance,
    440459    usb_transfer_batch_t * request) {
    441         //uint32_t * uint32_buffer = (uint32_t*) request->data_buffer;
     460        uint32_t * uint32_buffer = (uint32_t*) request->data_buffer;
    442461        request->transfered_size = 4;
    443462        //bits, 0,1,16,17
    444463        uint32_t mask = 1 | (1 << 1) | (1 << 16) | (1 << 17);
    445         uint32_t data = mask & instance->registers->rh_status;
    446         //uint32_buffer[0] = mask & instance->registers->rh_status;
    447         memcpy(request->data_buffer,&data,4);
     464        uint32_buffer[0] = mask & instance->registers->rh_status;
    448465
    449466        return EOK;
     
    499516            | (1 << (USB_HUB_FEATURE_C_HUB_OVER_CURRENT + 16));
    500517        bzero(bitmap, instance->interrupt_mask_size);
    501         if ((instance->registers->rh_status & mask) !=0 ) {
     518        if (instance->registers->rh_status & mask) {
    502519                bitmap[0] = 1;
    503520        }
     
    505522        mask = port_status_change_mask;
    506523        for (port = 1; port <= instance->port_count; ++port) {
    507                 if ((mask & instance->registers->rh_port_status[port - 1]) != 0) {
     524                if (mask & instance->registers->rh_port_status[port - 1]) {
    508525
    509526                        bitmap[(port) / 8] += 1 << (port % 8);
Note: See TracChangeset for help on using the changeset viewer.