Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ns8250/ns8250.c

    r77429d3 r7e752b2  
    5353
    5454#include <driver.h>
    55 #include <ops/char_dev.h>
     55#include <char.h>
     56#include <resource.h>
    5657
    5758#include <devman.h>
     
    226227
    227228/** The character interface's callbacks. */
    228 static char_dev_ops_t ns8250_char_dev_ops = {
     229static char_iface_t ns8250_char_iface = {
    229230        .read = &ns8250_read,
    230231        .write = &ns8250_write
     
    273274       
    274275        /* Gain control over port's registers. */
    275         if (pio_enable((void *)(uintptr_t) data->io_addr, REG_COUNT,
     276        if (pio_enable((void *) data->io_addr, REG_COUNT,
    276277            (void **) &data->port)) {
    277278                printf(NAME ": error - cannot gain the port %#" PRIx32 " for device "
     
    341342                printf(NAME ": failed to connect to the parent driver of the "
    342343                    "device %s.\n", dev->name);
    343                 ret = dev->parent_phone;
     344                ret = EPARTY;   /* FIXME: use another EC */
    344345                goto failed;
    345346        }
    346347       
    347348        /* Get hw resources. */
    348         ret = hw_res_get_resource_list(dev->parent_phone, &hw_resources);
    349         if (ret != EOK) {
     349        if (!get_hw_resources(dev->parent_phone, &hw_resources)) {
    350350                printf(NAME ": failed to get hw resources for the device "
    351351                    "%s.\n", dev->name);
     352                ret = EPARTY;   /* FIXME: use another EC */
    352353                goto failed;
    353354        }
     
    373374                                printf(NAME ": i/o range assigned to the device "
    374375                                    "%s is too small.\n", dev->name);
    375                                 ret = ELIMIT;
     376                                ret = EPARTY;   /* FIXME: use another EC */
    376377                                goto failed;
    377378                        }
     
    389390                printf(NAME ": missing hw resource(s) for the device %s.\n",
    390391                    dev->name);
    391                 ret = ENOENT;
     392                ret = EPARTY;   /* FIXME: use another EC */
    392393                goto failed;
    393394        }
    394395       
    395         hw_res_clean_resource_list(&hw_resources);
     396        clean_hw_resource_list(&hw_resources);
    396397        return ret;
    397398       
    398399failed:
    399400        ns8250_dev_cleanup(dev);
    400         hw_res_clean_resource_list(&hw_resources);
     401        clean_hw_resource_list(&hw_resources);
    401402        return ret;
    402403}
     
    431432{
    432433        ns8250_dev_data_t *data = (ns8250_dev_data_t *) dev->driver_data;
     434        int res;
     435       
     436        /* Enable interrupt globally. */
     437        res = interrupt_enable(data->irq);
     438        if (res != EOK)
     439                return res;
    433440       
    434441        /* Enable interrupt on the serial port. */
     
    720727{
    721728        printf(NAME ": ns8250_add_device %s (handle = %d)\n",
    722             dev->name, (int) dev->handle);
     729            dev->name, dev->handle);
    723730       
    724731        int res = ns8250_dev_initialize(dev);
     
    880887    ipc_call_t *call)
    881888{
    882         sysarg_t method = IPC_GET_IMETHOD(*call);
     889        ipcarg_t method = IPC_GET_METHOD(*call);
    883890        int ret;
    884891        unsigned int baud_rate, parity, word_length, stop_bits;
     
    917924        ns8250_dev_ops.close = &ns8250_close;
    918925       
    919         ns8250_dev_ops.interfaces[CHAR_DEV_IFACE] = &ns8250_char_dev_ops;
     926        ns8250_dev_ops.interfaces[CHAR_DEV_IFACE] = &ns8250_char_iface;
    920927        ns8250_dev_ops.default_handler = &ns8250_default_handler;
    921928}
Note: See TracChangeset for help on using the changeset viewer.