broadband-modem-qmi: Report FIXED_DIALING lock correctly

Querying facility locks should return a FIXED_DIALING lock if PIN2 lock
is enabled.
This commit is contained in:
Pavan Holla
2020-09-30 20:44:48 +00:00
committed by Aleksander Morgado
parent 74ab15d323
commit bab0f44e74

View File

@@ -2001,6 +2001,7 @@ get_sim_lock_status_via_pin_status_ready (QmiClientDms *client,
QmiDmsUimPinStatus current_status;
GError *error;
gboolean pin1_enabled;
gboolean pin2_enabled;
self = g_task_get_source_object (task);
ctx = g_task_get_task_data (task);
@@ -2030,6 +2031,21 @@ get_sim_lock_status_via_pin_status_ready (QmiClientDms *client,
return;
}
if (qmi_message_dms_uim_get_pin_status_output_get_pin2_status (
output,
&current_status,
NULL, /* verify_retries_left */
NULL, /* unblock_retries_left */
&error)) {
pin2_enabled = mm_pin_enabled_from_qmi_uim_pin_status (current_status);
mm_obj_dbg (self, "PIN2 is reported %s", (pin2_enabled ? "enabled" : "disabled"));
} else {
qmi_message_dms_uim_get_pin_status_output_unref (output);
g_task_return_error (task, error);
g_object_unref (task);
return;
}
qmi_message_dms_uim_get_pin_status_output_unref (output);
if (pin1_enabled)
@@ -2037,6 +2053,11 @@ get_sim_lock_status_via_pin_status_ready (QmiClientDms *client,
else
ctx->locks &= ~(MM_MODEM_3GPP_FACILITY_SIM);
if (pin2_enabled)
ctx->locks |= (MM_MODEM_3GPP_FACILITY_FIXED_DIALING);
else
ctx->locks &= ~(MM_MODEM_3GPP_FACILITY_FIXED_DIALING);
/* No more facilities to query, all done */
g_task_return_int (task, ctx->locks);
g_object_unref (task);