• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/bluetooth/

Lines Matching refs:data

74 static int btsdio_tx_packet(struct btsdio_data *data, struct sk_buff *skb)
78 BT_DBG("%s", data->hdev->name);
82 skb->data[0] = (skb->len & 0x0000ff);
83 skb->data[1] = (skb->len & 0x00ff00) >> 8;
84 skb->data[2] = (skb->len & 0xff0000) >> 16;
85 skb->data[3] = bt_cb(skb)->pkt_type;
87 err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
90 sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
94 data->hdev->stat.byte_tx += skb->len;
103 struct btsdio_data *data = container_of(work, struct btsdio_data, work);
107 BT_DBG("%s", data->hdev->name);
109 sdio_claim_host(data->func);
111 while ((skb = skb_dequeue(&data->txq))) {
112 err = btsdio_tx_packet(data, skb);
114 data->hdev->stat.err_tx++;
115 skb_queue_head(&data->txq, skb);
120 sdio_release_host(data->func);
123 static int btsdio_rx_packet(struct btsdio_data *data)
129 BT_DBG("%s", data->hdev->name);
131 err = sdio_readsb(data->func, hdr, REG_RDAT, 4);
149 err = sdio_readsb(data->func, skb->data, REG_RDAT, len - 4);
155 data->hdev->stat.byte_rx += len;
157 skb->dev = (void *) data->hdev;
164 sdio_writeb(data->func, 0x00, REG_PC_RRT, NULL);
171 struct btsdio_data *data = sdio_get_drvdata(func);
174 BT_DBG("%s", data->hdev->name);
180 if (btsdio_rx_packet(data) < 0) {
181 data->hdev->stat.err_rx++;
182 sdio_writeb(data->func, 0x01, REG_PC_RRT, NULL);
189 struct btsdio_data *data = hdev->driver_data;
197 sdio_claim_host(data->func);
199 err = sdio_enable_func(data->func);
205 err = sdio_claim_irq(data->func, btsdio_interrupt);
207 sdio_disable_func(data->func);
212 if (data->func->class == SDIO_CLASS_BT_B)
213 sdio_writeb(data->func, 0x00, REG_MD_STAT, NULL);
215 sdio_writeb(data->func, 0x01, REG_EN_INTRD, NULL);
218 sdio_release_host(data->func);
225 struct btsdio_data *data = hdev->driver_data;
232 sdio_claim_host(data->func);
234 sdio_writeb(data->func, 0x00, REG_EN_INTRD, NULL);
236 sdio_release_irq(data->func);
237 sdio_disable_func(data->func);
239 sdio_release_host(data->func);
246 struct btsdio_data *data = hdev->driver_data;
250 skb_queue_purge(&data->txq);
258 struct btsdio_data *data = hdev->driver_data;
282 skb_queue_tail(&data->txq, skb);
284 schedule_work(&data->work);
291 struct btsdio_data *data = hdev->driver_data;
295 kfree(data);
301 struct btsdio_data *data;
313 data = kzalloc(sizeof(*data), GFP_KERNEL);
314 if (!data)
317 data->func = func;
319 INIT_WORK(&data->work, btsdio_work);
321 skb_queue_head_init(&data->txq);
325 kfree(data);
330 hdev->driver_data = data;
332 data->hdev = hdev;
347 kfree(data);
351 sdio_set_drvdata(func, data);
358 struct btsdio_data *data = sdio_get_drvdata(func);
363 if (!data)
366 hdev = data->hdev;