Changeset e9d15d9 in mainline for uspace/drv
- Timestamp:
- 2017-08-18T21:15:26Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 24abb85d
- Parents:
- 1c85bae
- Location:
- uspace/drv
- Files:
-
- 11 edited
-
audio/hdaudio/hdaudio.c (modified) (1 diff)
-
audio/sb16/main.c (modified) (3 diffs)
-
block/ahci/ahci.c (modified) (2 diffs)
-
block/ddisk/ddisk.c (modified) (4 diffs)
-
char/i8042/i8042.c (modified) (2 diffs)
-
char/ns8250/ns8250.c (modified) (3 diffs)
-
char/pl050/pl050.c (modified) (1 diff)
-
nic/e1k/e1k.c (modified) (4 diffs)
-
nic/ne2k/ne2k.c (modified) (2 diffs)
-
nic/rtl8139/driver.c (modified) (4 diffs)
-
nic/rtl8169/driver.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/audio/hdaudio/hdaudio.c
r1c85bae re9d15d9 263 263 } 264 264 265 rc= register_interrupt_handler(dev, res.irqs.irqs[0],265 int irq_cap = register_interrupt_handler(dev, res.irqs.irqs[0], 266 266 hdaudio_interrupt, &irq_code); 267 if (rc != EOK) { 267 if (irq_cap < 0) { 268 rc = irq_cap; 268 269 ddf_msg(LVL_ERROR, "Failed registering interrupt handler. (%d)", 269 270 rc); -
uspace/drv/audio/sb16/main.c
r1c85bae re9d15d9 94 94 irq_cmd_t irq_cmds[irq_cmd_count]; 95 95 irq_pio_range_t irq_ranges[1]; 96 int irq_cap; 96 97 97 98 sb16_t *soft_state = ddf_dev_data_alloc(device, sizeof(sb16_t)); … … 123 124 }; 124 125 125 rc = register_interrupt_handler(device, irq, irq_handler, &irq_code); 126 if (rc != EOK) { 126 irq_cap = register_interrupt_handler(device, irq, irq_handler, 127 &irq_code); 128 if (irq_cap < 0) { 129 rc = irq_cap; 127 130 ddf_log_error("Failed to register irq handler: %s.", 128 131 str_error(rc)); … … 168 171 error: 169 172 if (handler_regd) 170 unregister_interrupt_handler(device, irq );173 unregister_interrupt_handler(device, irq_cap); 171 174 return rc; 172 175 } -
uspace/drv/block/ahci/ahci.c
r1c85bae re9d15d9 1185 1185 ct.ranges = ahci_ranges; 1186 1186 1187 int rc = register_interrupt_handler(dev, hw_res_parsed.irqs.irqs[0],1188 ahci_interrupt, &ct);1189 if ( rc != EOK) {1187 int irq_cap = register_interrupt_handler(dev, 1188 hw_res_parsed.irqs.irqs[0], ahci_interrupt, &ct); 1189 if (irq_cap < 0) { 1190 1190 ddf_msg(LVL_ERROR, "Failed registering interrupt handler."); 1191 1191 goto error_register_interrupt_handler; 1192 1192 } 1193 1193 1194 rc = irc_enable_interrupt(hw_res_parsed.irqs.irqs[0]);1194 int rc = irc_enable_interrupt(hw_res_parsed.irqs.irqs[0]); 1195 1195 if (rc != EOK) { 1196 1196 ddf_msg(LVL_ERROR, "Failed enable interupt."); … … 1202 1202 1203 1203 error_enable_interrupt: 1204 unregister_interrupt_handler(dev, hw_res_parsed.irqs.irqs[0]);1204 unregister_interrupt_handler(dev, irq_cap); 1205 1205 1206 1206 error_register_interrupt_handler: -
uspace/drv/block/ddisk/ddisk.c
r1c85bae re9d15d9 112 112 ddisk_regs_t *ddisk_regs; 113 113 114 int irq_cap; 115 114 116 bd_srvs_t bds; 115 117 } ddisk_t; … … 447 449 ddisk->bds.sarg = ddisk; 448 450 451 ddisk->irq_cap = -1; 452 449 453 /* 450 454 * Enable access to ddisk's PIO registers. … … 499 503 ddisk_irq_commands[0].addr = (void *) &res_phys->status; 500 504 ddisk_irq_commands[3].addr = (void *) &res_phys->command; 501 rc= register_interrupt_handler(dev, ddisk->ddisk_res.irq,505 ddisk->irq_cap = register_interrupt_handler(dev, ddisk->ddisk_res.irq, 502 506 ddisk_irq_handler, &ddisk_irq_code); 503 if (rc != EOK) { 507 if (ddisk->irq_cap < 0) { 508 rc = ddisk->irq_cap; 504 509 ddf_msg(LVL_ERROR, "Failed to register interrupt handler."); 505 510 goto error; … … 541 546 } 542 547 543 unregister_interrupt_handler(ddisk->dev, ddisk-> ddisk_res.irq);548 unregister_interrupt_handler(ddisk->dev, ddisk->irq_cap); 544 549 545 550 rc = pio_disable(ddisk->ddisk_regs, sizeof(ddisk_regs_t)); -
uspace/drv/char/i8042/i8042.c
r1c85bae re9d15d9 269 269 }; 270 270 271 rc = register_interrupt_handler(ddf_dev, irq_kbd, i8042_irq_handler, 272 &irq_code); 273 if (rc != EOK) { 271 const int irq_kbd_cap = register_interrupt_handler(ddf_dev, irq_kbd, 272 i8042_irq_handler, &irq_code); 273 if (irq_kbd_cap < 0) { 274 rc = irq_kbd_cap; 274 275 ddf_msg(LVL_ERROR, "Failed set handler for kbd: %s.", 275 276 ddf_dev_get_name(ddf_dev)); … … 277 278 } 278 279 279 rc = register_interrupt_handler(ddf_dev, irq_mouse, i8042_irq_handler, 280 &irq_code); 281 if (rc != EOK) { 280 const int irq_mouse_cap = register_interrupt_handler(ddf_dev, irq_mouse, 281 i8042_irq_handler, &irq_code); 282 if (irq_mouse_cap < 0) { 283 rc = irq_mouse_cap; 282 284 ddf_msg(LVL_ERROR, "Failed set handler for mouse: %s.", 283 285 ddf_dev_get_name(ddf_dev)); -
uspace/drv/char/ns8250/ns8250.c
r1c85bae re9d15d9 160 160 /** The irq assigned to this device. */ 161 161 int irq; 162 /** IRQ capability */ 163 int irq_cap; 162 164 /** The base i/o address of the devices registers. */ 163 165 uintptr_t io_addr; … … 797 799 static inline int ns8250_unregister_interrupt_handler(ns8250_t *ns) 798 800 { 799 return unregister_interrupt_handler(ns->dev, ns->irq );801 return unregister_interrupt_handler(ns->dev, ns->irq_cap); 800 802 } 801 803 … … 849 851 850 852 /* Register interrupt handler. */ 851 if (ns8250_register_interrupt_handler(ns) != EOK) { 853 ns->irq_cap = ns8250_register_interrupt_handler(ns); 854 if (ns->irq_cap < 0) { 852 855 ddf_msg(LVL_ERROR, "Failed to register interrupt handler."); 853 856 rc = EADDRNOTAVAIL; -
uspace/drv/char/pl050/pl050.c
r1c85bae re9d15d9 212 212 pl050->regs = regs; 213 213 214 rc = register_interrupt_handler(pl050->dev, res.irqs.irqs[0], 215 pl050_interrupt, &pl050_irq_code); 216 if (rc != EOK) { 214 const int irq_cap = register_interrupt_handler(pl050->dev, 215 res.irqs.irqs[0], pl050_interrupt, &pl050_irq_code); 216 if (irq_cap < 0) { 217 rc = irq_cap; 217 218 ddf_msg(LVL_ERROR, "Failed registering interrupt handler. (%d)", 218 219 rc); -
uspace/drv/nic/e1k/e1k.c
r1c85bae re9d15d9 1253 1253 * @param nic Driver data 1254 1254 * 1255 * @return EOKif the handler was registered1255 * @return IRQ capability if the handler was registered 1256 1256 * @return Negative error code otherwise 1257 1257 * … … 1268 1268 e1000_irq_code.cmds[2].addr = e1000->reg_base_phys + E1000_IMC; 1269 1269 1270 int rc = register_interrupt_handler(nic_get_ddf_dev(nic),1271 e1000 ->irq, e1000_interrupt_handler, &e1000_irq_code);1270 int cap = register_interrupt_handler(nic_get_ddf_dev(nic), e1000->irq, 1271 e1000_interrupt_handler, &e1000_irq_code); 1272 1272 1273 1273 fibril_mutex_unlock(&irq_reg_mutex); 1274 return rc;1274 return cap; 1275 1275 } 1276 1276 … … 2152 2152 ddf_fun_set_ops(fun, &e1000_dev_ops); 2153 2153 2154 rc = e1000_register_int_handler(nic); 2155 if (rc != EOK) 2154 int irq_cap = e1000_register_int_handler(nic); 2155 if (irq_cap < 0) { 2156 rc = irq_cap; 2156 2157 goto err_fun_create; 2158 } 2157 2159 2158 2160 rc = e1000_initialize_rx_structure(nic); … … 2189 2191 e1000_uninitialize_rx_structure(nic); 2190 2192 err_irq: 2191 unregister_interrupt_handler(dev, DRIVER_DATA_DEV(dev)->irq);2193 unregister_interrupt_handler(dev, irq_cap); 2192 2194 err_fun_create: 2193 2195 ddf_fun_destroy(fun); -
uspace/drv/nic/ne2k/ne2k.c
r1c85bae re9d15d9 160 160 } 161 161 162 int rc= register_interrupt_handler(nic_get_ddf_dev(nic_data),162 int irq_cap = register_interrupt_handler(nic_get_ddf_dev(nic_data), 163 163 ne2k->irq, ne2k_interrupt_handler, &ne2k->code); 164 return rc;164 return irq_cap; 165 165 } 166 166 … … 228 228 ne2k->probed = true; 229 229 230 rc= ne2k_register_interrupt(nic_data);231 if ( rc != EOK)230 int irq_cap = ne2k_register_interrupt(nic_data); 231 if (irq_cap < 0) 232 232 return EINVAL; 233 233 -
uspace/drv/nic/rtl8139/driver.c
r1c85bae re9d15d9 881 881 * @param nic_data The driver data 882 882 * 883 * @return EOK if the handler was registered, negative error code otherwise 883 * @return IRQ capability if the handler was registered. 884 * @return Negative error code otherwise. 884 885 */ 885 886 inline static int rtl8139_register_int_handler(nic_t *nic_data) … … 894 895 rtl8139_irq_code.cmds[2].addr = rtl8139->io_addr + ISR; 895 896 rtl8139_irq_code.cmds[3].addr = rtl8139->io_addr + IMR; 896 int rc= register_interrupt_handler(nic_get_ddf_dev(nic_data),897 int cap = register_interrupt_handler(nic_get_ddf_dev(nic_data), 897 898 rtl8139->irq, rtl8139_interrupt_handler, &rtl8139_irq_code); 898 899 899 900 RTL8139_IRQ_STRUCT_UNLOCK(); 900 901 901 return rc;902 return cap; 902 903 } 903 904 … … 1321 1322 1322 1323 /* Register interrupt handler */ 1323 rc = rtl8139_register_int_handler(nic_data); 1324 if (rc != EOK) 1324 int irq_cap = rtl8139_register_int_handler(nic_data); 1325 if (irq_cap < 0) { 1326 rc = irq_cap; 1325 1327 goto err_pio; 1328 } 1326 1329 1327 1330 fun = ddf_fun_create(nic_get_ddf_dev(nic_data), fun_exposed, "port0"); … … 1355 1358 ddf_fun_destroy(fun); 1356 1359 err_srv: 1357 unregister_interrupt_handler(dev, rtl8139->irq);1360 unregister_interrupt_handler(dev, irq_cap); 1358 1361 err_pio: 1359 1362 // rtl8139_pio_disable(dev); -
uspace/drv/nic/rtl8169/driver.c
r1c85bae re9d15d9 371 371 rtl8169_irq_code.cmds[2].addr = rtl8169->regs + ISR; 372 372 rtl8169_irq_code.cmds[3].addr = rtl8169->regs + IMR; 373 int rc= register_interrupt_handler(nic_get_ddf_dev(nic_data),373 int irq_cap = register_interrupt_handler(nic_get_ddf_dev(nic_data), 374 374 rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code); 375 375 376 return rc;376 return irq_cap; 377 377 } 378 378 … … 426 426 goto err_pio; 427 427 428 rc = rtl8169_register_int_handler(nic_data); 429 if (rc != EOK) { 428 int irq_cap = rtl8169_register_int_handler(nic_data); 429 if (irq_cap < 0) { 430 rc = irq_cap; 430 431 ddf_msg(LVL_ERROR, "Failed to register IRQ handler (%d)", rc); 431 432 goto err_irq; 432 433 433 } 434 434 … … 469 469 err_srv: 470 470 /* XXX Disconnect from services */ 471 unregister_interrupt_handler(dev, irq_cap); 471 472 err_irq: 472 //unregister_interrupt_handler(dev, rtl8169->irq);473 473 err_pio: 474 474 err_destroy:
Note:
See TracChangeset
for help on using the changeset viewer.
