[PATCH] broadband-modem: report signal quality as 0 when no service/unknown/etc
Aleksander Morgado
aleksander at lanedo.com
Wed Oct 23 09:29:58 PDT 2013
On 10/23/2013 06:26 PM, Dan Williams wrote:
> Instead of using the NO_NETWORK error, which is only ever read
> internally by ModemManager and not very useful when reading quality,
> just report signal quality as zero. Before MM 1.0, the signal quality
> could be explicitly requested by clients, so the NO_NETWORK error was of
> some use, but now that the quality is updated automatically by MM and is
> a property instead of a D-Bus method call, the error is pointless.
>
> ---
Makes total sense, yes. +1 from me.
> diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
> index 32fa672..9d5a2b0 100644
> --- a/src/mm-broadband-modem.c
> +++ b/src/mm-broadband-modem.c
> @@ -1739,27 +1739,24 @@ signal_quality_csq_ready (MMBroadbandModem *self,
> if (result_str) {
> /* Got valid reply */
> int quality;
> int ber;
>
> result_str = mm_strip_tag (result_str, "+CSQ:");
> if (sscanf (result_str, "%d, %d", &quality, &ber)) {
> - /* 99 means unknown */
> if (quality == 99) {
> - g_simple_async_result_take_error (
> - ctx->result,
> - mm_mobile_equipment_error_for_code (MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK));
> + /* 99 means unknown, no service, etc */
> + quality = 0;
> } else {
> /* Normalize the quality */
> quality = CLAMP (quality, 0, 31) * 100 / 31;
> - g_simple_async_result_set_op_res_gpointer (ctx->result,
> - GUINT_TO_POINTER (quality),
> - NULL);
> }
> -
> + g_simple_async_result_set_op_res_gpointer (ctx->result,
> + GUINT_TO_POINTER (quality),
> + NULL);
> signal_quality_context_complete_and_free (ctx);
> return;
> }
> }
>
> g_simple_async_result_set_error (ctx->result,
> MM_CORE_ERROR,
>
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
>
--
Aleksander
More information about the ModemManager-devel
mailing list