From c6edd75a89500109ee7a6baf929ac8748b077124 Mon Sep 17 00:00:00 2001 From: Philippe Langlais Date: Thu, 19 Apr 2012 16:11:04 +0200 Subject: cg2900: bluetooth: Porting onto new 3.4 API Now, there is a FIXME, due to destruct() ops removing. Signed-off-by: Philippe Langlais --- drivers/staging/cg2900/bluetooth/btcg2900.c | 17 +++++++++-------- drivers/staging/cg2900/bluetooth/hci_ldisc.c | 18 +++--------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/drivers/staging/cg2900/bluetooth/btcg2900.c b/drivers/staging/cg2900/bluetooth/btcg2900.c index cfeeb4a23c9..cebd5872222 100644 --- a/drivers/staging/cg2900/bluetooth/btcg2900.c +++ b/drivers/staging/cg2900/bluetooth/btcg2900.c @@ -540,7 +540,7 @@ static int btcg2900_open(struct hci_dev *hdev) return -EINVAL; } - info = (struct btcg2900_info *)hdev->driver_data; + info = hci_get_drvdata(hdev); if (!info) { BT_ERR(NAME "NULL supplied for driver_data"); return -EINVAL; @@ -626,7 +626,7 @@ static int btcg2900_close(struct hci_dev *hdev) return -EINVAL; } - info = (struct btcg2900_info *)hdev->driver_data; + info = hci_get_drvdata(hdev); if (!info) { BT_ERR(NAME "NULL supplied for driver_data"); return -EINVAL; @@ -689,7 +689,7 @@ static int btcg2900_send(struct sk_buff *skb) return -EINVAL; } - info = (struct btcg2900_info *)hdev->driver_data; + info = hci_get_drvdata(hdev); if (!info) { BT_ERR(NAME "NULL supplied for info"); return -EINVAL; @@ -733,7 +733,7 @@ static void btcg2900_destruct(struct hci_dev *hdev) BT_DBG("btcg2900_destruct"); - info = hdev->driver_data; + info = hci_get_drvdata(hdev); if (!info) { BT_ERR(NAME "NULL supplied for info"); return; @@ -849,12 +849,13 @@ static int register_bluetooth(struct btcg2900_info *info) SET_HCIDEV_DEV(info->hdev, info->parent); info->hdev->bus = pf_data->channel_data.bt_bus; - info->hdev->driver_data = info; - info->hdev->owner = THIS_MODULE; + hci_set_drvdata(info->hdev, info); info->hdev->open = btcg2900_open; info->hdev->close = btcg2900_close; info->hdev->send = btcg2900_send; - info->hdev->destruct = btcg2900_destruct; + /* FIXME no more destruct move this management somewhere + * info->hdev->destruct = btcg2900_destruct; + */ err = hci_register_dev(info->hdev); if (err) { @@ -1048,7 +1049,7 @@ static int remove_common(struct platform_device *pdev, goto finished; BT_INFO("Unregistering CG2900"); - info->hdev->driver_data = NULL; + hci_set_drvdata(info->hdev, NULL); hci_unregister_dev(info->hdev); hci_free_dev(info->hdev); info->hdev = NULL; diff --git a/drivers/staging/cg2900/bluetooth/hci_ldisc.c b/drivers/staging/cg2900/bluetooth/hci_ldisc.c index 0ceb5e74255..f6518659969 100644 --- a/drivers/staging/cg2900/bluetooth/hci_ldisc.c +++ b/drivers/staging/cg2900/bluetooth/hci_ldisc.c @@ -235,7 +235,7 @@ static int hci_uart_open(struct hci_dev *hdev) /* Reset device */ static int hci_uart_flush(struct hci_dev *hdev) { - struct hci_uart *hu = (struct hci_uart *) hdev->driver_data; + struct hci_uart *hu = hci_get_drvdata(hdev); struct tty_struct *tty = hu->tty; BT_DBG("hdev %p tty %p", hdev, tty); @@ -281,7 +281,7 @@ static int hci_uart_send_frame(struct sk_buff *skb) if (!test_bit(HCI_RUNNING, &hdev->flags)) return -EBUSY; - hu = (struct hci_uart *) hdev->driver_data; + hu = hci_get_drvdata(hdev); BT_DBG("%s: type %d len %d", hdev->name, bt_cb(skb)->pkt_type, skb->len); @@ -293,15 +293,6 @@ static int hci_uart_send_frame(struct sk_buff *skb) return 0; } -static void hci_uart_destruct(struct hci_dev *hdev) -{ - if (!hdev) - return; - - BT_DBG("%s", hdev->name); - kfree(hdev->driver_data); -} - /* ------ LDISC part ------ */ /* hci_uart_tty_open * @@ -456,15 +447,12 @@ static int hci_uart_register_dev(struct hci_uart *hu) hu->hdev = hdev; hdev->bus = HCI_UART; - hdev->driver_data = hu; + hci_set_drvdata(hdev, hu); hdev->open = hci_uart_open; hdev->close = hci_uart_close; hdev->flush = hci_uart_flush; hdev->send = hci_uart_send_frame; - hdev->destruct = hci_uart_destruct; - - hdev->owner = THIS_MODULE; if (!reset) set_bit(HCI_QUIRK_NO_RESET, &hdev->quirks); -- cgit v1.2.3