* 2.4.50 - 8250_cs does NOT work @ 2002-10-02 10:57 DevilKin 2002-10-02 11:05 ` Russell King 2002-10-07 8:34 ` David Woodhouse 0 siblings, 2 replies; 6+ messages in thread From: DevilKin @ 2002-10-02 10:57 UTC (permalink / raw) To: linux-kernel; +Cc: Russell King Hello all, I'm trying to get my pcmcia modem to work, it's a product info: "Psion Dacom", "Gold Card Global 56K+Fax", "56K+Fax", "V8.25" manfid: 0x016c, 0x0005 function: 2 (serial) If i load the 8250_cs module, I get _nothing_ at all. No text in system logs, nothing. Modem doesn't respond under the old /dev/ttyS1, I've tried all other /dev/ttySx's to see if it hasn't been remapped. Unfortunately, no. Is there anything else I can try? I really need my modem back... It seems that the Config.help entry is wrong aswell. diff -Nru drivers/serial/Config.help.old drivers/serial/Config.help --- drivers/serial/Config.help.old Wed Oct 2 12:54:32 2002 +++ drivers/serial/Config.help Wed Oct 2 12:54:55 2002 @@ -56,7 +56,7 @@ This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called serial_cs.o. If you want to compile it as + The module will be called 8250_cs.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say N. DK -- "There is hopeful symbolism in the fact that flags do not wave in a vacuum." -- Arthur C. Clarke ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.4.50 - 8250_cs does NOT work 2002-10-02 10:57 2.4.50 - 8250_cs does NOT work DevilKin @ 2002-10-02 11:05 ` Russell King 2002-10-02 11:48 ` DevilKin 2002-10-07 8:34 ` David Woodhouse 1 sibling, 1 reply; 6+ messages in thread From: Russell King @ 2002-10-02 11:05 UTC (permalink / raw) To: DevilKin; +Cc: linux-kernel On Wed, Oct 02, 2002 at 12:57:42PM +0200, DevilKin wrote: > If i load the 8250_cs module, I get _nothing_ at all. No text in system logs, > nothing. Modem doesn't respond under the old /dev/ttyS1, I've tried all other > /dev/ttySx's to see if it hasn't been remapped. Unfortunately, no. > > Is there anything else I can try? I really need my modem back... Known problem. I've sent a fix to someone else for it but iirc they never came back. The following patch is completely untested - I'm still trying to get 2.5.40 to build at present. diff -ur orig/drivers/serial/8250.c linux/drivers/serial/8250.c --- orig/drivers/serial/8250.c Fri Aug 2 21:13:31 2002 +++ linux/drivers/serial/8250.c Sun Sep 29 10:37:49 2002 @@ -31,7 +31,8 @@ #include <linux/console.h> #include <linux/sysrq.h> #include <linux/serial_reg.h> -#include <linux/serialP.h> +#include <linux/circ_buf.h> +#include <linux/serial.h> #include <linux/delay.h> #include <asm/io.h> @@ -1560,21 +1561,22 @@ { struct uart_8250_port *up = (struct uart_8250_port *)port; struct resource *res = NULL, *res_rsa = NULL; - int ret = -EBUSY; + int ret = 0; - if (up->port.type == PORT_RSA) { - ret = serial8250_request_rsa_resource(up, &res_rsa); - if (ret) - return ret; - } + if (up->port.flags & UPF_RESOURCES) { + if (up->port.type == PORT_RSA) { + ret = serial8250_request_rsa_resource(up, &res_rsa); + if (ret) + return ret; + } - ret = serial8250_request_std_resource(up, &res); + ret = serial8250_request_std_resource(up, &res); + } /* * If we have a mapbase, then request that as well. */ - if (res != NULL && up->port.iotype == SERIAL_IO_MEM && - up->port.mapbase) { + if (ret == 0 && up->port.flags & UPF_IOREMAP) { int size = res->end - res->start + 1; up->port.membase = ioremap(up->port.mapbase, size); @@ -1610,13 +1612,17 @@ * Find the region that we can probe for. This in turn * tells us whether we can probe for the type of port. */ - ret = serial8250_request_std_resource(up, &res_std); - if (ret) - return; + if (up->port.flags & UPF_RESOURCES) { + ret = serial8250_request_std_resource(up, &res_std); + if (ret) + return; - ret = serial8250_request_rsa_resource(up, &res_rsa); - if (ret) + ret = serial8250_request_rsa_resource(up, &res_rsa); + if (ret) + probeflags &= ~PROBE_RSA; + } else { probeflags &= ~PROBE_RSA; + } if (flags & UART_CONFIG_TYPE) autoconfig(up, probeflags); @@ -1678,6 +1684,7 @@ static void __init serial8250_isa_init_ports(void) { + struct uart_8250_port *up; static int first = 1; int i; @@ -1685,13 +1692,21 @@ return; first = 0; - for (i = 0; i < ARRAY_SIZE(old_serial_port); i++) { - serial8250_ports[i].port.iobase = old_serial_port[i].port; - serial8250_ports[i].port.irq = irq_cannonicalize(old_serial_port[i].irq); - serial8250_ports[i].port.uartclk = old_serial_port[i].base_baud * 16; - serial8250_ports[i].port.flags = old_serial_port[i].flags; - serial8250_ports[i].port.hub6 = old_serial_port[i].hub6; - serial8250_ports[i].port.ops = &serial8250_pops; + for (i = 0, up = serial8250_ports; i < ARRAY_SIZE(old_serial_port); + i++, up++) { + up->port.iobase = old_serial_port[i].port; + up->port.irq = irq_cannonicalize(old_serial_port[i].irq); + up->port.uartclk = old_serial_port[i].baud_base * 16; + up->port.flags = old_serial_port[i].flags | + UPF_RESOURCES; + up->port.hub6 = old_serial_port[i].hub6; + up->port.membase = old_serial_port[i].iomem_base; + up->port.iotype = old_serial_port[i].io_type; + up->port.regshift = old_serial_port[i].iomem_reg_shift; + up->port.ops = &serial8250_pops; + + if (up->port.iotype == SERIAL_IO_MEM && up->port.mapbase) + up->port.flags |= UPF_IOREMAP; } } diff -ur orig/drivers/serial/8250.h linux/drivers/serial/8250.h --- orig/drivers/serial/8250.h Sat Jul 27 13:55:21 2002 +++ linux/drivers/serial/8250.h Sun Sep 29 10:37:32 2002 @@ -12,7 +12,7 @@ * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * $Id: 8250.h,v 1.8 2002/07/21 21:32:30 rmk Exp $ + * $Id: 8250.h,v 1.9 2002/07/27 12:42:16 rmk Exp $ */ #include <linux/config.h> @@ -30,11 +30,14 @@ struct old_serial_port { unsigned int uart; - unsigned int base_baud; + unsigned int baud_base; unsigned int port; unsigned int irq; unsigned int flags; unsigned char hub6; + unsigned char io_type; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; }; #undef SERIAL_DEBUG_PCI --- orig/include/linux/serial_core.h Sun Aug 11 12:29:31 2002 +++ linux/include/linux/serial_core.h Sun Sep 29 10:17:57 2002 @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: serial_core.h,v 1.49 2002/07/20 18:06:32 rmk Exp $ + * $Id: serial_core.h,v 1.53 2002/08/02 12:55:08 rmk Exp $ */ /* @@ -168,6 +168,8 @@ #define UPF_BUGGY_UART (1 << 14) #define UPF_AUTOPROBE (1 << 15) #define UPF_BOOT_AUTOCONF (1 << 28) +#define UPF_RESOURCES (1 << 30) +#define UPF_IOREMAP (1 << 31) #define UPF_FLAGS (0x7fff) #define UPF_USR_MASK (UPF_SPD_MASK|UPF_LOW_LATENCY) -- Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.4.50 - 8250_cs does NOT work 2002-10-02 11:05 ` Russell King @ 2002-10-02 11:48 ` DevilKin 2002-10-02 12:23 ` DevilKin 0 siblings, 1 reply; 6+ messages in thread From: DevilKin @ 2002-10-02 11:48 UTC (permalink / raw) To: Russell King; +Cc: linux-kernel On Wednesday 02 October 2002 13:05, Russell King wrote: > On Wed, Oct 02, 2002 at 12:57:42PM +0200, DevilKin wrote: > > If i load the 8250_cs module, I get _nothing_ at all. No text in system > > logs, nothing. Modem doesn't respond under the old /dev/ttyS1, I've tried > > all other /dev/ttySx's to see if it hasn't been remapped. Unfortunately, > > no. > > > > Is there anything else I can try? I really need my modem back... > > Known problem. I've sent a fix to someone else for it but iirc they > never came back. The following patch is completely untested - I'm > still trying to get 2.5.40 to build at present. > Had to manually apply it (for some weird reason it didn't work with patch), compiled it and got this compilation error: make[3]: Entering directory `/usr/src/linux-2.5/drivers/serial' gcc -Wp,-MD,./.core.o.d -D__KERNEL__ -I/usr/src/linux-2.5/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -I/usr/src/linux-2.5/arch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=core -DEXPORT_SYMTAB -c -o core.o core.c gcc -Wp,-MD,./.8250.o.d -D__KERNEL__ -I/usr/src/linux-2.5/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -I/usr/src/linux-2.5/arch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=8250 -DEXPORT_SYMTAB -c -o 8250.o 8250.c drivers/serial/8250.c: In function `serial8250_set_mctrl': drivers/serial/8250.c:1061: `ALPHA_KLUDGE_MCR' undeclared (first use in this function) drivers/serial/8250.c:1061: (Each undeclared identifier is reported only once drivers/serial/8250.c:1061: for each function it appears in.) drivers/serial/8250.c: In function `serial8250_isa_init_ports': drivers/serial/8250.c:1701: structure has no member named `io_type' gcc -Wp,-MD,./.8250_pci.o.d -D__KERNEL__ -I/usr/src/linux-2.5/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -I/usr/src/linux-2.5/arch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=8250_pci -c -o 8250_pci.o 8250_pci.c ld -m elf_i386 -r -o built-in.o core.o 8250.o 8250_pci.o ld: cannot open 8250.o: No such file or directory make[3]: *** [built-in.o] Error 1 make[3]: Leaving directory `/usr/src/linux-2.5/drivers/serial' make[2]: *** [serial] Error 2 make[2]: Leaving directory `/usr/src/linux-2.5/drivers' make[1]: *** [drivers] Error 2 make[1]: Leaving directory `/usr/src/linux-2.5' make: *** [bzImage] Error 2 So i guess it doesn't work... DK -- "... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -- Robert Firth ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.4.50 - 8250_cs does NOT work 2002-10-02 11:48 ` DevilKin @ 2002-10-02 12:23 ` DevilKin 0 siblings, 0 replies; 6+ messages in thread From: DevilKin @ 2002-10-02 12:23 UTC (permalink / raw) To: Russell King; +Cc: linux-kernel On Wednesday 02 October 2002 13:48, DevilKin wrote: > make[3]: Entering directory `/usr/src/linux-2.5/drivers/serial' > gcc -Wp,-MD,./.8250.o.d -D__KERNEL__ -I/usr/src/linux-2.5/include -Wall > -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer > -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 > -march=i686 -I/usr/src/linux-2.5/arch/i386/mach-generic -nostdinc > -iwithprefix include -DKBUILD_BASENAME=8250 -DEXPORT_SYMTAB -c -o > 8250.o 8250.c > drivers/serial/8250.c: In function `serial8250_set_mctrl': > drivers/serial/8250.c:1061: `ALPHA_KLUDGE_MCR' undeclared (first use in > this function) > drivers/serial/8250.c:1061: (Each undeclared identifier is reported only > once drivers/serial/8250.c:1061: for each function it appears in.) Fixed this one by re-introducing #include <linux/serialP.h> > drivers/serial/8250.c: In function `serial8250_isa_init_ports': > drivers/serial/8250.c:1701: structure has no member named `io_type' > gcc -Wp,-MD,./.8250_pci.o.d -D__KERNEL__ -I/usr/src/linux-2.5/include > -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer > -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 > -march=i686 -I/usr/src/linux-2.5/arch/i386/mach-generic -nostdinc > -iwithprefix include -DKBUILD_BASENAME=8250_pci -c -o 8250_pci.o > 8250_pci.c > ld -m elf_i386 -r -o built-in.o core.o 8250.o 8250_pci.o This one was my mistake... I'm happy to report that my modem now works as it should :-)) Thanks! DK ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.4.50 - 8250_cs does NOT work 2002-10-02 10:57 2.4.50 - 8250_cs does NOT work DevilKin 2002-10-02 11:05 ` Russell King @ 2002-10-07 8:34 ` David Woodhouse 2002-10-07 8:40 ` Russell King 1 sibling, 1 reply; 6+ messages in thread From: David Woodhouse @ 2002-10-07 8:34 UTC (permalink / raw) To: Russell King; +Cc: DevilKin, linux-kernel rmk@arm.linux.org.uk said: > > If i load the 8250_cs module, I get _nothing_ at all. No text in > > system logs, nothing. Modem doesn't respond under the old /dev/ttyS1, > > I've tried all other /dev/ttySx's to see if it hasn't been remapped. > > Unfortunately, no. > > > > Is there anything else I can try? I really need my modem back... > Known problem. I've sent a fix to someone else for it but iirc they > never came back. The following patch is completely untested - I'm > still trying to get 2.5.40 to build at present. Doesn't compile. ALPHA_KLUDGE_MCR undefined. That crap in the generic 8250 code should go away in favour of some mask bits set by the platform-specific code when it registers the ports. You probably want to set the default _and_ the permitted bits that way. -- dwmw2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.4.50 - 8250_cs does NOT work 2002-10-07 8:34 ` David Woodhouse @ 2002-10-07 8:40 ` Russell King 0 siblings, 0 replies; 6+ messages in thread From: Russell King @ 2002-10-07 8:40 UTC (permalink / raw) To: David Woodhouse; +Cc: DevilKin, linux-kernel On Mon, Oct 07, 2002 at 09:34:27AM +0100, David Woodhouse wrote: > Doesn't compile. ALPHA_KLUDGE_MCR undefined. That crap in the generic 8250 > code should go away in favour of some mask bits set by the platform-specific > code when it registers the ports. You probably want to set the default _and_ > the permitted bits that way. Oddly, thats what DevilKin reported. This isn't the patch I sent Linus. 8) -- Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-10-07 8:34 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2002-10-02 10:57 2.4.50 - 8250_cs does NOT work DevilKin 2002-10-02 11:05 ` Russell King 2002-10-02 11:48 ` DevilKin 2002-10-02 12:23 ` DevilKin 2002-10-07 8:34 ` David Woodhouse 2002-10-07 8:40 ` Russell King
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).