Changeset 60744cb in mainline for uspace/drv/audio/sb16/main.c


Ignore:
Timestamp:
2024-05-17T17:51:56Z (10 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
1801005
Parents:
646849b3
Message:

Let driver specify any argument to IRQ handler

This allows the driver to register a single handler for multiple
interrupts and still distinguish between them. It also removes
the extra step of having to get softstate from ddf_dev_t.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/sb16/main.c

    r646849b3 r60744cb  
    7676}
    7777
    78 static void irq_handler(ipc_call_t *call, ddf_dev_t *dev)
    79 {
    80         sb16_t *sb16_dev = ddf_dev_data_get(dev);
     78/** SB16 IRQ handler.
     79 *
     80 * @param call IRQ event notification
     81 * @param arg Argument (sb16_t *)
     82 */
     83static void irq_handler(ipc_call_t *call, void *arg)
     84{
     85        sb16_t *sb16_dev = (sb16_t *)arg;
    8186        sb16_interrupt(sb16_dev);
    8287}
     
    124129
    125130        rc = register_interrupt_handler(device, irq, irq_handler,
    126             &irq_code, &irq_cap);
     131            (void *)soft_state, &irq_code, &irq_cap);
    127132        if (rc != EOK) {
    128133                ddf_log_error("Failed to register irq handler: %s.",
Note: See TracChangeset for help on using the changeset viewer.