Lines Matching full:ll
102 struct ll_struct *ll = hu->priv; in send_hcill_cmd() local
118 skb_queue_tail(&ll->txq, skb); in send_hcill_cmd()
126 struct ll_struct *ll; in ll_open() local
130 ll = kzalloc(sizeof(*ll), GFP_KERNEL); in ll_open()
131 if (!ll) in ll_open()
134 skb_queue_head_init(&ll->txq); in ll_open()
135 skb_queue_head_init(&ll->tx_wait_q); in ll_open()
136 spin_lock_init(&ll->hcill_lock); in ll_open()
138 ll->hcill_state = HCILL_AWAKE; in ll_open()
140 hu->priv = ll; in ll_open()
154 struct ll_struct *ll = hu->priv; in ll_flush() local
158 skb_queue_purge(&ll->tx_wait_q); in ll_flush()
159 skb_queue_purge(&ll->txq); in ll_flush()
167 struct ll_struct *ll = hu->priv; in ll_close() local
171 skb_queue_purge(&ll->tx_wait_q); in ll_close()
172 skb_queue_purge(&ll->txq); in ll_close()
174 kfree_skb(ll->rx_skb); in ll_close()
185 kfree(ll); in ll_close()
197 static void __ll_do_awake(struct ll_struct *ll) in __ll_do_awake() argument
201 while ((skb = skb_dequeue(&ll->tx_wait_q))) in __ll_do_awake()
202 skb_queue_tail(&ll->txq, skb); in __ll_do_awake()
204 ll->hcill_state = HCILL_AWAKE; in __ll_do_awake()
213 struct ll_struct *ll = hu->priv; in ll_device_want_to_wakeup() local
218 spin_lock_irqsave(&ll->hcill_lock, flags); in ll_device_want_to_wakeup()
220 switch (ll->hcill_state) { in ll_device_want_to_wakeup()
243 BT_ERR("received HCILL_WAKE_UP_IND in state %ld", ll->hcill_state); in ll_device_want_to_wakeup()
248 __ll_do_awake(ll); in ll_device_want_to_wakeup()
251 spin_unlock_irqrestore(&ll->hcill_lock, flags); in ll_device_want_to_wakeup()
263 struct ll_struct *ll = hu->priv; in ll_device_want_to_sleep() local
268 spin_lock_irqsave(&ll->hcill_lock, flags); in ll_device_want_to_sleep()
271 if (ll->hcill_state != HCILL_AWAKE) in ll_device_want_to_sleep()
272 BT_ERR("ERR: HCILL_GO_TO_SLEEP_IND in state %ld", ll->hcill_state); in ll_device_want_to_sleep()
281 ll->hcill_state = HCILL_ASLEEP; in ll_device_want_to_sleep()
284 spin_unlock_irqrestore(&ll->hcill_lock, flags); in ll_device_want_to_sleep()
296 struct ll_struct *ll = hu->priv; in ll_device_woke_up() local
301 spin_lock_irqsave(&ll->hcill_lock, flags); in ll_device_woke_up()
304 if (ll->hcill_state != HCILL_ASLEEP_TO_AWAKE) in ll_device_woke_up()
305 BT_ERR("received HCILL_WAKE_UP_ACK in state %ld", ll->hcill_state); in ll_device_woke_up()
308 __ll_do_awake(ll); in ll_device_woke_up()
310 spin_unlock_irqrestore(&ll->hcill_lock, flags); in ll_device_woke_up()
321 struct ll_struct *ll = hu->priv; in ll_enqueue() local
329 spin_lock_irqsave(&ll->hcill_lock, flags); in ll_enqueue()
332 switch (ll->hcill_state) { in ll_enqueue()
335 skb_queue_tail(&ll->txq, skb); in ll_enqueue()
340 skb_queue_tail(&ll->tx_wait_q, skb); in ll_enqueue()
346 ll->hcill_state = HCILL_ASLEEP_TO_AWAKE; in ll_enqueue()
351 skb_queue_tail(&ll->tx_wait_q, skb); in ll_enqueue()
354 BT_ERR("illegal hcill state: %ld (losing packet)", ll->hcill_state); in ll_enqueue()
359 spin_unlock_irqrestore(&ll->hcill_lock, flags); in ll_enqueue()
367 struct ll_struct *ll = hu->priv; in ll_recv_frame() local
377 ll->hcill_state); in ll_recv_frame()
434 struct ll_struct *ll = hu->priv; in ll_recv() local
439 ll->rx_skb = h4_recv_buf(hu->hdev, ll->rx_skb, data, count, in ll_recv()
441 if (IS_ERR(ll->rx_skb)) { in ll_recv()
442 int err = PTR_ERR(ll->rx_skb); in ll_recv()
444 ll->rx_skb = NULL; in ll_recv()
453 struct ll_struct *ll = hu->priv; in ll_dequeue() local
454 return skb_dequeue(&ll->txq); in ll_dequeue()
790 .name = "LL",