On Mon, Aug 15, 2005 at 10:56:38AM -0500, V. Ananda Krishnan wrote: > On Mon, 2005-08-15 at 15:52 +0100, Russell King wrote: > > On Mon, Aug 15, 2005 at 09:10:56AM -0500, V. Ananda Krishnan wrote: > > > The problem described here is related to the 8250_pci driver in > > > 2.6.12.3/2.6.12.4 kernels. When 8250_pci device driver detects a serial > > > port pci device and sets up the default setup (8250_pci.c), it tries to > > > find a match or unused port (serial8250_find_match_or_unused proc in in > > > 8250.c). > > > > > > This leads to the uart_match_port with one of the parameters as > > > serial8250_ports[i].port. During debugging, I noticed that the none of > > > elements of the serial8250_ports[i].port.type was having any port value. > > > > Every variable has a value. In this case, they start off as PORT_UNKNOWN > > as expected. > > > > > So the serial8250_register_port fails and the device driver module fails > > > to load. > > > > I don't follow you here - failure of this function is not dependent on > > port.type being PORT_UNKNOWN. > > Sorry for not being clear. When 8250_pci.c invokes the function > serial8250_register_port(&serial_port) at line 1736 (linux-2.6.12.4), I > am seeing the following values: number of ports in the pci device is 1, > and the port structure has io_type:2, iobase:0, membase:80005000 and > mapbase:d6000000. In turn, The serial8250_register_port procedure in > 8250.c calls the serial8250_find_match_or_unused(port) routine (line > 2439 in 8250.c of linux-2.6.12.4) which returns 0. Hence the > uart_add_one_port(&serial8250_reg, &uart->port) (line 2455 in 8250.c of > linux-2.6.12.4) codes are not touched and serial8250_register_port > returns -28 (-ENOSPC) to the register_port caller.
Please consider that the person you're trying to communicate with has intimate knowledge of the code in question, so adding such things like line numbers, filenames, and versions to your explaination just adds extra meaningless noise which just obfuscates the rest of your explaination. The problem with your explaination is that it doesn't really give me any idea what: * ports are already registered with the driver * the value of CONFIG_SERIAL_8250_NR_UARTS is You can provide all of this by providing the complete and entire contents of /proc/tty/driver/serial Without this, I can only conclude from your above description that all available 8250 ports are already associated with some hardware, and therefore the 8250 driver is working as designed. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - 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/