Changeset 357b5f5 in mainline for uspace/drv/ns8250/ns8250.c


Ignore:
Timestamp:
2011-01-23T20:09:13Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fdb9982c
Parents:
cead2aa (diff), 7e36c8d (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:

Merge mainline changes.

File:
1 edited

Legend:

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

    rcead2aa r357b5f5  
    5353
    5454#include <driver.h>
    55 #include <char.h>
    56 #include <resource.h>
     55#include <ops/char_dev.h>
    5756
    5857#include <devman.h>
     
    227226
    228227/** The character interface's callbacks. */
    229 static char_iface_t ns8250_char_iface = {
     228static char_dev_ops_t ns8250_char_dev_ops = {
    230229        .read = &ns8250_read,
    231230        .write = &ns8250_write
     
    274273       
    275274        /* Gain control over port's registers. */
    276         if (pio_enable((void *) data->io_addr, REG_COUNT,
     275        if (pio_enable((void *)(uintptr_t) data->io_addr, REG_COUNT,
    277276            (void **) &data->port)) {
    278277                printf(NAME ": error - cannot gain the port %#" PRIx32 " for device "
     
    342341                printf(NAME ": failed to connect to the parent driver of the "
    343342                    "device %s.\n", dev->name);
    344                 ret = EPARTY;   /* FIXME: use another EC */
     343                ret = dev->parent_phone;
    345344                goto failed;
    346345        }
    347346       
    348347        /* Get hw resources. */
    349         if (!get_hw_resources(dev->parent_phone, &hw_resources)) {
     348        ret = hw_res_get_resource_list(dev->parent_phone, &hw_resources);
     349        if (ret != EOK) {
    350350                printf(NAME ": failed to get hw resources for the device "
    351351                    "%s.\n", dev->name);
    352                 ret = EPARTY;   /* FIXME: use another EC */
    353352                goto failed;
    354353        }
     
    374373                                printf(NAME ": i/o range assigned to the device "
    375374                                    "%s is too small.\n", dev->name);
    376                                 ret = EPARTY;   /* FIXME: use another EC */
     375                                ret = ELIMIT;
    377376                                goto failed;
    378377                        }
     
    390389                printf(NAME ": missing hw resource(s) for the device %s.\n",
    391390                    dev->name);
    392                 ret = EPARTY;   /* FIXME: use another EC */
     391                ret = ENOENT;
    393392                goto failed;
    394393        }
    395394       
    396         clean_hw_resource_list(&hw_resources);
     395        hw_res_clean_resource_list(&hw_resources);
    397396        return ret;
    398397       
    399398failed:
    400399        ns8250_dev_cleanup(dev);
    401         clean_hw_resource_list(&hw_resources);
     400        hw_res_clean_resource_list(&hw_resources);
    402401        return ret;
    403402}
     
    432431{
    433432        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;
    440433       
    441434        /* Enable interrupt on the serial port. */
     
    727720{
    728721        printf(NAME ": ns8250_add_device %s (handle = %d)\n",
    729             dev->name, dev->handle);
     722            dev->name, (int) dev->handle);
    730723       
    731724        int res = ns8250_dev_initialize(dev);
     
    887880    ipc_call_t *call)
    888881{
    889         ipcarg_t method = IPC_GET_METHOD(*call);
     882        sysarg_t method = IPC_GET_IMETHOD(*call);
    890883        int ret;
    891884        unsigned int baud_rate, parity, word_length, stop_bits;
     
    924917        ns8250_dev_ops.close = &ns8250_close;
    925918       
    926         ns8250_dev_ops.interfaces[CHAR_DEV_IFACE] = &ns8250_char_iface;
     919        ns8250_dev_ops.interfaces[CHAR_DEV_IFACE] = &ns8250_char_dev_ops;
    927920        ns8250_dev_ops.default_handler = &ns8250_default_handler;
    928921}
Note: See TracChangeset for help on using the changeset viewer.