From 25fd00588adf40436a8c0eb124258ea530c83266 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Tue, 15 Sep 2020 15:23:01 +0200 Subject: [PATCH] droid 4: add special handling required for voice calls and SIM Droid 4 modem is "special" (aka broken) so it seems to need a bit of error handling. --- drivers/atmodem/sim.c | 1 + drivers/atmodem/vendor.h | 1 + drivers/atmodem/voicecall.c | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index 6ab91655..50eda698 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -199,6 +199,7 @@ static void at_sim_read_info(struct ofono_sim *sim, int fileid, case OFONO_VENDOR_SPEEDUP: case OFONO_VENDOR_QUALCOMM_MSM: case OFONO_VENDOR_SIMCOM: + case OFONO_VENDOR_DROID: /* Maximum possible length */ len += sprintf(buf + len, ",0,0,255"); break; diff --git a/drivers/atmodem/vendor.h b/drivers/atmodem/vendor.h index 6bac7f89..82284e44 100644 --- a/drivers/atmodem/vendor.h +++ b/drivers/atmodem/vendor.h @@ -27,6 +27,7 @@ enum ofono_vendor { OFONO_VENDOR_MBM, OFONO_VENDOR_GOBI, OFONO_VENDOR_QUALCOMM_MSM, + OFONO_VENDOR_DROID, OFONO_VENDOR_OPTION_HSO, OFONO_VENDOR_ZTE, OFONO_VENDOR_HUAWEI, diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c index 65db0000..afd128fa 100644 --- a/drivers/atmodem/voicecall.c +++ b/drivers/atmodem/voicecall.c @@ -161,6 +161,11 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data) goto poll_again; } + if (vd->vendor == OFONO_VENDOR_DROID) { + poll_again = TRUE; + goto poll_again; + } + ofono_error("We are polling CLCC and received an error"); ofono_error("All bets are off for call management"); return;