Commit Graph

196 Commits

Author SHA1 Message Date
Sylvain Munaut
d62de3aa8a [PATCH] ppc32/serial: Change mpc52xx_uart.c to use the Low Density Serial port major
Before this patch we were just using the "classic" /dev/ttySx devices.
However when another on the system is loaded that uses those (like drivers for
serial PCMCIA), that creates a conflict for the minors.  Therefore, we now use
/dev/ttyPSC[0:5] (note the 0-based numbering !) with some minors we've been
assigned in the "Low Density Serial port major"

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-06 08:33:30 -08:00
Sylvain Munaut
2d8179c0b7 [PATCH] ppc32/serial: Fix compiler errors with GCC 4.x in mpc52xx_uart.c
Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-06 08:33:30 -08:00
Dominik Brodowski
f8cfa618dc [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback
Unify the EVENT_CARD_INSERTION and "attach" callbacks to one unified
probe() callback. As all in-kernel drivers are changed to this new
callback, there will be no temporary backwards-compatibility. Inside a
probe() function, each driver _must_ set struct pcmcia_device
*p_dev->instance and instance->handle correctly.

With these patches, the basic driver interface for 16-bit PCMCIA drivers
now has the classic four callbacks known also from other buses:

        int (*probe)            (struct pcmcia_device *dev);
        void (*remove)          (struct pcmcia_device *dev);

        int (*suspend)          (struct pcmcia_device *dev);
        int (*resume)           (struct pcmcia_device *dev);

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
2006-01-06 00:03:24 +01:00
Dominik Brodowski
b463581154 [PATCH] pcmcia: remove dev_list from drivers
The linked list of devices managed by each PCMCIA driver is, in very most
cases, unused. Therefore, remove it from many drivers.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
2006-01-06 00:03:20 +01:00
Dominik Brodowski
cc3b4866be [PATCH] pcmcia: unify detach, REMOVAL_EVENT handlers into one remove callback
Unify the "detach" and REMOVAL_EVENT handlers to one "remove" function.
Old functionality is preserved, for the moment.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
2006-01-06 00:03:10 +01:00
Dominik Brodowski
98e4c28b7e [PATCH] pcmcia: new suspend core
Move the suspend and resume methods out of the event handler, and into
special functions. Also use these functions for pre- and post-reset, as
almost all drivers already do, and the remaining ones can easily be
converted.

Bugfix to include/pcmcia/ds.c
Signed-off-by: Andrew Morton <akpm@osdl.org>

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
2006-01-05 23:59:02 +01:00
Erik Hovland
f02aa3f9a3 [ARM] 3216/1: indent and typo in drivers/serial/pxa.c
Patch from Erik Hovland

This patch provides two changes. An indent is supplied for an if/else clause so that it is more readable. An acronym is incorrectly typed as UER when it should be IER.

Signed-off-by: Erik Hovland <erik@hovland.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-12-30 15:57:35 +00:00
Russell King
a710ce0858 [SERIAL] Fix AMBA PL011 sysrq character handling
We only want the received character without the status bits for
sysrq handling.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-12-27 11:10:34 +00:00
Adrian Bunk
0b57ee9e55 [SPARC]: introduce a SPARC Kconfig symbol
Introduce a Kconfig symbol SPARC that is defined on both the sparc and
sparc64 architectures.

This symbol makes some dependencies more readable.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-12-22 23:09:54 -08:00
Dave Jones
c2cd6d3c12 [SERIAL] 8250_pci: Remove redundant assignment, and mark fallthrough.
Signed-off-by: Dave Jones <davej@redhat.com>
2005-12-07 18:11:26 +00:00
Arjan van de Ven
cb3592be27 [SERIAL] mark several serial tables const
This patch marks a few serial data structures const, moving them to
.rodata where they won't false-share cachelines with things that get
written to.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-28 21:04:11 +00:00
Russell King
c889b89619 [SERIAL] imx: Fix missed platform_driver_unregister
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-21 17:05:21 +00:00
Linus Torvalds
8ee3f40267 Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-11-19 15:25:23 -08:00
Russell King
832f4ede79 [SERIAL] Remove unused variable in sa1100.c
Since the spinlock was removed from sa1100_start_tx(), the "flags"
variable becomes redundant.  Remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-19 11:26:17 +00:00
Russell King
b63d4f0fb8 [SERIAL] Fix status reporting with PL011 serial driver
The receiver status register reports latched error conditions, which
must be cleared by writing to it.  However, the data register reports
unlatched conditions which are associated with the current character.
Use the data register to interpret error status rather than the RSR.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-19 11:10:35 +00:00
Matthew Wilcox
305f5167f1 [PARISC] Make Serial MUX depend on a specific bus type.
Depend on GSC, not PARISC.  Machines without GSC don't have a MUX.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2005-11-18 16:17:50 -05:00
Ryan Bradetich
a137ce8536 [PARISC] Define port->timeout to fix a long msleep in mux.c
This commit is in response to a bug reported by Vesa on the irc channel
a couple of weeks ago.

The bug was that the console would apparently hang (not return) while
using the mux console.

The root cause of this bug is that bash (with readline support) makes a
call to the tcsetattr() glibc function with the argument TCSADRAIN.  This
causes the serial core in the kernel use the uart_wait_until_sent() to be
called. This function verifies the mux transmit queue is empty or calls the
msleep_interruptable() with a calculated timeout value that is dependant
upon the port->timeout variable.

The real problem here is that the port->timeout was not defined so it
was defaulted to 0 and the timeout calculation performs the following
calculation:

char_time = (port->timeout - HZ/50) / port->fifosize;

where char_time is an unsigned long. Since the serial Mux does not use
interrupts, the msleep_interruptable() function waits until the timeout
has been reached ... and when the port->timeout < HZ/50 this timeout will
be a long time. (I have validated that the console will eventually
return ... but it takes quite a while for this to happen).

This patch simply sets the port->timeout on the Mux to HZ/50 to avoid
this long timeout period.

Signed-off-by: Ryan Bradetich <rbrad@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2005-11-17 16:38:28 -05:00
Ryan Bradetich
92495c0ebc [PARISC] Compile fixups for serial/mux.c
This patch does the following:
* Fixes compiler warnings.
* Replaces a __raw_readl call with the existing macro.

Signed-off-by: Ryan Bradetich <rbrad@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2005-11-17 16:36:52 -05:00
Linus Torvalds
7f729ccff3 Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-11-13 18:17:21 -08:00
Kumar Gala
4c8d3d997e [PATCH] Update email address for Kumar
Changed jobs and the Freescale address is no longer valid.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-13 18:14:10 -08:00
Jeff Garzik
bca73e4bf8 [PATCH] move pm_register/etc. to CONFIG_PM_LEGACY, pm_legacy.h
Since few people need the support anymore, this moves the legacy
pm_xxx functions to CONFIG_PM_LEGACY, and include/linux/pm_legacy.h.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-13 18:14:10 -08:00
Russell King
ee31b33785 [SERIAL] Fix Bug 4900: S3 resume oops with irattach - Thinkpad A21m
If we fail to re-startup a serial port on resume, shut it down
immediately and mark it as an error condition.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-13 15:28:51 +00:00
Florin Malita
270c7a7215 [SERIAL] sa1100_start_tx spinlock recursion
The serial core aquires the port spinlock before calling
port->ops->start_tx(), so sa1100_start_tx() shouldn't try to lock it
again.

BUG: spinlock recursion on CPU#0, init/1
 lock: c0205f20, .magic: dead4ead, .owner: init/1, .owner_cpu: 0
[<c0022cdc>] (dump_stack+0x0/0x14) [<c00dc338>] (spin_bug+0x0/0xbc)
[<c00dc6b0>] (_raw_spin_lock+0x0/0x170)  r8 = 00000007  r7 = C02FE0070
[<c018a2a8>] (_spin_lock_irqsave+0x0/0x24)  r4 = C0205F20
[<c0112110>] (sa1100_start_tx+0x0/0x40)  r4 = C038C000
[<c010ee38>] (__uart_start+0x0/0x5c) [<c010ee94>] (uart_start+0x0/0x3
[<c010f1d0>] (uart_write+0x0/0xdc) [<c00fee34>] (write_chan+0x0/0x370

Signed-off-by: Florin Malita <fmalita@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 22:09:22 +00:00
Bjorn Helgaas
fa609435a6 [SERIAL] Claim Wacom tablet device on HP tc1100 tablet
Claim the WACF005 device.  This is the pen display pointing device on
the HP Compaq tc1100 Tablet PC.  More information about using this
device, including using it as an X pointer device:

    http://www.theory.bham.ac.uk/staff/schofield/linux/tc1100/

Christopher Kemp <ck231@cam.ac.uk> did the legwork of determining that
the WACF005 is really just a plain old UART and doing an initial ACPI
driver (before we had PNPACPI), and David Ludlow <dave@adsllc.com>
confirmed that PNPACPI + the attached patch is now sufficient:

    pnp: Device 00:05 activated.
    ttyS4 at I/O 0x300 (irq = 4) is a 16550A

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 22:06:31 +00:00
Andrey Volkov
38801e2e54 [SERIAL] Fix mpc52xx_uart.c
Fix copy-paste bug in mpc52xx_uart.c (pdev<->dev)

Signed-off-by: Andrey Volkov <avolkov@varma-el.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 22:04:06 +00:00
Ralf Baechle
46677736be [SERIAL] dz: Use CKSEG1ADDR to setup mappings.
Use physical addresses at the interface level, letting drivers remap
them as appropriate.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 22:00:27 +00:00
Ralf Baechle
fd8c597214 [SERIAL] dz: Nuke trailing whitespace
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 21:59:59 +00:00
Lennert Buytenhek
5c8c755ce5 [SERIAL] don't disable xscale serial ports after autoconfig
xscale-type UARTs have an extra bit (UUE) in the IER register that has
to be written as 1 to enable the UART.  At the end of autoconfig() in
drivers/serial/8250.c, the IER register is unconditionally written as
zero, which turns off the UART, and makes any subsequent printch() hang
the box.

Since other 8250-type UARTs don't have this enable bit and are thus
always 'enabled' in this sense, it can't hurt to enable xscale-type
serial ports all the time as well.  The attached patch changes the
autoconfig() exit path to see if the port has an UUE enable bit, and if
yes, to write UUE=1 instead of just putting a zero into IER, using the
same test as is used at the beginning of serial8250_console_write().

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-12 21:58:05 +00:00
Russell King
3ae5eaec1d [DRIVER MODEL] Convert platform drivers to use struct platform_driver
This allows us to eliminate the casts in the drivers, and eventually
remove the use of the device_driver function pointer methods for
platform device drivers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-11-09 22:32:44 +00:00
David S. Miller
483772469d [SUNSU]: Do not mark sunsu_console_setup() __init
Sets off buildcheck warnings.

Signed-off-by: David S. Miller <davem@davemloft.net>
2005-11-07 14:10:21 -08:00
Greg Ungerer
7f04d62b51 [PATCH] m68knommu: add 5208 ColdFire UART support to ColdFire serial driver
Add support for the Freescale 5208 processor UART's to the common
ColdFire serial port code.

Patch originally from Matt Waddel (from code originally written by
Mike Lavender).

Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 08:00:46 -08:00
Nishanth Aravamudan
3c76bc5bfd [PATCH] serial: fix-up schedule_timeout() usage
Use schedule_timeout_uninterruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:53:59 -08:00
Andrew Morton
78512ece14 [PATCH] serial console: touch NMI watchdog
Large console spews from IRQ or local_irq_disable() sections can cause the NMI
watchdog to go off.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:53:35 -08:00
Pantelis Antoniou
21c614a789 [SERIAL] Support Au1x00 8250 UARTs using the generic 8250 driver.
The offsets of the registers are in a different place, and
some parts cannot handle a full set of modem control signals.

Signed-off-by: Pantelis Antoniou <pantelis@embeddedalley.ocm>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-06 09:07:03 +00:00
Linus Torvalds
c8ebce6eeb Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-11-04 10:42:53 -08:00
Russell King
d56c524afa [PATCH] ARM: Reverted 2918/1: [update] Base port of Comdial MP1000 platfrom
No longer maintained
2005-11-04 17:28:34 +00:00
Ben Dooks
b2281abf11 [SERIAL] 8250_early.c passing 0 instead of NULL
Fix sparse warning about passing `0` to  simple_strtoul()

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 21:07:37 +00:00
Linus Torvalds
ec33b30910 Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-11-01 21:32:46 -08:00
Linus Torvalds
4fd5f8267d Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel
Manual #include fixups for clashes - there may be some unnecessary
2005-10-31 07:32:56 -08:00
Russell King
0cf669d5c5 [SERIAL] Arrange better identification of ports
Folk seem to get confused when they see two or more ttyS0 ports
appearing at boot time.  One comes from the legacy table, and
one from PNP.

Hence, display the bus ID of the device which supplied the port.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-10-31 11:42:22 +00:00
Linus Torvalds
ed28f96ac1 Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-10-30 17:48:37 -08:00
Carlos Sanchez
f7232056bf [PATCH] Added a Receive_Abort to the Marvell serial driver
Added a Receive_Abort to the Marvell serial driver

Fix occasional input overrun errors on Marvell serial driver

- If the Marvell serial driver is repeatedly started and then stopped it
  will occasionally report an input overrun error when started.

- Added a Receive_Abort to the Marvell serial driver to abort previously
  received receive errors when re-starting the receive

Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Carlos Sanchez <csanchez@mvista.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-30 17:37:25 -08:00
Pat Gefre
396dc44bca [PATCH] ioc4 serial support - mostly cleanup
Various small mods for the Altix ioc4 serial driver - mostly cleanup:
- remove UIF_INITIALIZED usage
- use the 'lock' from uart_port
- better multiple card support

Signed-off-by: Patrick Gefre <pfg@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-30 17:37:24 -08:00
Jayachandran C
a2436b22de [SERIAL] remove unneeded code from serial_core.c
This patch fixes an issue reported by Coverity in serial/serial_core.c

Error reported: Variable "&((info)->tty)->flags" tracked as NULL was passed to a
function that dereferences it.

The later statements in the function assumes 'info->tty != NULL', so this
check is not necessary.  Probably a 'BUG_ON(info->tty == NULL)' can be added.

Signed-off-by: Jayachandran C. <c.jayachandran at gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-10-30 23:26:16 +00:00
Russell King
8576762ff5 [DRIVER MODEL] Add missing driver_unregister to IMX serial driver
Fix the IMX serial driver to unregister its driver structure
when it is unloaded.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-30 16:33:11 +00:00
Russell King
d052d1beff Create platform_device.h to contain all the platform device details.
Convert everyone who uses platform_bus_type to include
linux/platform_device.h.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-29 19:07:23 +01:00
Linus Torvalds
84860bf064 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2005-10-28 13:09:47 -07:00
Greg KH
6fbfddcb52 Merge ../bleed-2.6 2005-10-28 10:13:16 -07:00
Linus Torvalds
8ed5759043 Merge branch 'forlinus' of git://parisc-linux.org/home/kyle/git/parisc-2.6 2005-10-28 10:08:46 -07:00
Russell King
9480e307cd [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks
In PM v1, all devices were called at SUSPEND_DISABLE level.  Then
all devices were called at SUSPEND_SAVE_STATE level, and finally
SUSPEND_POWER_DOWN level.  However, with PM v2, to maintain
compatibility for platform devices, I arranged for the PM v2
suspend/resume callbacks to call the old PM v1 suspend/resume
callbacks three times with each level in order so that existing
drivers continued to work.

Since this is obsolete infrastructure which is no longer necessary,
we can remove it.  Here's an (untested) patch to do exactly that.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-28 09:52:56 -07:00