summaryrefslogtreecommitdiffstats
path: root/plugins/n900.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/n900.c')
-rw-r--r--plugins/n900.c9
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);