Changeset 60744cb in mainline for uspace/drv/char
- Timestamp:
- 2024-05-17T17:51:56Z (22 months ago)
- Branches:
- master
- Children:
- 1801005
- Parents:
- 646849b3
- Location:
- uspace/drv/char
- Files:
-
- 4 edited
-
i8042/i8042.c (modified) (5 diffs)
-
i8042/i8042.h (modified) (2 diffs)
-
ns8250/ns8250.c (modified) (2 diffs)
-
pl050/pl050.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/char/i8042/i8042.c
r646849b3 r60744cb 123 123 * Write new data to the corresponding buffer. 124 124 * 125 * @param call pointerr to call data. 126 * @param dev Device that caued the interrupt. 127 * 128 */ 129 static void i8042_irq_handler(ipc_call_t *call, ddf_dev_t *dev) 130 { 131 i8042_t *controller = ddf_dev_data_get(dev); 125 * @param call Pointer to call data. 126 * @param arg Argument (i8042_t *) 127 */ 128 static void i8042_irq_handler(ipc_call_t *call, void *arg) 129 { 130 i8042_t *controller = (i8042_t *)arg; 132 131 errno_t rc; 133 132 … … 147 146 fibril_condvar_broadcast(&port->buf_cv); 148 147 149 async_sess_t *parent_sess = ddf_dev_parent_sess_get( dev);148 async_sess_t *parent_sess = ddf_dev_parent_sess_get(controller->dev); 150 149 hw_res_clear_interrupt(parent_sess, port->irq); 151 150 } … … 178 177 bool aux_bound = false; 179 178 179 dev->dev = ddf_dev; 180 180 181 if (regs->size < sizeof(i8042_regs_t)) { 181 182 rc = EINVAL; … … 288 289 cap_irq_handle_t kbd_ihandle; 289 290 rc = register_interrupt_handler(ddf_dev, irq_kbd, 290 i8042_irq_handler, &irq_code, &kbd_ihandle);291 i8042_irq_handler, (void *)dev, &irq_code, &kbd_ihandle); 291 292 if (rc != EOK) { 292 293 ddf_msg(LVL_ERROR, "Failed set handler for kbd: %s.", … … 297 298 cap_irq_handle_t mouse_ihandle; 298 299 rc = register_interrupt_handler(ddf_dev, irq_mouse, 299 i8042_irq_handler, &irq_code, &mouse_ihandle);300 i8042_irq_handler, (void *)dev, &irq_code, &mouse_ihandle); 300 301 if (rc != EOK) { 301 302 ddf_msg(LVL_ERROR, "Failed set handler for mouse: %s.", -
uspace/drv/char/i8042/i8042.h
r646849b3 r60744cb 1 1 /* 2 * Copyright (c) 202 1Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * Copyright (c) 2006 Josef Cejka 4 4 * Copyright (c) 2011 Jan Vesely … … 82 82 /** i8042 Controller. */ 83 83 typedef struct i8042 { 84 /** DDF device */ 85 ddf_dev_t *dev; 84 86 /** I/O registers. */ 85 87 i8042_regs_t *regs; -
uspace/drv/char/ns8250/ns8250.c
r646849b3 r60744cb 783 783 * data and reading the line status register. 784 784 * 785 * @p aram dev The serial port device.786 * 787 */ 788 static inline void ns8250_interrupt_handler(ipc_call_t *icall, ddf_dev_t *dev)789 { 790 ns8250_t *ns = dev_ns8250(dev);785 * @pram icall IRQ event notificatoin 786 * @param arg Argument (ns8250_t *) 787 */ 788 static inline void ns8250_interrupt_handler(ipc_call_t *icall, void *arg) 789 { 790 ns8250_t *ns = (ns8250_t *)arg; 791 791 uint8_t iir = pio_read_8(&ns->regs->iid); 792 792 if ((iir & NS8250_IID_CAUSE_MASK) == NS8250_IID_CAUSE_RXSTATUS) { … … 809 809 { 810 810 return register_interrupt_handler(ns->dev, ns->irq, 811 ns8250_interrupt_handler, NULL, ihandle);811 ns8250_interrupt_handler, (void *)ns, NULL, ihandle); 812 812 } 813 813 -
uspace/drv/char/pl050/pl050.c
r646849b3 r60744cb 143 143 } 144 144 145 static void pl050_interrupt(ipc_call_t *call, ddf_dev_t *dev) 146 { 147 pl050_t *pl050 = (pl050_t *)ddf_dev_data_get(dev); 145 /** PL050 interrupt handler 146 * 147 * @param call IRQ event notification 148 * @param arg Argument (pl050_t *) 149 */ 150 static void pl050_interrupt(ipc_call_t *call, void *arg) 151 { 152 pl050_t *pl050 = (pl050_t *)arg; 148 153 size_t nidx; 149 154 … … 220 225 cap_irq_handle_t ihandle; 221 226 rc = register_interrupt_handler(pl050->dev, 222 res.irqs.irqs[0], pl050_interrupt, &pl050_irq_code, &ihandle); 227 res.irqs.irqs[0], pl050_interrupt, (void *)pl050, &pl050_irq_code, 228 &ihandle); 223 229 if (rc != EOK) { 224 230 ddf_msg(LVL_ERROR, "Failed registering interrupt handler. (%s)",
Note:
See TracChangeset
for help on using the changeset viewer.
