diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-06-13 08:10:13 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-06-13 08:10:13 +0200 |
commit | 66c50b6a72bee8a56e6a5577874c197ff35b538e (patch) | |
tree | 7bd59b7523745acc83c3e6673d549b7b906aac58 | |
parent | 6a26431f585fe569ec830868f28d8da0f2d43705 (diff) | |
download | ofono-66c50b6a72bee8a56e6a5577874c197ff35b538e.tar.bz2 |
Add nasty quirk to allow HSO devices to read network code length
The AT+CRSM=192 commands are failing on HSO devices and thus it might
be needed to return its details from a predefined database. Start with
testing this for reading the network code length.
-rw-r--r-- | drivers/atmodem/sim.c | 9 | ||||
-rw-r--r-- | plugins/hso.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index 32c40a5c..766c60b1 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -110,6 +110,15 @@ static void at_sim_read_info(struct ofono_sim *sim, int fileid, struct cb_data *cbd = cb_data_new(cb, data); char buf[64]; + if (sd->vendor == OFONO_VENDOR_OPTION_HSO) { + unsigned char access[3] = { 0x00, 0x00, 0x00 }; + + if (fileid == SIM_EFAD_FILEID) { + CALLBACK_WITH_SUCCESS(cb, 4, 0, 0, access, data); + return; + } + } + if (!cbd) goto error; diff --git a/plugins/hso.c b/plugins/hso.c index 24a76b53..9e3b35af 100644 --- a/plugins/hso.c +++ b/plugins/hso.c @@ -221,7 +221,8 @@ static void hso_pre_sim(struct ofono_modem *modem) DBG("%p", modem); ofono_devinfo_create(modem, 0, "atmodem", data->control); - sim = ofono_sim_create(modem, 0, "atmodem", data->control); + sim = ofono_sim_create(modem, OFONO_VENDOR_OPTION_HSO, + "atmodem", data->control); if (sim) ofono_sim_inserted_notify(sim, TRUE); |