diff options
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/bluecard_cs.c | 16 | ||||
-rw-r--r-- | drivers/bluetooth/bt3c_cs.c | 13 | ||||
-rw-r--r-- | drivers/bluetooth/btuart_cs.c | 13 | ||||
-rw-r--r-- | drivers/bluetooth/btusb.c | 5 | ||||
-rw-r--r-- | drivers/bluetooth/dtl1_cs.c | 12 |
5 files changed, 17 insertions, 42 deletions
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c index b0e569ba730d..2acdc605cb4b 100644 --- a/drivers/bluetooth/bluecard_cs.c +++ b/drivers/bluetooth/bluecard_cs.c | |||
@@ -867,11 +867,9 @@ static int bluecard_probe(struct pcmcia_device *link) | |||
867 | 867 | ||
868 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; | 868 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; |
869 | link->io.NumPorts1 = 8; | 869 | link->io.NumPorts1 = 8; |
870 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; | 870 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
871 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
872 | 871 | ||
873 | link->irq.Handler = bluecard_interrupt; | 872 | link->irq.Handler = bluecard_interrupt; |
874 | link->irq.Instance = info; | ||
875 | 873 | ||
876 | link->conf.Attributes = CONF_ENABLE_IRQ; | 874 | link->conf.Attributes = CONF_ENABLE_IRQ; |
877 | link->conf.IntType = INT_MEMORY_AND_IO; | 875 | link->conf.IntType = INT_MEMORY_AND_IO; |
@@ -905,22 +903,16 @@ static int bluecard_config(struct pcmcia_device *link) | |||
905 | break; | 903 | break; |
906 | } | 904 | } |
907 | 905 | ||
908 | if (i != 0) { | 906 | if (i != 0) |
909 | cs_error(link, RequestIO, i); | ||
910 | goto failed; | 907 | goto failed; |
911 | } | ||
912 | 908 | ||
913 | i = pcmcia_request_irq(link, &link->irq); | 909 | i = pcmcia_request_irq(link, &link->irq); |
914 | if (i != 0) { | 910 | if (i != 0) |
915 | cs_error(link, RequestIRQ, i); | ||
916 | link->irq.AssignedIRQ = 0; | 911 | link->irq.AssignedIRQ = 0; |
917 | } | ||
918 | 912 | ||
919 | i = pcmcia_request_configuration(link, &link->conf); | 913 | i = pcmcia_request_configuration(link, &link->conf); |
920 | if (i != 0) { | 914 | if (i != 0) |
921 | cs_error(link, RequestConfiguration, i); | ||
922 | goto failed; | 915 | goto failed; |
923 | } | ||
924 | 916 | ||
925 | if (bluecard_open(info) != 0) | 917 | if (bluecard_open(info) != 0) |
926 | goto failed; | 918 | goto failed; |
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c index d58e22b9f06a..d814a2755ccb 100644 --- a/drivers/bluetooth/bt3c_cs.c +++ b/drivers/bluetooth/bt3c_cs.c | |||
@@ -659,11 +659,9 @@ static int bt3c_probe(struct pcmcia_device *link) | |||
659 | 659 | ||
660 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; | 660 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; |
661 | link->io.NumPorts1 = 8; | 661 | link->io.NumPorts1 = 8; |
662 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; | 662 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
663 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
664 | 663 | ||
665 | link->irq.Handler = bt3c_interrupt; | 664 | link->irq.Handler = bt3c_interrupt; |
666 | link->irq.Instance = info; | ||
667 | 665 | ||
668 | link->conf.Attributes = CONF_ENABLE_IRQ; | 666 | link->conf.Attributes = CONF_ENABLE_IRQ; |
669 | link->conf.IntType = INT_MEMORY_AND_IO; | 667 | link->conf.IntType = INT_MEMORY_AND_IO; |
@@ -740,21 +738,16 @@ static int bt3c_config(struct pcmcia_device *link) | |||
740 | goto found_port; | 738 | goto found_port; |
741 | 739 | ||
742 | BT_ERR("No usable port range found"); | 740 | BT_ERR("No usable port range found"); |
743 | cs_error(link, RequestIO, -ENODEV); | ||
744 | goto failed; | 741 | goto failed; |
745 | 742 | ||
746 | found_port: | 743 | found_port: |
747 | i = pcmcia_request_irq(link, &link->irq); | 744 | i = pcmcia_request_irq(link, &link->irq); |
748 | if (i != 0) { | 745 | if (i != 0) |
749 | cs_error(link, RequestIRQ, i); | ||
750 | link->irq.AssignedIRQ = 0; | 746 | link->irq.AssignedIRQ = 0; |
751 | } | ||
752 | 747 | ||
753 | i = pcmcia_request_configuration(link, &link->conf); | 748 | i = pcmcia_request_configuration(link, &link->conf); |
754 | if (i != 0) { | 749 | if (i != 0) |
755 | cs_error(link, RequestConfiguration, i); | ||
756 | goto failed; | 750 | goto failed; |
757 | } | ||
758 | 751 | ||
759 | if (bt3c_open(info) != 0) | 752 | if (bt3c_open(info) != 0) |
760 | goto failed; | 753 | goto failed; |
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c index efd689a062eb..d339464dc15e 100644 --- a/drivers/bluetooth/btuart_cs.c +++ b/drivers/bluetooth/btuart_cs.c | |||
@@ -588,11 +588,9 @@ static int btuart_probe(struct pcmcia_device *link) | |||
588 | 588 | ||
589 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; | 589 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; |
590 | link->io.NumPorts1 = 8; | 590 | link->io.NumPorts1 = 8; |
591 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; | 591 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
592 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
593 | 592 | ||
594 | link->irq.Handler = btuart_interrupt; | 593 | link->irq.Handler = btuart_interrupt; |
595 | link->irq.Instance = info; | ||
596 | 594 | ||
597 | link->conf.Attributes = CONF_ENABLE_IRQ; | 595 | link->conf.Attributes = CONF_ENABLE_IRQ; |
598 | link->conf.IntType = INT_MEMORY_AND_IO; | 596 | link->conf.IntType = INT_MEMORY_AND_IO; |
@@ -669,21 +667,16 @@ static int btuart_config(struct pcmcia_device *link) | |||
669 | goto found_port; | 667 | goto found_port; |
670 | 668 | ||
671 | BT_ERR("No usable port range found"); | 669 | BT_ERR("No usable port range found"); |
672 | cs_error(link, RequestIO, -ENODEV); | ||
673 | goto failed; | 670 | goto failed; |
674 | 671 | ||
675 | found_port: | 672 | found_port: |
676 | i = pcmcia_request_irq(link, &link->irq); | 673 | i = pcmcia_request_irq(link, &link->irq); |
677 | if (i != 0) { | 674 | if (i != 0) |
678 | cs_error(link, RequestIRQ, i); | ||
679 | link->irq.AssignedIRQ = 0; | 675 | link->irq.AssignedIRQ = 0; |
680 | } | ||
681 | 676 | ||
682 | i = pcmcia_request_configuration(link, &link->conf); | 677 | i = pcmcia_request_configuration(link, &link->conf); |
683 | if (i != 0) { | 678 | if (i != 0) |
684 | cs_error(link, RequestConfiguration, i); | ||
685 | goto failed; | 679 | goto failed; |
686 | } | ||
687 | 680 | ||
688 | if (btuart_open(info) != 0) | 681 | if (btuart_open(info) != 0) |
689 | goto failed; | 682 | goto failed; |
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 7ba91aa3fe8b..44bc8bbabf54 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -591,6 +591,7 @@ static int btusb_close(struct hci_dev *hdev) | |||
591 | return 0; | 591 | return 0; |
592 | 592 | ||
593 | cancel_work_sync(&data->work); | 593 | cancel_work_sync(&data->work); |
594 | cancel_work_sync(&data->waker); | ||
594 | 595 | ||
595 | clear_bit(BTUSB_ISOC_RUNNING, &data->flags); | 596 | clear_bit(BTUSB_ISOC_RUNNING, &data->flags); |
596 | clear_bit(BTUSB_BULK_RUNNING, &data->flags); | 597 | clear_bit(BTUSB_BULK_RUNNING, &data->flags); |
@@ -599,11 +600,13 @@ static int btusb_close(struct hci_dev *hdev) | |||
599 | btusb_stop_traffic(data); | 600 | btusb_stop_traffic(data); |
600 | err = usb_autopm_get_interface(data->intf); | 601 | err = usb_autopm_get_interface(data->intf); |
601 | if (err < 0) | 602 | if (err < 0) |
602 | return 0; | 603 | goto failed; |
603 | 604 | ||
604 | data->intf->needs_remote_wakeup = 0; | 605 | data->intf->needs_remote_wakeup = 0; |
605 | usb_autopm_put_interface(data->intf); | 606 | usb_autopm_put_interface(data->intf); |
606 | 607 | ||
608 | failed: | ||
609 | usb_scuttle_anchored_urbs(&data->deferred); | ||
607 | return 0; | 610 | return 0; |
608 | } | 611 | } |
609 | 612 | ||
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c index b881a9cd8741..4f02a6f3c980 100644 --- a/drivers/bluetooth/dtl1_cs.c +++ b/drivers/bluetooth/dtl1_cs.c | |||
@@ -573,11 +573,9 @@ static int dtl1_probe(struct pcmcia_device *link) | |||
573 | 573 | ||
574 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; | 574 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; |
575 | link->io.NumPorts1 = 8; | 575 | link->io.NumPorts1 = 8; |
576 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; | 576 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
577 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
578 | 577 | ||
579 | link->irq.Handler = dtl1_interrupt; | 578 | link->irq.Handler = dtl1_interrupt; |
580 | link->irq.Instance = info; | ||
581 | 579 | ||
582 | link->conf.Attributes = CONF_ENABLE_IRQ; | 580 | link->conf.Attributes = CONF_ENABLE_IRQ; |
583 | link->conf.IntType = INT_MEMORY_AND_IO; | 581 | link->conf.IntType = INT_MEMORY_AND_IO; |
@@ -622,16 +620,12 @@ static int dtl1_config(struct pcmcia_device *link) | |||
622 | goto failed; | 620 | goto failed; |
623 | 621 | ||
624 | i = pcmcia_request_irq(link, &link->irq); | 622 | i = pcmcia_request_irq(link, &link->irq); |
625 | if (i != 0) { | 623 | if (i != 0) |
626 | cs_error(link, RequestIRQ, i); | ||
627 | link->irq.AssignedIRQ = 0; | 624 | link->irq.AssignedIRQ = 0; |
628 | } | ||
629 | 625 | ||
630 | i = pcmcia_request_configuration(link, &link->conf); | 626 | i = pcmcia_request_configuration(link, &link->conf); |
631 | if (i != 0) { | 627 | if (i != 0) |
632 | cs_error(link, RequestConfiguration, i); | ||
633 | goto failed; | 628 | goto failed; |
634 | } | ||
635 | 629 | ||
636 | if (dtl1_open(info) != 0) | 630 | if (dtl1_open(info) != 0) |
637 | goto failed; | 631 | goto failed; |