03 Jan, 2009

40 commits

  • Ben Herrenschmidt is taking over as the primary powerpc architecture
    maintainer. I'll still be around as his backup/deputy.

    Signed-off-by: Paul Mackerras
    Acked-by: Grant Likely
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • * i8k-updates:
    i8k: Add Dell Vostro systems
    i8k: Enable i8k on Dell Precision Systems

    Linus Torvalds
     
  • This trivial patch adds support for i8k on the new Dell Vostro models.
    I tested it on my Vostro 1400, and it works. It does print a warning
    when loading the module:

    i8k: unable to get SMM BIOS version

    But I couldn't figure out how to fix that. The module seems to work fine,
    anyway...

    Signed-off-by: Federico Heinz
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Federico Heinz
     
  • Patch to enable i8k on Dell Precisions.

    Signed-off-by: Andy Spencer
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andy Spencer
     
  • Signed-off-by: Ingo Brueckl
    Signed-off-by: Linus Torvalds

    Ingo Brueckl
     
  • * tty-updates: (75 commits)
    serial_8250: support for Sealevel Systems Model 7803 COMM+8
    hso maintainers update patch
    hso modem detect fix patch against Alan Cox'es tty tree
    tty: Fix an ircomm warning and note another bug
    drivers/char/cyclades.c: cy_pci_probe: fix error path
    Serial: UART driver changes for Cavium OCTEON.
    Serial: Allow port type to be specified when calling serial8250_register_port.
    8250: Serial driver changes to support future Cavium OCTEON serial patches.
    8250: Don't clobber spinlocks.
    fix for tty-serial-move-port
    tty: We want the port object to be persistent
    __FUNCTION__ is gcc-specific, use __func__
    serial: RS485 ioctl structure uses __u32 include linux/types.h
    tty: Drop the lock_kernel in the private ioctl hook
    synclink_cs: Convert to tty_port
    tty: use port methods for the rocket driver
    tty: kref the rocket driver
    tty: make rocketport use standard port->flags
    tty: Redo the rocket driver locking
    tty: Make epca use the port helpers
    ...

    Linus Torvalds
     
  • Add support for Sealevel Systems Model 7803 COMM+8

    Signed-off-by: Flavio Leitner
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Flavio Leitner
     
  • Added D.J. Barrow as maintainer of hso driver.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Fixed incorrect check for the modem port, this prevents
    crashes caused by issueing a tiocmget_submit_urb
    on endpoints which don't exist for non modem devices.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Roel Kluin noted that line is unsigned so one test is unneccessary. Also
    add a warning for another flaw I noticed while making this change.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We forgot to release resources in one case.

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12137

    Reported-by: Florian Lohoff
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Cavium UART implementation is not covered by existing uart_configS.
    Define a new uart_config (PORT_OCTEON) which is specified by OCTEON
    platform device registration code.

    Signed-off-by: Tomaso Paoletti
    Signed-off-by: David Daney
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • Add flag value UPF_FIXED_TYPE which specifies that the UART type is
    known and should not be probed. For this case the UARTs properties
    are just copied out of the uart_config entry.

    This allows us to keep SOC specific 8250 probe code out of 8250.c. In
    this case we know the serial hardware will not be changing as it is on
    the same silicon as the CPU, and we can specify it with certainty in
    the board/cpu setup code.

    The alternative is to load up 8250.c with a bunch of OCTEON specific
    special cases in the probing code.

    Signed-off-by: David Daney
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • In order to use Cavium OCTEON specific serial i/o drivers, we first
    patch the 8250 driver to use replaceable I/O functions. Compatible
    I/O functions are added for existing iotypeS.

    An added benefit of this change is that it makes it easy to factor
    some of the existing special cases out to board/SOC specific support
    code.

    The alternative is to load up 8250.c with a bunch of OCTEON specific
    iotype code and bug work-arounds.

    Signed-off-by: David Daney
    Signed-off-by: Tomaso Paoletti
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • In serial8250_isa_init_ports(), the port's lock is initialized. We
    should not overwrite it. In early_serial_setup(), only copy in the
    fields we need. Since the early console code only uses a subset of
    the fields, these are sufficient.

    Signed-off-by: David Daney
    Signed-off-by: Tomaso Paoletti
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Daney
     
  • Hi Alan

    next-20081204 crashes with the following message:

    BUG: unable to handle kernel paging request at ffff88007d320248
    IP: [] uart_remove_one_port+0xef/0x111
    kfree(info);
    393: 49 8d 7d 10 lea 0x10(%r13),%rdi
    397: e8 00 00 00 00 callq 39c

    Signed-off-by: Alexander Beregalov
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alexander Beregalov
     
  • Move the tty_port and uart_info bits around a little. By embedding the uart_info
    into the uart_port we get rid of lots of corner case testing and also get the
    ability to go portstateinfo which is a bit more elegant than the current
    data structures.

    Downsides - we allocate a tiny bit more memory for unused ports, upside we've
    removed as much code as it saved for most users..

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • In the commit below a new struct serial_rs485 was introduced for a new
    ioctl:

    commit c26c56c0f40e200e61d1390629c806f6adaffbcc
    Author: Alan Cox
    Date: Mon Oct 13 10:37:48 2008 +0100

    tty: Cris has a nice RS485 ioctl so we should steal it

    This structure uses the __u32 types for some of its members, which leads
    to the following compile error:

    $ cc -I.../include -c X.c
    In file included from X.c:2: .../include/linux/serial.h:185:
    error: expected specifier-qualifier-list before ‘__u32’
    $

    It seems that these types are appropriate for this structure as it is
    to be exposed to userspace. These types are available via linux/types.h
    so move the include of that outside the __KERNEL__ section.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • We don't need the BKL here any more so it can go. In a couple of spots the
    driver requirements are not clear so push the lock down into the driver.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Use the tty port operations, add refcounting, and refactor a bit to make the
    refcounting work cleanly.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Now we have our ducks in order we can begin switching to the port
    operations

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We will need this kref fitted to make full use of the port operations.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • We need to this ready for using the standard helpers

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Bring this driver into the port locking model

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Now the locking is straight and the port kref usage is straight we can
    replace lots of chunks of code with the standard port helpers

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Bring epca into line with the port locking.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Makes TIOCM ioctls for Data Carrier Detect & related functions
    work like /drivers/serial/serial-core.c potentially needed
    for pppd & similar user programs.

    Signed-off-by: Denis Joseph Barrow
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Denis Joseph Barrow
     
  • Init the tty structure once
    Don't set ->low_latency twice in a row
    Don't force bits we should be leaving to the user
    Don't allocate termios arrays as these are in fact allocated by the tty layer
    for you and just overwrite the ones allocated in the driver

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Checking tty == NULL doesn't help us unless we have a clear semantic for
    the locking of the tty object in the driver. Use the tty kref objects so that
    we can take references to the tty in the USB event handling paths.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Update the nozomi driver to use krefs

    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • disc_data and driver_data are void *

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The write wakeup is done anyway for the poll while DO_WRITE_WAKUP is
    cleared, set and managed by the ldisc layer and is no business of the pty
    code.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The N_TTY ldisc layer does not send SIGIO POLL_OUTs correctly when output is
    possible due to flawed handling of the TTY_DO_WRITE_WAKEUP bit. It will
    either send no SIGIOs at all or on every tty wakeup.

    The fix is to set the bit when the tty driver write would block and test
    and clear it on write wakeup.

    [Merged with existing N_TTY patches and a small buglet fixed -- Alan]

    Signed-off-by: Thomas Pfaff
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Thomas Pfaff
     
  • The underlying problem is that the device methods don't all correctly
    handle disconnected status and some keep reporting bytes pending which
    causes tcdrain to stall.

    When the cable is unplugged they are definitely gone, and as this is true
    for all USB cables we can fix it in the core usb serial code.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The PCI-card identified as "Oxford Semiconductor Ltd EXSYS EX-41092 Dual
    16950 Serial adapter" is only usable with other devices (i.e. not the same
    card) after doing a "setserial /dev/ttyS baud_base 115200". This
    baud_base should be default for this card.

    Signed-off-by: Niels de Vos
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Niels de Vos
     
  • Again this is a lot of common code we can unify

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If we have no speed set at some point then we should not raise DTR/RTS at
    that point when opening as the tty is not ready

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Mark it broken

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox