[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: [rtl] rt_com does not write



Hallo Bernd,
Last week I got a similiar behavior using a barcodescanner on my serial port
in conjunction with rt_com. I Inserted another printk to get a clue what was
happening (see code below). It turned out that sta was always something like
0x80 (which is defined as BUFFER_FULL in rt_comP.h). So I changed the
if-Statement to allow also 0x80 for this serial line. Kind of hacking, but
it works fine for those barcodescanners.

Anyone who has a better idea?


the printk statement in rt_com.c:

	do {
		/* get available data from port */
		sta =nb(B+RT_COM_LSR);
		while(sta & DATA_READY) {
			data =nb(B+RT_COM_RXB);
			rt_com_irq_put(p,data);
			sta =nb(B+RT_COM_LSR);
		};
		/* if possible, put data to port */

		sta =nb(B+RT_COM_MSR);
printk(KERN_INFO "sta=0x%0x\n", sta);
		if(sta & 0x20) {
			/* Data Set Ready */
---->		    printk(KERN_WARNING "mark 1\n");
			if( rt_com_irq_get( p, &data ) ) {
				/* data in output buffer */
/*******************************************************************/

1. I can receive via rt_com_read from the serial line but not write.
As far as I can see the irq handler comes never to the point of the
printk statement, but before the if statement two lines above.
What is wrong ?

2. After I've loaded and unloaded the above module, which is using the
rt_com driver, it isn't possible anymore to unload the rt_com driver and
I have to reboot.

Thanks,

Bernd Potzkai
bpotzkai@t-online.de
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail majordomo@rtlinux.cs.nmt.edu OR
echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.cs.nmt.edu
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

To: rtl@rtlinux.cs.nmt.edu


--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail majordomo@rtlinux.cs.nmt.edu OR
echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.cs.nmt.edu
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/