Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbdev/src/pipesinit.c

    r9d58539 rc01987c  
    3434 *
    3535 */
    36 #include <usb/usb.h>
    3736#include <usb/dev/pipes.h>
    3837#include <usb/dev/dp.h>
    3938#include <usb/dev/request.h>
     39#include <usb/usb.h>
     40#include <usb/descriptor.h>
     41
     42#include <assert.h>
    4043#include <errno.h>
    41 #include <assert.h>
    4244
    4345#define DEV_DESCR_MAX_PACKET_SIZE_OFFSET 7
     
    148150 * @param interface Interface descriptor under which belongs the @p endpoint.
    149151 * @param endpoint Endpoint descriptor.
    150  * @param wire Connection backing the endpoint pipes.
    151152 * @return Error code.
    152153 */
     
    154155    usb_endpoint_mapping_t *mapping, size_t mapping_count,
    155156    usb_standard_interface_descriptor_t *interface,
    156     usb_standard_endpoint_descriptor_t *endpoint,
    157     usb_device_connection_t *wire)
     157    usb_standard_endpoint_descriptor_t *endpoint_desc,
     158    usb_dev_session_t *bus_session)
    158159{
    159160
     
    163164
    164165        /* Actual endpoint number is in bits 0..3 */
    165         const usb_endpoint_t ep_no = endpoint->endpoint_address & 0x0F;
     166        const usb_endpoint_t ep_no = endpoint_desc->endpoint_address & 0x0F;
    166167
    167168        const usb_endpoint_description_t description = {
    168169                /* Endpoint direction is set by bit 7 */
    169                 .direction = (endpoint->endpoint_address & 128)
     170                .direction = (endpoint_desc->endpoint_address & 128)
    170171                    ? USB_DIRECTION_IN : USB_DIRECTION_OUT,
    171172                /* Transfer type is in bits 0..2 and
    172173                 * the enum values corresponds 1:1 */
    173                 .transfer_type = endpoint->attributes & 3,
     174                .transfer_type = endpoint_desc->attributes & 3,
    174175
    175176                /* Get interface characteristics. */
     
    193194        }
    194195
    195         int rc = usb_pipe_initialize(&ep_mapping->pipe, wire,
    196             ep_no, description.transfer_type, endpoint->max_packet_size,
    197             description.direction);
     196        int rc = usb_pipe_initialize(&ep_mapping->pipe,
     197            ep_no, description.transfer_type,
     198            uint16_usb2host(endpoint_desc->max_packet_size),
     199            description.direction, bus_session);
    198200        if (rc != EOK) {
    199201                return rc;
     
    201203
    202204        ep_mapping->present = true;
    203         ep_mapping->descriptor = endpoint;
     205        ep_mapping->descriptor = endpoint_desc;
    204206        ep_mapping->interface = interface;
    205207
     
    219221    usb_endpoint_mapping_t *mapping, size_t mapping_count,
    220222    const usb_dp_parser_t *parser, const usb_dp_parser_data_t *parser_data,
    221     const uint8_t *interface_descriptor)
     223    const uint8_t *interface_descriptor, usb_dev_session_t *bus_session)
    222224{
    223225        const uint8_t *descriptor = usb_dp_get_nested_descriptor(parser,
     
    235237                            (usb_standard_endpoint_descriptor_t *)
    236238                                descriptor,
    237                             (usb_device_connection_t *) parser_data->arg);
     239                            bus_session);
    238240                }
    239241
     
    279281    usb_endpoint_mapping_t *mapping, size_t mapping_count,
    280282    const uint8_t *config_descriptor, size_t config_descriptor_size,
    281     usb_device_connection_t *connection)
    282 {
    283         assert(connection);
     283    usb_dev_session_t *bus_session)
     284{
    284285
    285286        if (config_descriptor == NULL) {
     
    305306                .data = config_descriptor,
    306307                .size = config_descriptor_size,
    307                 .arg = connection
    308308        };
    309309
     
    318318        do {
    319319                (void) process_interface(mapping, mapping_count,
    320                     &dp_parser, &dp_data, interface);
     320                    &dp_parser, &dp_data, interface, bus_session);
    321321                interface = usb_dp_get_sibling_descriptor(&dp_parser, &dp_data,
    322322                    config_descriptor, interface);
     
    346346                return EINVAL;
    347347        }
    348 
    349 
    350         usb_pipe_start_long_transfer(pipe);
    351348
    352349        uint8_t dev_descr_start[CTRL_PIPE_MIN_PACKET_SIZE];
     
    366363                }
    367364        }
    368         usb_pipe_end_long_transfer(pipe);
    369365        if (rc != EOK) {
    370366                return rc;
Note: See TracChangeset for help on using the changeset viewer.