On Mon 2018-12-31 14:23:29, Tony Lindgren wrote:
* Pavel Machek <pavel(a)ucw.cz> [181231 21:54]:
> Is it possible that epoll() does not work properly with /dev/motmdm*?
> I am debugging weird problems with ofonod, and that would be an
> explanation...
>
> epoll.poll() should be returning list of file descriptors and if they
> are ready. And it seems to work for ttyUSB4 but not for motmdm.
>
> Hmm. And motmdm_cdev_poll() lacks EPOLLOUT() support, right? That
> could explain things...
Hmm yeah maybe.
FYI, I just pushed a test script into github droid4-sms-tools repo
for sending SMS and a related kernel fix for ctrl-z termination
into k.o droid4-pending-mdm-v4.20 branch.
But that seems to fix a different issue from what you're seeing.
Yes, I can easily work around the problem like this:
It needs huge fixme there, but if you could include it... "always
ready" is better than "never ready".
I'm currently adding code to ofono... I can decode incoming
SMS. Current is here.
https://github.com/pavelmachek/ofono
Have you figured out how the incoming calls are supposed to work? I'm
getting this on incoming call:
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+CIEV=1,4,0\n\r
ignoring line
ofonod[2534]: Voice: <
~+CLIP="+420xxxxxxxxx",1,1,"",0,"",0\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+CIEV=1,0,0\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
ignoring line
ofonod[2534]: Voice: < ~+WAKEUP\n\r
I probably could use +CLIP as "there's incoming call", but I don't see
anything useful when I hang up and phone should stop ringing.
Best regards,
Pavel
diff --git a/drivers/mfd/motorola-mdm.c b/drivers/mfd/motorola-mdm.c
index 2cdc9e8..abf58e3 100644
--- a/drivers/mfd/motorola-mdm.c
+++ b/drivers/mfd/motorola-mdm.c
@@ -706,6 +706,7 @@ static __poll_t motmdm_cdev_poll(struct file *file, poll_table *wait)
mask |= EPOLLIN | EPOLLRDNORM;
if (cdata->disconnected)
mask |= EPOLLHUP;
+ mask |= (EPOLLOUT | EPOLLWRNORM);
return mask;
}
--
(english)
http://www.livejournal.com/~pavelmachek
(cesky, pictures)
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html