Ticket #2237 (new defect)
pcf50633 INT1 and INT3 flood logs with gadgetfs keyboard
| Reported by: | lindi | Owned by: | openmoko-kernel |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | kernel | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | no | PatchReviewResult: | |
| Reproducible: |
Description
Steps to reproduce:
1) connect freerunner to a PC and setup ssh access over wlan since g_ether can not be used during test
2) tar zxf testcase1.tar.gz
3) cd testcase1
4) make
5) sudo bash setup.sh
6) sudo ./usb
Expected results:
6) freerunner shows up as a new usb keyboard on the PC side
Actual results:
6) freerunner shows up as a new usb keyboard on the PC side but on the freerunner side it starts to flood logs with about 8 lines/second:
Feb 21 19:02:32 ginger user.info kernel: [ 288.060000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x20 INT4=0x00 INT5=0x00 Feb 21 19:02:32 ginger user.info kernel: [ 288.135000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:32 ginger user.info kernel: [ 288.155000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 288.775000] pcf50633 0-0073: INT1=0x80 INT2=0x00 INT3=0x10 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 288.840000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 288.860000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 288.990000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x20 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 289.060000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:33 ginger user.info kernel: [ 289.080000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:34 ginger user.info kernel: [ 289.800000] pcf50633 0-0073: INT1=0x80 INT2=0x00 INT3=0x10 INT4=0x00 INT5=0x00 Feb 21 19:02:34 ginger user.info kernel: [ 289.865000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:34 ginger user.info kernel: [ 289.885000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00 Feb 21 19:02:34 ginger user.info kernel: [ 290.105000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x20 INT4=0x00 INT5=0x00 Feb 21 19:02:34 ginger user.info kernel: [ 290.175000] pcf50633 0-0073: INT1=0x00 INT2=0x00 INT3=0x00 INT4=0x00 INT5=0x00
More info:
1) the keyboard gadget does not yet work reliably but that is not what this bug report is about :-)
2) I am using andy-tracking b8b36e5ec3db71d5
3) udevd seems to consume 5% cpu time constantly. strace shows
--- SIGCHLD (Child exited) @ 0 (0) ---
write(7, "\0"..., 1) = 1
sigreturn() = ? (mask now [HUP QUIT ABRT BUS USR1 SEGV PIPE ALRM TERM CHLD CONT STOP TSTP TTOU VTALRM PROF PWR SYS])
gettimeofday({1235235981, 461967}, NULL) = 0
select(7, [3 4 5 6], NULL, NULL, NULL) = 2 (in [5 6])
recv(5, "change@/class/power_supply/adapte"..., 2560, 0) = 296
gettimeofday({1235235981, 479707}, NULL) = 0
unlink("/dev/.udev/failed/\\x2fclass\\x2fpower_supply\\x2fadapter") = -1 ENOENT (No such file or directory)
rmdir("/dev/.udev/failed") = -1 ENOTEMPTY (Directory not empty)
stat64("/dev/.udev/queue", {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
symlink("/class/power_supply/adapter", "/dev/.udev/queue/2037") = 0
open("/dev/.udev/uevent_seqnum", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0644) = 8
write(8, "2037\n"..., 5) = 5
close(8) = 0
read(6, "\0"..., 256) = 1
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 3020
gettimeofday({1235235981, 549209}, NULL) = 0
unlink("/dev/.udev/failed/\\x2fclass\\x2fpower_supply\\x2fusb") = -1 ENOENT (No such file or directory)
rmdir("/dev/.udev/failed") = -1 ENOTEMPTY (Directory not empty)
unlink("/dev/.udev/queue/2036") = 0
rmdir("/dev/.udev/queue") = -1 ENOTEMPTY (Directory not empty)
wait4(-1, 0x3ea4cf8, WNOHANG, NULL) = -1 ECHILD (No child processes)
open("/proc/stat", O_RDONLY|O_LARGEFILE) = 8
fstat64(8, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40020000
read(8, "cpu 3979 0 10751 65310 1394 0 29"..., 1024) = 386
close(8) = 0
munmap(0x40020000, 4096) = 0
Attachments
Change History
Changed 4 years ago by lindi
- Attachment testcase1.tar.gz added
comment:1 Changed 4 years ago by andy
INT1 bit is "second" interrupt, by definition you can only get one of those a second (in fact two due to a symptomless bug with level interrupt handling). INT3 thing is "USB current limit ON (0x10) and OFF (0x20)".
All of these are normally masked so we don't take care about them, I don't know why they are suddenly unmasked.
Can you dump the pcf50633 regs while this is happening so I can see the mask registers from that?
About udev, if I understand it then udev is spinning meddling with adapter node, it's suspicious that this is the one thing we talk about in pcf50633 but don't use in GTA02.

incomplete keyboard gadget as a testcase