modem/msm-modem: expose serial AT port from DATA4 SMD channel (MR 1607)
So far we have only created /dev/modem based on the DATA5_CNTL channel available from the modem. The DATAX_CNTL channels allow sending QMI messages to the modem. This is sufficient for oFono to work. Unfortunately, ModemManager currently does not support starting calls through the QMI interface. Instead, it uses serial AT commands that can be alternatively used on all USB-based Qualcomm modems. It turns out that we can also send serial AT commands through the RPMSG interface: the DATAX channels (without _CNTL) all respond to serial AT commands. We set it up at /dev/modem-at, configure ModemManager accordingly and then we are able to start calls. Yay!
This commit is contained in:
parent
25147b4aa3
commit
36f13ad1ab
3 changed files with 8 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
||||||
pkgname=msm-modem
|
pkgname=msm-modem
|
||||||
pkgver=1
|
pkgver=2
|
||||||
pkgrel=2
|
pkgrel=0
|
||||||
pkgdesc="Common support for Qualcomm MSM modems"
|
pkgdesc="Common support for Qualcomm MSM modems"
|
||||||
url="https://postmarketos.org/"
|
url="https://postmarketos.org/"
|
||||||
arch="armhf armv7 aarch64"
|
arch="armhf armv7 aarch64"
|
||||||
|
@ -29,5 +29,5 @@ downstream() {
|
||||||
install -Dm644 "$srcdir/udev-downstream.rules" "$subpkgdir/usr/lib/udev/rules.d/55-$pkgname.rules"
|
install -Dm644 "$srcdir/udev-downstream.rules" "$subpkgdir/usr/lib/udev/rules.d/55-$pkgname.rules"
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="f842f617c441b8e6c1f8a7802792f5dfc22ab92216641f54e1a1fb8faec00a78b473baf02ef85b6ec295a88aa89a25325479380e1e65db62be879064782790ab udev-rpmsg.rules
|
sha512sums="11437625988fcf57aa0b70f11496c458d4516de16391c2869ae975362f282d21d3af521a41dea00312797d20d52be5112dbf0041986bfb40f3b9fa5948d2c695 udev-rpmsg.rules
|
||||||
64a40fb88d40ae0ff64d3545f7a54c6f10f2ab366ef75b8b158c2d5a3733223839c87aed8d5c6685d5056a5840d3943e68c76bd1bda2b48388161849d5e253f3 udev-downstream.rules"
|
2a511c2e249d0ec5a52f04ffe1ef3d29cf3c4813143b103e54879ff89176ea45b1a5ffe21cb7dc2f1cdd84c3102ba45ef9926ed37e00b1ae12a36d01de35ea5a udev-downstream.rules"
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
KERNEL=="smdcntl0", SYMLINK += "modem"
|
KERNEL=="smdcntl0", SYMLINK+="modem"
|
||||||
|
KERNEL=="smd8", SYMLINK+="modem-at"
|
||||||
|
|
|
@ -2,11 +2,13 @@ SUBSYSTEM!="rpmsg", GOTO="qcom_rpmsg_end"
|
||||||
|
|
||||||
# symlink rpmsg endpoints under useful names
|
# symlink rpmsg endpoints under useful names
|
||||||
ATTR{name}=="DATA5_CNTL", SYMLINK+="modem"
|
ATTR{name}=="DATA5_CNTL", SYMLINK+="modem"
|
||||||
|
ATTR{name}=="DATA4", SYMLINK+="modem-at"
|
||||||
|
|
||||||
# open SMD channels when the remoteproc comes up
|
# open SMD channels when the remoteproc comes up
|
||||||
KERNEL!="rpmsg_ctrl[0-9]*", GOTO="qcom_rpmsg_end"
|
KERNEL!="rpmsg_ctrl[0-9]*", GOTO="qcom_rpmsg_end"
|
||||||
ATTRS{rpmsg_name}!="modem|hexagon", GOTO="qcom_rpmsg_end"
|
ATTRS{rpmsg_name}!="modem|hexagon", GOTO="qcom_rpmsg_end"
|
||||||
|
|
||||||
ACTION=="add", RUN+="/usr/sbin/rpmsgexport /dev/$name DATA5_CNTL"
|
ACTION=="add", RUN+="/usr/sbin/rpmsgexport /dev/$name DATA5_CNTL"
|
||||||
|
ACTION=="add", RUN+="/usr/sbin/rpmsgexport /dev/$name DATA4"
|
||||||
|
|
||||||
LABEL="qcom_rpmsg_end"
|
LABEL="qcom_rpmsg_end"
|
||||||
|
|
Loading…
Reference in a new issue