[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-bluetooth
Subject: [PATCH 10/12] android: Add support for FW and HW revision config options
From: Szymon Janc <szymon.janc () tieto ! com>
Date: 2014-09-30 11:06:25
Message-ID: 1412075187-5518-11-git-send-email-szymon.janc () tieto ! com
[Download RAW message or body]
---
android/gatt.c | 6 ++----
android/hal-bluetooth.c | 10 ++++++++++
android/hal-ipc-api.txt | 2 ++
android/hal-msg.h | 2 ++
android/main.c | 24 ++++++++++++++++++++++++
android/utils.h | 2 ++
6 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/android/gatt.c b/android/gatt.c
index 425f6a5..ad20a71 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -6524,8 +6524,7 @@ static void register_device_info_service(void)
NULL, NULL);
}
- /* TODO */
- data = NULL;
+ data = bt_config_get_fw_rev();
if (data) {
bt_uuid16_create(&uuid, GATT_CHARAC_FIRMWARE_REVISION_STRING);
gatt_db_add_characteristic(gatt_db, srvc_handle, &uuid,
@@ -6535,8 +6534,7 @@ static void register_device_info_service(void)
(void *) data);
}
- /* TODO */
- data = NULL;
+ data = bt_config_get_hw_rev();
if (data) {
bt_uuid16_create(&uuid, GATT_CHARAC_HARDWARE_REVISION_STRING);
gatt_db_add_characteristic(gatt_db, srvc_handle, &uuid,
diff --git a/android/hal-bluetooth.c b/android/hal-bluetooth.c
index f7db416..6754279 100644
--- a/android/hal-bluetooth.c
+++ b/android/hal-bluetooth.c
@@ -453,6 +453,16 @@ static int send_configuration(void)
cmd->num++;
}
+ if (get_config("fwrev", prop, "ro.build.version.release") > 0) {
+ len += add_prop(prop, HAL_CONFIG_FW_REV, buf + len);
+ cmd->num++;
+ }
+
+ if (get_config("hwrev", prop, "ro.board.platform") > 0) {
+ len += add_prop(prop, HAL_CONFIG_HW_REV, buf + len);
+ cmd->num++;
+ }
+
return hal_ipc_cmd(HAL_SERVICE_ID_CORE, HAL_OP_CONFIGURATION, len, cmd,
NULL, NULL, NULL);
}
diff --git a/android/hal-ipc-api.txt b/android/hal-ipc-api.txt
index 82067f2..739fdbf 100644
--- a/android/hal-ipc-api.txt
+++ b/android/hal-ipc-api.txt
@@ -161,6 +161,8 @@ Core Service (ID 0)
0x03 = Serial Number
0x04 = System ID
0x05 = PnP ID
+ 0x06 = Firmware Rev
+ 0x07 = Hardware Rev
In case of an error, the error response will be returned.
diff --git a/android/hal-msg.h b/android/hal-msg.h
index 9ae8c24..71969b5 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -76,6 +76,8 @@ struct hal_cmd_unregister_module {
#define HAL_CONFIG_SERIAL_NUMBER 0x03
#define HAL_CONFIG_SYSTEM_ID 0x04
#define HAL_CONFIG_PNP_ID 0x05
+#define HAL_CONFIG_FW_REV 0x06
+#define HAL_CONFIG_HW_REV 0x07
struct hal_config_prop {
uint8_t type;
diff --git a/android/main.c b/android/main.c
index 014b763..4f3a6bf 100644
--- a/android/main.c
+++ b/android/main.c
@@ -75,6 +75,8 @@ static char *config_vendor = NULL;
static char *config_model = NULL;
static char *config_name = NULL;
static char *config_serial = NULL;
+static char *config_fw_rev = NULL;
+static char *config_hw_rev = NULL;
static uint64_t config_system_id = 0;
static uint16_t config_pnp_source = 0x0002; /* USB */
static uint16_t config_pnp_vendor = 0x1d6b; /* Linux Foundation */
@@ -120,6 +122,16 @@ const char *bt_config_get_serial(void)
return config_serial;
}
+const char *bt_config_get_fw_rev(void)
+{
+ return config_fw_rev;
+}
+
+const char *bt_config_get_hw_rev(void)
+{
+ return config_hw_rev;
+}
+
uint64_t bt_config_get_system_id(void)
{
return config_system_id;
@@ -420,6 +432,16 @@ static void configuration(const void *buf, uint16_t len)
case HAL_CONFIG_PNP_ID:
parse_pnp_id(prop->len, prop->val);
break;
+ case HAL_CONFIG_FW_REV:
+ config_fw_rev = get_prop(config_fw_rev, prop->len,
+ prop->val);
+ DBG("fw_rev %s", config_fw_rev);
+ break;
+ case HAL_CONFIG_HW_REV:
+ config_hw_rev = get_prop(config_hw_rev, prop->len,
+ prop->val);
+ DBG("hw_rev %s", config_hw_rev);
+ break;
default:
error("Invalid configuration option (%u), terminating",
prop->type);
@@ -760,6 +782,8 @@ int main(int argc, char *argv[])
free(config_model);
free(config_name);
free(config_serial);
+ free(config_fw_rev);
+ free(config_hw_rev);
return EXIT_SUCCESS;
}
diff --git a/android/utils.h b/android/utils.h
index 9bf2195..7adc2da 100644
--- a/android/utils.h
+++ b/android/utils.h
@@ -35,6 +35,8 @@ const char *bt_config_get_vendor(void);
const char *bt_config_get_model(void);
const char *bt_config_get_name(void);
const char *bt_config_get_serial(void);
+const char *bt_config_get_fw_rev(void);
+const char *bt_config_get_hw_rev(void);
uint64_t bt_config_get_system_id(void);
uint16_t bt_config_get_pnp_source(void);
uint16_t bt_config_get_pnp_vendor(void);
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic