|
楼主 |
发表于 2017-11-8 00:32:37| 字数 4,191| - 中国–辽宁–大连 鹏博士宽带
|
显示全部楼层
HOPE你好,最近概要看了一下linux下的i8042驱动,将其操作i8042寄存器之间的通信debug打开以后,发现一点可能存在问题的地方。 由于添加了 nopnp 参数,相当于由驱动自己去探测设备是否存在。驱动代码中,在进入睡眠的时候将AUX PORT 关闭了; 在退出睡眠的时候启用了AUX PORT。 但从debug信息来看,发送给鼠标的那个PORT没有外设反馈,timeout了。 我理解是外部设备未能正常启动起来, 这可能也解释了为什么reboot到window下,TrackPoint仍然不好用。 从另外一个层面上来猜测的话,可能是驱动逻辑是对的,但是由于某些原因未能在唤醒的时候,重新使能TrackPoint。接下来还需要再确认一下相关command发送是否正确。
2 - 5 就是 AUX PORT 0 - 3
[ 164.613184] i8042: [40598] MUX error, status is 35, data is fe
[ 164.613188] i8042: [40598] fe <- i8042 (interrupt, 2, 12, timeout)
[ 164.613211] i8042: [40598] 90 -> i8042 (command)
[ 164.613279] i8042: [40598] ed -> i8042 (parameter)
[ 164.613427] i8042: [40598] MUX error, status is 35, data is fe
[ 164.613430] i8042: [40598] fe <- i8042 (interrupt, 2, 12, timeout)
[ 164.613479] i8042: [40598] 90 -> i8042 (command)
[ 164.613548] i8042: [40598] f2 -> i8042 (parameter)
[ 164.613695] i8042: [40598] MUX error, status is 35, data is fe
[ 164.613698] i8042: [40598] fe <- i8042 (interrupt, 2, 12, timeout)
[ 164.613743] i8042: [40598] 91 -> i8042 (command)
[ 164.613811] i8042: [40598] f2 -> i8042 (parameter)
[ 164.613941] i8042: [40598] MUX error, status is 75, data is fe
[ 164.613944] i8042: [40598] fe <- i8042 (interrupt, 3, 12, timeout)
[ 164.613999] i8042: [40598] 91 -> i8042 (command)
[ 164.614068] i8042: [40598] ed -> i8042 (parameter)
[ 164.614213] i8042: [40598] MUX error, status is 75, data is fe
[ 164.614215] i8042: [40598] fe <- i8042 (interrupt, 3, 12, timeout)
[ 164.617220] i8042: [40599] 91 -> i8042 (command)
[ 164.617286] i8042: [40599] f2 -> i8042 (parameter)
[ 164.617416] i8042: [40599] MUX error, status is 75, data is fe
[ 164.617417] i8042: [40599] fe <- i8042 (interrupt, 3, 12, timeout)
[ 164.617508] i8042: [40599] 92 -> i8042 (command)
[ 164.617573] i8042: [40599] f2 -> i8042 (parameter)
[ 164.617717] i8042: [40599] MUX error, status is b5, data is fe
[ 164.617718] i8042: [40599] fe <- i8042 (interrupt, 4, 12, timeout)
[ 164.617828] i8042: [40599] 92 -> i8042 (command)
[ 164.617892] i8042: [40599] ed -> i8042 (parameter)
[ 164.618020] i8042: [40599] MUX error, status is b5, data is fe
[ 164.618021] i8042: [40599] fe <- i8042 (interrupt, 4, 12, timeout)
[ 164.618104] i8042: [40599] 92 -> i8042 (command)
[ 164.618171] i8042: [40599] f2 -> i8042 (parameter)
[ 164.618226] i8042: [40599] MUX error, status is b5, data is fe
[ 164.618227] i8042: [40599] fe <- i8042 (interrupt, 4, 12, timeout)
[ 164.618299] i8042: [40599] 93 -> i8042 (command)
[ 164.618364] i8042: [40599] f2 -> i8042 (parameter)
[ 164.618413] i8042: [40599] MUX error, status is f5, data is fe
[ 164.618414] i8042: [40599] fe <- i8042 (interrupt, 5, 12, timeout)
[ 164.618423] i8042: [40599] 93 -> i8042 (command)
[ 164.618488] i8042: [40599] ed -> i8042 (parameter)
[ 164.618621] i8042: [40599] MUX error, status is f5, data is fe
[ 164.618623] i8042: [40599] fe <- i8042 (interrupt, 5, 12, timeout)
[ 164.618639] i8042: [40599] 93 -> i8042 (command)
[ 164.618705] i8042: [40599] f2 -> i8042 (parameter)
[ 164.618755] i8042: [40599] MUX error, status is f5, data is fe
[ 164.618756] i8042: [40599] fe <- i8042 (interrupt, 5, 12, timeout)
刚开机的时候是这样的:
[ 2.236555] i8042: [5] MUX error, status is 35, data is fe
[ 2.236556] i8042: [5] fe <- i8042 (interrupt, 2, 12, timeout)
[ 2.236567] i8042: [5] 90 -> i8042 (command)
[ 2.236633] i8042: [5] ed -> i8042 (parameter)
[ 2.236833] i8042: [5] MUX error, status is 35, data is fe
[ 2.236833] i8042: [5] fe <- i8042 (interrupt, 2, 12, timeout)
[ 2.236910] i8042: [5] 91 -> i8042 (command)
[ 2.236980] i8042: [5] f2 -> i8042 (parameter)
[ 2.241653] i8042: [6] fa <- i8042 (interrupt, 3, 12)
[ 2.242737] i8042: [6] 00 <- i8042 (interrupt, 3, 12)
[ 2.242827] i8042: [6] 92 -> i8042 (command)
[ 2.242897] i8042: [6] f2 -> i8042 (parameter)
[ 2.243103] i8042: [6] MUX error, status is b5, data is fe
[ 2.243104] i8042: [6] fe <- i8042 (interrupt, 4, 12, timeout)
[ 2.243156] i8042: [6] 92 -> i8042 (command)
[ 2.243330] i8042: [6] ed -> i8042 (parameter)
[ 2.243579] i8042: [6] MUX error, status is b5, data is fe
[ 2.243580] i8042: [6] fe <- i8042 (interrupt, 4, 12, timeout)
[ 2.243657] i8042: [6] 93 -> i8042 (command)
[ 2.243727] i8042: [6] f2 -> i8042 (parameter)
[ 2.243872] i8042: [6] MUX error, status is f5, data is fe
[ 2.243873] i8042: [6] fe <- i8042 (interrupt, 5, 12, timeout)
[ 2.243915] i8042: [6] 93 -> i8042 (command)
[ 2.243980] i8042: [6] ed -> i8042 (parameter)
[ 2.244185] i8042: [7] MUX error, status is f5, data is fe
[ 2.244186] i8042: [7] fe <- i8042 (interrupt, 5, 12, timeout)
[ 2.244264] i8042: [7] 90 -> i8042 (command)
[ 2.244334] i8042: [7] f2 -> i8042 (parameter)
[ 2.244598] i8042: [7] MUX error, status is 35, data is fe
[ 2.244600] i8042: [7] fe <- i8042 (interrupt, 2, 12, timeout)
|
|