diff options
author | Ondrej Zary <linux@rainbow-software.org> | 2017-08-05 21:34:44 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2017-08-07 08:36:21 +0200 |
commit | df44f531ee572a20128b2b610370ef3861b369ae (patch) | |
tree | 367142fd840da5d8a01015a1ddcb316a6ebb9053 /drivers/bluetooth | |
parent | 1afec92be0d7b516a79f4c548a81d17460c8ba73 (diff) | |
download | linux-stable-df44f531ee572a20128b2b610370ef3861b369ae.tar.gz linux-stable-df44f531ee572a20128b2b610370ef3861b369ae.tar.bz2 linux-stable-df44f531ee572a20128b2b610370ef3861b369ae.zip |
Bluetooth: bluecard: Always enable LEDs (fix for Anycom CF-300)
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>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/bluecard_cs.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c index d4b0b655dde6..5cd1e164fde0 100644 --- a/drivers/bluetooth/bluecard_cs.c +++ b/drivers/bluetooth/bluecard_cs.c @@ -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; } |