libril: Add support for ST-Ericsson Thor M7450 modems
authorChristopher N. Hesse <raymanfx@gmail.com>
Fri, 26 Jun 2015 12:53:56 +0000 (14:53 +0200)
committerChristopher N. Hesse <raymanfx@gmail.com>
Fri, 26 Jun 2015 13:01:52 +0000 (15:01 +0200)
The M7450 modem used in the Galaxy Note 4 (N910C variant) uses a libril
implementation similar to the one employed for Intel XMM* modems by Samsung.

This probably needs future adjustments, but so far fixes basic call functions
and signal strength is displayed correctly.

Change-Id: I2d070102ad11746902527da3c2c7f49485c7d7f1

ril/Android.mk
ril/libril/Android.mk
ril/libril/ril.cpp

index 2aa2119b0dcb13654c93034356db192b1584257c..8008ace1b1e1d1ca21d3bce84f365f495714ac31 100644 (file)
@@ -20,7 +20,7 @@ ifeq ($(BOARD_VENDOR),samsung)
 
 # libril
 ifeq ($(BOARD_PROVIDES_LIBRIL),true)
-ifneq ($(filter xmm6260 xmm6262 xmm6360 xmm7260,$(BOARD_MODEM_TYPE)),)
+ifneq ($(filter xmm6260 xmm6262 xmm6360 xmm7260 m7450,$(BOARD_MODEM_TYPE)),)
 include $(RIL_PATH)/libril/Android.mk
 endif
 endif
index 49f718c849a2d0278b82bd8acdcb91957132ddae..71278b03890f816f4aab96204369977c5b91a4e5 100644 (file)
@@ -26,6 +26,9 @@ endif
 ifeq ($(BOARD_MODEM_TYPE),xmm7260)
 LOCAL_CFLAGS := -DMODEM_TYPE_XMM7260
 endif
+ifeq ($(BOARD_MODEM_TYPE),m7450)
+LOCAL_CFLAGS := -DMODEM_TYPE_M7450
+endif
 
 LOCAL_MODULE:= libril
 
index c7da4daa8b6889aa29add498c7db930ac4dcad54..890e73862a1d29e9e6ede6b179585d7f4720e33d 100644 (file)
@@ -791,7 +791,7 @@ dispatchDial (Parcel &p, RequestInfo *pRI) {
     int32_t sizeOfDial;
     int32_t t;
     int32_t uusPresent;
-#ifdef MODEM_TYPE_XMM7260
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
     char *csv;
 #endif
     status_t status;
@@ -807,7 +807,7 @@ dispatchDial (Parcel &p, RequestInfo *pRI) {
         goto invalid;
     }
 
-#ifdef MODEM_TYPE_XMM7260
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
     /* CallDetails.call_type */
     status = p.readInt32(&t);
     if (status != NO_ERROR) {
@@ -837,7 +837,7 @@ dispatchDial (Parcel &p, RequestInfo *pRI) {
         }
 
         if (uusPresent == 0) {
-#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260)
+#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
             dial.uusInfo = NULL;
 #elif defined(MODEM_TYPE_XMM6260)
             /* Samsung hack */
@@ -2368,7 +2368,7 @@ static int responseCallList(Parcel &p, void *response, size_t responselen) {
         p.writeInt32(p_cur->als);
         p.writeInt32(p_cur->isVoice);
 
-#ifdef MODEM_TYPE_XMM7260
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
         p.writeInt32(p_cur->isVideo);
 
         /* Pass CallDetails */
@@ -2405,7 +2405,7 @@ static int responseCallList(Parcel &p, void *response, size_t responselen) {
             p_cur->als,
             (p_cur->isVoice)?"voc":"nonvoc",
             (p_cur->isVoicePrivacy)?"evp":"noevp");
-#ifdef MODEM_TYPE_XMM7260
+#if defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
         appendPrintBuf("%s,%s,",
             printBuf,
             (p_cur->isVideo) ? "vid" : "novid");
@@ -3008,7 +3008,7 @@ static int responseRilSignalStrength(Parcel &p,
 
         p.writeInt32(p_cur->GW_SignalStrength.bitErrorRate);
 
-#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260)
+#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
         cdmaDbm = p_cur->CDMA_SignalStrength.dbm & 0xFF;
         if (cdmaDbm < 0) {
             cdmaDbm = 99;
@@ -3021,7 +3021,7 @@ static int responseRilSignalStrength(Parcel &p,
         p.writeInt32(cdmaDbm);
         p.writeInt32(p_cur->CDMA_SignalStrength.ecio);
 
-#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260)
+#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) || defined(MODEM_TYPE_M7450)
         evdoDbm = p_cur->EVDO_SignalStrength.dbm & 0xFF;
         if (evdoDbm < 0) {
             evdoDbm = 99;