diff options
author | Ben Chan <benchan@chromium.org> | 2017-09-17 19:45:27 -0700 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-09-20 09:56:23 -0700 |
commit | daa59aeb4ca4a3c55307eeca894f2feefed1e7c1 (patch) | |
tree | 1d710b6b2484247e8d06ceeae6f3f70630edca3f /src | |
parent | e32510418a5d3a10d87d6ae49cd4e1ec9b7b0e38 (diff) |
iface-modem: add hook to load hardware revision
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-iface-modem.c | 18 | ||||
-rw-r--r-- | src/mm-iface-modem.h | 8 |
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, |