lkml.org 
[lkml]   [2005]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: uart_port structure in serial8250_port[i] doesn't have the port_type values
    From
    Date
    On Mon, 2005-08-15 at 17:11 +0100, Russell King wrote:
    > 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

    Thanks for your guidance. Here is the cat of /proc/tty/driver/serial:
    serinfo:1.0 driver revision:
    0: uart:16550A port:000003F8 irq:4 tx:11963 rx:0 RTS|DTR
    1: uart:16550A port:000002F8 irq:3 tx:11 rx:0
    2: uart:16550A port:00000898 irq:14 tx:0 rx:0
    3: uart:16550A port:00000890 irq:15 tx:0 rx:0

    >
    > 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.
    >


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

    \
     
     \ /
      Last update: 2005-08-15 18:36    [W:0.027 / U:0.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site