Closed Bug 972776 Opened 6 years ago Closed 6 years ago

[b2g][tarako] Sometimes typing keyboard continuously, the report of key events are not correct.

Categories

(Firefox OS Graveyard :: Vendcom, defect)

ARM
Gonk (Firefox OS)
defect
Not set

Tracking

(blocking-b2g:1.3T+)

RESOLVED WONTFIX
blocking-b2g 1.3T+

People

(Reporter: xwaynec, Assigned: ying.xu)

Details

(Whiteboard: [u=tarako][POVB])

Attachments

(2 files)

No description provided.
Sometimes typing keyboard continuously, there are some sound will disappear. I record pcm data from AudioFlinger, the data seems not coming. In attachment 8376123 [details], the second-last data is gone.
Attached file audio.log
here's one easy step to show the touch screen issue:
1. open dialer
2. press number 1 and then press number 3 in a short time.

we expect dialer shows 13 on screen but it shows only 1.

Following events show driver report a movement from 1 to 3 instead of two points include 1 and 3.

Looks like the issue easily happened if we press two points in same sensor channel in a short time.
If we press number 7 and then press number 3, we have less chance to reproduce.

EV_KEY       BTN_TOUCH            DOWN                
EV_ABS       ABS_MT_POSITION_X    00000039 
EV_ABS       ABS_MT_POSITION_Y    000000b5            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    00000039            
EV_ABS       ABS_MT_POSITION_Y    000000b5            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    00000039            
EV_ABS       ABS_MT_POSITION_Y    000000b5            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    0000004d            
EV_ABS       ABS_MT_POSITION_Y    000000b4            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    00000093            
EV_ABS       ABS_MT_POSITION_Y    000000b3            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    000000bc            
EV_ABS       ABS_MT_POSITION_Y    000000b3            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    000000e8            
EV_ABS       ABS_MT_POSITION_Y    000000b2            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    000000ef            
EV_ABS       ABS_MT_POSITION_Y    000000b2            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_POSITION_X    000000eb            
EV_ABS       ABS_MT_POSITION_Y    000000b2            
EV_SYN       SYN_MT_REPORT        00000000            
EV_SYN       SYN_REPORT           00000000            
EV_KEY       BTN_TOUCH            UP                  
EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
EV_SYN       SYN_REPORT           00000000            
EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
EV_SYN       SYN_REPORT           00000000
After some experiments, it doesn't seem like an audio issue.

1. After more tracking from gecko & android audio framework, it doesn't have data missing. It's just only delayed.

2. attachment 8377360 [details] can show the time from gecko audio stream to audio hardware, it just only have 12 ms.

So we trace back to the source in key event, according comment 4 we need partner's help.
Whiteboard: [u=tarako]
Assignee: nobody → waychen
Hi James:
 Could you please loop related ppl to check this issue as well?

