diff options
author | Martin Bouchet <tincho5588@gmail.com> | 2017-09-23 05:23:52 -0300 |
---|---|---|
committer | Christopher N. Hesse <raymanfx@gmail.com> | 2018-01-21 13:27:52 +0100 |
commit | db968d4efd4284de663f1e077011e3242f3fdc97 (patch) | |
tree | c82b4b511153ef1a6aa5ba6ab2e700405654e5d7 /ril | |
parent | c3c6ceeaada66f04298e27c8e95f69898f0555fb (diff) | |
download | android_hardware_samsung-db968d4efd4284de663f1e077011e3242f3fdc97.tar.gz android_hardware_samsung-db968d4efd4284de663f1e077011e3242f3fdc97.tar.bz2 android_hardware_samsung-db968d4efd4284de663f1e077011e3242f3fdc97.zip |
libril: port samsung changes to signalStrength
Change-Id: I39c1f5dcb44bcd0cf265243276d7649a9c2fdc8c
Diffstat (limited to 'ril')
-rw-r--r-- | ril/libril/ril_service.cpp | 184 |
1 files changed, 172 insertions, 12 deletions
diff --git a/ril/libril/ril_service.cpp b/ril/libril/ril_service.cpp index f6d4a10..6978be4 100644 --- a/ril/libril/ril_service.cpp +++ b/ril/libril/ril_service.cpp @@ -6696,12 +6696,52 @@ int radio::nitzTimeReceivedInd(int slotId, void convertRilSignalStrengthToHalV5(void *response, size_t responseLen, SignalStrength& signalStrength) { RIL_SignalStrength_v5 *rilSignalStrength = (RIL_SignalStrength_v5 *) response; + int gsmSignalStrength; + int cdmaDbm; + int evdoDbm; - signalStrength.gw.signalStrength = rilSignalStrength->GW_SignalStrength.signalStrength; + gsmSignalStrength = rilSignalStrength->GW_SignalStrength.signalStrength & 0xFF; + +#ifdef MODEM_TYPE_XMM6260 + if (gsmSignalStrength < 0 || + (gsmSignalStrength > 31 && rilSignalStrength->GW_SignalStrength.signalStrength != 99)) { + gsmSignalStrength = rilSignalStrength->CDMA_SignalStrength.dbm; + } +#else + if (gsmSignalStrength < 0) { + gsmSignalStrength = 99; + } else if (gsmSignalStrength > 31 && gsmSignalStrength != 99) { + gsmSignalStrength = 31; + } +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm & 0xFF; + if (cdmaDbm < 0) { + cdmaDbm = 99; + } else if (cdmaDbm > 31 && cdmaDbm != 99) { + cdmaDbm = 31; + } +#else + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm; +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm & 0xFF; + if (evdoDbm < 0) { + evdoDbm = 99; + } else if (evdoDbm > 31 && evdoDbm != 99) { + evdoDbm = 31; + } +#else + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm; +#endif + + signalStrength.gw.signalStrength = gsmSignalStrength; signalStrength.gw.bitErrorRate = rilSignalStrength->GW_SignalStrength.bitErrorRate; - signalStrength.cdma.dbm = rilSignalStrength->CDMA_SignalStrength.dbm; + signalStrength.cdma.dbm = cdmaDbm; signalStrength.cdma.ecio = rilSignalStrength->CDMA_SignalStrength.ecio; - signalStrength.evdo.dbm = rilSignalStrength->EVDO_SignalStrength.dbm; + signalStrength.evdo.dbm = evdoDbm; signalStrength.evdo.ecio = rilSignalStrength->EVDO_SignalStrength.ecio; signalStrength.evdo.signalNoiseRatio = rilSignalStrength->EVDO_SignalStrength.signalNoiseRatio; @@ -6717,6 +6757,46 @@ void convertRilSignalStrengthToHalV5(void *response, size_t responseLen, void convertRilSignalStrengthToHalV6(void *response, size_t responseLen, SignalStrength& signalStrength) { RIL_SignalStrength_v6 *rilSignalStrength = (RIL_SignalStrength_v6 *) response; + int gsmSignalStrength; + int cdmaDbm; + int evdoDbm; + + gsmSignalStrength = rilSignalStrength->GW_SignalStrength.signalStrength & 0xFF; + +#ifdef MODEM_TYPE_XMM6260 + if (gsmSignalStrength < 0 || + (gsmSignalStrength > 31 && rilSignalStrength->GW_SignalStrength.signalStrength != 99)) { + gsmSignalStrength = rilSignalStrength->CDMA_SignalStrength.dbm; + } +#else + if (gsmSignalStrength < 0) { + gsmSignalStrength = 99; + } else if (gsmSignalStrength > 31 && gsmSignalStrength != 99) { + gsmSignalStrength = 31; + } +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm & 0xFF; + if (cdmaDbm < 0) { + cdmaDbm = 99; + } else if (cdmaDbm > 31 && cdmaDbm != 99) { + cdmaDbm = 31; + } +#else + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm; +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm & 0xFF; + if (evdoDbm < 0) { + evdoDbm = 99; + } else if (evdoDbm > 31 && evdoDbm != 99) { + evdoDbm = 31; + } +#else + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm; +#endif // Fixup LTE for backwards compatibility // signalStrength: -1 -> 99 @@ -6740,11 +6820,11 @@ void convertRilSignalStrengthToHalV6(void *response, size_t responseLen, rilSignalStrength->LTE_SignalStrength.cqi = INT_MAX; } - signalStrength.gw.signalStrength = rilSignalStrength->GW_SignalStrength.signalStrength; + signalStrength.gw.signalStrength = gsmSignalStrength; signalStrength.gw.bitErrorRate = rilSignalStrength->GW_SignalStrength.bitErrorRate; - signalStrength.cdma.dbm = rilSignalStrength->CDMA_SignalStrength.dbm; + signalStrength.cdma.dbm = cdmaDbm; signalStrength.cdma.ecio = rilSignalStrength->CDMA_SignalStrength.ecio; - signalStrength.evdo.dbm = rilSignalStrength->EVDO_SignalStrength.dbm; + signalStrength.evdo.dbm = evdoDbm; signalStrength.evdo.ecio = rilSignalStrength->EVDO_SignalStrength.ecio; signalStrength.evdo.signalNoiseRatio = rilSignalStrength->EVDO_SignalStrength.signalNoiseRatio; @@ -6760,6 +6840,46 @@ void convertRilSignalStrengthToHalV6(void *response, size_t responseLen, void convertRilSignalStrengthToHalV8(void *response, size_t responseLen, SignalStrength& signalStrength) { RIL_SignalStrength_v8 *rilSignalStrength = (RIL_SignalStrength_v8 *) response; + int gsmSignalStrength; + int cdmaDbm; + int evdoDbm; + + gsmSignalStrength = rilSignalStrength->GW_SignalStrength.signalStrength & 0xFF; + +#ifdef MODEM_TYPE_XMM6260 + if (gsmSignalStrength < 0 || + (gsmSignalStrength > 31 && rilSignalStrength->GW_SignalStrength.signalStrength != 99)) { + gsmSignalStrength = rilSignalStrength->CDMA_SignalStrength.dbm; + } +#else + if (gsmSignalStrength < 0) { + gsmSignalStrength = 99; + } else if (gsmSignalStrength > 31 && gsmSignalStrength != 99) { + gsmSignalStrength = 31; + } +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm & 0xFF; + if (cdmaDbm < 0) { + cdmaDbm = 99; + } else if (cdmaDbm > 31 && cdmaDbm != 99) { + cdmaDbm = 31; + } +#else + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm; +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm & 0xFF; + if (evdoDbm < 0) { + evdoDbm = 99; + } else if (evdoDbm > 31 && evdoDbm != 99) { + evdoDbm = 31; + } +#else + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm; +#endif // Fixup LTE for backwards compatibility // signalStrength: -1 -> 99 @@ -6783,11 +6903,11 @@ void convertRilSignalStrengthToHalV8(void *response, size_t responseLen, rilSignalStrength->LTE_SignalStrength.cqi = INT_MAX; } - signalStrength.gw.signalStrength = rilSignalStrength->GW_SignalStrength.signalStrength; + signalStrength.gw.signalStrength = gsmSignalStrength; signalStrength.gw.bitErrorRate = rilSignalStrength->GW_SignalStrength.bitErrorRate; - signalStrength.cdma.dbm = rilSignalStrength->CDMA_SignalStrength.dbm; + signalStrength.cdma.dbm = cdmaDbm; signalStrength.cdma.ecio = rilSignalStrength->CDMA_SignalStrength.ecio; - signalStrength.evdo.dbm = rilSignalStrength->EVDO_SignalStrength.dbm; + signalStrength.evdo.dbm = evdoDbm; signalStrength.evdo.ecio = rilSignalStrength->EVDO_SignalStrength.ecio; signalStrength.evdo.signalNoiseRatio = rilSignalStrength->EVDO_SignalStrength.signalNoiseRatio; @@ -6803,6 +6923,46 @@ void convertRilSignalStrengthToHalV8(void *response, size_t responseLen, void convertRilSignalStrengthToHalV10(void *response, size_t responseLen, SignalStrength& signalStrength) { RIL_SignalStrength_v10 *rilSignalStrength = (RIL_SignalStrength_v10 *) response; + int gsmSignalStrength; + int cdmaDbm; + int evdoDbm; + + gsmSignalStrength = rilSignalStrength->GW_SignalStrength.signalStrength & 0xFF; + +#ifdef MODEM_TYPE_XMM6260 + if (gsmSignalStrength < 0 || + (gsmSignalStrength > 31 && rilSignalStrength->GW_SignalStrength.signalStrength != 99)) { + gsmSignalStrength = rilSignalStrength->CDMA_SignalStrength.dbm; + } +#else + if (gsmSignalStrength < 0) { + gsmSignalStrength = 99; + } else if (gsmSignalStrength > 31 && gsmSignalStrength != 99) { + gsmSignalStrength = 31; + } +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm & 0xFF; + if (cdmaDbm < 0) { + cdmaDbm = 99; + } else if (cdmaDbm > 31 && cdmaDbm != 99) { + cdmaDbm = 31; + } +#else + cdmaDbm = rilSignalStrength->CDMA_SignalStrength.dbm; +#endif + +#if defined(MODEM_TYPE_XMM6262) || defined(SAMSUNG_NEXT_GEN_MODEM) + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm & 0xFF; + if (evdoDbm < 0) { + evdoDbm = 99; + } else if (evdoDbm > 31 && evdoDbm != 99) { + evdoDbm = 31; + } +#else + evdoDbm = rilSignalStrength->EVDO_SignalStrength.dbm; +#endif // Fixup LTE for backwards compatibility // signalStrength: -1 -> 99 @@ -6826,11 +6986,11 @@ void convertRilSignalStrengthToHalV10(void *response, size_t responseLen, rilSignalStrength->LTE_SignalStrength.cqi = INT_MAX; } - signalStrength.gw.signalStrength = rilSignalStrength->GW_SignalStrength.signalStrength; + signalStrength.gw.signalStrength = gsmSignalStrength; signalStrength.gw.bitErrorRate = rilSignalStrength->GW_SignalStrength.bitErrorRate; - signalStrength.cdma.dbm = rilSignalStrength->CDMA_SignalStrength.dbm; + signalStrength.cdma.dbm = cdmaDbm; signalStrength.cdma.ecio = rilSignalStrength->CDMA_SignalStrength.ecio; - signalStrength.evdo.dbm = rilSignalStrength->EVDO_SignalStrength.dbm; + signalStrength.evdo.dbm = evdoDbm; signalStrength.evdo.ecio = rilSignalStrength->EVDO_SignalStrength.ecio; signalStrength.evdo.signalNoiseRatio = rilSignalStrength->EVDO_SignalStrength.signalNoiseRatio; |