Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 651b352 in mainline for uspace/drv/ohci/iface.c


Ignore:
Timestamp:
2011-04-13T15:00:43Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master
Children:
8b4ce802
Parents:
4deca9b (diff), d6522dd (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.
Message:

Major rework

UHCI uses one buffer for both structures and data
OHCI uses new architecture that actually follows OHCI specification

File:
1 edited

Legend:

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

    r4deca9b r651b352  
    5555
    5656        size_t res_bw;
    57         endpoint_t *ep = usb_endpoint_manager_get_ep(&(*hc)->ep_manager,
     57        endpoint_t *ep = hc_get_endpoint(*hc,
    5858            target.address, target.endpoint, direction, &res_bw);
    5959        if (ep == NULL) {
     
    164164        }
    165165        const size_t size = max_packet_size;
    166         int ret;
    167166
    168167        usb_log_debug("Register endpoint %d:%d %s %s(%d) %zu(%zu) %u.\n",
     
    170169            usb_str_speed(speed), direction, size, max_packet_size, interval);
    171170
    172         endpoint_t *ep = malloc(sizeof(endpoint_t));
    173         if (ep == NULL)
    174                 return ENOMEM;
    175         ret = endpoint_init(ep, address, endpoint, direction,
    176             transfer_type, speed, max_packet_size);
    177         if (ret != EOK) {
    178                 free(ep);
    179                 return ret;
    180         }
    181 
    182         ret = usb_endpoint_manager_register_ep(&hc->ep_manager, ep, size);
    183         if (ret != EOK) {
    184                 endpoint_destroy(ep);
    185         }
    186         return ret;
     171        return hc_add_endpoint(hc, address, endpoint, speed, transfer_type,
     172            direction, max_packet_size, size, interval);
    187173}
    188174/*----------------------------------------------------------------------------*/
     
    195181        usb_log_debug("Unregister endpoint %d:%d %d.\n",
    196182            address, endpoint, direction);
    197         return usb_endpoint_manager_unregister_ep(&hc->ep_manager, address,
    198             endpoint, direction);
     183        return hc_remove_endpoint(hc, address, endpoint, direction);
    199184}
    200185/*----------------------------------------------------------------------------*/
     
    228213        ret = hc_schedule(hc, batch);
    229214        if (ret != EOK) {
    230                 batch_dispose(batch);
     215                usb_transfer_batch_dispose(batch);
    231216        }
    232217        return ret;
     
    262247        ret = hc_schedule(hc, batch);
    263248        if (ret != EOK) {
    264                 batch_dispose(batch);
     249                usb_transfer_batch_dispose(batch);
    265250        }
    266251        return ret;
     
    296281        ret = hc_schedule(hc, batch);
    297282        if (ret != EOK) {
    298                 batch_dispose(batch);
     283                usb_transfer_batch_dispose(batch);
    299284        }
    300285        return ret;
     
    330315        ret = hc_schedule(hc, batch);
    331316        if (ret != EOK) {
    332                 batch_dispose(batch);
     317                usb_transfer_batch_dispose(batch);
    333318        }
    334319        return ret;
     
    346331 * @param[in] setup_packet Setup packet buffer (in USB endianess, allocated
    347332 *      and deallocated by the caller).
    348  * @param[in] setup_packet_size Size of @p setup_packet buffer in bytes.
     333 * @param[in] setup_size Size of @p setup_packet buffer in bytes.
    349334 * @param[in] data_buffer Data buffer (in USB endianess, allocated and
    350335 *      deallocated by the caller).
    351  * @param[in] data_buffer_size Size of @p data_buffer buffer in bytes.
     336 * @param[in] size Size of @p data_buffer buffer in bytes.
    352337 * @param[in] callback Callback to be issued once the transfer is complete.
    353338 * @param[in] arg Pass-through argument to the callback.
     
    370355        ret = hc_schedule(hc, batch);
    371356        if (ret != EOK) {
    372                 batch_dispose(batch);
     357                usb_transfer_batch_dispose(batch);
    373358        }
    374359        return ret;
     
    386371 * @param[in] setup_packet Setup packet buffer (in USB endianess, allocated
    387372 *      and deallocated by the caller).
    388  * @param[in] setup_packet_size Size of @p setup_packet buffer in bytes.
     373 * @param[in] setup_size Size of @p setup_packet buffer in bytes.
    389374 * @param[in] data_buffer Buffer where to store the data (in USB endianess,
    390375 *      allocated and deallocated by the caller).
    391  * @param[in] data_buffer_size Size of @p data_buffer buffer in bytes.
     376 * @param[in] size Size of @p data_buffer buffer in bytes.
    392377 * @param[in] callback Callback to be issued once the transfer is complete.
    393378 * @param[in] arg Pass-through argument to the callback.
     
    409394        ret = hc_schedule(hc, batch);
    410395        if (ret != EOK) {
    411                 batch_dispose(batch);
     396                usb_transfer_batch_dispose(batch);
    412397        }
    413398        return ret;
Note: See TracChangeset for help on using the changeset viewer.