aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Chan <benchan@chromium.org>2017-09-17 19:45:27 -0700
committerAleksander Morgado <aleksander@aleksander.es>2017-09-20 09:56:23 -0700
commitdaa59aeb4ca4a3c55307eeca894f2feefed1e7c1 (patch)
tree1d710b6b2484247e8d06ceeae6f3f70630edca3f
parente32510418a5d3a10d87d6ae49cd4e1ec9b7b0e38 (diff)
iface-modem: add hook to load hardware revision
-rw-r--r--src/mm-iface-modem.c18
-rw-r--r--src/mm-iface-modem.h8
2 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index cc4d6991..92cd00a1 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -3831,6 +3831,7 @@ typedef enum {
INITIALIZATION_STEP_MANUFACTURER,
INITIALIZATION_STEP_MODEL,
INITIALIZATION_STEP_REVISION,
+ INITIALIZATION_STEP_HARDWARE_REVISION,
INITIALIZATION_STEP_EQUIPMENT_ID,
INITIALIZATION_STEP_DEVICE_ID,
INITIALIZATION_STEP_SUPPORTED_MODES,
@@ -4050,6 +4051,7 @@ load_supported_capabilities_ready (MMIfaceModem *self,
STR_REPLY_READY_FN (manufacturer, "Manufacturer")
STR_REPLY_READY_FN (model, "Model")
STR_REPLY_READY_FN (revision, "Revision")
+STR_REPLY_READY_FN (hardware_revision, "HardwareRevision")
STR_REPLY_READY_FN (equipment_identifier, "Equipment Identifier")
STR_REPLY_READY_FN (device_identifier, "Device Identifier")
@@ -4587,6 +4589,22 @@ interface_initialization_step (GTask *task)
/* Fall down to next step */
ctx->step++;
+ case INITIALIZATION_STEP_HARDWARE_REVISION:
+ /* HardwareRevision is meant to be loaded only once during the whole
+ * lifetime of the modem. Therefore, if we already have them loaded,
+ * don't try to load them again. */
+ if (mm_gdbus_modem_get_hardware_revision (ctx->skeleton) == NULL &&
+ MM_IFACE_MODEM_GET_INTERFACE (self)->load_hardware_revision &&
+ MM_IFACE_MODEM_GET_INTERFACE (self)->load_hardware_revision_finish) {
+ MM_IFACE_MODEM_GET_INTERFACE (self)->load_hardware_revision (
+ self,
+ (GAsyncReadyCallback)load_hardware_revision_ready,
+ task);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
case INITIALIZATION_STEP_EQUIPMENT_ID:
/* Equipment ID is meant to be loaded only once during the whole
* lifetime of the modem. Therefore, if we already have them loaded,
diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h
index 1a154b48..d25fbd49 100644
--- a/src/mm-iface-modem.h
+++ b/src/mm-iface-modem.h
@@ -84,6 +84,14 @@ struct _MMIfaceModem {
GAsyncResult *res,
GError **error);
+ /* Loading of the HardwareRevision property */
+ void (*load_hardware_revision) (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gchar * (*load_hardware_revision_finish) (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error);
+
/* Loading of the EquipmentIdentifier property */
void (*load_equipment_identifier) (MMIfaceModem *self,
GAsyncReadyCallback callback,