Lines Matching defs:mrvl

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