Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6e3e7ae authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "bluetooth: Add support for Tufello 1.1"

parents b3e9993d 46064692
Loading
Loading
Loading
Loading
+31 −3
Original line number Diff line number Diff line
@@ -44,6 +44,9 @@
#define ROME3_0_USB_RAMPATCH_FILE	"ar3k/rampatch_tlv_usb_3.0.tlv"
#define ROME3_0_USB_NVM_FILE		"ar3k/nvm_tlv_usb_3.0.bin"

#define TF1_1_USB_RAMPATCH_FILE	"ar3k/rampatch_tlv_usb_tf_1.1.tlv"
#define TF1_1_USB_NVM_FILE		"ar3k/nvm_tlv_usb_tf_1.1.bin"

#define ROME2_1_USB_RAMPATCH_HEADER	sizeof(struct rome2_1_version)
#define ROME1_1_USB_RAMPATCH_HEADER	sizeof(struct rome1_1_version)

@@ -53,7 +56,9 @@
#define ROME1_1_USB_CHIP_VERSION		0x101
#define ROME2_1_USB_CHIP_VERSION		0x200
#define ROME3_0_USB_CHIP_VERSION		0x300
#define ROME3_2_USB_CHIP_VERSION		0x302

#define TF1_1_USB_PRODUCT_ID			0xe500
#define ATH3K_DNLOAD				0x01
#define ATH3K_GETSTATE				0x05
#define ATH3K_SET_NORMAL_MODE			0x07
@@ -122,6 +127,7 @@ static struct usb_device_id ath3k_table[] = {
	{ USB_DEVICE(0x0CF3, 0x3008) },
	{ USB_DEVICE(0x0CF3, 0x311D) },
	{ USB_DEVICE(0x0CF3, 0x817a) },
	{ USB_DEVICE(0x0CF3, 0xe500) },
	{ USB_DEVICE(0x13d3, 0x3375) },
	{ USB_DEVICE(0x04CA, 0x3004) },
	{ USB_DEVICE(0x04CA, 0x3005) },
@@ -309,6 +315,7 @@ int get_rome_version(struct usb_device *udev, struct ath3k_version *version)
	case ROME1_1_USB_CHIP_VERSION:
	case ROME2_1_USB_CHIP_VERSION:
	case ROME3_0_USB_CHIP_VERSION:
	case ROME3_2_USB_CHIP_VERSION:
		memcpy(version, &fw_version, sizeof(struct ath3k_version));
		ret = 0;
		break;
@@ -446,6 +453,16 @@ static int ath3k_load_patch(struct usb_device *udev,
		BT_DBG("Chip Detected as ROME3.0");
		snprintf(filename, ATH3K_NAME_LEN, ROME3_0_USB_RAMPATCH_FILE);
		break;
	case ROME3_2_USB_CHIP_VERSION:
		if (udev->descriptor.idProduct == TF1_1_USB_PRODUCT_ID) {
			BT_DBG("Chip Detected as TF1.1");
			snprintf(filename, ATH3K_NAME_LEN,
						TF1_1_USB_RAMPATCH_FILE);
		} else {
			BT_INFO("Unsupported Chip");
			return -ENODEV;
		}
		break;
	default:
		BT_DBG("Chip Detected as Ath3k");
		snprintf(filename, ATH3K_NAME_LEN, "ar3k/AthrBT_0x%08x.dfu",
@@ -460,7 +477,8 @@ static int ath3k_load_patch(struct usb_device *udev,
	}

	if ((version->rom_version == ROME2_1_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_0_USB_CHIP_VERSION)) {
		(version->rom_version == ROME3_0_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_2_USB_CHIP_VERSION)) {
		rome2_1_version = (struct rome2_1_version *) firmware->data;
		pt_version.rom_version = rome2_1_version->build_ver;
		pt_version.build_version = rome2_1_version->patch_ver;
@@ -490,7 +508,8 @@ static int ath3k_load_patch(struct usb_device *udev,
	}

	if ((version->rom_version == ROME2_1_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_0_USB_CHIP_VERSION))
		(version->rom_version == ROME3_0_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_2_USB_CHIP_VERSION))
		ret = ath3k_load_fwfile(udev, firmware,
						ROME2_1_USB_RAMPATCH_HEADER);
	else if (version->rom_version == ROME1_1_USB_CHIP_VERSION)
@@ -545,6 +564,14 @@ static int ath3k_load_syscfg(struct usb_device *udev,
		snprintf(filename, ATH3K_NAME_LEN, ROME2_1_USB_NVM_FILE);
	else if (version->rom_version == ROME3_0_USB_CHIP_VERSION)
		snprintf(filename, ATH3K_NAME_LEN, ROME3_0_USB_NVM_FILE);
	else if (version->rom_version == ROME3_2_USB_CHIP_VERSION) {
		if (udev->descriptor.idProduct == TF1_1_USB_PRODUCT_ID)
			snprintf(filename, ATH3K_NAME_LEN, TF1_1_USB_NVM_FILE);
		else {
			BT_INFO("Unsupported Chip");
			return -ENODEV;
		}
	}
	else if (version->rom_version == ROME1_1_USB_CHIP_VERSION)
		snprintf(filename, ATH3K_NAME_LEN, ROME1_1_USB_NVM_FILE);
	else
@@ -558,7 +585,8 @@ static int ath3k_load_syscfg(struct usb_device *udev,
	}

	if ((version->rom_version == ROME2_1_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_0_USB_CHIP_VERSION))
		(version->rom_version == ROME3_0_USB_CHIP_VERSION) ||
		(version->rom_version == ROME3_2_USB_CHIP_VERSION))
		ret = ath3k_load_fwfile(udev, firmware, ROME2_1_USB_NVM_HEADER);
	else if (version->rom_version == ROME1_1_USB_CHIP_VERSION)
		ret = ath3k_load_fwfile(udev, firmware, ROME1_1_USB_NVM_HEADER);
+1 −0
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ static struct usb_device_id blacklist_table[] = {
	{ USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x817a), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0xe500), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },