Changeset cffa14e6 in mainline for uspace/drv/bus/usb/ehci/main.c


Ignore:
Timestamp:
2013-07-24T17:27:56Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
db71e2a
Parents:
c442f63
Message:

revert usb hc macro changes

File:
1 edited

Legend:

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

    rc442f63 rcffa14e6  
    3333 * Main routines of EHCI driver.
    3434 */
    35 
    3635#include <ddf/driver.h>
    3736#include <ddf/interrupt.h>
    3837#include <device/hw_res.h>
    3938#include <errno.h>
    40 #include <stdbool.h>
    4139#include <str_error.h>
    4240
     
    7270static int ehci_dev_add(ddf_dev_t *device)
    7371{
    74         ddf_fun_t *hc_fun = NULL;
    75         bool fun_bound = false;
    76 
    7772        assert(device);
     73#define CHECK_RET_RETURN(ret, message...) \
     74if (ret != EOK) { \
     75        usb_log_error(message); \
     76        return ret; \
     77}
    7878
    7979        uintptr_t reg_base = 0;
     
    8181        int irq = 0;
    8282
    83         int rc = get_my_registers(device, &reg_base, &reg_size, &irq);
    84         if (rc != EOK) {
    85                 usb_log_error("Failed to get memory addresses for %" PRIun
    86                     ": %s.\n", ddf_dev_get_handle(device), str_error(rc));
    87                 goto error;
    88         }
    89 
     83        int ret = get_my_registers(device, &reg_base, &reg_size, &irq);
     84        CHECK_RET_RETURN(ret,
     85            "Failed to get memory addresses for %" PRIun ": %s.\n",
     86            ddf_dev_get_handle(device), str_error(ret));
    9087        usb_log_info("Memory mapped regs at 0x%" PRIxn " (size %zu), IRQ %d.\n",
    9188            reg_base, reg_size, irq);
    9289
    93         rc = disable_legacy(device, reg_base, reg_size);
    94         if (rc != EOK) {
    95                 usb_log_error("Failed to disable legacy USB: %s.\n",
    96                     str_error(rc));
    97                 goto error;
    98         }
     90        ret = disable_legacy(device, reg_base, reg_size);
     91        CHECK_RET_RETURN(ret,
     92            "Failed to disable legacy USB: %s.\n", str_error(ret));
    9993
    100         hc_fun = ddf_fun_create(device, fun_exposed, "ehci_hc");
     94        ddf_fun_t *hc_fun = ddf_fun_create(device, fun_exposed, "ehci_hc");
    10195        if (hc_fun == NULL) {
    10296                usb_log_error("Failed to create EHCI function.\n");
    103                 rc = ENOMEM;
    104                 goto error;
     97                return ENOMEM;
    10598        }
    106 
    10799        hcd_t *ehci_hc = ddf_fun_data_alloc(hc_fun, sizeof(hcd_t));
    108100        if (ehci_hc == NULL) {
    109101                usb_log_error("Failed to alloc generic HC driver.\n");
    110                 rc = ENOMEM;
    111                 goto error;
     102                return ENOMEM;
    112103        }
    113 
    114104        /* High Speed, no bandwidth */
    115105        hcd_init(ehci_hc, USB_SPEED_HIGH, 0, NULL);
    116106        ddf_fun_set_ops(hc_fun,  &hc_ops);
    117107
    118         rc = ddf_fun_bind(hc_fun);
    119         if (rc != EOK) {
    120                 usb_log_error("Failed to bind EHCI function: %s.\n",
    121                     str_error(rc));
    122                 goto error;
    123         }
    124 
    125         fun_bound = true;
    126 
    127         rc = ddf_fun_add_to_category(hc_fun, USB_HC_CATEGORY);
    128         if (rc != EOK) {
    129                 usb_log_error("Failed to add EHCI to HC class: %s.\n",
    130                     str_error(rc));
    131                 goto error;
    132         }
     108        ret = ddf_fun_bind(hc_fun);
     109        CHECK_RET_RETURN(ret,
     110            "Failed to bind EHCI function: %s.\n",
     111            str_error(ret));
     112        ret = ddf_fun_add_to_category(hc_fun, USB_HC_CATEGORY);
     113        CHECK_RET_RETURN(ret,
     114            "Failed to add EHCI to HC class: %s.\n",
     115            str_error(ret));
    133116
    134117        usb_log_info("Controlling new EHCI device `%s' (handle %" PRIun ").\n",
     
    136119
    137120        return EOK;
    138 error:
    139         if (fun_bound)
    140                 ddf_fun_unbind(hc_fun);
    141         if (hc_fun != NULL)
    142                 ddf_fun_destroy(hc_fun);
    143         return rc;
     121#undef CHECK_RET_RETURN
    144122}
    145123
Note: See TracChangeset for help on using the changeset viewer.