OSDN Git Service

orinoco: Annotate firmware loading
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 13 Nov 2020 21:22:47 +0000 (22:22 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Nov 2020 15:01:12 +0000 (17:01 +0200)
The ezusb_program() is invoked via ->program() in preemptible
context during firmware loading. This is also true for the
->program_init() and ->program_end() callback.

Use ezusb_req_ctx_wait_compl() in ezusb_program_init(),
ezusb_program_bytes(), ezusb_program_end() which are part of firmware
loading during device probe.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201113212252.2243570-6-bigeasy@linutronix.de
drivers/net/wireless/intersil/orinoco/orinoco_usb.c

index 3f49e15..2c9c555 100644 (file)
@@ -1172,7 +1172,7 @@ static int ezusb_program_init(struct hermes *hw, u32 entry_point)
 
        return ezusb_access_ltv(upriv, ctx, sizeof(data), &data,
                                EZUSB_FRAME_CONTROL, NULL, 0, NULL,
-                               ezusb_req_ctx_wait);
+                               ezusb_req_ctx_wait_compl);
 }
 
 static int ezusb_program_end(struct hermes *hw)
@@ -1186,7 +1186,7 @@ static int ezusb_program_end(struct hermes *hw)
 
        return ezusb_access_ltv(upriv, ctx, 0, NULL,
                                EZUSB_FRAME_CONTROL, NULL, 0, NULL,
-                               ezusb_req_ctx_wait);
+                               ezusb_req_ctx_wait_compl);
 }
 
 static int ezusb_program_bytes(struct hermes *hw, const char *buf,
@@ -1203,7 +1203,7 @@ static int ezusb_program_bytes(struct hermes *hw, const char *buf,
 
        err = ezusb_access_ltv(upriv, ctx, sizeof(data), &data,
                               EZUSB_FRAME_CONTROL, NULL, 0, NULL,
-                              ezusb_req_ctx_wait);
+                              ezusb_req_ctx_wait_compl);
        if (err)
                return err;
 
@@ -1213,7 +1213,7 @@ static int ezusb_program_bytes(struct hermes *hw, const char *buf,
 
        return ezusb_access_ltv(upriv, ctx, len, buf,
                                EZUSB_FRAME_CONTROL, NULL, 0, NULL,
-                               ezusb_req_ctx_wait);
+                               ezusb_req_ctx_wait_compl);
 }
 
 static int ezusb_program(struct hermes *hw, const char *buf,