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

Commit 679075fb 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 34915835 7cc5b766
Loading
Loading
Loading
Loading
+37 −12
Original line number Diff line number Diff line
@@ -48,6 +48,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)

@@ -57,7 +60,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,14 +127,13 @@ static struct usb_device_id ath3k_table[] = {
	{ USB_DEVICE(0x03F0, 0x311D) },

	/* Atheros AR3012 with sflash firmware*/
	{ USB_DEVICE(0x0489, 0xe04d) },
	{ USB_DEVICE(0x0489, 0xe04e) },
	{ USB_DEVICE(0x0489, 0xe057) },
	{ USB_DEVICE(0x0489, 0xe056) },
	{ USB_DEVICE(0x0489, 0xe05f) },
	{ USB_DEVICE(0x0489, 0xe076) },
	{ USB_DEVICE(0x0489, 0xe078) },
	{ USB_DEVICE(0x04c5, 0x1330) },
	{ USB_DEVICE(0x0CF3, 0x0036) },
	{ USB_DEVICE(0x0CF3, 0x3004) },
	{ 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) },
	{ USB_DEVICE(0x04CA, 0x3006) },
@@ -351,6 +355,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;
@@ -490,6 +495,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",
@@ -504,7 +519,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;
@@ -534,7 +550,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)
@@ -589,7 +606,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 == ROME1_1_USB_CHIP_VERSION)
	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
		snprintf(filename, ATH3K_NAME_LEN, "ar3k/ramps_0x%08x_%d%s",
@@ -602,7 +626,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);
+7 −8
Original line number Diff line number Diff line
@@ -165,14 +165,13 @@ static const struct usb_device_id blacklist_table[] = {
	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },

	/* Atheros 3012 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe05f), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe076), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe078), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x0036), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
	{ 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 },
	{ USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 },