"Bj�rn Mork" <[EMAIL PROTECTED]> writes:
> This made me think: Maybe it's just a problem with package assembly in
> the 8810? If so, is there any way to make Linux-IrDA behave like the
> Psion does? I have no problem believing that this is caused by a bug in
> the phone, but other IrDA-stacks are obviously able to avoid it...
> (he said, pushing for IrCOMM mode :-)
Well, I think your theory sounds interesting! I might actually try to fix
this. Takahides code would always try to fill frames before sending them
out, so that may be the reason why his code sometimes worked with the
8810.
The problem is really that the chat script sets the TTY into a mode which
makes it call *_flush_buffer(struct tty_struct *tty) after every character
(A <flush> T <flush> D <flush> ... etc). To me that sounds like I must send
out a single character in one frame, but we could always try to relax
it. You could try to comment out this code yourself and have a go:
>From ircomm_tty.c:
static void ircomm_tty_flush_buffer(struct tty_struct *tty)
{
struct ircomm_tty_cb *self = (struct ircomm_tty_cb *) tty->driver_data;
ASSERT(self != NULL, return;);
ASSERT(self->magic == IRCOMM_TTY_MAGIC, return;);
/*
* Let do_softint() do this to avoid race condition with
* do_softint() ;-)
*/
+#if 0
queue_task(&self->tqueue, &tq_immediate);
mark_bh(IMMEDIATE_BH);
+#endif
}
The IrCOMM layer may however still split the frames, but it's worth a try!
-- Dag
--
/ Dag Brattli | The Linux-IrDA Project /
// University of Tromsoe, Norway | Infrared communication for Linux //
/// http://www.cs.uit.no/~dagb | http://www.cs.uit.no/linux-irda/ ///
_______________________________________________
Linux-IrDA mailing list - [EMAIL PROTECTED]
http://www4.pasta.cs.UiT.No/mailman/listinfo/linux-irda