diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2021-03-18 10:23:13 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-04-14 11:27:27 +0200 |
commit | 483f8f055986576834b34ff53c22b3f1e9e21bad (patch) | |
tree | c10b73d08161bb6c238a6831baea52645aed7712 | |
parent | c2114e50d570220a0d2fcf3b5b3b4695abcbadf3 (diff) |
port-qmi: new helper macro to check for supported QMAP values
-rw-r--r-- | src/mm-bearer-qmi.c | 3 | ||||
-rw-r--r-- | src/mm-port-qmi.c | 23 | ||||
-rw-r--r-- | src/mm-port-qmi.h | 4 |
3 files changed, 13 insertions, 17 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c index bb754248..eb7528fa 100644 --- a/src/mm-bearer-qmi.c +++ b/src/mm-bearer-qmi.c @@ -1561,8 +1561,7 @@ connect_context_step (GTask *task) /* if muxing has been enabled in the port, we need to create a new link * interface. */ - if (ctx->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5 || - ctx->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP) { + if (MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (ctx->dap)) { mm_port_qmi_setup_link (ctx->qmi, ctx->data, ctx->link_prefix_hint, diff --git a/src/mm-port-qmi.c b/src/mm-port-qmi.c index cae1ecee..bea301eb 100644 --- a/src/mm-port-qmi.c +++ b/src/mm-port-qmi.c @@ -652,8 +652,7 @@ mm_port_qmi_setup_link (MMPortQmi *self, return; } - if ((self->priv->dap != QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5) && - (self->priv->dap != QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) { + if (!MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (self->priv->dap)) { g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_WRONG_STATE, "Aggregation not enabled"); g_object_unref (task); return; @@ -751,8 +750,7 @@ mm_port_qmi_cleanup_link (MMPortQmi *self, return; } - if ((self->priv->dap != QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5) && - (self->priv->dap != QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) { + if (!MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (self->priv->dap)) { g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_WRONG_STATE, "Aggregation not enabled"); g_object_unref (task); return; @@ -1295,8 +1293,7 @@ setup_master_mtu (GTask *task) * aggregation size */ if (ctx->kernel_data_modes_requested & MM_PORT_QMI_KERNEL_DATA_MODE_MUX_QMIWWAN) { /* Load current max datagram size supported */ - if (ctx->wda_dl_dap_requested == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5 || - ctx->wda_dl_dap_requested == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP) + if (MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (ctx->wda_dl_dap_requested)) mtu = ctx->wda_dl_dap_max_size_current; /* If no max aggregation size was specified by the modem (e.g. if we requested QMAP @@ -1417,8 +1414,7 @@ setup_data_format_completed (GTask *task) /* if aggregation enabled we require link management supported; this covers the * case of old qmi_wwan drivers where add_mux/del_mux wasn't available yet */ - if (((ctx->wda_dl_dap_requested == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5) || - (ctx->wda_ul_dap_requested == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) && + if ((MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (ctx->wda_dl_dap_requested)) && (!(ctx->kernel_data_modes_current & (MM_PORT_QMI_KERNEL_DATA_MODE_MUX_RMNET | MM_PORT_QMI_KERNEL_DATA_MODE_MUX_QMIWWAN)))) { mm_obj_dbg (self, "cannot enable data aggregation: link management unsupported"); return FALSE; @@ -1463,8 +1459,7 @@ check_data_format_combination (GTask *task) if (!(ctx->kernel_data_modes_supported & combination->kernel_data_mode)) continue; - if (((combination->wda_dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5) || - (combination->wda_dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) && + if ((MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (combination->wda_dap)) && ((!ctx->wda_dap_supported) || (ctx->action != MM_PORT_QMI_SETUP_DATA_FORMAT_ACTION_SET_MULTIPLEX))) continue; @@ -1899,8 +1894,7 @@ mm_port_qmi_setup_data_format (MMPortQmi *self, if ((action == MM_PORT_QMI_SETUP_DATA_FORMAT_ACTION_SET_MULTIPLEX) && (self->priv->kernel_data_modes & (MM_PORT_QMI_KERNEL_DATA_MODE_MUX_RMNET | MM_PORT_QMI_KERNEL_DATA_MODE_MUX_QMIWWAN)) && - (self->priv->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5 || - self->priv->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) { + MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (self->priv->dap)) { mm_obj_dbg (self, "multiplex support already available when setting up data format"); g_task_return_boolean (task, TRUE); g_object_unref (task); @@ -1909,7 +1903,7 @@ mm_port_qmi_setup_data_format (MMPortQmi *self, if ((action == MM_PORT_QMI_SETUP_DATA_FORMAT_ACTION_SET_DEFAULT) && (!(self->priv->kernel_data_modes & (MM_PORT_QMI_KERNEL_DATA_MODE_MUX_RMNET | MM_PORT_QMI_KERNEL_DATA_MODE_MUX_QMIWWAN))) && - (self->priv->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_DISABLED)) { + !MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (self->priv->dap)) { mm_obj_dbg (self, "multiplex support already disabled when setting up data format"); g_task_return_boolean (task, TRUE); g_object_unref (task); @@ -1919,8 +1913,7 @@ mm_port_qmi_setup_data_format (MMPortQmi *self, /* support switching from multiplex to non-multiplex, but only if there are no active * links allocated */ if ((action == MM_PORT_QMI_SETUP_DATA_FORMAT_ACTION_SET_DEFAULT) && - (self->priv->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5 || - self->priv->dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP)) { + MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP (self->priv->dap)) { guint n_links_setup; n_links_setup = count_links_setup (self, data); diff --git a/src/mm-port-qmi.h b/src/mm-port-qmi.h index d5e4f8cf..247bf448 100644 --- a/src/mm-port-qmi.h +++ b/src/mm-port-qmi.h @@ -36,6 +36,10 @@ typedef enum { /*< underscore_name=mm_port_qmi_kernel_data_mode >*/ MM_PORT_QMI_KERNEL_DATA_MODE_MUX_QMIWWAN = 1 << 3, } MMPortQmiKernelDataMode; +#define MM_PORT_QMI_DAP_IS_SUPPORTED_QMAP(dap) \ + (dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5 || \ + dap == QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP) + #define MM_TYPE_PORT_QMI (mm_port_qmi_get_type ()) #define MM_PORT_QMI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PORT_QMI, MMPortQmi)) #define MM_PORT_QMI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_PORT_QMI, MMPortQmiClass)) |