home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / os / linux / 6589 < prev    next >
Encoding:
Text File  |  1992-07-23  |  2.4 KB  |  74 lines

  1. Newsgroups: comp.os.linux
  2. Path: sparky!uunet!ivgate!beeble!tdavis
  3. From: tdavis@beeble.omahug.org (Thomas Davis)
  4. Subject: Re: Help with modem problems under .96c+pl2
  5. References: <1992Jul20.185927.1@acad2.alaska.edu>
  6. Organization: Beeble Planning Commission
  7. Date: Thu, 23 Jul 1992 04:41:37 GMT
  8. X-Newsreader: Tin 1.1 PL4
  9. Message-ID: <BrtrpD.21@beeble.omahug.org>
  10. Lines: 62
  11.  
  12. axlas@acad2.alaska.edu (Leif A Sawyer) writes:
  13. : After I upgraded to .96c+ (no patches) I noticed a problem using my modem.
  14. : It seemed to buffer about 14 characters and then send them to the console all
  15. : at once, then pause and repeat.  This made dialing in to rn annoying.  It
  16. : also made file transferring impossible.  So, when pl1 and pl2 came out, I
  17. : snarfed them, by loading up Telix under messy-dos.  Mtools sure came in handy
  18. : after I figured out to delete the drive configuration from the mtools config
  19. : file so the disks would be auto-detected. ( I love not having a printer. it
  20. : makes documents pert-near useless..)
  21.  
  22. This should fix it;  I've added code to set the size of the fifo based
  23. on the serial speed.  It's also fixed the problem of AMI BIOS's not 
  24. recognizing the serial port on reboots (and possibly, some DOS programs
  25. too..
  26.  
  27. Tom D.
  28. ---------------- cut here --------------------
  29. *** linux/kernel/chr_drv/serial.c    Sun Jul 19 01:07:55 1992
  30. --- linux.work/kernel/chr_drv/serial.c    Wed Jul 22 22:46:41 1992
  31. ***************
  32. *** 296,301 ****
  33. --- 296,303 ----
  34.       if (!info->port)
  35.           return;
  36.       outb(0x00,info->port+4);    /* reset DTR, RTS, */
  37. +     if (info->type == PORT_16550A)
  38. +         outb(0x06, info->port+2);
  39.       irq = info->irq;
  40.       if (irq == 2)
  41.           irq = 9;
  42. ***************
  43. *** 329,334 ****
  44. --- 333,344 ----
  45.           64, 48, 24, 12, 6, 3
  46.       };
  47.   
  48. +     static unsigned short fifosize[] = {
  49. +         0, 0, 0, 0, 0,
  50. +         0, 0, 0, 0, 0,
  51. +         0, 0, 1, 2, 3, 3
  52. +     };
  53.       if (line >= NR_SERIALS)
  54.           return;
  55.       info = serial_table + line;
  56. ***************
  57. *** 351,356 ****
  58. --- 361,368 ----
  59.       outb_p(cval | 0x80,port+3);    /* set DLAB */
  60.       outb_p(quot & 0xff,port);    /* LS of divisor */
  61.       outb_p(quot >> 8,port+1);    /* MS of divisor */
  62. +     if (info->type == PORT_16550A)
  63. +         outb(0x06 || (fifosize[cflag & CBAUD] << 6), port+2);
  64.       outb(cval,port+3);        /* reset DLAB */
  65.       sti();
  66.   }
  67. -- 
  68. Tom Davis, Omaha, NE                  | Internet: tdavis@beeble.omahug.org
  69. CNE, Network Engineer                 | UUCP:     uunet!ivgate!beeble!tdavis
  70.  
  71.