1. 15 3月, 2012 1 次提交
  2. 14 3月, 2012 1 次提交
  3. 13 3月, 2012 1 次提交
  4. 10 3月, 2012 11 次提交
  5. 09 3月, 2012 7 次提交
    • F
      mpc5200b/uart: select more tolerant uart prescaler on low baudrates · e0955ace
      Frank Benkert 提交于
      In addition to the /32 prescaler, the MPC5200B supports a second
      baudrate prescaler /4 to reach higher baudrates.
      
      The current calculation (introduced with commit 0d1f22e4) in the kernel
      preferes this low prescaler as often as possible, but with some
      imprecise counterparts the communication on low baudrates fails.
      
      According a support-mail from freescale the low prescaler (/4) allows
      just 1% tolerance in bittiming in contrast to 4% of the high prescaler
      (/32).  The prescaler not only affects the baudrate-calculation, but
      also the sampling of the bits on the wire.
      
      With this patch, we use the slightly less precise, but higher tolerant
      prescaler calculation on low baudrates up to (and including) 115200 baud
      and the more precise calculation above.
      
      Tested on a custom MPC5200B board with "fsl,mpc5200b-psc-uart".
      
      Calculation Examples with prescaler (PS) 4 and 32 and divisor (DIV) on
      various baudrates. Real stands for the real baudrate generated and Diff
      for the differences between:
           50 Baud PS 32 DIV 0xa122 Real      50 Diff   0.00%
           75 Baud PS 32 DIV 0x6b6c Real      75 Diff   0.00%
          110 Baud PS 32 DIV 0x493e Real     110 Diff   0.00%
          134 Baud PS 32 DIV 0x3c20 Real     133 Diff   0.75%
          150 Baud PS 32 DIV 0x35b6 Real     150 Diff   0.00%
          200 Baud PS 32 DIV 0x2849 Real     199 Diff   0.50%
          300 Baud PS  4 DIV 0xd6d8 Real     300 Diff   0.00%
                   PS 32 DIV 0x1adb Real     300 Diff   0.00%
          600 Baud PS  4 DIV 0x6b6c Real     600 Diff   0.00%
                   PS 32 DIV 0x0d6e Real     599 Diff   0.17%
         1200 Baud PS  4 DIV 0x35b6 Real    1200 Diff   0.00%
                   PS 32 DIV 0x06b7 Real    1199 Diff   0.08%
         1800 Baud PS  4 DIV 0x23cf Real    1799 Diff   0.06%
                   PS 32 DIV 0x047a Real    1799 Diff   0.06%
         2400 Baud PS  4 DIV 0x1adb Real    2400 Diff   0.00%
                   PS 32 DIV 0x035b Real    2401 Diff - 0.04%
         4800 Baud PS  4 DIV 0x0d6e Real    4799 Diff   0.02%
                   PS 32 DIV 0x01ae Real    4796 Diff   0.08%
         9600 Baud PS  4 DIV 0x06b7 Real    9598 Diff   0.02%
                   PS 32 DIV 0x00d7 Real    9593 Diff   0.07%
        19200 Baud PS  4 DIV 0x035b Real   19208 Diff - 0.04%
                   PS 32 DIV 0x006b Real   19275 Diff - 0.39%
        38400 Baud PS  4 DIV 0x01ae Real   38372 Diff   0.07%
                   PS 32 DIV 0x0036 Real   38194 Diff   0.54%
        57600 Baud PS  4 DIV 0x011e Real   57692 Diff - 0.16%
                   PS 32 DIV 0x0024 Real   57291 Diff   0.54%
        76800 Baud PS  4 DIV 0x00d7 Real   76744 Diff   0.07%
                   PS 32 DIV 0x001b Real   76388 Diff   0.54%
       115200 Baud PS  4 DIV 0x008f Real  115384 Diff - 0.16%
                   PS 32 DIV 0x0012 Real  114583 Diff   0.54%
       153600 Baud PS  4 DIV 0x006b Real  154205 Diff - 0.39%
                   PS 32 DIV 0x000d Real  158653 Diff - 3.29%
       230400 Baud PS  4 DIV 0x0048 Real  229166 Diff   0.54%
                   PS 32 DIV 0x0009 Real  229166 Diff   0.54%
       307200 Baud PS  4 DIV 0x0036 Real  305555 Diff   0.54%
                   PS 32 DIV 0x0007 Real  294642 Diff   4.09%
       460800 Baud PS  4 DIV 0x0024 Real  458333 Diff   0.54%
                   PS 32 DIV 0x0005 Real  412500 Diff  10.48%
       500000 Baud PS  4 DIV 0x0021 Real  500000 Diff   0.00%
                   PS 32 DIV 0x0004 Real  515625 Diff - 3.13%
       576000 Baud PS  4 DIV 0x001d Real  568965 Diff   1.22%
                   PS 32 DIV 0x0004 Real  515625 Diff  10.48%
       614400 Baud PS  4 DIV 0x001b Real  611111 Diff   0.54%
                   PS 32 DIV 0x0003 Real  687500 Diff -11.90%
       921600 Baud PS  4 DIV 0x0012 Real  916666 Diff   0.54%
                   PS 32 DIV 0x0002 Real 1031250 Diff -11.90%
      1000000 Baud PS  4 DIV 0x0011 Real  970588 Diff   2.94%
                   PS 32 DIV 0x0002 Real 1031250 Diff - 3.13%
      1152000 Baud PS  4 DIV 0x000e Real 1178571 Diff - 2.31%
                   PS 32 DIV 0x0002 Real 1031250 Diff  10.48%
      1500000 Baud PS  4 DIV 0x000b Real 1500000 Diff   0.00%
                   PS 32 DIV 0x0001 Real 2062500 Diff -37.50%
      2000000 Baud PS  4 DIV 0x0008 Real 2062500 Diff - 3.13%
                   PS 32 DIV 0x0001 Real 2062500 Diff - 3.13%
      2500000 Baud PS  4 DIV 0x0007 Real 2357142 Diff   5.71%
                   PS 32 DIV 0x0001 Real 2062500 Diff  17.50%
      3000000 Baud PS  4 DIV 0x0006 Real 2750000 Diff   8.33%
                   PS 32 DIV 0x0001 Real 2062500 Diff  31.25%
      3500000 Baud PS  4 DIV 0x0005 Real 3300000 Diff   5.71%
                   PS 32 DIV 0x0001 Real 2062500 Diff  41.07%
      4000000 Baud PS  4 DIV 0x0004 Real 4125000 Diff - 3.13%
                   PS 32 DIV 0x0001 Real 2062500 Diff  48.44%
      Signed-off-by: NFrank Benkert <frank.benkert@avat.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e0955ace
    • J
      TTY: remove serialP.h inclusion from some files · 11ba8899
      Jiri Slaby 提交于
      All of them do not use the ugly interface defined in that header.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      11ba8899
    • J
      TTY: serial, include pci.h in m32r_sio · 8bc87dc9
      Jiri Slaby 提交于
      It uses pointers to pci_dev, but compiler complains it doesn't know
      it:
      In file included from .../m32r_sio.c:53:
      .../m32r_sio.h:21: warning: "struct pci_dev" declared inside parameter list
      .../m32r_sio.h:21: warning: its scope is only this definition or declaration, which is probably not what you want
      .../m32r_sio.h:22: warning: "struct pci_dev" declared inside parameter list
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8bc87dc9
    • J
      TTY: serial, use atomic_inc_return in ioc4_serial · 4da24056
      Jiri Slaby 提交于
      We want to know the value of the atomic variable in intr_connect after
      the increment. But atomic_inc doesn't, per definition, return the
      value.  It is just a pure coincidence that ia64 defines atomic_inc as
      atomic_inc_return.
      
      So fix this mistake by using atomic_inc_return properly.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4da24056
    • J
      TTY: remove unneeded tty->index checks · 410235fd
      Jiri Slaby 提交于
      Checking if tty->index is in bounds is not needed. The tty has the
      index set in the initial open. This is done in get_tty_driver. And it
      can be only in interval <0,driver->num).
      
      So remove the tests which check exactly this interval. Some are
      left untouched as they check against the current backing device count.
      (Leaving apart that the check is racy in most of the cases.)
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      410235fd
    • J
      TTY: remove re-assignments to tty_driver members · 2f16669d
      Jiri Slaby 提交于
      All num, magic and owner are set by alloc_tty_driver. No need to
      re-set them on each allocation site.
      
      pti driver sets something different to what it passes to
      alloc_tty_driver. It is not a bug, since we don't use the lines
      parameter in any way. Anyway this is fixed, and now we do the right
      thing.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Acked-by: NTilman Schmidt <tilman@imap.cc>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2f16669d
    • C
      tty: serial: OMAP: Fix oops due to NULL pdata in DT boot · a5f43138
      Cousson, Benoit 提交于
      The following commit: be4b0281
      (tty: serial: OMAP: block idle while the UART is transferring data in PIO mode),
      is introducing an oops if OMAP is booted using device tree blob because
      the pdata will not be initialized.
      
      Check if pdata is set before de-referencing it.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a5f43138
  6. 25 2月, 2012 4 次提交
  7. 11 2月, 2012 1 次提交
  8. 10 2月, 2012 8 次提交
  9. 09 2月, 2012 1 次提交
  10. 04 2月, 2012 1 次提交
    • C
      tty: fix a build failure on sparc · e7c9bba7
      Cong Wang 提交于
      On sparc, there is a build failure:
      
      drivers/tty/serial/8250/8250.c:48:21: error: suncore.h: No such file or directory
      drivers/tty/serial/8250/8250.c:3275: error: implicit declaration of function 'sunserial_register_minors'
      drivers/tty/serial/8250/8250.c:3305: error: implicit declaration of function 'sunserial_unregister_minors'
      
      this is due to commit 9bef3d41
      (serial: group all the 8250 related code together) moved these files
      into 8250/ subdirectory, but forgot to change the reference
      to drivers/tty/serial/suncore.h.
      
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e7c9bba7
  11. 03 2月, 2012 4 次提交