Tony & Dnell My only linux system is a 64 bit, so the failure below in the compile may not appear on a 32 bit system. Could you please check? There is the same failure with & without application of dnell's patch. The package is at http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/ the ltmodem-20100102.tar.gz MarvS /ltmodem-20100102$ sudo make echo > .ltmdmobj.o_.cmd make -C /lib/modules/3.2.0-32-generic/build M="/usr/src/modems/ltmodem/ltmodem-20100102" modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-32-generic' CC [M] /usr/src/modems/ltmodem/ltmodem-20100102/v8250.o CC [M] /usr/src/modems/ltmodem/ltmodem-20100102/ltdrv.o CC [M] /usr/src/modems/ltmodem/ltmodem-20100102/lib.o /usr/src/modems/ltmodem/ltmodem-20100102/lib.c: In function ‘memset’: /usr/src/modems/ltmodem/ltmodem-20100102/lib.c:14:2: error: implicit declaration of function ‘__memset’ [-Werror=implicit-function-declaration] /usr/src/modems/ltmodem/ltmodem-20100102/lib.c:14:2: warning: return makes pointer from integer without a cast [enabled by default] /usr/src/modems/ltmodem/ltmodem-20100102/lib.c: In function ‘Get_PCI_BASE_ADDRESS_IO_MASK’: /usr/src/modems/ltmodem/ltmodem-20100102/lib.c:111:2: warning: large integer implicitly truncated to unsigned type [-Woverflow] cc1: some warnings being treated as errors make[2]: *** [/usr/src/modems/ltmodem/ltmodem-20100102/lib.o] Error 1 make[1]: *** [_module_/usr/src/modems/ltmodem/ltmodem-20100102] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-32-generic' make: *** [modules] Error 2 On Wed, Nov 2, 2011 at 1:44 AM, dnell <dnell@xxxxxxx> wrote: > Hi to all. Some long time I use Lucent modem and ltmodem-* > packages with Linux. In common they work, but... When I had > compare the modem performance with Windows, it is significantly > better than with Linux. With both systems the modem report > nearly same "connection speed" (for example 48000 bits per > second), but the resulting speed of (tcp/ip) network transfers > with Linux are significantly less (for example, it is about 4 > KByte per second (what corresponds 3600 Kbit per second) but > usually ever less and about 3KB per second) than with Windows > (which are 5 KBytes per second and the better "responsiveness"). > I explore the problem and found the cause. It is (for now) in > open source v8250 module (but the problem are from long past > time). I think, that the driver and the module are really too > big, and ever the driver contains some surplus code and data... > In short, I correct the v8250.c file and the network performance > of my Linux system become significantly better. In common the > download speed as reported by the downloader go up about 1.5 > times. In other cases, I think as the modem compression take > significant effect, the speed go up ever more, about 3 - 4 > times. > > > For now, I use Linux 2.6.35 kernel and modified > ltmodem-20100102. The patch are here (the most of it are some my > comments, which may be yet some errorneous, but... :-) Excuse > me). There are one line of real code.
*** ltmodem-20100102/v8250.c Wed Feb 3 03:07:48 2010 --- ltmodem-20100102-qlmodif/v8250.c Sun Oct 23 01:07:07 2011 *************** *** 186,190 **** #endif unsigned char ch, lsr = *status; ! int max_count = 256; char flag; --- 186,190 ---- #endif unsigned char ch, lsr = *status; ! int max_count = 256; /* May be 512 or fifosize are better? -- QL */ char flag; *************** *** 268,272 **** } ! count = up->tx_loadsz; do { serial_out(up, UART_TX, xmit->buf[xmit->tail]); --- 268,272 ---- } ! count = up->tx_loadsz; /* simple 64 by strange way. -- QL */ do { serial_out(up, UART_TX, xmit->buf[xmit->tail]); *************** *** 858,861 **** --- 858,862 ---- uart->port.flags = vuart_config[uart->vtype].flags /*| UPF_BOOT_AUTOCONF*/; uart->vflags = conf->flags; + uart->tx_loadsz = vuart_config[uart->vtype].tx_loadsz; /* simple 64 by strange way. -- QL */ uart->host = host; *************** *** 864,868 **** uart->port.type = PORT_VUART; ! uart->port.fifosize = vuart_config[uart->vtype].fifo_size; ret = uart_add_one_port(&serial8250_reg, &uart->port); --- 865,869 ---- uart->port.type = PORT_VUART; ! uart->port.fifosize = vuart_config[uart->vtype].fifo_size; /* simple 512 by strange way. -- QL */ ret = uart_add_one_port(&serial8250_reg, &uart->port);