1. 18 6月, 2013 1 次提交
    • M
      serial/mpc52xx_uart: fix kernel panic when system reboot · 8a29dfb8
      Matteo Facchinetti 提交于
      This bug appear when a second PSC based driver appends an interrupt
      routine to the FIFO controller shared interrupt (like spi-mpc512x-psc).
      When reboot, uart_shutdown() remove the serial console interrupt handler
      while spi-mpc512x-psc isr is still activate and cause the following kernel
      panic:
      
      The system is going down for reboot NOW!rpc (ttyPSC0) (Mon Jun 10 12:26:07 20
      INIT: Sending processirq 40: nobody cared (try booting with the "irqpoll" option)
      CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.0-rc4-next-20130607-00001-ga0bceb3-dirty #5
      Call Trace:
      [cfff9f00] [c0007910] show_stack+0x48/0x150 (unreliable)
      [cfff9f40] [c005ae60] __report_bad_irq.isra.6+0x34/0xe0
      [cfff9f60] [c005b194] note_interrupt+0x214/0x26c
      [cfff9f90] [c00590fc] handle_irq_event_percpu+0xd0/0x1bc
      [cfff9fd0] [c005921c] handle_irq_event+0x34/0x54
      [cfff9fe0] [c005b8f4] handle_level_irq+0x90/0xf4
      [cfff9ff0] [c000cb98] call_handle_irq+0x18/0x28
      [c050dd60] [c000575c] do_IRQ+0xcc/0x124
      [c050dd90] [c000eb04] ret_from_except+0x0/0x14
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8a29dfb8
  2. 04 6月, 2013 3 次提交
  3. 21 5月, 2013 2 次提交
  4. 12 3月, 2013 1 次提交
    • A
      tty: serial: mpc5xxx: fix PSC clock name bug · 09081e5b
      Anatolij Gustschin 提交于
      mpc512x platform clock code names PSC clocks as "pscX_mclk" but
      the driver tries to get "pscX_clk" clock and this results in
      errors like:
      
        mpc52xx-psc-uart 80011700.psc: Failed to get PSC clock entry!
      
      The problem appears when opening ttyPSC devices other than the
      system's serial console. Since getting and enabling the PSC clock
      fails, uart port startup doesn't succeed and tty flag TTY_IO_ERROR
      remains set causing further errors in tty ioctls, i.e.
      'strace stty -F /dev/ttyPSC1' shows:
      
      open("/dev/ttyPSC1", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 3
      dup2(3, 0)                              = 0
      close(3)                                = 0
      fcntl64(0, F_GETFL)                     = 0x10800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE)
      fcntl64(0, F_SETFL, O_RDONLY|O_LARGEFILE) = 0
      ioctl(0, TCGETS, 0xbff89038)            = -1 EIO (Input/output error)
      
      Only request PSC clock names that the platform actually provides.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      09081e5b
  5. 16 1月, 2013 2 次提交
    • J
      TTY: switch tty_flip_buffer_push · 2e124b4a
      Jiri Slaby 提交于
      Now, we start converting tty buffer functions to actually use
      tty_port. This will allow us to get rid of the need of tty in many
      call sites. Only tty_port will needed and hence no more
      tty_port_tty_get in those paths.
      
      Now, the one where most of tty_port_tty_get gets removed:
      tty_flip_buffer_push.
      
      IOW we also closed all the races in drivers not using tty_port_tty_get
      at all yet.
      
      Also we move tty_flip_buffer_push declaration from include/linux/tty.h
      to include/linux/tty_flip.h to all others while we are changing it
      anyway.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2e124b4a
    • J
      TTY: switch tty_insert_flip_char · 92a19f9c
      Jiri Slaby 提交于
      Now, we start converting tty buffer functions to actually use
      tty_port. This will allow us to get rid of the need of tty in many
      call sites. Only tty_port will needed and hence no more
      tty_port_tty_get in those paths.
      
      tty_insert_flip_char is the next one to proceed. This one is used all
      over the code, so the patch is huge.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      92a19f9c
  6. 22 11月, 2012 1 次提交
  7. 11 9月, 2012 1 次提交
  8. 06 9月, 2012 1 次提交
  9. 09 3月, 2012 1 次提交
    • 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
  10. 27 1月, 2012 1 次提交
    • A
      serial: Kill off NO_IRQ · d4e33fac
      Alan Cox 提交于
      We transform the offenders into a test of irq <= 0 which will be ok while
      the ARM people get their platform sorted. Once that is done (or in a while
      if they don't do it anyway) then we will change them all to !irq checks.
      
      For arch specific drivers that are already using NO_IRQ = 0 we just test
      against zero so we don't need to re-review them later.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d4e33fac
  11. 23 9月, 2011 2 次提交
  12. 01 3月, 2011 1 次提交
  13. 14 1月, 2011 1 次提交
    • G
      tty: move drivers/serial/ to drivers/tty/serial/ · ab4382d2
      Greg Kroah-Hartman 提交于
      The serial drivers are really just tty drivers, so move them to
      drivers/tty/ to make things a bit neater overall.
      
      This is part of the tty/serial driver movement proceedure as proposed by
      Arnd Bergmann and approved by everyone involved a number of months ago.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Rogier Wolff <R.E.Wolff@bitwizard.nl>
      Cc: Michael H. Warfield <mhw@wittsend.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ab4382d2
  14. 17 11月, 2010 1 次提交
  15. 09 9月, 2010 1 次提交
  16. 06 8月, 2010 1 次提交
  17. 25 7月, 2010 1 次提交
  18. 25 5月, 2010 1 次提交
  19. 22 5月, 2010 1 次提交
    • G
      of: Remove duplicate fields from of_platform_driver · 4018294b
      Grant Likely 提交于
      .name, .match_table and .owner are duplicated in both of_platform_driver
      and device_driver.  This patch is a removes the extra copies from struct
      of_platform_driver and converts all users to the device_driver members.
      
      This patch is a pretty mechanical change.  The usage model doesn't change
      and if any drivers have been missed, or if anything has been fixed up
      incorrectly, then it will fail with a compile time error, and the fixup
      will be trivial.  This patch looks big and scary because it touches so
      many files, but it should be pretty safe.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Acked-by: NSean MacLennan <smaclennan@pikatech.com>
      4018294b
  20. 19 5月, 2010 1 次提交
  21. 14 5月, 2010 1 次提交
  22. 28 4月, 2010 1 次提交
  23. 17 2月, 2010 1 次提交
  24. 15 10月, 2009 1 次提交
  25. 20 9月, 2009 1 次提交
  26. 17 6月, 2009 1 次提交
  27. 29 5月, 2009 1 次提交
  28. 05 2月, 2009 1 次提交
  29. 04 2月, 2009 1 次提交
    • G
      powerpc/5200: Stop using device_type and port-number properties · 3b5ebf8e
      Grant Likely 提交于
      There is no reason for the PSC UART driver or the Ethernet driver
      to require a device_type property.  The compatible value is sufficient
      to uniquely identify the device.  Remove it from the driver.
      
      The whole 'port-number' scheme for assigning numbers to PSC uarts was
      always rather half baked and just adds complexity.  Remove it from the
      driver.  After this patch is applied, PSC UART numbers are simply
      assigned from the order they are found in the device tree (just like
      all the other devices).  Userspace can query sysfs to determine what
      ttyPSC number is assigned to each PSC instance.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Reviewed-by: NWolfram Sang <w.sang@pengutronix.de>
      3b5ebf8e
  30. 21 12月, 2008 3 次提交
  31. 06 12月, 2008 1 次提交
  32. 25 9月, 2008 1 次提交
  33. 21 7月, 2008 1 次提交