Bluetooth: bluecard: Always enable LEDs (fix for Anycom CF-300)
authorOndrej Zary <linux@rainbow-software.org>
Sat, 5 Aug 2017 19:34:44 +0000 (21:34 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 7 Aug 2017 06:36:21 +0000 (08:36 +0200)
Anycom CF-300 (HP C8249A) has both power and activity LEDs.
However the id read in bluecard_open() is 0x73 so the driver does not
enable the LEDs.
Remove the CARD_HAS_PCCARD_ID check to enable LEDs.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/bluecard_cs.c

index d4b0b655dde6b8b7c2d064d2635884a47b97be41..5cd1e164fde0ec017cf69797b94e28d563ec3bd4 100644 (file)
@@ -160,9 +160,6 @@ static void bluecard_activity_led_timeout(u_long arg)
        struct bluecard_info *info = (struct bluecard_info *)arg;
        unsigned int iobase = info->p_dev->resource[0]->start;
 
-       if (!test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
-               return;
-
        if (test_bit(CARD_HAS_ACTIVITY_LED, &(info->hw_state))) {
                /* Disable activity LED */
                outb(0x08 | 0x20, iobase + 0x30);
@@ -177,9 +174,6 @@ static void bluecard_enable_activity_led(struct bluecard_info *info)
 {
        unsigned int iobase = info->p_dev->resource[0]->start;
 
-       if (!test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
-               return;
-
        if (test_bit(CARD_HAS_ACTIVITY_LED, &(info->hw_state))) {
                /* Enable activity LED */
                outb(0x10 | 0x40, iobase + 0x30);
@@ -625,16 +619,13 @@ static int bluecard_hci_flush(struct hci_dev *hdev)
 static int bluecard_hci_open(struct hci_dev *hdev)
 {
        struct bluecard_info *info = hci_get_drvdata(hdev);
+       unsigned int iobase = info->p_dev->resource[0]->start;
 
        if (test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
                bluecard_hci_set_baud_rate(hdev, DEFAULT_BAUD_RATE);
 
-       if (test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state))) {
-               unsigned int iobase = info->p_dev->resource[0]->start;
-
-               /* Enable LED */
-               outb(0x08 | 0x20, iobase + 0x30);
-       }
+       /* Enable LED */
+       outb(0x08 | 0x20, iobase + 0x30);
 
        return 0;
 }
@@ -643,15 +634,12 @@ static int bluecard_hci_open(struct hci_dev *hdev)
 static int bluecard_hci_close(struct hci_dev *hdev)
 {
        struct bluecard_info *info = hci_get_drvdata(hdev);
+       unsigned int iobase = info->p_dev->resource[0]->start;
 
        bluecard_hci_flush(hdev);
 
-       if (test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state))) {
-               unsigned int iobase = info->p_dev->resource[0]->start;
-
-               /* Disable LED */
-               outb(0x00, iobase + 0x30);
-       }
+       /* Disable LED */
+       outb(0x00, iobase + 0x30);
 
        return 0;
 }