aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-02-13 05:40:07 -0500
committerMarcel Holtmann <marcel@holtmann.org>2006-02-13 05:40:07 -0500
commit9225806386e398eeba46958a7befa017bda73f58 (patch)
tree425bb3d66554d10f45138795335545615cace048 /drivers/bluetooth
parent7b005bd34c895ebeefd1c62f90a329730b88946b (diff)
[Bluetooth] Fix firmware loading problem of BT3C driver
Before the PCMCIA subsystem was fully integrated into the device and driver model, the BT3C driver had to workaround this when loading the firmware. This workaround is broken and makes the driver oops when loading the firmware. This patch removes this workaround and uses now the provided device structure from the PCMCIA subsystem. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/bt3c_cs.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index e522d19ad886..7e21b1ff27c4 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -474,18 +474,6 @@ static int bt3c_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
474/* ======================== Card services HCI interaction ======================== */ 474/* ======================== Card services HCI interaction ======================== */
475 475
476 476
477static struct device *bt3c_device(void)
478{
479 static struct device dev = {
480 .bus_id = "pcmcia",
481 };
482 kobject_set_name(&dev.kobj, "bt3c");
483 kobject_init(&dev.kobj);
484
485 return &dev;
486}
487
488
489static int bt3c_load_firmware(bt3c_info_t *info, unsigned char *firmware, int count) 477static int bt3c_load_firmware(bt3c_info_t *info, unsigned char *firmware, int count)
490{ 478{
491 char *ptr = (char *) firmware; 479 char *ptr = (char *) firmware;
@@ -574,6 +562,7 @@ static int bt3c_open(bt3c_info_t *info)
574{ 562{
575 const struct firmware *firmware; 563 const struct firmware *firmware;
576 struct hci_dev *hdev; 564 struct hci_dev *hdev;
565 client_handle_t handle;
577 int err; 566 int err;
578 567
579 spin_lock_init(&(info->lock)); 568 spin_lock_init(&(info->lock));
@@ -605,8 +594,10 @@ static int bt3c_open(bt3c_info_t *info)
605 594
606 hdev->owner = THIS_MODULE; 595 hdev->owner = THIS_MODULE;
607 596
597 handle = info->link.handle;
598
608 /* Load firmware */ 599 /* Load firmware */
609 err = request_firmware(&firmware, "BT3CPCC.bin", bt3c_device()); 600 err = request_firmware(&firmware, "BT3CPCC.bin", &handle_to_dev(handle));
610 if (err < 0) { 601 if (err < 0) {
611 BT_ERR("Firmware request failed"); 602 BT_ERR("Firmware request failed");
612 goto error; 603 goto error;