mbim: Set the subscribe list

Some devices don't seem to enable incoming SMS notifications.  So set
the notifications we're interested in at modem startup.
This commit is contained in:
Denis Kenzior 2017-11-08 17:20:41 -06:00
parent 8bf5a3e353
commit 8b98126da5
1 changed files with 41 additions and 5 deletions

View File

@ -155,6 +155,28 @@ error:
mbim_device_shutdown(md->device);
}
static void mbim_device_subscribe_list_set_cb(struct mbim_message *message,
void *user)
{
struct ofono_modem *modem = user;
struct mbim_data *md = ofono_modem_get_data(modem);
if (mbim_message_get_error(message) != 0)
goto error;
message = mbim_message_new(mbim_uuid_basic_connect,
MBIM_CID_RADIO_STATE,
MBIM_COMMAND_TYPE_SET);
mbim_message_set_arguments(message, "u", 0);
if (mbim_device_send(md->device, 0, message,
mbim_radio_state_init_cb, modem, NULL))
return;
error:
mbim_device_shutdown(md->device);
}
static void mbim_device_caps_info_cb(struct mbim_message *message, void *user)
{
struct ofono_modem *modem = user;
@ -198,13 +220,27 @@ static void mbim_device_caps_info_cb(struct mbim_message *message, void *user)
l_free(hardware_info);
message = mbim_message_new(mbim_uuid_basic_connect,
MBIM_CID_RADIO_STATE,
MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST,
MBIM_COMMAND_TYPE_SET);
mbim_message_set_arguments(message, "u", 0);
mbim_device_send(md->device, 0, message,
mbim_radio_state_init_cb, modem, NULL);
return;
mbim_message_set_arguments(message, "av", 2,
"16yuuuuuuu",
mbim_uuid_basic_connect, 6,
MBIM_CID_SUBSCRIBER_READY_STATUS,
MBIM_CID_RADIO_STATE,
MBIM_CID_REGISTER_STATE,
MBIM_CID_PACKET_SERVICE,
MBIM_CID_SIGNAL_STATE,
MBIM_CID_CONNECT,
"16yuuuu", mbim_uuid_sms, 3,
MBIM_CID_SMS_CONFIGURATION,
MBIM_CID_SMS_READ,
MBIM_CID_SMS_MESSAGE_STORE_STATUS);
if (mbim_device_send(md->device, 0, message,
mbim_device_subscribe_list_set_cb,
modem, NULL))
return;
error:
mbim_device_shutdown(md->device);