1. 20 9月, 2009 4 次提交
  2. 23 6月, 2009 1 次提交
  3. 11 6月, 2009 2 次提交
  4. 07 4月, 2009 2 次提交
  5. 21 2月, 2009 1 次提交
    • M
      8250: fix boot hang with serial console when using with Serial Over Lan port · b6adea33
      Mauro Carvalho Chehab 提交于
      Intel 8257x Ethernet boards have a feature called Serial Over Lan.
      
      This feature works by emulating a serial port, and it is detected by
      kernel as a normal 8250 port.  However, this emulation is not perfect, as
      also noticed on changeset 7500b1f6.
      
      Before this patch, the kernel were trying to check if the serial TX is
      capable of work using IRQ's.
      
      This were done with a code similar this:
      
              serial_outp(up, UART_IER, UART_IER_THRI);
              lsr = serial_in(up, UART_LSR);
              iir = serial_in(up, UART_IIR);
              serial_outp(up, UART_IER, 0);
      
              if (lsr & UART_LSR_TEMT && iir & UART_IIR_NO_INT)
      		up->bugs |= UART_BUG_TXEN;
      
      This works fine for other 8250 ports, but, on 8250-emulated SoL port, the
      chip is a little lazy to down UART_IIR_NO_INT at UART_IIR register.
      
      Due to that, UART_BUG_TXEN is sometimes enabled.  However, as TX IRQ keeps
      working, and the TX polling is now enabled, the driver miss-interprets the
      IRQ received later, hanging up the machine until a key is pressed at the
      serial console.
      
      This is the 6 version of this patch.  Previous versions were trying to
      introduce a large enough delay between serial_outp and serial_in(up,
      UART_IIR), but not taking forever.  However, the needed delay couldn't be
      safely determined.
      
      At the experimental tests, a delay of 1us solves most of the cases, but
      still hangs sometimes.  Increasing the delay to 5us was better, but still
      doesn't solve.  A very high delay of 50 ms seemed to work every time.
      
      However, poking around with delays and pray for it to be enough doesn't
      seem to be a good approach, even for a quirk.
      
      So, instead of playing with random large arbitrary delays, let's just
      disable UART_BUG_TXEN for all SoL ports.
      
      [akpm@linux-foundation.org: fix warnings]
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6adea33
  6. 08 1月, 2009 1 次提交
  7. 03 1月, 2009 4 次提交
  8. 16 12月, 2008 1 次提交
  9. 12 11月, 2008 1 次提交
  10. 14 10月, 2008 1 次提交
  11. 25 7月, 2008 1 次提交
  12. 21 7月, 2008 2 次提交
  13. 03 6月, 2008 1 次提交
    • A
      serial_core: uart_set_ldisc infrastructure · 64e9159f
      Alan Cox 提交于
      The tty layer provides a callback that is used when the line discipline
      is changed. Some hardware uses this to configure hardware specific
      features such as IrDA mode on serial ports. Unfortunately the serial
      layer does not provide this feature or pass it down to drivers.
      
      Blackfin used to hack around this by rewriting the tty ops, but those are
      now properly shared and const so the hack fails. Instead provide the
      proper operations.
      
      This change plus a follow up from the Blackfin guys is needed to avoid
      blackfin losing features in this release.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      64e9159f
  14. 30 4月, 2008 1 次提交
  15. 18 4月, 2008 1 次提交
  16. 14 2月, 2008 1 次提交
  17. 09 2月, 2008 1 次提交
  18. 30 11月, 2007 1 次提交
  19. 24 10月, 2007 1 次提交
  20. 17 10月, 2007 1 次提交
    • G
      wake up from a serial port · b3b708fa
      Guennadi Liakhovetski 提交于
      Enable wakeup from serial ports, make it run-time configurable over sysfs,
      e.g.,
      
      echo enabled > /sys/devices/platform/serial8250.0/tty/ttyS0/power/wakeup
      
      Requires
      
      # CONFIG_SYSFS_DEPRECATED is not set
      
      Following suggestions from Alan and Russell moved the may_wake_up checks
      to serial_core.c. This time actually tested - it does even work. Could
      someone, please, verify, that put_device after device_find_child is
      correct?
      
      Also would be nice to test with a Natsemi UART, that can wake up the system,
      if such systems exist.
      
      For this you just have to apply the patch below, issue the above "echo"
      command to one of your Natsemi port, suspend and resume your system, and
      verify that your Natsemi port still works.  If you are actually capable of
      waking up the system from that port, would be nice to test that as well.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b3b708fa
  21. 25 7月, 2007 1 次提交
  22. 18 7月, 2007 2 次提交
    • M
      zs: move to the serial subsystem · 8b4a4080
      Maciej W. Rozycki 提交于
      This is a reimplementation of the zs driver for the serial subsystem.  Any
      resemblance to the old driver is purely coincidential.  ;-) I do hope I got
      the handling of modem lines right -- better do not tackle me about the
      issue unless you feel too good...
      
      Any users of the old driver: please note the numbers of the serial lines
      have now been swapped, i.e.  ttyS0 <-> ttyS1 and ttyS2 <-> ttyS3.  It has
      to do with the modem lines mentioned above; basically the port A in a given
      chip has to be initialised before the port B if you want to use the latter
      as the serial console (which is usually the case), as operations on modem
      lines of the serial line associated with the port B access both ports (see
      the comment at the top of the driver for the details of wiring used).
      Please update your scripts.
      
      This is also the reason each SCC now requests an IRQ once only (as seen in
      "/proc/interrupts") -- the handler takes care of both ports at once as the
      line associated with the port B has to take status update interrupts from
      both ports (and yet the line of the port A takes its own for itself too).
      The old driver never got it right...
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8b4a4080
    • M
      sb1250-duart.c: SB1250 DUART serial support · b45d5279
      Maciej W. Rozycki 提交于
      This is a driver for the SB1250 DUART, a dual serial port implementation
      included in the Broadcom family of SOCs descending from the SiByte SB1250
      MIPS64 chip multiprocessor.  It is a new implementation replacing the
      old-fashioned driver currently present in the linux-mips.org tree.  It
      supports all the usual features one would expect from a(n asynchronous)
      serial driver, including modem line control (as far as hardware supports it
      -- there is edge detection logic missing from the DCD and RI lines and the
      driver does not implement polling of these lines at the moment), the serial
      console, BREAK transmission and reception, including the magic SysRq.  The
      receive FIFO threshold is not maintained though.
      
      The driver was tested with a SWARM board which uses a BCM1250 SOC (which is
      dual MIPS64 CMP) and has both ports of the single DUART implemented wired
      externally.  Both were tested.  Testing included using the ports as
      terminal lines at 1200bps (which is the ports minimum), 115200bps and a
      couple of random speeds inbetween.  The modem lines were verified to
      operate correctly.  No testing was performed with a use as a network
      interface, like with SLIP or PPP.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b45d5279
  23. 01 6月, 2007 1 次提交
  24. 12 5月, 2007 1 次提交
  25. 08 5月, 2007 4 次提交
    • B
      blackfin: serial driver · 194de561
      Bryan Wu 提交于
      This patch implements the driver necessary use the Analog Devices Blackfin
      processor's Serial Port.
      Signed-off-by: NBryan Wu <bryan.wu@analog.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      194de561
    • D
      serial: define FIXED_PORT flag for serial_core · abb4a239
      David Gibson 提交于
      At present, the serial core always allows setserial in userspace to change the
      port address, irq and base clock of any serial port.  That makes sense for
      legacy ISA ports, but not for (say) embedded ns16550 compatible serial ports
      at peculiar addresses.  In these cases, the kernel code configuring the ports
      must know exactly where they are, and their clocking arrangements (which can
      be unusual on embedded boards).  It doesn't make sense for userspace to change
      these settings.
      
      Therefore, this patch defines a UPF_FIXED_PORT flag for the uart_port
      structure.  If this flag is set when the serial port is configured, any
      attempts to alter the port's type, io address, irq or base clock with
      setserial are ignored.
      
      In addition this patch uses the new flag for on-chip serial ports probed in
      arch/powerpc/kernel/legacy_serial.c, and for other hard-wired serial ports
      probed by drivers/serial/of_serial.c.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      abb4a239
    • T
      RM9000 serial driver · bd71c182
      Thomas Koeller 提交于
      Add support for the integrated serial ports of the MIPS RM9122 processor
      and its relatives.
      
      The patch also does some whitespace cleanup.
      
      [akpm@linux-foundation.org: cleanups]
      Signed-off-by: NThomas Koeller <thomas.koeller@baslerweb.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bd71c182
    • M
      serial driver PMC MSP71xx · beab697a
      Marc St-Jean 提交于
      Serial driver patch for the PMC-Sierra MSP71xx devices.
      
      There are three different fixes:
      
      1 Fix for DesignWare APB THRE errata: In brief, this is a non-standard
        16550 in that the THRE interrupt will not re-assert itself simply by
        disabling and re-enabling the THRI bit in the IER, it is only re-enabled
        if a character is actually sent out.
      
        It appears that the "8250-uart-backup-timer.patch" in the "mm" tree
        also fixes it so we have dropped our initial workaround.  This patch now
        needs to be applied on top of that "mm" patch.
      
      2 Fix for Busy Detect on LCR write: The DesignWare APB UART has a feature
        which causes a new Busy Detect interrupt to be generated if it's busy
        when the LCR is written.  This fix saves the value of the LCR and
        rewrites it after clearing the interrupt.
      
      3 Workaround for interrupt/data concurrency issue: The SoC needs to
        ensure that writes that can cause interrupts to be cleared reach the UART
        before returning from the ISR.  This fix reads a non-destructive register
        on the UART so the read transaction completion ensures the previously
        queued write transaction has also completed.
      Signed-off-by: NMarc St-Jean <Marc_St-Jean@pmc-sierra.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      beab697a
  26. 15 2月, 2007 1 次提交
  27. 09 12月, 2006 1 次提交
    • A
      [PATCH] tty: switch to ktermios · 606d099c
      Alan Cox 提交于
      This is the grungy swap all the occurrences in the right places patch that
      goes with the updates.  At this point we have the same functionality as
      before (except that sgttyb() returns speeds not zero) and are ready to
      begin turning new stuff on providing nobody reports lots of bugs
      
      If you are a tty driver author converting an out of tree driver the only
      impact should be termios->ktermios name changes for the speed/property
      setting functions from your upper layers.
      
      If you are implementing your own TCGETS function before then your driver
      was broken already and its about to get a whole lot more painful for you so
      please fix it 8)
      
      Also fill in c_ispeed/ospeed on init for most devices, although the current
      code will do this for you anyway but I'd like eventually to lose that extra
      paranoia
      
      [akpm@osdl.org: bluetooth fix]
      [mp3@de.ibm.com: sclp fix]
      [mp3@de.ibm.com: warning fix for tty3270]
      [hugh@veritas.com: fix tty_ioctl powerpc build]
      [jdike@addtoit.com: uml: fix ->set_termios declaration]
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NMartin Peschke <mp3@de.ibm.com>
      Acked-by: NPeter Oberparleiter <oberpar@de.ibm.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      606d099c