Changeset 132ab5d1 in mainline for uspace/drv/bus


Ignore:
Timestamp:
2018-01-30T03:20:45Z (8 years ago)
Author:
Jenda <jenda.jzqk73@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5a6cc679
Parents:
8bfb163 (diff), 6a5d05b (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 commit '6a5d05bd2551e64111bea4f9332dd7448c26ce84' into forwardport

Separate return value from error code in gen_irq_code*().

Location:
uspace/drv/bus
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/adb/cuda_adb/cuda_adb.c

    r8bfb163 r132ab5d1  
    4646#include <stdbool.h>
    4747#include <stddef.h>
    48 #include <sysinfo.h>
    4948#include <stdint.h>
    5049#include <stdio.h>
     
    5857static void cuda_dev_connection(ipc_callid_t, ipc_call_t *, void *);
    5958static int cuda_init(cuda_t *);
    60 static void cuda_irq_handler(ipc_callid_t, ipc_call_t *, void *);
     59static void cuda_irq_handler(ipc_call_t *, void *);
    6160
    6261static void cuda_irq_listen(cuda_t *);
     
    109108};
    110109
    111 static int cuda_dev_create(cuda_t *cuda, const char *name, adb_dev_t **rdev)
     110static int cuda_dev_create(cuda_t *cuda, const char *name, const char *id,
     111    adb_dev_t **rdev)
    112112{
    113113        adb_dev_t *dev = NULL;
     
    115115        int rc;
    116116
    117         fun = ddf_fun_create(cuda->dev, fun_exposed, name);
     117        fun = ddf_fun_create(cuda->dev, fun_inner, name);
    118118        if (fun == NULL) {
    119119                ddf_msg(LVL_ERROR, "Failed creating function '%s'.", name);
     120                rc = ENOMEM;
     121                goto error;
     122        }
     123
     124        rc = ddf_fun_add_match_id(fun, id, 10);
     125        if (rc != EOK) {
     126                ddf_msg(LVL_ERROR, "Failed adding match ID.");
    120127                rc = ENOMEM;
    121128                goto error;
     
    156163        cuda->phys_base = res->base;
    157164
    158         rc = cuda_dev_create(cuda, "kbd", &kbd);
     165        rc = cuda_dev_create(cuda, "kbd", "adb/keyboard", &kbd);
    159166        if (rc != EOK)
    160167                goto error;
    161168
    162         rc = cuda_dev_create(cuda, "mouse", &mouse);
     169        rc = cuda_dev_create(cuda, "mouse", "adb/mouse", &mouse);
    163170        if (rc != EOK)
    164171                goto error;
     
    245252        cuda_irq_code.cmds[0].addr = (void *) &((cuda_regs_t *)
    246253            cuda->phys_base)->ifr;
    247         async_irq_subscribe(10, cuda_irq_handler, cuda, &cuda_irq_code);
     254        async_irq_subscribe(10, cuda_irq_handler, cuda, &cuda_irq_code, NULL);
    248255
    249256        /* Enable SR interrupt. */
     
    257264}
    258265
    259 static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg)
     266static void cuda_irq_handler(ipc_call_t *call, void *arg)
    260267{
    261268        uint8_t rbuf[CUDA_RCV_BUF_SIZE];
  • uspace/drv/bus/isa/isa.c

    r8bfb163 r132ab5d1  
    4949#include <ctype.h>
    5050#include <macros.h>
    51 #include <malloc.h>
     51#include <stdlib.h>
    5252#include <dirent.h>
    5353#include <ipc/irc.h>
     
    277277        int fd;
    278278        size_t len;
    279         ssize_t r;
     279        int rc;
     280        size_t nread;
    280281        struct stat st;
    281282
    282         fd = vfs_lookup_open(conf_path, WALK_REGULAR, MODE_READ);
    283         if (fd < 0) {
     283        rc = vfs_lookup_open(conf_path, WALK_REGULAR, MODE_READ, &fd);
     284        if (rc != EOK) {
    284285                ddf_msg(LVL_ERROR, "Unable to open %s", conf_path);
    285286                goto cleanup;
     
    306307        }
    307308
    308         r = vfs_read(fd, (aoff64_t []) {0}, buf, len);
    309         if (r < 0) {
     309        rc = vfs_read(fd, (aoff64_t []) {0}, buf, len, &nread);
     310        if (rc != EOK) {
    310311                ddf_msg(LVL_ERROR, "Unable to read file '%s'.", conf_path);
    311312                goto cleanup;
    312313        }
    313314
    314         buf[len] = 0;
     315        buf[nread] = 0;
    315316
    316317        suc = true;
  • uspace/drv/bus/pci/pciintel/pci.c

    r8bfb163 r132ab5d1  
    9999}
    100100
    101 static int pciintel_fun_owns_interrupt(pci_fun_t *fun, int irq)
     101static bool pciintel_fun_owns_interrupt(pci_fun_t *fun, int irq)
    102102{
    103103        size_t i;
     
    383383{
    384384        int rc;
     385        int ret;
    385386        char match_id_str[ID_MAX_STR_LEN];
    386387
    387388        /* Vendor ID & Device ID, length(incl \0) 22 */
    388         rc = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04"
     389        ret = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04"
    389390            PRIx16 "&dev=%04" PRIx16, fun->vendor_id, fun->device_id);
    390         if (rc < 0) {
    391                 ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
    392                     str_error(rc));
     391        if (ret < 0) {
     392                ddf_msg(LVL_ERROR, "Failed creating match ID str");
    393393        }
    394394
     
    399399
    400400        /* Class, subclass, prog IF, revision, length(incl \0) 47 */
    401         rc = snprintf(match_id_str, ID_MAX_STR_LEN,
     401        ret = snprintf(match_id_str, ID_MAX_STR_LEN,
    402402            "pci/class=%02x&subclass=%02x&progif=%02x&revision=%02x",
    403403            fun->class_code, fun->subclass_code, fun->prog_if, fun->revision);
    404         if (rc < 0) {
    405                 ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
    406                     str_error(rc));
     404        if (ret < 0) {
     405                ddf_msg(LVL_ERROR, "Failed creating match ID str");
    407406        }
    408407
     
    413412
    414413        /* Class, subclass, prog IF, length(incl \0) 35 */
    415         rc = snprintf(match_id_str, ID_MAX_STR_LEN,
     414        ret = snprintf(match_id_str, ID_MAX_STR_LEN,
    416415            "pci/class=%02x&subclass=%02x&progif=%02x",
    417416            fun->class_code, fun->subclass_code, fun->prog_if);
    418         if (rc < 0) {
    419                 ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
    420                     str_error(rc));
     417        if (ret < 0) {
     418                ddf_msg(LVL_ERROR, "Failed creating match ID str");
    421419        }
    422420
     
    427425
    428426        /* Class, subclass, length(incl \0) 25 */
    429         rc = snprintf(match_id_str, ID_MAX_STR_LEN,
     427        ret = snprintf(match_id_str, ID_MAX_STR_LEN,
    430428            "pci/class=%02x&subclass=%02x",
    431429            fun->class_code, fun->subclass_code);
    432         if (rc < 0) {
    433                 ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
    434                     str_error(rc));
     430        if (ret < 0) {
     431                ddf_msg(LVL_ERROR, "Failed creating match ID str");
    435432        }
    436433
     
    441438
    442439        /* Class, length(incl \0) 13 */
    443         rc = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/class=%02x",
     440        ret = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/class=%02x",
    444441            fun->class_code);
    445         if (rc < 0) {
    446                 ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
    447                     str_error(rc));
     442        if (ret < 0) {
     443                ddf_msg(LVL_ERROR, "Failed creating match ID str");
    448444        }
    449445
     
    514510#define MEM_MASK (~0xf)
    515511       
    516         io = (bool) (val & 1);
     512        io = (val & 1) != 0;
    517513        if (io) {
    518514                addrw64 = false;
  • uspace/drv/bus/usb/ehci/ehci_batch.c

    r8bfb163 r132ab5d1  
    205205                            -= td_remain_size(&ehci_batch->tds[i]);
    206206                } else {
    207                         usb_log_debug("Batch %p found error TD(%zu):%08x (%d).",
     207                        usb_log_debug("Batch %p found error TD(%zu):%08x: %s.",
    208208                            ehci_batch, i,
    209209                            ehci_batch->tds[i].status,
    210                             ehci_batch->base.error);
     210                            str_error_name(ehci_batch->base.error));
    211211                        /* Clear possible ED HALT */
    212212                        qh_clear_halt(ehci_batch->qh);
  • uspace/drv/bus/usb/ehci/hc.c

    r8bfb163 r132ab5d1  
    9595 * @param[in] hw_res Device's resources.
    9696 *
     97 * @param[out] irq
     98 *
    9799 * @return Error code.
    98100 */
    99 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)
     101int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)
    100102{
    101103        assert(code);
     
    138140            RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
    139141
    140         return hw_res->irqs.irqs[0];
     142        *irq = hw_res->irqs.irqs[0];
     143        return EOK;
    141144}
    142145
  • uspace/drv/bus/usb/ehci/hc.h

    r8bfb163 r132ab5d1  
    103103extern int hc_start(hc_device_t *);
    104104extern int hc_setup_roothub(hc_device_t *);
    105 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *);
     105extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *);
    106106extern int hc_gone(hc_device_t *);
    107107
  • uspace/drv/bus/usb/ohci/hc.c

    r8bfb163 r132ab5d1  
    102102 * @return Error code.
    103103 */
    104 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)
     104int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)
    105105{
    106106        assert(code);
     
    140140            RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
    141141
    142         return hw_res->irqs.irqs[0];
     142        *irq = hw_res->irqs.irqs[0];
     143        return EOK;
    143144}
    144145
  • uspace/drv/bus/usb/ohci/hc.h

    r8bfb163 r132ab5d1  
    9090
    9191extern int hc_add(hc_device_t *, const hw_res_list_parsed_t *);
    92 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *);
     92extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *);
    9393extern int hc_gain_control(hc_device_t *);
    9494extern int hc_start(hc_device_t *);
  • uspace/drv/bus/usb/ohci/hw_struct/completion_codes.h

    r8bfb163 r132ab5d1  
    5454};
    5555
    56 inline static unsigned int cc_to_rc(unsigned int cc)
     56inline static int cc_to_rc(unsigned int cc)
    5757{
    5858        switch (cc) {
  • uspace/drv/bus/usb/ohci/hw_struct/hcca.h

    r8bfb163 r132ab5d1  
    3737#define DRV_OHCI_HW_STRUCT_HCCA_H
    3838
    39 #include <malloc.h>
     39#include <stdlib.h>
    4040#include <stdint.h>
    4141#include <macros.h>
  • uspace/drv/bus/usb/uhci/hc.c

    r8bfb163 r132ab5d1  
    106106 * @param[out] code IRQ code structure.
    107107 * @param[in] hw_res Device's resources.
     108 * @param[out] irq
    108109 *
    109110 * @return Error code.
    110111 */
    111 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)
     112int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)
    112113{
    113114        assert(code);
     
    145146            RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
    146147
    147         return hw_res->irqs.irqs[0];
     148        *irq = hw_res->irqs.irqs[0];
     149        return EOK;
    148150}
    149151
  • uspace/drv/bus/usb/uhci/hc.h

    r8bfb163 r132ab5d1  
    158158
    159159extern int hc_add(hc_device_t *, const hw_res_list_parsed_t *);
    160 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *);
     160extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *);
    161161extern int hc_start(hc_device_t *);
    162162extern int hc_setup_roothub(hc_device_t *);
  • uspace/drv/bus/usb/usbmid/usbmid.c

    r8bfb163 r132ab5d1  
    120120         * class name something humanly understandable.
    121121         */
    122         rc = asprintf(&child_name, "%s%hhu",
     122        int ret = asprintf(&child_name, "%s%hhu",
    123123            usb_str_class(interface_descriptor->interface_class),
    124124            interface_descriptor->interface_number);
    125         if (rc < 0) {
     125        if (ret < 0) {
    126126                return ENOMEM;
    127127        }
  • uspace/drv/bus/usb/vhc/conndev.c

    r8bfb163 r132ab5d1  
    7575        }
    7676       
    77         sysarg_t data_request_rc;
    78         sysarg_t opening_request_rc;
     77        int data_request_rc;
     78        int opening_request_rc;
    7979        async_wait_for(data_request, &data_request_rc);
    8080        async_wait_for(opening_request, &opening_request_rc);
  • uspace/drv/bus/usb/xhci/hc.c

    r8bfb163 r132ab5d1  
    369369 * (except 0) are disabled.
    370370 */
    371 int hc_irq_code_gen(irq_code_t *code, xhci_hc_t *hc, const hw_res_list_parsed_t *hw_res)
     371int hc_irq_code_gen(irq_code_t *code, xhci_hc_t *hc, const hw_res_list_parsed_t *hw_res, int *irq)
    372372{
    373373        assert(code);
     
    412412        code->cmds[6].addr = intr0_iman;
    413413
    414         return hw_res->irqs.irqs[0];
     414        *irq = hw_res->irqs.irqs[0];
     415        return EOK;
    415416}
    416417
  • uspace/drv/bus/usb/xhci/hc.h

    r8bfb163 r132ab5d1  
    117117extern int hc_init_memory(xhci_hc_t *, ddf_dev_t *);
    118118extern int hc_claim(xhci_hc_t *, ddf_dev_t *);
    119 extern int hc_irq_code_gen(irq_code_t *, xhci_hc_t *, const hw_res_list_parsed_t *);
     119extern int hc_irq_code_gen(irq_code_t *, xhci_hc_t *, const hw_res_list_parsed_t *, int *);
    120120extern int hc_start(xhci_hc_t *, bool);
    121121extern void hc_fini(xhci_hc_t *);
  • uspace/drv/bus/usb/xhci/main.c

    r8bfb163 r132ab5d1  
    6868}
    6969
    70 static int hcd_irq_code_gen(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)
     70static int hcd_irq_code_gen(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)
    7171{
    7272        xhci_hc_t *hc = hcd_to_hc(hcd);
    73         return hc_irq_code_gen(code, hc, hw_res);
     73        return hc_irq_code_gen(code, hc, hw_res, irq);
    7474}
    7575
Note: See TracChangeset for help on using the changeset viewer.