aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2017-01-20 14:44:54 +0100
committerAleksander Morgado <aleksander@aleksander.es>2017-01-29 10:37:53 +0100
commit132bd1b0ef5c3b8b9f2544261a9e57e0fd589c14 (patch)
tree4c1eef60cb60e1170b5e3eacda709f4d9a18f1bd
parentbffee13b741eaac0da2dd89ca2d2e8535cea87d8 (diff)
downloadexternal_libqmi-132bd1b0ef5c3b8b9f2544261a9e57e0fd589c14.zip
external_libqmi-132bd1b0ef5c3b8b9f2544261a9e57e0fd589c14.tar.gz
external_libqmi-132bd1b0ef5c3b8b9f2544261a9e57e0fd589c14.tar.bz2
dms: renamed DMS 0x5556 to 'HP Change Device Mode'
Also, define a new QmiDmsHpDeviceMode enumeration with the modes found out of the HPlt4120. Note this command is flagged as 'HP' because it only applies to HP devices, at least only to the HPlt4120.
-rw-r--r--data/qmi-service-dms.json13
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-common.sections5
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-docs.xml2
-rw-r--r--src/libqmi-glib/qmi-enums-dms.h23
-rw-r--r--src/qmicli/qmicli-dms.c66
-rw-r--r--src/qmicli/qmicli-helpers.c21
-rw-r--r--src/qmicli/qmicli-helpers.h2
7 files changed, 92 insertions, 40 deletions
diff --git a/data/qmi-service-dms.json b/data/qmi-service-dms.json
index cebf621..656172a 100644
--- a/data/qmi-service-dms.json
+++ b/data/qmi-service-dms.json
@@ -1225,16 +1225,17 @@
"prerequisites" : [ { "common-ref" : "Success" } ] } ] },
// *********************************************************************************
- { "name" : "Change Device Download Mode",
+ { "name" : "HP Change Device Mode",
"type" : "Message",
"service" : "DMS",
"id" : "0x5556",
"version" : "1.0",
- "input" : [ { "name" : "Mode",
- "id" : "0x01",
- "mandatory" : "yes",
- "type" : "TLV",
- "format" : "guint8" } ],
+ "input" : [ { "name" : "Mode",
+ "id" : "0x01",
+ "mandatory" : "yes",
+ "type" : "TLV",
+ "format" : "guint8",
+ "public-format" : "QmiDmsHpDeviceMode" } ],
"output" : [ { "common-ref" : "Operation Result" } ] },
// *********************************************************************************
diff --git a/docs/reference/libqmi-glib/libqmi-glib-common.sections b/docs/reference/libqmi-glib/libqmi-glib-common.sections
index 36b65cd..a81af67 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-common.sections
+++ b/docs/reference/libqmi-glib/libqmi-glib-common.sections
@@ -152,6 +152,7 @@ QmiDmsUimState
QmiDmsTimeReferenceType
QmiDmsFirmwareImageType
QmiDmsBootImageDownloadMode
+QmiDmsHpDeviceMode
<SUBSECTION Methods>
qmi_dms_data_service_capability_get_string
qmi_dms_sim_capability_get_string
@@ -171,6 +172,7 @@ qmi_dms_uim_state_get_string
qmi_dms_time_reference_type_get_string
qmi_dms_firmware_image_type_get_string
qmi_dms_boot_image_download_mode_get_string
+qmi_dms_hp_device_mode_get_string
<SUBSECTION Private>
qmi_dms_data_service_capability_build_string_from_mask
qmi_dms_sim_capability_build_string_from_mask
@@ -188,6 +190,7 @@ qmi_dms_uim_state_build_string_from_mask
qmi_dms_time_reference_type_build_string_from_mask
qmi_dms_firmware_image_type_build_string_from_mask
qmi_dms_boot_image_download_mode_build_string_from_mask
+qmi_dms_hp_device_mode_build_string_from_mask
<SUBSECTION Standard>
QMI_TYPE_DMS_ACTIVATION_STATE
QMI_TYPE_DMS_BOOT_IMAGE_DOWNLOAD_MODE
@@ -205,6 +208,7 @@ QMI_TYPE_DMS_UIM_FACILITY_STATE
QMI_TYPE_DMS_UIM_PIN_ID
QMI_TYPE_DMS_UIM_PIN_STATUS
QMI_TYPE_DMS_UIM_STATE
+QMI_TYPE_DMS_HP_DEVICE_MODE
qmi_dms_activation_state_get_type
qmi_dms_boot_image_download_mode_get_type
qmi_dms_data_service_capability_get_type
@@ -221,6 +225,7 @@ qmi_dms_uim_facility_state_get_type
qmi_dms_uim_pin_id_get_type
qmi_dms_uim_pin_status_get_type
qmi_dms_uim_state_get_type
+qmi_dms_hp_device_mode_get_type
</SECTION>
<SECTION>
diff --git a/docs/reference/libqmi-glib/libqmi-glib-docs.xml b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
index 76d1e8d..07f9795 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-docs.xml
+++ b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
@@ -114,7 +114,7 @@
<xi:include href="xml/qmi-message-dms-set-boot-image-download-mode.xml"/>
<xi:include href="xml/qmi-message-dms-get-software-version.xml"/>
<xi:include href="xml/qmi-message-dms-set-service-programming-code.xml"/>
- <xi:include href="xml/qmi-message-dms-change-device-download-mode.xml"/>
+ <xi:include href="xml/qmi-message-dms-hp-change-device-mode.xml"/>
<xi:include href="xml/qmi-message-dms-set-fcc-authentication.xml"/>
<xi:include href="xml/qmi-message-dms-get-supported-messages.xml"/>
</section>
diff --git a/src/libqmi-glib/qmi-enums-dms.h b/src/libqmi-glib/qmi-enums-dms.h
index da75e6c..61fb287 100644
--- a/src/libqmi-glib/qmi-enums-dms.h
+++ b/src/libqmi-glib/qmi-enums-dms.h
@@ -354,4 +354,27 @@ typedef enum {
QMI_DMS_BOOT_IMAGE_DOWNLOAD_MODE_BOOT_AND_RECOVERY = 1,
} QmiDmsBootImageDownloadMode;
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS HP Change Device Mode' message */
+
+/**
+ * QmiDmsHpDeviceMode:
+ * @QMI_DMS_HP_DEVICE_MODE_QMI: AT+QMI capable mode.
+ * @QMI_DMS_HP_DEVICE_MODE_NCM: AT+NCM capable mode.
+ * @QMI_DMS_HP_DEVICE_MODE_MBIM: AT+MBIM capable mode.
+ * @QMI_DMS_HP_DEVICE_MODE_FASTBOOT: Fastboot download mode.
+ * @QMI_DMS_HP_DEVICE_MODE_SOFT_RESET: Soft reset.
+ * @QMI_DMS_HP_DEVICE_MODE_HARD_RESET: Hard reset.
+ *
+ * HP specific device modes.
+ */
+typedef enum {
+ QMI_DMS_HP_DEVICE_MODE_QMI = 2,
+ QMI_DMS_HP_DEVICE_MODE_NCM = 3,
+ QMI_DMS_HP_DEVICE_MODE_MBIM = 4,
+ QMI_DMS_HP_DEVICE_MODE_FASTBOOT = 5,
+ QMI_DMS_HP_DEVICE_MODE_SOFT_RESET = 7,
+ QMI_DMS_HP_DEVICE_MODE_HARD_RESET = 8,
+} QmiDmsHpDeviceMode;
+
#endif /* _LIBQMI_GLIB_QMI_ENUMS_DMS_H_ */
diff --git a/src/qmicli/qmicli-dms.c b/src/qmicli/qmicli-dms.c
index f9c1630..062a83a 100644
--- a/src/qmicli/qmicli-dms.c
+++ b/src/qmicli/qmicli-dms.c
@@ -92,7 +92,7 @@ static gchar *set_boot_image_download_mode_str;
static gboolean get_software_version_flag;
static gboolean set_fcc_authentication_flag;
static gboolean get_supported_messages_flag;
-static gchar *change_device_download_mode_str;
+static gchar *hp_change_device_mode_str;
static gboolean reset_flag;
static gboolean noop_flag;
@@ -285,9 +285,9 @@ static GOptionEntry entries[] = {
"Get supported messages",
NULL
},
- { "dms-change-device-download-mode", 0, 0, G_OPTION_ARG_STRING, &change_device_download_mode_str,
- "Change device download mode",
- "[mode]"
+ { "dms-hp-change-device-mode", 0, 0, G_OPTION_ARG_STRING, &hp_change_device_mode_str,
+ "Change HP device mode",
+ "[qmi|ncm|mbim|fastboot|soft-reset|hard-reset]"
},
{ "dms-reset", 0, 0, G_OPTION_ARG_NONE, &reset_flag,
"Reset the service state",
@@ -371,7 +371,7 @@ qmicli_dms_options_enabled (void)
get_software_version_flag +
set_fcc_authentication_flag +
get_supported_messages_flag +
- !!change_device_download_mode_str +
+ !!hp_change_device_mode_str +
reset_flag +
noop_flag);
@@ -3345,24 +3345,24 @@ get_supported_messages_ready (QmiClientDms *client,
operation_shutdown (TRUE);
}
-static QmiMessageDmsChangeDeviceDownloadModeInput *
-change_device_download_mode_input_create (const gchar *str)
+static QmiMessageDmsHpChangeDeviceModeInput *
+hp_change_device_mode_input_create (const gchar *str)
{
- QmiMessageDmsChangeDeviceDownloadModeInput *input = NULL;
- guint mode;
+ QmiMessageDmsHpChangeDeviceModeInput *input = NULL;
+ QmiDmsHpDeviceMode mode;
GError *error = NULL;
- if (!qmicli_read_uint_from_string (str, &mode) || mode > G_MAXUINT8) {
- g_printerr ("error: couldn't parse input data : '%s'\n", str);
+ if (!qmicli_read_hp_device_mode_from_string (str, &mode)) {
+ g_printerr ("error: couldn't parse input HP device mode : '%s'\n", str);
return NULL;
}
- input = qmi_message_dms_change_device_download_mode_input_new ();
- if (!qmi_message_dms_change_device_download_mode_input_set_mode (input, mode, &error)) {
+ input = qmi_message_dms_hp_change_device_mode_input_new ();
+ if (!qmi_message_dms_hp_change_device_mode_input_set_mode (input, mode, &error)) {
g_printerr ("error: couldn't create input data bundle: '%s'\n",
error->message);
g_error_free (error);
- qmi_message_dms_change_device_download_mode_input_unref (input);
+ qmi_message_dms_hp_change_device_mode_input_unref (input);
return NULL;
}
@@ -3370,13 +3370,13 @@ change_device_download_mode_input_create (const gchar *str)
}
static void
-change_device_download_mode_ready (QmiClientDms *client,
- GAsyncResult *res)
+hp_change_device_mode_ready (QmiClientDms *client,
+ GAsyncResult *res)
{
- QmiMessageDmsChangeDeviceDownloadModeOutput *output;
+ QmiMessageDmsHpChangeDeviceModeOutput *output;
GError *error = NULL;
- output = qmi_client_dms_change_device_download_mode_finish (client, res, &error);
+ output = qmi_client_dms_hp_change_device_mode_finish (client, res, &error);
if (!output) {
g_printerr ("error: operation failed: %s\n", error->message);
g_error_free (error);
@@ -3384,15 +3384,15 @@ change_device_download_mode_ready (QmiClientDms *client,
return;
}
- if (!qmi_message_dms_change_device_download_mode_output_get_result (output, &error)) {
- g_printerr ("error: couldn't change device download mode: %s\n", error->message);
+ if (!qmi_message_dms_hp_change_device_mode_output_get_result (output, &error)) {
+ g_printerr ("error: couldn't change HP device mode: %s\n", error->message);
g_error_free (error);
- qmi_message_dms_change_device_download_mode_output_unref (output);
+ qmi_message_dms_hp_change_device_mode_output_unref (output);
operation_shutdown (FALSE);
return;
}
- qmi_message_dms_change_device_download_mode_output_unref (output);
+ qmi_message_dms_hp_change_device_mode_output_unref (output);
operation_shutdown (TRUE);
}
@@ -4148,24 +4148,24 @@ qmicli_dms_run (QmiDevice *device,
}
/* Request to change device download mode */
- if (change_device_download_mode_str) {
- QmiMessageDmsChangeDeviceDownloadModeInput *input;
+ if (hp_change_device_mode_str) {
+ QmiMessageDmsHpChangeDeviceModeInput *input;
- g_debug ("Asynchronously changing device download mode...");
+ g_debug ("Asynchronously changing HP device mode...");
- input = change_device_download_mode_input_create (change_device_download_mode_str);
+ input = hp_change_device_mode_input_create (hp_change_device_mode_str);
if (!input) {
operation_shutdown (FALSE);
return;
}
- qmi_client_dms_change_device_download_mode (ctx->client,
- input,
- 10,
- ctx->cancellable,
- (GAsyncReadyCallback)change_device_download_mode_ready,
- NULL);
- qmi_message_dms_change_device_download_mode_input_unref (input);
+ qmi_client_dms_hp_change_device_mode (ctx->client,
+ input,
+ 10,
+ ctx->cancellable,
+ (GAsyncReadyCallback)hp_change_device_mode_ready,
+ NULL);
+ qmi_message_dms_hp_change_device_mode_input_unref (input);
return;
}
diff --git a/src/qmicli/qmicli-helpers.c b/src/qmicli/qmicli-helpers.c
index aaea118..50ad263 100644
--- a/src/qmicli/qmicli-helpers.c
+++ b/src/qmicli/qmicli-helpers.c
@@ -624,6 +624,27 @@ qmicli_read_boot_image_download_mode_from_string (const gchar *str,
}
gboolean
+qmicli_read_hp_device_mode_from_string (const gchar *str,
+ QmiDmsHpDeviceMode *out)
+{
+ GType type;
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+
+ type = qmi_dms_hp_device_mode_get_type ();
+ enum_class = G_ENUM_CLASS (g_type_class_ref (type));
+ enum_value = g_enum_get_value_by_nick (enum_class, str);
+
+ if (enum_value)
+ *out = (QmiDmsBootImageDownloadMode)enum_value->value;
+ else
+ g_printerr ("error: invalid HP device mode value given: '%s'\n", str);
+
+ g_type_class_unref (enum_class);
+ return !!enum_value;
+}
+
+gboolean
qmicli_read_uint_from_string (const gchar *str,
guint *out)
{
diff --git a/src/qmicli/qmicli-helpers.h b/src/qmicli/qmicli-helpers.h
index 9a55e1c..bc849a7 100644
--- a/src/qmicli/qmicli-helpers.h
+++ b/src/qmicli/qmicli-helpers.h
@@ -67,6 +67,8 @@ gboolean qmicli_read_authentication_from_string (const gchar *str,
QmiWdsAuthentication *out);
gboolean qmicli_read_boot_image_download_mode_from_string (const gchar *str,
QmiDmsBootImageDownloadMode *out);
+gboolean qmicli_read_hp_device_mode_from_string (const gchar *str,
+ QmiDmsHpDeviceMode *out);
gboolean qmicli_read_non_empty_string (const gchar *str,
const gchar *description,