Re: serial flow control appears broken

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Paul Fulghum wrote:

Tilman Schmidt wrote:

Could this be related?

http://lkml.org/lkml/2007/7/18/245

Quote:
"I've recently found (using 2.6.21.4) that configuring a serial ports
(ST16654) which use the 8250 driver using setserial results in the
UART's FIFOs being disabled (unless you specify autoconfig)."


That would make sense.

Lee's error is a hardware FIFO overrun which could occur
if the FIFO is being disabled as described in your
link (by trying to set the uart type with setserial).


I'm not using setserial on this port, myself. If something in init is calling on setserial then I don't know about it.

That said, tests on the serial port from within the application show that xmit_fifo_size is set to 16 as it should be.

I wrote up a little test app:

   struct serial_struct serial;
   ioctl(modemFd, TIOCGSERIAL, &serial);
   printf("            type: %d\n", serial.type);
   printf("            line: %d\n", serial.line);
   printf("            line: %u\n", serial.port);
   printf("             irq: %d\n", serial.irq);
   printf("           flags: %d\n", serial.flags);
   printf("  xmit_fifo_size: %d\n", serial.xmit_fifo_size);
   printf("  custom_divisor: %d\n", serial.custom_divisor);
   printf("       baud_base: %d\n", serial.baud_base);
   printf("     close_delay: %u\n", serial.close_delay);
   printf("         io_type: 0x%X\n", serial.io_type);
   printf("reserved_char[0]: 0x%X\n", serial.reserved_char[0]);
   printf("            hub6: %d\n", serial.hub6);
   printf("    closing_wait: %u\n", serial.closing_wait);
   printf("   closing_wait2: %u\n", serial.closing_wait2);
   printf(" iomem_reg_shift: %u\n", serial.iomem_reg_shift);
   printf("       port_high: %u\n", serial.port_high);
   printf("     reserved[0]: %d\n", serial.reserved[0]);

Here's the output:

           type: 4
           line: 1
           line: 760
            irq: 3
          flags: 1358954688
 xmit_fifo_size: 16
 custom_divisor: 0
      baud_base: 115200
    close_delay: 500
        io_type: 0x0
reserved_char[0]: 0x0
           hub6: 0
   closing_wait: 30000
  closing_wait2: 0
iomem_reg_shift: 0
      port_high: 0
    reserved[0]: 0

Thanks,

Lee.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux