Commit 5f779bbd authored by John W. Linville's avatar John W. Linville
Browse files
parents d7a4858c 5a13b095
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -188,7 +188,7 @@ config BT_MRVL
	  The core driver to support Marvell Bluetooth devices.
	  The core driver to support Marvell Bluetooth devices.


	  This driver is required if you want to support
	  This driver is required if you want to support
	  Marvell Bluetooth devices, such as 8688/8787.
	  Marvell Bluetooth devices, such as 8688/8787/8797.


	  Say Y here to compile Marvell Bluetooth driver
	  Say Y here to compile Marvell Bluetooth driver
	  into the kernel or say M to compile it as module.
	  into the kernel or say M to compile it as module.
@@ -201,8 +201,8 @@ config BT_MRVL_SDIO
	  The driver for Marvell Bluetooth chipsets with SDIO interface.
	  The driver for Marvell Bluetooth chipsets with SDIO interface.


	  This driver is required if you want to use Marvell Bluetooth
	  This driver is required if you want to use Marvell Bluetooth
	  devices with SDIO interface. Currently SD8688/SD8787 chipsets are
	  devices with SDIO interface. Currently SD8688/SD8787/SD8797
	  supported.
	  chipsets are supported.


	  Say Y here to compile support for Marvell BT-over-SDIO driver
	  Say Y here to compile support for Marvell BT-over-SDIO driver
	  into the kernel or say M to compile it as module.
	  into the kernel or say M to compile it as module.
+13 −2
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ static const struct btmrvl_sdio_card_reg btmrvl_reg_8688 = {
	.io_port_1 = 0x01,
	.io_port_1 = 0x01,
	.io_port_2 = 0x02,
	.io_port_2 = 0x02,
};
};
static const struct btmrvl_sdio_card_reg btmrvl_reg_8787 = {
static const struct btmrvl_sdio_card_reg btmrvl_reg_87xx = {
	.cfg = 0x00,
	.cfg = 0x00,
	.host_int_mask = 0x02,
	.host_int_mask = 0x02,
	.host_intstatus = 0x03,
	.host_intstatus = 0x03,
@@ -92,7 +92,14 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = {
static const struct btmrvl_sdio_device btmrvl_sdio_sd8787 = {
static const struct btmrvl_sdio_device btmrvl_sdio_sd8787 = {
	.helper		= NULL,
	.helper		= NULL,
	.firmware	= "mrvl/sd8787_uapsta.bin",
	.firmware	= "mrvl/sd8787_uapsta.bin",
	.reg		= &btmrvl_reg_8787,
	.reg		= &btmrvl_reg_87xx,
	.sd_blksz_fw_dl	= 256,
};

static const struct btmrvl_sdio_device btmrvl_sdio_sd8797 = {
	.helper		= NULL,
	.firmware	= "mrvl/sd8797_uapsta.bin",
	.reg		= &btmrvl_reg_87xx,
	.sd_blksz_fw_dl	= 256,
	.sd_blksz_fw_dl	= 256,
};
};


@@ -103,6 +110,9 @@ static const struct sdio_device_id btmrvl_sdio_ids[] = {
	/* Marvell SD8787 Bluetooth device */
	/* Marvell SD8787 Bluetooth device */
	{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x911A),
	{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x911A),
			.driver_data = (unsigned long) &btmrvl_sdio_sd8787 },
			.driver_data = (unsigned long) &btmrvl_sdio_sd8787 },
	/* Marvell SD8797 Bluetooth device */
	{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x912A),
			.driver_data = (unsigned long) &btmrvl_sdio_sd8797 },


	{ }	/* Terminating entry */
	{ }	/* Terminating entry */
};
};
@@ -1076,3 +1086,4 @@ MODULE_LICENSE("GPL v2");
MODULE_FIRMWARE("sd8688_helper.bin");
MODULE_FIRMWARE("sd8688_helper.bin");
MODULE_FIRMWARE("sd8688.bin");
MODULE_FIRMWARE("sd8688.bin");
MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin");
MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin");
MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin");
+1 −2
Original line number Original line Diff line number Diff line
@@ -785,9 +785,8 @@ skip_waking:
		usb_mark_last_busy(data->udev);
		usb_mark_last_busy(data->udev);
	}
	}


	usb_free_urb(urb);

done:
done:
	usb_free_urb(urb);
	return err;
	return err;
}
}


+8 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,8 @@


#define VERSION "1.3"
#define VERSION "1.3"


static bool amp;

struct vhci_data {
struct vhci_data {
	struct hci_dev *hdev;
	struct hci_dev *hdev;


@@ -239,6 +241,9 @@ static int vhci_open(struct inode *inode, struct file *file)
	hdev->bus = HCI_VIRTUAL;
	hdev->bus = HCI_VIRTUAL;
	hdev->driver_data = data;
	hdev->driver_data = data;


	if (amp)
		hdev->dev_type = HCI_AMP;

	hdev->open     = vhci_open_dev;
	hdev->open     = vhci_open_dev;
	hdev->close    = vhci_close_dev;
	hdev->close    = vhci_close_dev;
	hdev->flush    = vhci_flush;
	hdev->flush    = vhci_flush;
@@ -303,6 +308,9 @@ static void __exit vhci_exit(void)
module_init(vhci_init);
module_init(vhci_init);
module_exit(vhci_exit);
module_exit(vhci_exit);


module_param(amp, bool, 0644);
MODULE_PARM_DESC(amp, "Create AMP controller device");

MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
MODULE_VERSION(VERSION);
MODULE_VERSION(VERSION);
+5 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,11 @@
#define PF_BLUETOOTH	AF_BLUETOOTH
#define PF_BLUETOOTH	AF_BLUETOOTH
#endif
#endif


/* Bluetooth versions */
#define BLUETOOTH_VER_1_1	1
#define BLUETOOTH_VER_1_2	2
#define BLUETOOTH_VER_2_0	3

/* Reserv for core and drivers use */
/* Reserv for core and drivers use */
#define BT_SKB_RESERVE	8
#define BT_SKB_RESERVE	8


Loading