Thanks!!
Shawn
Flags: needinfo?(james.zhang)
Flags: needinfo?(ying.xu)
Marked as [POVB] based on the result of Comment 4. We need help from partner's side.
Whiteboard: [u=tarako] → [u=tarako][POVB]
Component: Video/Audio → General
Summary: [b2g][tarako] Sometimes typing keyboard continuously, there are some sound will disappear. → [b2g][tarako] Sometimes typing keyboard continuously, the report of key events are not correct.
(In reply to viral [:viralwang] from comment #4)
> here's one easy step to show the touch screen issue:
> 1. open dialer
> 2. press number 1 and then press number 3 in a short time.
> 
> we expect dialer shows 13 on screen but it shows only 1.
> 
> Following events show driver report a movement from 1 to 3 instead of two
> points include 1 and 3.
> 
> Looks like the issue easily happened if we press two points in same sensor
> channel in a short time.
> If we press number 7 and then press number 3, we have less chance to
> reproduce.
> 
> EV_KEY       BTN_TOUCH            DOWN                
> EV_ABS       ABS_MT_POSITION_X    00000039 
> EV_ABS       ABS_MT_POSITION_Y    000000b5            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    00000039            
> EV_ABS       ABS_MT_POSITION_Y    000000b5            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    00000039            
> EV_ABS       ABS_MT_POSITION_Y    000000b5            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    0000004d            
> EV_ABS       ABS_MT_POSITION_Y    000000b4            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    00000093            
> EV_ABS       ABS_MT_POSITION_Y    000000b3            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    000000bc            
> EV_ABS       ABS_MT_POSITION_Y    000000b3            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    000000e8            
> EV_ABS       ABS_MT_POSITION_Y    000000b2            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    000000ef            
> EV_ABS       ABS_MT_POSITION_Y    000000b2            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_POSITION_X    000000eb            
> EV_ABS       ABS_MT_POSITION_Y    000000b2            
> EV_SYN       SYN_MT_REPORT        00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_KEY       BTN_TOUCH            UP                  
> EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
> EV_SYN       SYN_REPORT           00000000            
> EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
> EV_SYN       SYN_REPORT           00000000


we can confirm the log
Flags: needinfo?(ying.xu)
I also did a test with hamachi. the result are similar.
only one down and one up.

/dev/input/event4: EV_KEY       BTN_TOUCH            DOWN                
/dev/input/event4: EV_SYN       SYN_REPORT           00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    0000001c            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    00000098            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      0000007f            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000000            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   0000007f            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    000000f1            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    000000ad            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      0000007f            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000001            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   0000007f            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_SYN       SYN_REPORT           00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    0000001c            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    00000098            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      0000007f            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000000            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   0000007f            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    000000f1            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    000000ad            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      0000007f            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000001            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   0000007f            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_SYN       SYN_REPORT           00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    0000001c            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    00000098            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      00000000            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000000            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_X    000000f1            
/dev/input/event4: EV_ABS       ABS_MT_POSITION_Y    000000ad            
/dev/input/event4: EV_ABS       ABS_MT_PRESSURE      00000000            
/dev/input/event4: EV_ABS       ABS_MT_TRACKING_ID   00000001            
/dev/input/event4: EV_ABS       ABS_MT_TOUCH_MAJOR   00000000            
/dev/input/event4: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event4: EV_KEY       BTN_TOUCH            UP
press 7 then 3

/dev/input/event1: EV_KEY       BTN_TOUCH            DOWN                
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    0000001b            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000139            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e3            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b1            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e3            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b1            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e2            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b2            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e2            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b2            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e2            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b2            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e2            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000b2            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    00000019            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    00000134            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e3            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000af            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_X    000000e2            
/dev/input/event1: EV_ABS       ABS_MT_POSITION_Y    000000ab            
/dev/input/event1: EV_SYN       SYN_MT_REPORT        00000000            
/dev/input/event1: EV_SYN       SYN_REPORT           00000000            
/dev/input/event1: EV_KEY       BTN_TOUCH            UP
Ying will take it.
Flags: needinfo?(james.zhang)
we have confirm the bug came from the touch-control IC, not related with kernel driver.
We need the vendor of the touch-control IC fix this.
Assignee: waychen → ying.xu
James, could you provide an ETA for this bug?
blocking-b2g: --- → 1.3T?
Flags: needinfo?(james.zhang)
What doese "ETA" mean ?
Flags: needinfo?(james.zhang) → needinfo?(jho)
estimated arrival time... I meant the estimated date for the fix, sorry for the confusion.
Flags: needinfo?(jho)
Component: General → Gaia::Keyboard
Product: Core → Firefox OS
Based on the info at hand, this is not a mozilla blocker or actionable on our side triage is not blocking on this. Partner can feel free to work/block if this is a blocker on their side.
triage: 1.3T+, this needs to be fixed for product release but POVB
blocking-b2g: 1.3T? → 1.3T+
Component: Gaia::Keyboard → Vendcom
hi James, wonder if there are further update to this? thanks
Flags: needinfo?(james.zhang)
It's hardware vendor issue. 6821 android also has the same issue. This touch panel chipset has competitive prices, so it's known issue.
Flags: needinfo?(james.zhang)
(In reply to James Zhang from comment #19)
> It's hardware vendor issue. 6821 android also has the same issue. This touch
> panel chipset has competitive prices, so it's known issue.

Hi Joe,

   I have changed this bug to WORKSFORME, please feel free to REOPEN it if you can't accept.

   And the OEM/ODM maybe change touch panel controller chipset.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
WONTFIX is probably more accurate for bookkeeping purposes but agree with the resolution here. Thanks for investigating this.
Resolution: WORKSFORME → WONTFIX
(In reply to James Zhang from comment #20)
> (In reply to James Zhang from comment #19)
> > It's hardware vendor issue. 6821 android also has the same issue. This touch
> > panel chipset has competitive prices, so it's known issue.
> 
> Hi Joe,
> 
>    I have changed this bug to WORKSFORME, please feel free to REOPEN it if
> you can't accept.
> 
>    And the OEM/ODM maybe change touch panel controller chipset.

And 7710(fugu)/7715(dolphin) hasn't this issue.
You need to log in before you can comment on or make changes to this bug.