aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
Commit message (Collapse)AuthorAge
* fs/char_dev.c: chrdev_open marked static and removed from fs.hDenis Cheng2008-02-08
| | | | | | | | There is an outdated comment in serial_core.c also fixed. Signed-off-by: Denis Cheng <crquan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: show tty name in /proc/interruptsHaavard Skinnemoen2008-02-08
| | | | | | | | | | | When possible, pass the tty name to request_irq() so that the user can easily distinguish the different serial ports in /proc/interrupts. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: use container_of instead of direct castHaavard Skinnemoen2008-02-08
| | | | | | | | | | | As pointed out by David Brownell, we really ought to be using container_of when converting from "struct uart_port *" to "struct atmel_uart_port *". Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: fix broken RX buffer allocationHaavard Skinnemoen2008-02-08
| | | | | | | | | | Introduced by atmel_serial-split-the-interrupt-handler.patch. Thanks to michael <trimarchi@gandalf.sssup.it> for spotting it. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: add DMA supportChip Coldwell2008-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is based on the DMA-patch by Chip Coldwell for the AT91/AT32 serial USARTS, with some tweaks to make it apply neatly on top of the other patches in this series. The RX and TX code has been moved to a tasklet and reworked a bit. Instead of depending on the ENDRX and TIMEOUT bits in CSR, we simply grab as much data as we can from the DMA buffers. I think this closes a race where the ENDRX bit is set after we read CSR but before we read RPR, although I haven't confirmed this. Similarly, the two TX handlers (ENDTX and TXBUFE) have been combined into one. Since the current code only uses a single TX buffer, there's no point in handling those interrupts separately. This also fixes a DMA sync bug in the original patch. [linux@bohmer.net: rebased onto irq-splitup patch] [hskinnemoen@atmel.com: moved to tasklet, fixed dma bug, misc cleanups] [hskinnemoen@atmel.com: atmel_serial dma: Misc fixes and cleanups] Signed-off-by: Remy Bohmer <linux@bohmer.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: split the interrupt handlerRemy Bohmer2008-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | Split up the interrupt handler of the serial port into a interrupt top-half and a tasklet. The goal is to get the interrupt top-half as short as possible to minimize latencies on interrupts. But the old code also does some calls in the interrupt handler that are not allowed on preempt-RT in IRQF_NODELAY context. This handler is executed in this context because of the interrupt sharing with the timer interrupt. The timer interrupt on Preempt-RT runs in IRQF_NODELAY context. The tasklet takes care of handling control status changes, pushing incoming characters to the tty layer, handling break and other errors. It also handles pushing TX data into the data register. Reading the complete receive queue is still done in the top-half because we never want to miss any incoming character. [hskinnemoen@atmel.com: misc cleanups and simplifications] Signed-off-by: Remy Bohmer <linux@bohmer.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: fix bugs in probe() error path and remove()Haavard Skinnemoen2008-02-08
| | | | | | | | | | | | | | When an error happens in probe(), the clocks should be disabled, but only if the port isn't already used as a console. In remove(), the port struct shouldn't be freed because it's defined statically. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: use existing console options only if BRG is runningHaavard Skinnemoen2008-02-08
| | | | | | | | | | | If BRGR is zero, the baud rate generator isn't running, so the boot loader can't have initialized the port. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: use cpu_relax() when busy-waitingHaavard Skinnemoen2008-02-08
| | | | | | | | | | | | Replace two instances of barrier() with cpu_relax() since that's the right thing to do when busy-waiting. This does not actually change anything since cpu_relax() is defined as barrier() on both ARM and AVR32. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* atmel_serial: clean up the codeRemy Bohmer2008-02-08
| | | | | | | | | | | | Clean up the atmel_serial driver to conform the coding rules. It contains no functional change. Signed-off-by: Remy Bohmer <linux@bohmer.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* serial_core: bring mostly into line with coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250: enable rate reporting via termiosAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* serial8250: coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250_pci: coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250_hub6: codding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250_hp300: coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250_gsc: coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* 8250_early: coding styleAlan Cox2008-02-08
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'for-2.6.25' of ↵Linus Torvalds2008-02-07
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc * 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (69 commits) [POWERPC] Add SPE registers to core dumps [POWERPC] Use regset code for compat PTRACE_*REGS* calls [POWERPC] Use generic compat_sys_ptrace [POWERPC] Use generic compat_ptrace_request [POWERPC] Use generic ptrace peekdata/pokedata [POWERPC] Use regset code for PTRACE_*REGS* requests [POWERPC] Switch to generic compat_binfmt_elf code [POWERPC] Switch to using user_regset-based core dumps [POWERPC] Add user_regset compat support [POWERPC] Add user_regset_view definitions [POWERPC] Use user_regset accessors for GPRs [POWERPC] ptrace accessors for special regs MSR and TRAP [POWERPC] Use user_regset accessors for SPE regs [POWERPC] Use user_regset accessors for altivec regs [POWERPC] Use user_regset accessors for FP regs [POWERPC] mpc52xx: fix compile error introduce when rebasing patch [POWERPC] 4xx: PCIe indirect DCR spinlock fix. [POWERPC] Add missing native dcr dcr_ind_lock spinlock [POWERPC] 4xx: Fix offset value on Warp board [POWERPC] 4xx: Add 440EPx Sequoia ehci dts entry ...
| * Merge branch 'for-2.6.25' of ↵Paul Mackerras2008-02-07
| |\ | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx
| | * Merge branch 'virtex-for-2.6.25' of ↵Josh Boyer2008-02-06
| | |\ | | | | | | | | | | | | git://git.secretlab.ca/git/linux-2.6-virtex into for-2.6.25
| | | * [POWERPC] Eliminate broken OF console initialization.Grant Likely2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Probing of the console at console_initcall time is broken. It tries to call memory allocation routines which aren't initialized yet. Problem solved by removing the early probe entirely. The console init is called again anyway after the uartlite device is initialized and the memory allocation routines can be called safely. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
| | | * [POWERPC] Xilinx: Update compatible to use values generated by BSP generator.Stephen Neuendorffer2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mainly, this involves two changes: 1) xilinx->xlnx (recognized standard is to use the stock ticker) 2) In order to have the device tree focus on describing what the hardware is as exactly as possible, the compatible strings contain the full IP name and IP version. Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
| | | * [POWERPC] Fix incorrectly tagged __devinitdata structuresGrant Likely2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix compile errors in the xilinxfb, xsysace and uartlite drivers used by the Xilinx Virtex platform Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
| * | | [POWERPC] mpc52xx: fix compile error introduce when rebasing patchGrant Likely2008-02-07
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | When rebasing one of the mpc5200 psc UART patches I made a mistake and damaged the patch. This patch fixes the compile failure introduced in commit 25ae3a0739c69425a911925b43213895a9802b98 Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
| * | Merge branch 'for-2.6.25' of git://git.secretlab.ca/git/linux-2.6-mpc52xx ↵Paul Mackerras2008-02-06
| |\ \ | | | | | | | | | | | | into for-2.6.25
| | * | [POWERPC] mpc512x: Add MPC512x PSC support to MPC52xx psc driverJohn Rigby2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add 512x support using the psc_ops framework established with the previous patch. All 512x PSCs share the same interrupt so add IRQF_SHARED to irq flags. Signed-off-by: John Rigby <jrigby@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
| | * | [POWERPC] mpc512x: Factor out 5200 dependencies from 52xx psc driverJohn Rigby2008-02-06
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | PSC devices are different between the mpc5200 and the mpc5121 this patch localizes the differences in preparation for adding mpc5121 support to the psc uart driver. Signed-off-by: John Rigby <jrigby@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* | | Char: char/serial, remove SERIAL_TYPE_NORMAL redefinesJiri Slaby2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz.c: Resource managementMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a set of changes to implement proper resource management in the driver, including iomem space reservation and operating on physical addresses ioremap()ped appropriately using accessory functions rather than unportable direct assignments. Some adjustments to code are made to reflect the architecture of the interface, which is a centrally controlled multiport (or, as referred to from DEC documentation, a serial line multiplexer, going up to 8 lines originally) rather than a bundle of separate ports. Types are changed, where applicable, to specify the width of hardware registers explicitly. The interrupt handler is now managed in the ->startup() and ->shutdown() calls for consistency with other drivers and also in preparation to handle the handover from the initial firmware-based console gracefully. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz.c: Use a helper to cast from "struct uart_port *"Maciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace all casts from "struct uart_port *" to "struct dz_port *" with a construct based on container_of(). This makes the conversion work irrespective of where the former struct is located within the latter. By popular request I have implemented it as an inline function rather than a macro this time. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: clean up and improve the setup of termios settingsMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A set of changes to the way termios settings are propagated to the serial port hardware. The DZ11 only supports a selection of fixed baud settings, so some requests may not be fulfilled. Keep the old setting in such a case and failing that resort to 9600bps. Also add a missing update of the transmit timeout. And remove the explicit encoding of the line selected from writes to the Line Parameters Register as it has been preencoded by the ->set_termios() call already. Finally, remove a duplicate macro for the Receiver Enable bit. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: handle special conditions on reception correctlyMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle the read and ignore status masks correctly. Handle the BREAK condition as expected: a framing error with a null character is a BREAK, any other framing error is a framing error indeed. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: fix locking issuesMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ->start_tx(), ->stop_tx() and ->stop_rx() backends are called with the port's lock already taken. Remove locking from within them and wrap around calls as necessary. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: rename the serial console structureMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the serial console structure so that `modpost' does not complain about a reference to an "init" section -- "_console" is magic. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: update kconfig descriptionMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reformat the Kconfig entries and update descriptions for accuracy. Select the driver by default for configurations of interest. For the curious: 32BIT means only 32-bit DECstations support the device, not that the driver is not 64-bit clean; I have not checked that either though. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: add and reorder inclusions, remove unneeded onesMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sort the header inclusions, add a few that are needed but pulled indirectly only and remove ones that are not really used. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: don't panic() when request_irq() failsMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Well, panic() is a little bit undue if request_irq() fails; there is probably no need to justify it any further. Handle the case gracefully, by unregistering the driver. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz: always check if it is safe to console_putchar()Maciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Polled transmission is tricky enough with the DZ11 design. While "loop" is set to a high value, conceptually you are not allowed to transmit without checking whether the device offers the right transmission line (yes, it is the device that selects the line -- the driver has no control over it other than disabling the transmitter offered if it is the wrong one), so the loop has to be run at least once. Well, the '1977 or PDP11 view of how serial lines should be handled... Except that the serial interface used to be quite an impressive board back then rather than chip. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | dz.h: remove useless unused module junkMaciej W. Rozycki2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove unused module function prototypes that would not even build if enabled. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | SC26XX: New serial driver for SC2681 uartsThomas Bogendoerfer2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New serial driver for SC2681/SC2691 uarts. Older SNI RM400 machines are using these chips for onboard serial ports. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Torben Mathiasen <device@lanana.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | serial: use SGI_HAS_ZILOG for IP22_ZILOG dependsThomas Bogendoerfer2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use SGI_HAS_ZILOG for IP22_ZILOG depends - remove IP22 from description, because the driver works on more than IP22 SGI machines Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Remove pointless casts from void pointersJeff Garzik2008-02-06
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly in and around irq handlers. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: "Luck Tony" <tony.luck@intel.com> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Dmitry Torokhov <dtor@mail.ru> Cc: Karsten Keil <kkeil@suse.de> Acked-by: "John W. Linville" <linville@tuxdriver.com> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: David Brownell <david-b@pacbell.net> Cc: "Antonino A. Daplas" <adaplas@pol.net> Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com> Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | m68knommu: use ARRAY_SIZE in ColdFire serial driverGreg Ungerer2008-02-05
| | | | | | | | | | | | | | | | Use ARRAY_SIZE macroto get maximum ports in ColdFire serial driver. Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | serial: MPSC: set baudrate when BRG divider is set.Mark A. Greer2008-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The clock to generate the desired baudrate with the MPSC is first divided by the Baud Rate Generator (BRG) and then by the MPSC itself. So, when the BRG divider is changed, the MPSC divider must also be changed to generate the correct baudrate. During MPSC initialization, the BRG divider is changed but the MPSC divider isn't changed until much later. This results in some printk's coming out garbled. To fix that, set the MPSC divider at the same time that the BRG divider is changed. Signed-off-by: Mark A. Greer <mgreer@mvista.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | serial: Coding styleAlan Cox2008-02-05
| | | | | | | | | | | | | | | | | | Coding style tweaks and printk levels. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | serial: speed setup failure reportingAlan Cox2008-02-05
| | | | | | | | | | | | | | | | | | | | Invalid speeds are forced to 9600. Update the code for this to encode new style baud rates properly. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | serial: avoid stalling suspend if serial port won't drainRussell King2008-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some ports seem to be unable to drain their transmitters on shut down. Such a problem can occur if the port is programmed for hardware imposed flow control, characters are in the FIFO but the CTS signal is inactive. Normally, this isn't a problem because most places where we wait for the transmitter to drain have a time-out. However, there is no timeout in the suspend path. Give a port 30ms to drain; this is an arbitary value chosen to avoid long delays if there are many such ports in the system, while giving a reasonable chance for a single port to drain. Should a port not drain within this timeout, issue a warning. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | serial: avoid waking up closed serial ports on resumeRussell King2008-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we boot, serial ports remain in low power mode until they're used either by userspace or for the kernel console. However, if you suspend the system, and then resume, all serial ports will be taken out of low power mode. This is bad news for embedded devices where this can mean higher power consumption. Only bring a serial port out of low power mode if the port is being used as the kernel console, or is in use by userspace. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | 8250.c: support specifying DW APB UARTs in device platform_dataWill Newton2008-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow the private_data field to be specified in platform_data for the standard 8250/16550 UART. This field is used by DW APB type UARTs and without this patch it's only possible to set this field when registering the port by hand. If private_data is not set then the driver will potentially oops with a NULL pointer dereference. Signed-off-by: Will Newton <will.newton@gmail.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>