diff options
author | Pavel Machek <pavel@ucw.cz> | 2020-09-15 15:23:01 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2020-09-15 10:17:55 -0500 |
commit | 25fd00588adf40436a8c0eb124258ea530c83266 (patch) | |
tree | b692b548b79dff44b1a0a18a1a80a043a5c4a535 | |
parent | 52091a1af02fa7151c2bb6b542e51068ce20c525 (diff) | |
download | ofono-25fd00588adf40436a8c0eb124258ea530c83266.tar.gz |
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.
-rw-r--r-- | drivers/atmodem/sim.c | 1 | ||||
-rw-r--r-- | drivers/atmodem/vendor.h | 1 | ||||
-rw-r--r-- | drivers/atmodem/voicecall.c | 5 |
3 files changed, 7 insertions, 0 deletions
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; |