Lines Matching refs:priv

14 static void lbs_fw_loaded(struct lbs_private *priv, int ret,  in lbs_fw_loaded()  argument
22 priv->fw_callback(priv, ret, helper, mainfw); in lbs_fw_loaded()
24 spin_lock_irqsave(&priv->driver_lock, flags); in lbs_fw_loaded()
25 priv->fw_callback = NULL; in lbs_fw_loaded()
26 wake_up(&priv->fw_waitq); in lbs_fw_loaded()
27 spin_unlock_irqrestore(&priv->driver_lock, flags); in lbs_fw_loaded()
30 static void do_load_firmware(struct lbs_private *priv, const char *name, in do_load_firmware() argument
37 priv->fw_device, GFP_KERNEL, priv, cb); in do_load_firmware()
40 lbs_fw_loaded(priv, ret, NULL, NULL); in do_load_firmware()
46 struct lbs_private *priv = context; in main_firmware_cb() local
50 load_next_firmware_from_table(priv); in main_firmware_cb()
55 lbs_fw_loaded(priv, 0, priv->helper_fw, firmware); in main_firmware_cb()
56 if (priv->helper_fw) { in main_firmware_cb()
57 release_firmware (priv->helper_fw); in main_firmware_cb()
58 priv->helper_fw = NULL; in main_firmware_cb()
65 struct lbs_private *priv = context; in helper_firmware_cb() local
69 load_next_firmware_from_table(priv); in helper_firmware_cb()
74 if (priv->fw_iter->fwname) { in helper_firmware_cb()
75 priv->helper_fw = firmware; in helper_firmware_cb()
76 do_load_firmware(priv, priv->fw_iter->fwname, main_firmware_cb); in helper_firmware_cb()
79 lbs_fw_loaded(priv, 0, firmware, NULL); in helper_firmware_cb()
83 static void load_next_firmware_from_table(struct lbs_private *priv) in load_next_firmware_from_table() argument
87 if (!priv->fw_iter) in load_next_firmware_from_table()
88 iter = priv->fw_table; in load_next_firmware_from_table()
90 iter = ++priv->fw_iter; in load_next_firmware_from_table()
92 if (priv->helper_fw) { in load_next_firmware_from_table()
93 release_firmware(priv->helper_fw); in load_next_firmware_from_table()
94 priv->helper_fw = NULL; in load_next_firmware_from_table()
100 lbs_fw_loaded(priv, -ENOENT, NULL, NULL); in load_next_firmware_from_table()
104 if (iter->model != priv->fw_model) { in load_next_firmware_from_table()
109 priv->fw_iter = iter; in load_next_firmware_from_table()
110 do_load_firmware(priv, iter->helper, helper_firmware_cb); in load_next_firmware_from_table()
113 void lbs_wait_for_firmware_load(struct lbs_private *priv) in lbs_wait_for_firmware_load() argument
115 wait_event(priv->fw_waitq, priv->fw_callback == NULL); in lbs_wait_for_firmware_load()
130 int lbs_get_firmware_async(struct lbs_private *priv, struct device *device, in lbs_get_firmware_async() argument
136 spin_lock_irqsave(&priv->driver_lock, flags); in lbs_get_firmware_async()
137 if (priv->fw_callback) { in lbs_get_firmware_async()
139 spin_unlock_irqrestore(&priv->driver_lock, flags); in lbs_get_firmware_async()
143 priv->fw_device = device; in lbs_get_firmware_async()
144 priv->fw_callback = callback; in lbs_get_firmware_async()
145 priv->fw_table = fw_table; in lbs_get_firmware_async()
146 priv->fw_iter = NULL; in lbs_get_firmware_async()
147 priv->fw_model = card_model; in lbs_get_firmware_async()
148 spin_unlock_irqrestore(&priv->driver_lock, flags); in lbs_get_firmware_async()
151 load_next_firmware_from_table(priv); in lbs_get_firmware_async()