Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/ohci/main.c

    r2ef8023 r920d0fc  
    3333 * Main routines of OHCI driver.
    3434 */
    35 
    36 #include <assert.h>
    3735#include <ddf/driver.h>
    3836#include <errno.h>
    39 #include <io/log.h>
    4037#include <str_error.h>
    4138
    4239#include <usb/debug.h>
    43 #include <usb/host/ddf_helpers.h>
    4440
    45 #include "hc.h"
     41#include "ohci.h"
    4642
    4743#define NAME "ohci"
    48 // TODO: This should be merged to hc_interrupt
    49 static void ohci_interrupt(hcd_t *hcd, uint32_t status)
    50 {
    51         assert(hcd);
    52         if (hcd->driver.data)
    53                 hc_interrupt(hcd->driver.data, status);
    54 }
    55 
    56 static int ohci_driver_init(hcd_t *hcd, const hw_res_list_parsed_t *res, bool irq)
    57 {
    58         assert(hcd);
    59         assert(hcd->driver.data == NULL);
    60 
    61         hc_t *instance = malloc(sizeof(hc_t));
    62         if (!instance)
    63                 return ENOMEM;
    64 
    65         const int ret =  hc_init(instance, res, irq);
    66         if (ret == EOK)
    67                 hcd_set_implementation(hcd, instance, hc_schedule,
    68                     ohci_endpoint_init, ohci_endpoint_fini, ohci_interrupt);
    69         return ret;
    70 }
    71 
    72 static void ohci_driver_fini(hcd_t *hcd)
    73 {
    74         assert(hcd);
    75         if (hcd->driver.data)
    76                 hc_fini(hcd->driver.data);
    77 
    78         free(hcd->driver.data);
    79         hcd_set_implementation(hcd, NULL, NULL, NULL, NULL, NULL);
    80 }
    8144
    8245/** Initializes a new ddf driver instance of OHCI hcd.
     
    9053        assert(device);
    9154
    92         const int ret = ddf_hcd_device_setup_all(device, USB_SPEED_FULL,
    93             BANDWIDTH_AVAILABLE_USB11, bandwidth_count_usb11,
    94             ddf_hcd_gen_irq_handler, hc_gen_irq_code,
    95             ohci_driver_init, ohci_driver_fini);
     55        int ret = device_setup_ohci(device);
    9656        if (ret != EOK) {
    9757                usb_log_error("Failed to initialize OHCI driver: %s.\n",
    9858                    str_error(ret));
     59                return ret;
    9960        }
    100         usb_log_info("Controlling new OHCI device '%s'.\n",
    101             ddf_dev_get_name(device));
     61        usb_log_info("Controlling new OHCI device '%s'.\n", ddf_dev_get_name(device));
    10262
    103         return ret;
     63        return EOK;
    10464}
    10565
    106 static const driver_ops_t ohci_driver_ops = {
     66static driver_ops_t ohci_driver_ops = {
    10767        .dev_add = ohci_dev_add,
    10868};
    10969
    110 static const driver_t ohci_driver = {
     70static driver_t ohci_driver = {
    11171        .name = NAME,
    11272        .driver_ops = &ohci_driver_ops
Note: See TracChangeset for help on using the changeset viewer.