[PATCH 0/7] Add quectel EC21 in serial mode
by poeschel@lemonage.de
From: Lars Poeschel <poeschel(a)lemonage.de>
This patchset adds support for the quectel EC21 LTE modem connected
through its serial port.
Lars Poeschel (7):
quectel: Add Quectel EC21 to known serial modems
quectel: use lte atom on EC21
quectel: Query the model before setting up the mux
quectel: EC21 needs aux channel to be the first mux channel
quectel: EC21 does not understand AT+QIURC
voicecall: Quectel modem do not understand AT+CNAP
quectel: EC21 add ussd with atmodem driver
drivers/atmodem/voicecall.c | 4 +-
plugins/quectel.c | 153 +++++++++++++++++++++++-------------
2 files changed, 101 insertions(+), 56 deletions(-)
--
2.26.2
8 months, 1 week
AT modem on Droid 4: where is my sms?
by Pavel Machek
Hi!
I have problems with getting CNMA to work, so I'm exploring other
possibilities. Apparently ofono should be able to work without
that.. but is it working properly?
ofonod[5218]: < \r\n+CIEV: 1,3\r\n
ofonod[5218]: < \r\n+CIEV: 1,4\r\n
ofonod[5218]: < \r\n+CMTI: "ME",2\r\n
ofonod[5218]: drivers/atmodem/sms.c:at_cmti_notify() Got a CMTI
indication at ME, index: 2
ofonod[5218]: > AT+CMGR=2\r
ofonod[5218]: < \r\nOK\r\n
ofonod[5218]: > AT+CMGD=2\r
ofonod[5218]: < \r\nOK\r\n
ofonod[5218]: < \r\n+CIEV: 1,3\r\n
ofonod[5218]: < \r\n+CIEV: 1,4\r\n
So.... modem told us we have new message and where it is, but then
ofono ... deleted the message without delivering it...?
There's no new message at monitor-ofono...
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
8 months, 1 week
[PATCHv2 1/3] netmon: added PCI, TAC, SNR value
by JongSeok Won
To support cell type LTE, the value of PCI, TAC, SNR is added
---
include/netmon.h | 3 +++
src/netmon.c | 21 +++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/include/netmon.h b/include/netmon.h
index a99d6ca9..53f9d393 100644
--- a/include/netmon.h
+++ b/include/netmon.h
@@ -72,6 +72,9 @@ enum ofono_netmon_info {
OFONO_NETMON_INFO_EARFCN, /* int */
OFONO_NETMON_INFO_EBAND, /* int */
OFONO_NETMON_INFO_CQI, /* int */
+ OFONO_NETMON_INFO_PCI, /* int */
+ OFONO_NETMON_INFO_TAC, /* int */
+ OFONO_NETMON_INFO_SNR, /* int */
OFONO_NETMON_INFO_INVALID,
};
diff --git a/src/netmon.c b/src/netmon.c
index 9eacb3ca..10e3ee2b 100644
--- a/src/netmon.c
+++ b/src/netmon.c
@@ -213,6 +213,27 @@ static void netmon_cell_info_dict_append(DBusMessageIter *dict,
intval, uint8_t, DBUS_TYPE_BYTE);
break;
+ case OFONO_NETMON_INFO_PCI:
+ intval = va_arg(*arglist, int);
+
+ CELL_INFO_DICT_APPEND(dict, "PhysicalCellId",
+ intval, uint16_t, DBUS_TYPE_UINT16);
+ break;
+
+ case OFONO_NETMON_INFO_TAC:
+ intval = va_arg(*arglist, int);
+
+ CELL_INFO_DICT_APPEND(dict, "TrackingAreaCode",
+ intval, uint16_t, DBUS_TYPE_UINT16);
+ break;
+
+ case OFONO_NETMON_INFO_SNR:
+ intval = va_arg(*arglist, int);
+
+ ofono_dbus_dict_append(dict, "SingalToNoiseRatio",
+ DBUS_TYPE_INT32, &intval);
+ break;
+
case OFONO_NETMON_INFO_INVALID:
break;
}
--
2.17.1
8 months, 2 weeks
[PATCHv2 3/3] doc: added PCI, TAC, SNR property in networkmonitor-api
by JongSeok Won
---
doc/networkmonitor-api.txt | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/doc/networkmonitor-api.txt b/doc/networkmonitor-api.txt
index 1cc73d2c..e9018d72 100644
--- a/doc/networkmonitor-api.txt
+++ b/doc/networkmonitor-api.txt
@@ -118,7 +118,7 @@ uint16 PrimaryScramblingCode [optional, umts]
Contains the scrambling code. Valid range of values is 0-512.
-byte TimingAdvance [optional, gsm]
+byte TimingAdvance [optional, gsm, lte]
Contains the Timing Advance. Valid range of values is 0-219.
@@ -165,3 +165,18 @@ byte ChannelQualityIndicator [optional, lte]
Contains Channel Quality Indicator. Refer to Channel Quality
Indicator definition in 36.213, Section 7.2.3 for more details.
+
+uint16 PhysicalCellId [optional, lte]
+
+ Contains Physical Cell Id. Valid range of values is 0-503.
+
+uint16 TrackingAreaCode [optional, lte]
+
+ Contains Tracking Area Code. Valid range of values is 0-65535.
+
+int32 SingalToNoiseRatio [optional, lte]
+
+ Contains Signal To Noise Ratio. Valid range of values is -200 to +300.
+ The value is in 0.1 dB units. (-200 = -20.0 dB, +300 = 30dB)
+ Refer to <snr> in 36.101, Section 8.1.1 for more details.
+
\ No newline at end of file
--
2.17.1
8 months, 2 weeks
[PATCHv2 2/3] rilmodem: support cell type LTE for netmon
by JongSeok Won
---
drivers/rilmodem/netmon.c | 51 +++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/drivers/rilmodem/netmon.c b/drivers/rilmodem/netmon.c
index 547ebccc..9f3a1191 100644
--- a/drivers/rilmodem/netmon.c
+++ b/drivers/rilmodem/netmon.c
@@ -109,6 +109,9 @@ static int process_cellinfo_list(struct ril_msg *message,
int mcc, mnc;
int lac, cid, psc;
int rssi, ber;
+ int ci, pci, tac;
+ int rsrp, rsrq, rssnr;
+ int cqi, tadv;
char s_mcc[OFONO_MAX_MCC_LENGTH + 1];
char s_mnc[OFONO_MAX_MNC_LENGTH + 1];
int i, j;
@@ -216,6 +219,54 @@ static int process_cellinfo_list(struct ril_msg *message,
OFONO_NETMON_INFO_BER, ber,
OFONO_NETMON_INFO_INVALID);
+ } else if (cell_type == NETMON_RIL_CELLINFO_TYPE_LTE) {
+ mcc = parcel_r_int32(&rilp);
+ mnc = parcel_r_int32(&rilp);
+ ci = parcel_r_int32(&rilp);
+ pci = parcel_r_int32(&rilp);
+ tac = parcel_r_int32(&rilp);
+ rssi = parcel_r_int32(&rilp);
+ rsrp = parcel_r_int32(&rilp);
+ rsrq = parcel_r_int32(&rilp);
+ rssnr = parcel_r_int32(&rilp);
+ cqi = parcel_r_int32(&rilp);
+ tadv = parcel_r_int32(&rilp);
+
+ if (mcc >= 0 && mcc <= 999)
+ snprintf(s_mcc, sizeof(s_mcc), "%03d", mcc);
+ else
+ strcpy(s_mcc, "");
+
+ if (mnc >= 0 && mnc <= 999)
+ snprintf(s_mnc, sizeof(s_mnc), "%03d", mnc);
+ else
+ strcpy(s_mnc, "");
+
+ ci = (ci >= 0 && ci <= 268435455) ? ci : -1;
+ pci = (pci >= 0 && pci <= 503) ? pci : -1;
+ tac = (tac >= 0 && tac <= 65535) ? tac : -1;
+ rssi = (rssi >= 0 && rssi <= 31) ? rssi : -1;
+ rsrp = (rsrp >= 44 && rsrp <= 140) ? -rsrp : -1;
+ rsrq = (rsrq >= 3 && rsrq <= 20) ? -rsrq : -1;
+ rssnr = (rssnr >= -200 && rssnr <= 300) ? rssnr : -1;
+ cqi = (cqi >= 0 && cqi <= 15) ? cqi : -1;
+ tadv = (tadv >=0 && tadv <= 63) ? tadv : -1;
+
+ ofono_netmon_serving_cell_notify(netmon,
+ OFONO_NETMON_CELL_TYPE_LTE,
+ OFONO_NETMON_INFO_MCC, s_mcc,
+ OFONO_NETMON_INFO_MNC, s_mnc,
+ OFONO_NETMON_INFO_CI, ci,
+ OFONO_NETMON_INFO_PCI, pci,
+ OFONO_NETMON_INFO_TAC, tac,
+ OFONO_NETMON_INFO_RSSI, rssi,
+ OFONO_NETMON_INFO_RSRP, rsrp,
+ OFONO_NETMON_INFO_RSRQ, rsrq,
+ OFONO_NETMON_INFO_SNR, rssnr,
+ OFONO_NETMON_INFO_CQI, cqi,
+ OFONO_NETMON_INFO_TIMING_ADVANCE, tadv,
+ OFONO_NETMON_INFO_INVALID);
+
}
return OFONO_ERROR_TYPE_NO_ERROR;
--
2.17.1
8 months, 2 weeks
[PATCH 1/2] netmon: support cell type LTE
by JongSeok Won
---
include/netmon.h | 3 +++
src/netmon.c | 24 +++++++++++++++++++++++-
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/include/netmon.h b/include/netmon.h
index a99d6ca9..53f9d393 100644
--- a/include/netmon.h
+++ b/include/netmon.h
@@ -72,6 +72,9 @@ enum ofono_netmon_info {
OFONO_NETMON_INFO_EARFCN, /* int */
OFONO_NETMON_INFO_EBAND, /* int */
OFONO_NETMON_INFO_CQI, /* int */
+ OFONO_NETMON_INFO_PCI, /* int */
+ OFONO_NETMON_INFO_TAC, /* int */
+ OFONO_NETMON_INFO_SNR, /* int */
OFONO_NETMON_INFO_INVALID,
};
diff --git a/src/netmon.c b/src/netmon.c
index 9eacb3ca..320c8425 100644
--- a/src/netmon.c
+++ b/src/netmon.c
@@ -138,7 +138,7 @@ static void netmon_cell_info_dict_append(DBusMessageIter *dict,
intval = va_arg(*arglist, int);
CELL_INFO_DICT_APPEND(dict, "TimingAdvance",
- intval, uint8_t, DBUS_TYPE_BYTE);
+ intval, uint32_t, DBUS_TYPE_UINT32);
break;
case OFONO_NETMON_INFO_PSC:
@@ -213,6 +213,28 @@ static void netmon_cell_info_dict_append(DBusMessageIter *dict,
intval, uint8_t, DBUS_TYPE_BYTE);
break;
+ case OFONO_NETMON_INFO_PCI:
+ intval = va_arg(*arglist, int);
+
+ CELL_INFO_DICT_APPEND(dict, "PhysicalCellId",
+ intval, uint16_t, DBUS_TYPE_UINT16);
+ break;
+
+ case OFONO_NETMON_INFO_TAC:
+ intval = va_arg(*arglist, int);
+
+ CELL_INFO_DICT_APPEND(dict, "TrackingAreaCode",
+ intval, uint16_t, DBUS_TYPE_UINT16);
+ break;
+
+ case OFONO_NETMON_INFO_SNR:
+ intval = va_arg(*arglist, int);
+
+ ofono_dbus_dict_append(dict, "SingalToNoiseRatio",
+ DBUS_TYPE_INT32, &intval);
+
+ break;
+
case OFONO_NETMON_INFO_INVALID:
break;
}
--
2.17.1
8 months, 2 weeks
[PATCH] rilmodem: set proto type during setting initial attach apn
by JongSeok Won
Added the protocol type of initial attach apn depends on protocol
type in LTE Atom.
---
drivers/rilmodem/lte.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/rilmodem/lte.c b/drivers/rilmodem/lte.c
index 61718961..b613d354 100644
--- a/drivers/rilmodem/lte.c
+++ b/drivers/rilmodem/lte.c
@@ -71,6 +71,7 @@ static void ril_lte_set_default_attach_info(const struct ofono_lte *lte,
struct cb_data *cbd = cb_data_new(cb, data, (struct ofono_lte *)lte);
struct parcel rilp;
char buf[OFONO_GPRS_MAX_APN_LENGTH + 1];
+ const char *proto = ril_util_gprs_proto_to_ril_string(info->proto);
DBG("%s", info->apn);
@@ -80,10 +81,11 @@ static void ril_lte_set_default_attach_info(const struct ofono_lte *lte,
if (strlen(info->apn) > 0) {
sprintf(buf, "%s", info->apn);
parcel_w_string(&rilp, buf);
- } else
+ } else {
parcel_w_string(&rilp, ""); /* apn */
+ }
- parcel_w_string(&rilp, "ip"); /* protocol */
+ parcel_w_string(&rilp, proto); /* protocol */
parcel_w_int32(&rilp, 0); /* auth type */
parcel_w_string(&rilp, ""); /* username */
parcel_w_string(&rilp, ""); /* password */
--
2.17.1
8 months, 3 weeks
[PATCH] rilmodem: fix typo error in netmon.c
by JongSeok Won
---
drivers/rilmodem/netmon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rilmodem/netmon.c b/drivers/rilmodem/netmon.c
index 7dd3a562..547ebccc 100644
--- a/drivers/rilmodem/netmon.c
+++ b/drivers/rilmodem/netmon.c
@@ -201,7 +201,7 @@ static int process_cellinfo_list(struct ril_msg *message,
lac = (lac >= 0 && lac <= 65535) ? lac : -1;
cid = (cid >= 0 && cid <= 268435455) ? cid : -1;
- psc = (psc >= 0 && rssi <= 511) ? psc : -1;
+ psc = (psc >= 0 && psc <= 511) ? psc : -1;
rssi = (rssi >= 0 && rssi <= 31) ? rssi : -1;
ber = (ber >= 0 && ber <= 7) ? ber : -1;
--
2.17.1
8 months, 3 weeks
[PATCH 2/2] rilmodem: support cell type LTE for netmon
by JongSeok Won
---
drivers/rilmodem/netmon.c | 50 +++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/drivers/rilmodem/netmon.c b/drivers/rilmodem/netmon.c
index 7dd3a562..da6428a7 100644
--- a/drivers/rilmodem/netmon.c
+++ b/drivers/rilmodem/netmon.c
@@ -109,6 +109,9 @@ static int process_cellinfo_list(struct ril_msg *message,
int mcc, mnc;
int lac, cid, psc;
int rssi, ber;
+ int ci, pci, tac;
+ int rsrp, rsrq, rssnr;
+ int cqi, tadv;
char s_mcc[OFONO_MAX_MCC_LENGTH + 1];
char s_mnc[OFONO_MAX_MNC_LENGTH + 1];
int i, j;
@@ -216,6 +219,53 @@ static int process_cellinfo_list(struct ril_msg *message,
OFONO_NETMON_INFO_BER, ber,
OFONO_NETMON_INFO_INVALID);
+ } else if (cell_type == NETMON_RIL_CELLINFO_TYPE_LTE) {
+ mcc = parcel_r_int32(&rilp);
+ mnc = parcel_r_int32(&rilp);
+ ci = parcel_r_int32(&rilp);
+ pci = parcel_r_int32(&rilp);
+ tac = parcel_r_int32(&rilp);
+ rssi = parcel_r_int32(&rilp);
+ rsrp = parcel_r_int32(&rilp);
+ rsrq = parcel_r_int32(&rilp);
+ rssnr = parcel_r_int32(&rilp);
+ cqi = parcel_r_int32(&rilp);
+ tadv = parcel_r_int32(&rilp);
+
+ if (mcc >= 0 && mcc <= 999)
+ snprintf(s_mcc, sizeof(s_mcc), "%03d", mcc);
+ else
+ strcpy(s_mcc, "");
+
+ if (mnc >= 0 && mnc <= 999)
+ snprintf(s_mnc, sizeof(s_mnc), "%03d", mnc);
+ else
+ strcpy(s_mnc, "");
+
+ ci = (ci >= 0 && ci <= 268435455) ? ci : -1;
+ pci = (pci >= 0 && pci <= 503) ? pci : -1;
+ tac = (tac >= 0 && tac <= 65535) ? tac : -1;
+ rssi = (rssi >= 0 && rssi <= 31) ? rssi : -1;
+ rsrp = (rsrp >= 44 && rsrp <= 140) ? -rsrp : -1;
+ rsrq = (rsrq >= 3 && rsrq <= 20) ? -rsrq : -1;
+ rssnr = (rssnr >= -200 && rssnr <= 300) ? rssnr : -1;
+ cqi = (cqi >= 0 && cqi <= 15) ? cqi : -1;
+
+ ofono_netmon_serving_cell_notify(netmon,
+ OFONO_NETMON_CELL_TYPE_LTE,
+ OFONO_NETMON_INFO_MCC, s_mcc,
+ OFONO_NETMON_INFO_MNC, s_mnc,
+ OFONO_NETMON_INFO_CI, ci,
+ OFONO_NETMON_INFO_PCI, pci,
+ OFONO_NETMON_INFO_TAC, tac,
+ OFONO_NETMON_INFO_RSSI, rssi,
+ OFONO_NETMON_INFO_RSRP, rsrp,
+ OFONO_NETMON_INFO_RSRQ, rsrq,
+ OFONO_NETMON_INFO_SNR, rssnr,
+ OFONO_NETMON_INFO_CQI, cqi,
+ OFONO_NETMON_INFO_TIMING_ADVANCE, tadv,
+ OFONO_NETMON_INFO_INVALID);
+
}
return OFONO_ERROR_TYPE_NO_ERROR;
--
2.17.1
8 months, 3 weeks