diff options
Diffstat (limited to 'net/nfc/core.c')
-rw-r--r-- | net/nfc/core.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/net/nfc/core.c b/net/nfc/core.c index 3a45f21b3b97..3ddf6e698df0 100644 --- a/net/nfc/core.c +++ b/net/nfc/core.c | |||
@@ -240,6 +240,7 @@ int nfc_dep_link_down(struct nfc_dev *dev) | |||
240 | rc = dev->ops->dep_link_down(dev); | 240 | rc = dev->ops->dep_link_down(dev); |
241 | if (!rc) { | 241 | if (!rc) { |
242 | dev->dep_link_up = false; | 242 | dev->dep_link_up = false; |
243 | nfc_llcp_mac_is_down(dev); | ||
243 | nfc_genl_dep_link_down_event(dev); | 244 | nfc_genl_dep_link_down_event(dev); |
244 | } | 245 | } |
245 | 246 | ||
@@ -254,6 +255,8 @@ int nfc_dep_link_is_up(struct nfc_dev *dev, u32 target_idx, | |||
254 | dev->dep_link_up = true; | 255 | dev->dep_link_up = true; |
255 | dev->dep_rf_mode = rf_mode; | 256 | dev->dep_rf_mode = rf_mode; |
256 | 257 | ||
258 | nfc_llcp_mac_is_up(dev, target_idx, comm_mode, rf_mode); | ||
259 | |||
257 | return nfc_genl_dep_link_up_event(dev, target_idx, comm_mode, rf_mode); | 260 | return nfc_genl_dep_link_up_event(dev, target_idx, comm_mode, rf_mode); |
258 | } | 261 | } |
259 | EXPORT_SYMBOL(nfc_dep_link_is_up); | 262 | EXPORT_SYMBOL(nfc_dep_link_is_up); |
@@ -360,13 +363,13 @@ int nfc_set_remote_general_bytes(struct nfc_dev *dev, u8 *gb, u8 gb_len) | |||
360 | if (gb_len > NFC_MAX_GT_LEN) | 363 | if (gb_len > NFC_MAX_GT_LEN) |
361 | return -EINVAL; | 364 | return -EINVAL; |
362 | 365 | ||
363 | return 0; | 366 | return nfc_llcp_set_remote_gb(dev, gb, gb_len); |
364 | } | 367 | } |
365 | EXPORT_SYMBOL(nfc_set_remote_general_bytes); | 368 | EXPORT_SYMBOL(nfc_set_remote_general_bytes); |
366 | 369 | ||
367 | u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, u8 *gt_len) | 370 | u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, u8 *gt_len) |
368 | { | 371 | { |
369 | return NULL; | 372 | return nfc_llcp_general_bytes(dev, gt_len); |
370 | } | 373 | } |
371 | EXPORT_SYMBOL(nfc_get_local_general_bytes); | 374 | EXPORT_SYMBOL(nfc_get_local_general_bytes); |
372 | 375 | ||
@@ -560,6 +563,10 @@ int nfc_register_device(struct nfc_dev *dev) | |||
560 | if (rc < 0) | 563 | if (rc < 0) |
561 | return rc; | 564 | return rc; |
562 | 565 | ||
566 | rc = nfc_llcp_register_device(dev); | ||
567 | if (rc) | ||
568 | pr_err("Could not register llcp device\n"); | ||
569 | |||
563 | rc = nfc_genl_device_added(dev); | 570 | rc = nfc_genl_device_added(dev); |
564 | if (rc) | 571 | if (rc) |
565 | pr_debug("The userspace won't be notified that the device %s was added\n", | 572 | pr_debug("The userspace won't be notified that the device %s was added\n", |
@@ -591,6 +598,8 @@ void nfc_unregister_device(struct nfc_dev *dev) | |||
591 | 598 | ||
592 | mutex_unlock(&nfc_devlist_mutex); | 599 | mutex_unlock(&nfc_devlist_mutex); |
593 | 600 | ||
601 | nfc_llcp_unregister_device(dev); | ||
602 | |||
594 | rc = nfc_genl_device_removed(dev); | 603 | rc = nfc_genl_device_removed(dev); |
595 | if (rc) | 604 | if (rc) |
596 | pr_debug("The userspace won't be notified that the device %s was removed\n", | 605 | pr_debug("The userspace won't be notified that the device %s was removed\n", |
@@ -620,6 +629,10 @@ static int __init nfc_init(void) | |||
620 | if (rc) | 629 | if (rc) |
621 | goto err_rawsock; | 630 | goto err_rawsock; |
622 | 631 | ||
632 | rc = nfc_llcp_init(); | ||
633 | if (rc) | ||
634 | goto err_llcp_sock; | ||
635 | |||
623 | rc = af_nfc_init(); | 636 | rc = af_nfc_init(); |
624 | if (rc) | 637 | if (rc) |
625 | goto err_af_nfc; | 638 | goto err_af_nfc; |
@@ -627,6 +640,8 @@ static int __init nfc_init(void) | |||
627 | return 0; | 640 | return 0; |
628 | 641 | ||
629 | err_af_nfc: | 642 | err_af_nfc: |
643 | nfc_llcp_exit(); | ||
644 | err_llcp_sock: | ||
630 | rawsock_exit(); | 645 | rawsock_exit(); |
631 | err_rawsock: | 646 | err_rawsock: |
632 | nfc_genl_exit(); | 647 | nfc_genl_exit(); |
@@ -638,6 +653,7 @@ err_genl: | |||
638 | static void __exit nfc_exit(void) | 653 | static void __exit nfc_exit(void) |
639 | { | 654 | { |
640 | af_nfc_exit(); | 655 | af_nfc_exit(); |
656 | nfc_llcp_exit(); | ||
641 | rawsock_exit(); | 657 | rawsock_exit(); |
642 | nfc_genl_exit(); | 658 | nfc_genl_exit(); |
643 | class_unregister(&nfc_class); | 659 | class_unregister(&nfc_class); |