diff options
Diffstat (limited to 'ril/libril/ril.cpp')
-rw-r--r-- | ril/libril/ril.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ril/libril/ril.cpp b/ril/libril/ril.cpp index 1256e93..44e6b86 100644 --- a/ril/libril/ril.cpp +++ b/ril/libril/ril.cpp @@ -2979,15 +2979,19 @@ static int responseRilSignalStrength(Parcel &p, if (responselen >= sizeof (RIL_SignalStrength_v5)) { RIL_SignalStrength_v10 *p_cur = ((RIL_SignalStrength_v10 *) response); -#if defined(MODEM_TYPE_XMM6262) || defined(MODEM_TYPE_XMM7260) gsmSignalStrength = p_cur->GW_SignalStrength.signalStrength & 0xFF; + +#ifdef MODEM_TYPE_XMM6260 + if (gsmSignalStrength < 0 || + (gsmSignalStrength > 31 && p_cur->GW_SignalStrength.signalStrength != 99)) { + gsmSignalStrength = p_cur->CDMA_SignalStrength.dbm; + } +#else if (gsmSignalStrength < 0) { gsmSignalStrength = 99; } else if (gsmSignalStrength > 31 && gsmSignalStrength != 99) { gsmSignalStrength = 31; } -#else - gsmSignalStrength = p_cur->GW_SignalStrength.signalStrength; #endif p.writeInt32(gsmSignalStrength); |