summaryrefslogtreecommitdiffstats
path: root/ril/libril/ril.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ril/libril/ril.cpp')
-rw-r--r--ril/libril/ril.cpp10
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);