diff options
Diffstat (limited to 'plugins/n900.c')
-rw-r--r-- | plugins/n900.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/n900.c b/plugins/n900.c index 0f2cb2cd..956a6fca 100644 --- a/plugins/n900.c +++ b/plugins/n900.c @@ -74,6 +74,7 @@ struct isi_data { int mtc_state; guint timeout; struct isi_cb_data *online_cbd; + enum rapu_type rapu_version; }; static void mtc_power_off(struct isi_data *isi); @@ -377,6 +378,9 @@ static int n900_probe(struct ofono_modem *modem) isi->ifname = ifname; isi->client = client; + isi->rapu_version = gpio_rapuyama_version(modem); + DBG("RAPUYAMA version: %d", isi->rapu_version); + ofono_modem_set_data(modem, isi); return 0; @@ -507,7 +511,10 @@ static void n900_post_online(struct ofono_modem *modem) ofono_netreg_create(modem, 0, "isimodem", isi->modem); ofono_sms_create(modem, 0, "isimodem", isi->modem); - ofono_cbs_create(modem, 0, "isimodem", isi->modem); + if (isi->rapu_version == RAPU_TYPE_1) { + /* requesting CBS crashes RAPUYAMA v2 modems */ + ofono_cbs_create(modem, 0, "isimodem", isi->modem); + } ofono_ussd_create(modem, 0, "isimodem", isi->modem); ofono_call_settings_create(modem, 0, "isimodem", isi->modem); ofono_call_barring_create(modem, 0, "isimodem", isi->modem); |