Add default implementation of enableModem for cuttlefish
Bug: 126589649
Test: build
Change-Id: I801c83277251ddc6e11532270a5de1edd5234979
diff --git a/guest/hals/ril/cuttlefish_ril.cpp b/guest/hals/ril/cuttlefish_ril.cpp
index ab02039..1a8aad3 100644
--- a/guest/hals/ril/cuttlefish_ril.cpp
+++ b/guest/hals/ril/cuttlefish_ril.cpp
@@ -2338,6 +2338,12 @@
return;
}
+static void request_enable_modem(int /*request*/, RIL_Token t) {
+ ALOGV("Enabling modem - void");
+ gce_ril_env->OnRequestComplete(t, RIL_E_SUCCESS, NULL, 0);
+ return;
+}
+
static void request_set_system_selection_channels(int /*request*/, RIL_Token t) {
ALOGV("request_set_system_selection_channels - void");
gce_ril_env->OnRequestComplete(t, RIL_E_SUCCESS, NULL, 0);
@@ -2589,6 +2595,9 @@
case RIL_REQUEST_GET_MODEM_STACK_STATUS:
request_get_modem_stack_status(request, t);
break;
+ case RIL_REQUEST_ENABLE_MODEM:
+ request_enable_modem(request, t);
+ break;
case RIL_REQUEST_EMERGENCY_DIAL:
request_emergency_dial(request, data, datalen, t);
break;
diff --git a/guest/hals/ril/libril/ril.h b/guest/hals/ril/libril/ril.h
index 9bad8e3..33b8dad 100644
--- a/guest/hals/ril/libril/ril.h
+++ b/guest/hals/ril/libril/ril.h
@@ -91,6 +91,7 @@
* RIL_REQUEST_STOP_NETWORK_SCAN
* RIL_UNSOL_NETWORK_SCAN_RESULT
* RIL_REQUEST_GET_MODEM_STACK_STATUS
+ * RIL_REQUEST_ENABLE_MODEM
* RIL_REQUEST_EMERGENCY_DIAL
* RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS
*/
@@ -6477,6 +6478,19 @@
*/
#define RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS 151
+/**
+ * RIL_REQUEST_ENABLE_MODEM
+ *
+ * Enable a logical modem
+ *
+ * Valid errors:
+ * SUCCESS
+ * RADIO_NOT_AVAILABLE
+ * MODEM_ERR
+ *
+ */
+#define RIL_REQUEST_ENABLE_MODEM 152
+
/***********************************************************************/
/**
diff --git a/guest/hals/ril/libril/ril_commands.h b/guest/hals/ril/libril/ril_commands.h
index e736356..6207165 100644
--- a/guest/hals/ril/libril/ril_commands.h
+++ b/guest/hals/ril/libril/ril_commands.h
@@ -166,3 +166,4 @@
{RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE_BITMAP, radio_1_4::setPreferredNetworkTypeBitmapResponse},
{RIL_REQUEST_EMERGENCY_DIAL, radio_1_4::emergencyDialResponse},
{RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS, radio_1_4::setSystemSelectionChannelsResponse},
+ {RIL_REQUEST_ENABLE_MODEM, radio_1_4::enableModemResponse},
diff --git a/guest/hals/ril/libril/ril_service.cpp b/guest/hals/ril/libril/ril_service.cpp
index f4594b3..571aa2a 100755
--- a/guest/hals/ril/libril/ril_service.cpp
+++ b/guest/hals/ril/libril/ril_service.cpp
@@ -3165,11 +3165,11 @@
return Void();
}
-Return<void> RadioImpl_1_4::enableModem(int32_t /* serial */, bool /* on */) {
- // TODO implement
+Return<void> RadioImpl_1_4::enableModem(int32_t serial, bool /* on */) {
#if VDBG
- RLOGE("[%04d]< %s", serial, "Method is not implemented");
+ RLOGE("enableModem: serial = %d, enable = %s", serial, on);
#endif
+ dispatchVoid(serial, mSlotId, RIL_REQUEST_ENABLE_MODEM);
return Void();
}
@@ -7344,6 +7344,26 @@
return 0;
}
+int radio_1_4::enableModemResponse(int slotId, int responseType, int serial, RIL_Errno e,
+ void *response, size_t responseLen) {
+#if VDBG
+ RLOGD("%s(): %d", __FUNCTION__, serial);
+#endif
+ RadioResponseInfo responseInfo = {};
+ populateResponseInfo(responseInfo, serial, responseType, e);
+
+ // If we don't have a radio service, there's nothing we can do
+ if (radioService[slotId]->mRadioResponseV1_3 == NULL) {
+ RLOGE("%s: radioService[%d]->mRadioResponseV1_3 == NULL", __FUNCTION__, slotId);
+ return 0;
+ }
+
+ Return<void> retStatus =
+ radioService[slotId]->mRadioResponseV1_3->enableModemResponse(responseInfo);
+ radioService[slotId]->checkReturnStatus(retStatus);
+ return 0;
+}
+
int radio_1_4::sendRequestRawResponse(int slotId,
int responseType, int serial, RIL_Errno e,
void *response, size_t responseLen) {
diff --git a/guest/hals/ril/libril/ril_service.h b/guest/hals/ril/libril/ril_service.h
index 13891e3..1cb2339 100644
--- a/guest/hals/ril/libril/ril_service.h
+++ b/guest/hals/ril/libril/ril_service.h
@@ -537,6 +537,9 @@
int responseType, int serial, RIL_Errno e,
void *response, size_t responselen);
+int enableModemResponse(int slotId, int responseType, int serial, RIL_Errno e,
+ void *response, size_t responselen);
+
int setAllowedCarriersResponse(int slotId,
int responseType, int serial, RIL_Errno e,
void *response, size_t responselen);