Linux Fan: Linux: ftdi_sio schreibt, obwohl nur gelesen werden soll?

Hallo an alle Linux-Cracks! :-)

Ich versuche derzeit auf einem Android-Smartphone, nennen wir es Handy B, mit angeschlossenem Hub eine serielle Kommunikation zum Laufen zu bringen. Die Kommunikation mit dem gleichen Eingabemodul erfolgt bislang bei einem alten, aber mittlerweile nicht mehr zu kaufenden Handy (Handy A) problemlos.
Bei beiden Handys wurde USB Host Support und OTG (on the go) in den Kernel einkompiliert. Außerdem wurde für beide Handys jeweils das Kernel-Modul ftdi_sio kompiliert, um dies später mit "insmod ftdi_sio.ko" bzw. "insmod ftdi_sio.ko debug" (für erweiterte Debug-Informationen) laden zu können.
Beide Handys laufen mit einem 2.6.32.x Kernel, den Source Code des Moduls findet ihr also hier.

Eine kleine Grafik, wie das ganze aussieht:

+-----------------------+    +-----------------+    +--------------+
| Handy (Modell A o. B) |----| USB Hub (Power) |----| Eingabemodul |
+-----------------------+    +-----------------+    +--------------+

Das Eingabemodul hat Tasten. Diese sollen vom Handy über FTDI ausgelesen werden - soweit die Vorgabe.

Meine erste Diagnose: Die Software funktioniert mit dem alten Handy A problemlos, jedoch mit dem neuen Handy B nur sporadisch. Das Problem konnte ich runterbrechen auf ein simples "cat /dev/ttyUSBx". Bei Handy A erfolgt zu jedem Drücken einer Taste des Eingabemoduls eine Ausgabe. Bei dem neuen jedoch passiert ab und zu nichts, und dann kommen plötzlich einige Ausgaben auf ein Mal. Nicht jedoch unbedingt die erwarteten.
Zunächst nahm ich an, dass die Baudrate eventuell nicht stimmt - was ich mit "stty -F /dev/ttyUSBx -a" allerdings ausschließen konnte. Auch die anderen Parameter sehen gleich aus.
Dann habe ich auf beiden Handys mit "rmmod ftdi_sio" das Modul entladen und erneut über "insmod ftdi_sio.ko debug" geladen. Sobald nun "cat /dev/ttyUSBx" ausgeführt wird füllt sich der Kernel-Log mit Debug-Informationen des Moduls.
Dabei ist mir folgendes aufgefallen:

  1. Auf Handy A werden nur Werte gelesen - die einzigen aufgerufenen Funktionen zur Laufzeit sind "ftdi_read_bulk_callback" und "ftdi_process_packet". Soweit wunderbar. (kmsg Auszug)
  2. Auf Handy B werden die Werte ebenfalls gelesen, und sie stehen auch im Kernel Log - jedoch wird kurz darauf mit "ftdi_write_room" und "ftdi_write" auf den Bus geschrieben. Und das, obwohl die Datei nur mit "cat /dev/ttyUSBx" ausgelesen werden soll. (kmsg Auszug)

Wie ist dies denn möglich? Ich dachte bislang, dass nur dann auf den FTDI geschrieben wird wenn ein Userspace-Programm dies veranlasst. Die Kernel-Logs zeigen mir aber das Gegenteil.

Wo muss ich nun weitersuchen, um dem Problem auf die Schliche zu kommen?
Ist es beispielsweise möglich, herauszufinden, wo die Aufrufe von "ftdi_write_room" und "ftdi_write" herkommen? Oder muss ich doch bei den stty-Optionen suchen? Oder vielleicht etwas ganz anderes?

Ich weiß, dass dies eine harte Nuss ist, aber ich bin mir fast sicher dass es irgendwo eine Kleinigkeit sein muss die ich irgendwo übersehen habe...

Vielen Dank und freundliche Grüße

Ein Linux Fan