Lines Matching full:mrvl

57 	struct mrvl_data *mrvl;  in mrvl_open()  local
65 mrvl = kzalloc(sizeof(*mrvl), GFP_KERNEL); in mrvl_open()
66 if (!mrvl) in mrvl_open()
69 skb_queue_head_init(&mrvl->txq); in mrvl_open()
70 skb_queue_head_init(&mrvl->rawq); in mrvl_open()
72 set_bit(STATE_CHIP_VER_PENDING, &mrvl->flags); in mrvl_open()
74 hu->priv = mrvl; in mrvl_open()
84 kfree(mrvl); in mrvl_open()
91 struct mrvl_data *mrvl = hu->priv; in mrvl_close() local
98 skb_queue_purge(&mrvl->txq); in mrvl_close()
99 skb_queue_purge(&mrvl->rawq); in mrvl_close()
100 kfree_skb(mrvl->rx_skb); in mrvl_close()
101 kfree(mrvl); in mrvl_close()
109 struct mrvl_data *mrvl = hu->priv; in mrvl_flush() local
113 skb_queue_purge(&mrvl->txq); in mrvl_flush()
114 skb_queue_purge(&mrvl->rawq); in mrvl_flush()
121 struct mrvl_data *mrvl = hu->priv; in mrvl_dequeue() local
124 skb = skb_dequeue(&mrvl->txq); in mrvl_dequeue()
127 skb = skb_dequeue(&mrvl->rawq); in mrvl_dequeue()
138 struct mrvl_data *mrvl = hu->priv; in mrvl_enqueue() local
140 skb_queue_tail(&mrvl->txq, skb); in mrvl_enqueue()
146 struct mrvl_data *mrvl = hu->priv; in mrvl_send_ack() local
157 skb_queue_tail(&mrvl->txq, skb); in mrvl_send_ack()
165 struct mrvl_data *mrvl = hu->priv; in mrvl_recv_fw_req() local
169 bt_dev_err(hdev, "Corrupted mrvl header"); in mrvl_recv_fw_req()
176 if (!test_bit(STATE_FW_REQ_PENDING, &mrvl->flags)) { in mrvl_recv_fw_req()
182 mrvl->tx_len = le16_to_cpu(pkt->lhs); in mrvl_recv_fw_req()
184 clear_bit(STATE_FW_REQ_PENDING, &mrvl->flags); in mrvl_recv_fw_req()
186 wake_up_bit(&mrvl->flags, STATE_FW_REQ_PENDING); in mrvl_recv_fw_req()
197 struct mrvl_data *mrvl = hu->priv; in mrvl_recv_chip_ver() local
202 bt_dev_err(hdev, "Corrupted mrvl header"); in mrvl_recv_chip_ver()
209 if (!test_bit(STATE_CHIP_VER_PENDING, &mrvl->flags)) { in mrvl_recv_chip_ver()
214 mrvl->id = version; in mrvl_recv_chip_ver()
215 mrvl->rev = version >> 8; in mrvl_recv_chip_ver()
217 bt_dev_info(hdev, "Controller id = %x, rev = %x", mrvl->id, mrvl->rev); in mrvl_recv_chip_ver()
219 clear_bit(STATE_CHIP_VER_PENDING, &mrvl->flags); in mrvl_recv_chip_ver()
221 wake_up_bit(&mrvl->flags, STATE_CHIP_VER_PENDING); in mrvl_recv_chip_ver()
252 struct mrvl_data *mrvl = hu->priv; in mrvl_recv() local
257 mrvl->rx_skb = h4_recv_buf(hu->hdev, mrvl->rx_skb, data, count, in mrvl_recv()
260 if (IS_ERR(mrvl->rx_skb)) { in mrvl_recv()
261 int err = PTR_ERR(mrvl->rx_skb); in mrvl_recv()
263 mrvl->rx_skb = NULL; in mrvl_recv()
273 struct mrvl_data *mrvl = hu->priv; in mrvl_load_firmware() local
289 set_bit(STATE_FW_REQ_PENDING, &mrvl->flags); in mrvl_load_firmware()
297 err = wait_on_bit_timeout(&mrvl->flags, STATE_FW_REQ_PENDING, in mrvl_load_firmware()
311 mrvl->tx_len); in mrvl_load_firmware()
318 if (!mrvl->tx_len) { in mrvl_load_firmware()
327 if (fw_ptr + mrvl->tx_len > fw_max) { in mrvl_load_firmware()
328 mrvl->tx_len = fw_max - fw_ptr; in mrvl_load_firmware()
330 mrvl->tx_len); in mrvl_load_firmware()
333 skb = bt_skb_alloc(mrvl->tx_len, GFP_KERNEL); in mrvl_load_firmware()
341 skb_put_data(skb, fw_ptr, mrvl->tx_len); in mrvl_load_firmware()
342 fw_ptr += mrvl->tx_len; in mrvl_load_firmware()
344 set_bit(STATE_FW_REQ_PENDING, &mrvl->flags); in mrvl_load_firmware()
346 skb_queue_tail(&mrvl->rawq, skb); in mrvl_load_firmware()
360 err = mrvl_load_firmware(hu->hdev, "mrvl/helper_uart_3000000.bin"); in mrvl_setup()
376 err = mrvl_load_firmware(hu->hdev, "mrvl/uart8897_bt.bin"); in mrvl_setup()
419 { .compatible = "mrvl,88w8897" },