Changeset 132ab5d1 in mainline for uspace/drv/bus
- Timestamp:
- 2018-01-30T03:20:45Z (8 years ago)
- 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. - Location:
- uspace/drv/bus
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/adb/cuda_adb/cuda_adb.c
r8bfb163 r132ab5d1 46 46 #include <stdbool.h> 47 47 #include <stddef.h> 48 #include <sysinfo.h>49 48 #include <stdint.h> 50 49 #include <stdio.h> … … 58 57 static void cuda_dev_connection(ipc_callid_t, ipc_call_t *, void *); 59 58 static int cuda_init(cuda_t *); 60 static void cuda_irq_handler(ipc_call id_t, ipc_call_t *, void *);59 static void cuda_irq_handler(ipc_call_t *, void *); 61 60 62 61 static void cuda_irq_listen(cuda_t *); … … 109 108 }; 110 109 111 static int cuda_dev_create(cuda_t *cuda, const char *name, adb_dev_t **rdev) 110 static int cuda_dev_create(cuda_t *cuda, const char *name, const char *id, 111 adb_dev_t **rdev) 112 112 { 113 113 adb_dev_t *dev = NULL; … … 115 115 int rc; 116 116 117 fun = ddf_fun_create(cuda->dev, fun_ exposed, name);117 fun = ddf_fun_create(cuda->dev, fun_inner, name); 118 118 if (fun == NULL) { 119 119 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."); 120 127 rc = ENOMEM; 121 128 goto error; … … 156 163 cuda->phys_base = res->base; 157 164 158 rc = cuda_dev_create(cuda, "kbd", &kbd);165 rc = cuda_dev_create(cuda, "kbd", "adb/keyboard", &kbd); 159 166 if (rc != EOK) 160 167 goto error; 161 168 162 rc = cuda_dev_create(cuda, "mouse", &mouse);169 rc = cuda_dev_create(cuda, "mouse", "adb/mouse", &mouse); 163 170 if (rc != EOK) 164 171 goto error; … … 245 252 cuda_irq_code.cmds[0].addr = (void *) &((cuda_regs_t *) 246 253 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); 248 255 249 256 /* Enable SR interrupt. */ … … 257 264 } 258 265 259 static void cuda_irq_handler(ipc_call id_t iid, ipc_call_t *call, void *arg)266 static void cuda_irq_handler(ipc_call_t *call, void *arg) 260 267 { 261 268 uint8_t rbuf[CUDA_RCV_BUF_SIZE]; -
uspace/drv/bus/isa/isa.c
r8bfb163 r132ab5d1 49 49 #include <ctype.h> 50 50 #include <macros.h> 51 #include < malloc.h>51 #include <stdlib.h> 52 52 #include <dirent.h> 53 53 #include <ipc/irc.h> … … 277 277 int fd; 278 278 size_t len; 279 ssize_t r; 279 int rc; 280 size_t nread; 280 281 struct stat st; 281 282 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) { 284 285 ddf_msg(LVL_ERROR, "Unable to open %s", conf_path); 285 286 goto cleanup; … … 306 307 } 307 308 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) { 310 311 ddf_msg(LVL_ERROR, "Unable to read file '%s'.", conf_path); 311 312 goto cleanup; 312 313 } 313 314 314 buf[ len] = 0;315 buf[nread] = 0; 315 316 316 317 suc = true; -
uspace/drv/bus/pci/pciintel/pci.c
r8bfb163 r132ab5d1 99 99 } 100 100 101 static intpciintel_fun_owns_interrupt(pci_fun_t *fun, int irq)101 static bool pciintel_fun_owns_interrupt(pci_fun_t *fun, int irq) 102 102 { 103 103 size_t i; … … 383 383 { 384 384 int rc; 385 int ret; 385 386 char match_id_str[ID_MAX_STR_LEN]; 386 387 387 388 /* Vendor ID & Device ID, length(incl \0) 22 */ 388 r c= snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04"389 ret = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04" 389 390 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"); 393 393 } 394 394 … … 399 399 400 400 /* Class, subclass, prog IF, revision, length(incl \0) 47 */ 401 r c= snprintf(match_id_str, ID_MAX_STR_LEN,401 ret = snprintf(match_id_str, ID_MAX_STR_LEN, 402 402 "pci/class=%02x&subclass=%02x&progif=%02x&revision=%02x", 403 403 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"); 407 406 } 408 407 … … 413 412 414 413 /* Class, subclass, prog IF, length(incl \0) 35 */ 415 r c= snprintf(match_id_str, ID_MAX_STR_LEN,414 ret = snprintf(match_id_str, ID_MAX_STR_LEN, 416 415 "pci/class=%02x&subclass=%02x&progif=%02x", 417 416 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"); 421 419 } 422 420 … … 427 425 428 426 /* Class, subclass, length(incl \0) 25 */ 429 r c= snprintf(match_id_str, ID_MAX_STR_LEN,427 ret = snprintf(match_id_str, ID_MAX_STR_LEN, 430 428 "pci/class=%02x&subclass=%02x", 431 429 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"); 435 432 } 436 433 … … 441 438 442 439 /* Class, length(incl \0) 13 */ 443 r c= snprintf(match_id_str, ID_MAX_STR_LEN, "pci/class=%02x",440 ret = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/class=%02x", 444 441 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"); 448 444 } 449 445 … … 514 510 #define MEM_MASK (~0xf) 515 511 516 io = ( bool) (val & 1);512 io = (val & 1) != 0; 517 513 if (io) { 518 514 addrw64 = false; -
uspace/drv/bus/usb/ehci/ehci_batch.c
r8bfb163 r132ab5d1 205 205 -= td_remain_size(&ehci_batch->tds[i]); 206 206 } 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.", 208 208 ehci_batch, i, 209 209 ehci_batch->tds[i].status, 210 ehci_batch->base.error);210 str_error_name(ehci_batch->base.error)); 211 211 /* Clear possible ED HALT */ 212 212 qh_clear_halt(ehci_batch->qh); -
uspace/drv/bus/usb/ehci/hc.c
r8bfb163 r132ab5d1 95 95 * @param[in] hw_res Device's resources. 96 96 * 97 * @param[out] irq 98 * 97 99 * @return Error code. 98 100 */ 99 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res )101 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 100 102 { 101 103 assert(code); … … 138 140 RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]); 139 141 140 return hw_res->irqs.irqs[0]; 142 *irq = hw_res->irqs.irqs[0]; 143 return EOK; 141 144 } 142 145 -
uspace/drv/bus/usb/ehci/hc.h
r8bfb163 r132ab5d1 103 103 extern int hc_start(hc_device_t *); 104 104 extern 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 * );105 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 106 106 extern int hc_gone(hc_device_t *); 107 107 -
uspace/drv/bus/usb/ohci/hc.c
r8bfb163 r132ab5d1 102 102 * @return Error code. 103 103 */ 104 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res )104 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 105 105 { 106 106 assert(code); … … 140 140 RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]); 141 141 142 return hw_res->irqs.irqs[0]; 142 *irq = hw_res->irqs.irqs[0]; 143 return EOK; 143 144 } 144 145 -
uspace/drv/bus/usb/ohci/hc.h
r8bfb163 r132ab5d1 90 90 91 91 extern 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 * );92 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 93 93 extern int hc_gain_control(hc_device_t *); 94 94 extern int hc_start(hc_device_t *); -
uspace/drv/bus/usb/ohci/hw_struct/completion_codes.h
r8bfb163 r132ab5d1 54 54 }; 55 55 56 inline static unsignedint cc_to_rc(unsigned int cc)56 inline static int cc_to_rc(unsigned int cc) 57 57 { 58 58 switch (cc) { -
uspace/drv/bus/usb/ohci/hw_struct/hcca.h
r8bfb163 r132ab5d1 37 37 #define DRV_OHCI_HW_STRUCT_HCCA_H 38 38 39 #include < malloc.h>39 #include <stdlib.h> 40 40 #include <stdint.h> 41 41 #include <macros.h> -
uspace/drv/bus/usb/uhci/hc.c
r8bfb163 r132ab5d1 106 106 * @param[out] code IRQ code structure. 107 107 * @param[in] hw_res Device's resources. 108 * @param[out] irq 108 109 * 109 110 * @return Error code. 110 111 */ 111 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res )112 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 112 113 { 113 114 assert(code); … … 145 146 RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]); 146 147 147 return hw_res->irqs.irqs[0]; 148 *irq = hw_res->irqs.irqs[0]; 149 return EOK; 148 150 } 149 151 -
uspace/drv/bus/usb/uhci/hc.h
r8bfb163 r132ab5d1 158 158 159 159 extern 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 * );160 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 161 161 extern int hc_start(hc_device_t *); 162 162 extern int hc_setup_roothub(hc_device_t *); -
uspace/drv/bus/usb/usbmid/usbmid.c
r8bfb163 r132ab5d1 120 120 * class name something humanly understandable. 121 121 */ 122 rc= asprintf(&child_name, "%s%hhu",122 int ret = asprintf(&child_name, "%s%hhu", 123 123 usb_str_class(interface_descriptor->interface_class), 124 124 interface_descriptor->interface_number); 125 if (r c< 0) {125 if (ret < 0) { 126 126 return ENOMEM; 127 127 } -
uspace/drv/bus/usb/vhc/conndev.c
r8bfb163 r132ab5d1 75 75 } 76 76 77 sysarg_t data_request_rc;78 sysarg_t opening_request_rc;77 int data_request_rc; 78 int opening_request_rc; 79 79 async_wait_for(data_request, &data_request_rc); 80 80 async_wait_for(opening_request, &opening_request_rc); -
uspace/drv/bus/usb/xhci/hc.c
r8bfb163 r132ab5d1 369 369 * (except 0) are disabled. 370 370 */ 371 int hc_irq_code_gen(irq_code_t *code, xhci_hc_t *hc, const hw_res_list_parsed_t *hw_res )371 int hc_irq_code_gen(irq_code_t *code, xhci_hc_t *hc, const hw_res_list_parsed_t *hw_res, int *irq) 372 372 { 373 373 assert(code); … … 412 412 code->cmds[6].addr = intr0_iman; 413 413 414 return hw_res->irqs.irqs[0]; 414 *irq = hw_res->irqs.irqs[0]; 415 return EOK; 415 416 } 416 417 -
uspace/drv/bus/usb/xhci/hc.h
r8bfb163 r132ab5d1 117 117 extern int hc_init_memory(xhci_hc_t *, ddf_dev_t *); 118 118 extern 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 * );119 extern int hc_irq_code_gen(irq_code_t *, xhci_hc_t *, const hw_res_list_parsed_t *, int *); 120 120 extern int hc_start(xhci_hc_t *, bool); 121 121 extern void hc_fini(xhci_hc_t *); -
uspace/drv/bus/usb/xhci/main.c
r8bfb163 r132ab5d1 68 68 } 69 69 70 static int hcd_irq_code_gen(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res )70 static int hcd_irq_code_gen(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 71 71 { 72 72 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); 74 74 } 75 75
Note:
See TracChangeset
for help on using the changeset viewer.