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;