Commit 7feb99e1 authored by Marcel Holtmann's avatar Marcel Holtmann

Bluetooth: btintel: Create common function for Intel version info

The Intel version information is shared between USB and UART drivers
and with that move it into a generic function of the Intel module.
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent 09df123d
...@@ -123,6 +123,27 @@ void btintel_hw_error(struct hci_dev *hdev, u8 code) ...@@ -123,6 +123,27 @@ void btintel_hw_error(struct hci_dev *hdev, u8 code)
} }
EXPORT_SYMBOL_GPL(btintel_hw_error); EXPORT_SYMBOL_GPL(btintel_hw_error);
void btintel_version_info(struct hci_dev *hdev, struct intel_version *ver)
{
const char *variant;
switch (ver->fw_variant) {
case 0x06:
variant = "Bootloader";
break;
case 0x23:
variant = "Firmware";
break;
default:
return;
}
BT_INFO("%s: %s revision %u.%u build %u week %u %u", hdev->name,
variant, ver->fw_revision >> 4, ver->fw_revision & 0x0f,
ver->fw_build_num, ver->fw_build_ww, 2000 + ver->fw_build_yy);
}
EXPORT_SYMBOL_GPL(btintel_version_info);
int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, u32 plen, int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, u32 plen,
const void *param) const void *param)
{ {
......
...@@ -75,6 +75,7 @@ int btintel_check_bdaddr(struct hci_dev *hdev); ...@@ -75,6 +75,7 @@ int btintel_check_bdaddr(struct hci_dev *hdev);
int btintel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr); int btintel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);
void btintel_hw_error(struct hci_dev *hdev, u8 code); void btintel_hw_error(struct hci_dev *hdev, u8 code);
void btintel_version_info(struct hci_dev *hdev, struct intel_version *ver);
int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, u32 plen, int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, u32 plen,
const void *param); const void *param);
...@@ -94,6 +95,10 @@ static inline void btintel_hw_error(struct hci_dev *hdev, u8 code) ...@@ -94,6 +95,10 @@ static inline void btintel_hw_error(struct hci_dev *hdev, u8 code)
{ {
} }
static void btintel_version_info(struct hci_dev *hdev, struct intel_version *ver)
{
}
static inline int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, static inline int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type,
u32 plen, const void *param) u32 plen, const void *param)
{ {
......
...@@ -1878,27 +1878,6 @@ static int btusb_send_frame_intel(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -1878,27 +1878,6 @@ static int btusb_send_frame_intel(struct hci_dev *hdev, struct sk_buff *skb)
return -EILSEQ; return -EILSEQ;
} }
static void btusb_intel_version_info(struct hci_dev *hdev,
struct intel_version *ver)
{
const char *variant;
switch (ver->fw_variant) {
case 0x06:
variant = "Bootloader";
break;
case 0x23:
variant = "Firmware";
break;
default:
return;
}
BT_INFO("%s: %s revision %u.%u build %u week %u %u", hdev->name,
variant, ver->fw_revision >> 4, ver->fw_revision & 0x0f,
ver->fw_build_num, ver->fw_build_ww, 2000 + ver->fw_build_yy);
}
static int btusb_setup_intel_new(struct hci_dev *hdev) static int btusb_setup_intel_new(struct hci_dev *hdev)
{ {
static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01, static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01,
...@@ -1960,7 +1939,7 @@ static int btusb_setup_intel_new(struct hci_dev *hdev) ...@@ -1960,7 +1939,7 @@ static int btusb_setup_intel_new(struct hci_dev *hdev)
return -EINVAL; return -EINVAL;
} }
btusb_intel_version_info(hdev, ver); btintel_version_info(hdev, ver);
/* The firmware variant determines if the device is in bootloader /* The firmware variant determines if the device is in bootloader
* mode or is running operational firmware. The value 0x06 identifies * mode or is running operational firmware. The value 0x06 identifies
......
...@@ -111,27 +111,6 @@ static int inject_cmd_complete(struct hci_dev *hdev, __u16 opcode) ...@@ -111,27 +111,6 @@ static int inject_cmd_complete(struct hci_dev *hdev, __u16 opcode)
return hci_recv_frame(hdev, skb); return hci_recv_frame(hdev, skb);
} }
static void intel_version_info(struct hci_dev *hdev,
struct intel_version *ver)
{
const char *variant;
switch (ver->fw_variant) {
case 0x06:
variant = "Bootloader";
break;
case 0x23:
variant = "Firmware";
break;
default:
return;
}
BT_INFO("%s: %s revision %u.%u build %u week %u %u", hdev->name,
variant, ver->fw_revision >> 4, ver->fw_revision & 0x0f,
ver->fw_build_num, ver->fw_build_ww, 2000 + ver->fw_build_yy);
}
static int intel_setup(struct hci_uart *hu) static int intel_setup(struct hci_uart *hu)
{ {
static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01, static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01,
...@@ -205,7 +184,7 @@ static int intel_setup(struct hci_uart *hu) ...@@ -205,7 +184,7 @@ static int intel_setup(struct hci_uart *hu)
return -EINVAL; return -EINVAL;
} }
intel_version_info(hdev, ver); btintel_version_info(hdev, ver);
/* The firmware variant determines if the device is in bootloader /* The firmware variant determines if the device is in bootloader
* mode or is running operational firmware. The value 0x06 identifies * mode or is running operational firmware. The value 0x06 identifies
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment