Changeset 60744cb in mainline for uspace/lib/usbhost


Ignore:
Timestamp:
2024-05-17T17:51:56Z (17 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/lib/usbhost/src/hcd.c

    r646849b3 r60744cb  
    9595 * TODO: Make the bus mechanism less flexible in irq handling and remove the
    9696 * lookup.
    97  */
    98 static void irq_handler(ipc_call_t *call, ddf_dev_t *dev)
    99 {
    100         assert(dev);
    101         hc_device_t *hcd = dev_to_hcd(dev);
     97 *
     98 * @param call Interrupt notification
     99 * @param arg Argument (hc_device_t *)
     100 */
     101static void irq_handler(ipc_call_t *call, void *arg)
     102{
     103        hc_device_t *hcd = (hc_device_t *)arg;
    102104
    103105        const uint32_t status = ipc_get_arg1(call);
     
    178180        cap_irq_handle_t ihandle;
    179181        ret = register_interrupt_handler(hcd->ddf_dev, irq, irq_handler,
    180             &irq_code, &ihandle);
     182            (void *)hcd, &irq_code, &ihandle);
    181183        irq_code_clean(&irq_code);
    182184        if (ret != EOK) {
Note: See TracChangeset for help on using the changeset viewer.