-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Somebody in the thread at some point said:
| B) Can we use a FIQ for this? I'm envisioning an FIQ handler that does | nothing other than empty the FIFO into a small kernel ring-buffer, and | then signals the standard UART driver to read data from that ring | buffer. (Is it possible to logically connect both the normal RX IRQ and | the FIQ together, so that the FIQ runs, and the IRQ is also triggered? | This would eliminate the need for notification.) Current FIQ infrastructure too in GTA02 and the PWM timers specifically are also all part of this suspend / resume management merry-go-round. But the FIQ + IRQ method is actually a really powerful technique, I have used it in another design. It solves the issue that FIQ ISR is unable to use most Linux kernel APIs, such as semaphore for example to "signal the standard UART driver". But if you have FIQ and standard IRQ operating together, you can perform time-critical actions in the FIQ which will have very low latencies at all times, and Linux interfacing actions in the normal IRQ handler, which may have extreme latencies and even miss interrupts. Using the two together you can have extremely hard realtime response without losing ability to interface to "Normal Linux". In practical terms, FIQ on S3C24xx works that you can cherrypick ONE normal interrupt source and elevate it to "FIQ power". So it should be possible if I understood it to create an "Uber serial driver" to solve this. See the FIQ-related mokopatches http://git.openmoko.org/?p=kernel.git;a=commitdiff;h=f83b2007a1e3552a5f15faacf42f7383cd73129a http://git.openmoko.org/?p=kernel.git;a=commitdiff;h=4ef3bf9d0e7ffd1e70f24e47b7ede98258c8b8f4 for a quick cribsheet to get FIQ ISR working. - -Andy -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iEYEARECAAYFAkgVqooACgkQOjLpvpq7dMpSoACfYwXyaeggyRZj8qaHlrdhdIKM iJoAnAuhsT6pEcc0Yh66yHtJ4OR01cwP =FfqS -----END PGP SIGNATURE-----
