• Sebastian Andrzej Siewior's avatar
    wishbone: Let write callback talk to slave directly and process MSI. · f6b8c321
    Sebastian Andrzej Siewior authored
    After handle_write_cfg(, WBA_ERR, ) the function wakes a worker which
    will talk to the hardware and process the MSI. This worker can be
    delayed if the system is busy leading to latency spikes during the
    communication.
    
    The detour via the worker can be avoided and the request can be
    completed within the write request. Doing it within handle_write_cfg()
    could be possible because wishbone_process_msi() is using its own buffer
    for communication and only the locking is in the way.
    It looks safer and simpler to simply wait until all locks are released
    and process the MSI afterwards if needed.
    This also mimics the previous workflow except that there is less delay
    now.
    
    Don't schedule the worker from handle_write_cfg() but process the MSI
    request directly from the write callback if needed.
    Signed-off-by: 's avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: 's avatarKurt Kanzenbach <kurt@linutronix.de>
    f6b8c321
wishbone.c 22.3 KB