• Alex Elder's avatar
    net: ipa: move gsi_irq_init() code into setup · b176f95b
    Alex Elder authored
    The GSI IRQ handler could be triggered as soon as it is registered
    with request_irq().  The handler function, gsi_isr(), touches
    hardware, meaning the IPA clock must be operational.  The IPA clock
    is not operating when the handler is registered (in gsi_irq_init()),
    so this is a problem.
    
    Move the call to request_irq() for the GSI interrupt handler into
    gsi_irq_setup(), which is called when the IPA clock is known to be
    operational (and furthermore, the GSI firmware will have been
    loaded).  Request the IRQ at the end of that function, after all
    interrupt types have been disabled and masked.
    
    Move the matching free_irq() call into gsi_irq_teardown(), and get
    rid of the now empty gsi_irq_exit(),
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b176f95b
gsi.c 65.1 KB