Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 104791
b: refs/heads/master
c: 53baaaa
h: refs/heads/master
i:
  104789: f162bda
  104787: 52d6fbd
  104783: 187e66e
v: v3
  • Loading branch information
Linus Torvalds committed Jul 22, 2008
1 parent 85b991b commit 9757c93
Show file tree
Hide file tree
Showing 101 changed files with 9,031 additions and 7,929 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3f9787046ea37a26170dc4439efa21f8d23a9978
refs/heads/master: 53baaaa9682c230410a057263d1ce2922f43ddc4
8 changes: 3 additions & 5 deletions trunk/Documentation/specialix.txt
Original file line number Diff line number Diff line change
Expand Up @@ -270,8 +270,8 @@ The pinout of the connectors on the IO8+ is:
Hardware handshaking issues.
============================

The driver can be compiled in two different ways. The default
("Specialix DTR/RTS pin is RTS" is off) the pin behaves as DTR when
The driver can be told to operate in two different ways. The default
behaviour is specialix.sx_rtscts = 0 where the pin behaves as DTR when
hardware handshaking is off. It behaves as the RTS hardware
handshaking signal when hardware handshaking is selected.

Expand All @@ -280,7 +280,7 @@ cable will either be compatible with hardware handshaking or with
software handshaking. So switching on the fly is not really an
option.

I actually prefer to use the "Specialix DTR/RTS pin is RTS" option.
I actually prefer to use the "specialix.sx_rtscts=1" option.
This makes the DTR/RTS pin always an RTS pin, and ioctls to
change DTR are always ignored. I have a cable that is configured
for this.
Expand Down Expand Up @@ -379,7 +379,5 @@ it doesn't fit in your computer, bring back the card.
You have to WRITE to the address register to even
read-probe a CD186x register. Disable autodetection?
-- Specialix: any suggestions?
- Arbitrary baud rates are not implemented yet.
If you need this, bug me about it.


7 changes: 4 additions & 3 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -4047,9 +4047,10 @@ W: http://www.buzzard.org.uk/toshiba/
S: Maintained

TPM DEVICE DRIVER
P: Debora Velarde
P: Rajiv Andrade
M: tpmdd-devel@lists.sourceforge.net
P: Debora Velarde
M: debora@linux.vnet.ibm.com
P: Rajiv Andrade
M: srajiv@linux.vnet.ibm.com
W: http://tpmdd.sourceforge.net
P: Marcel Selhorst
M: tpm@selhorst.net
Expand Down
3 changes: 2 additions & 1 deletion trunk/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1148,7 +1148,8 @@ clean: archclean $(clean-dirs)
@find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \) \
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name 'Module.markers' \) \
-type f -print | xargs rm -f

# mrproper - Delete all generated files, including .config
Expand Down
10 changes: 0 additions & 10 deletions trunk/drivers/char/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -300,16 +300,6 @@ config SPECIALIX
and compile this driver as kernel loadable module which will be
called specialix.

config SPECIALIX_RTSCTS
bool "Specialix DTR/RTS pin is RTS"
depends on SPECIALIX
help
The Specialix IO8+ card can only support either RTS or DTR. If you
say N here, the driver will use the pin as "DTR" when the tty is in
software handshake mode. If you say Y here or hardware handshake is
on, it will always be RTS. Read the file
<file:Documentation/specialix.txt> for more information.

config SX
tristate "Specialix SX (and SI) card support"
depends on SERIAL_NONSTANDARD && (PCI || EISA || ISA)
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
FONTMAPFILE = cp437.uni

obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o
obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o

obj-$(CONFIG_LEGACY_PTYS) += pty.o
obj-$(CONFIG_UNIX98_PTYS) += pty.o
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/char/amiserial.c
Original file line number Diff line number Diff line change
Expand Up @@ -1248,7 +1248,7 @@ static int rs_tiocmset(struct tty_struct *tty, struct file *file,
/*
* rs_break() --- routine which turns the break handling on or off
*/
static void rs_break(struct tty_struct *tty, int break_state)
static int rs_break(struct tty_struct *tty, int break_state)
{
struct async_struct * info = (struct async_struct *)tty->driver_data;
unsigned long flags;
Expand All @@ -1263,6 +1263,7 @@ static void rs_break(struct tty_struct *tty, int break_state)
custom.adkcon = AC_UARTBRK;
mb();
local_irq_restore(flags);
return 0;
}


Expand Down
8 changes: 4 additions & 4 deletions trunk/drivers/char/cyclades.c
Original file line number Diff line number Diff line change
Expand Up @@ -3700,14 +3700,15 @@ cy_tiocmset(struct tty_struct *tty, struct file *file,
/*
* cy_break() --- routine which turns the break handling on or off
*/
static void cy_break(struct tty_struct *tty, int break_state)
static int cy_break(struct tty_struct *tty, int break_state)
{
struct cyclades_port *info = tty->driver_data;
struct cyclades_card *card;
unsigned long flags;
int retval = 0;

if (serial_paranoia_check(info, tty->name, "cy_break"))
return;
return -EINVAL;

card = info->card;

Expand Down Expand Up @@ -3736,8 +3737,6 @@ static void cy_break(struct tty_struct *tty, int break_state)
}
}
} else {
int retval;

if (break_state == -1) {
retval = cyz_issue_cmd(card,
info->line - card->first_line,
Expand All @@ -3758,6 +3757,7 @@ static void cy_break(struct tty_struct *tty, int break_state)
}
}
spin_unlock_irqrestore(&card->card_lock, flags);
return retval;
} /* cy_break */

static int get_mon_info(struct cyclades_port *info,
Expand Down
58 changes: 22 additions & 36 deletions trunk/drivers/char/epca.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,8 @@ static void pc_stop(struct tty_struct *);
static void pc_start(struct tty_struct *);
static void pc_throttle(struct tty_struct *tty);
static void pc_unthrottle(struct tty_struct *tty);
static void digi_send_break(struct channel *ch, int msec);
static int pc_send_break(struct tty_struct *tty, int msec);
static void setup_empty_event(struct tty_struct *tty, struct channel *ch);
static void epca_setup(char *, int *);

static int pc_write(struct tty_struct *, const unsigned char *, int);
static int pc_init(void);
Expand Down Expand Up @@ -1040,6 +1039,7 @@ static const struct tty_operations pc_ops = {
.throttle = pc_throttle,
.unthrottle = pc_unthrottle,
.hangup = pc_hangup,
.break_ctl = pc_send_break
};

static int info_open(struct tty_struct *tty, struct file *filp)
Expand Down Expand Up @@ -1132,7 +1132,7 @@ static int __init pc_init(void)
pc_driver->init_termios.c_lflag = 0;
pc_driver->init_termios.c_ispeed = 9600;
pc_driver->init_termios.c_ospeed = 9600;
pc_driver->flags = TTY_DRIVER_REAL_RAW;
pc_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_HARDWARE_BREAK;
tty_set_operations(pc_driver, &pc_ops);

pc_info->owner = THIS_MODULE;
Expand Down Expand Up @@ -2177,7 +2177,6 @@ static int pc_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg)
{
digiflow_t dflow;
int retval;
unsigned long flags;
unsigned int mflag, mstat;
unsigned char startc, stopc;
Expand All @@ -2189,37 +2188,7 @@ static int pc_ioctl(struct tty_struct *tty, struct file *file,
bc = ch->brdchan;
else
return -EINVAL;
/*
* For POSIX compliance we need to add more ioctls. See tty_ioctl.c in
* /usr/src/linux/drivers/char for a good example. In particular think
* about adding TCSETAF, TCSETAW, TCSETA, TCSETSF, TCSETSW, TCSETS.
*/
switch (cmd) {
case TCSBRK: /* SVID version: non-zero arg --> no break */
retval = tty_check_change(tty);
if (retval)
return retval;
/* Setup an event to indicate when the transmit
buffer empties */
spin_lock_irqsave(&epca_lock, flags);
setup_empty_event(tty, ch);
spin_unlock_irqrestore(&epca_lock, flags);
tty_wait_until_sent(tty, 0);
if (!arg)
digi_send_break(ch, HZ / 4); /* 1/4 second */
return 0;
case TCSBRKP: /* support for POSIX tcsendbreak() */
retval = tty_check_change(tty);
if (retval)
return retval;
/* Setup an event to indicate when the transmit buffer
empties */
spin_lock_irqsave(&epca_lock, flags);
setup_empty_event(tty, ch);
spin_unlock_irqrestore(&epca_lock, flags);
tty_wait_until_sent(tty, 0);
digi_send_break(ch, arg ? arg*(HZ/10) : HZ/4);
return 0;
case TIOCMODG:
mflag = pc_tiocmget(tty, file);
if (put_user(mflag, (unsigned long __user *)argp))
Expand Down Expand Up @@ -2505,10 +2474,14 @@ static void pc_unthrottle(struct tty_struct *tty)
}
}

static void digi_send_break(struct channel *ch, int msec)
static int pc_send_break(struct tty_struct *tty, int msec)
{
struct channel *ch = (struct channel *) tty->driver_data;
unsigned long flags;

if (msec == -1)
return -EOPNOTSUPP;

spin_lock_irqsave(&epca_lock, flags);
globalwinon(ch);
/*
Expand All @@ -2521,6 +2494,7 @@ static void digi_send_break(struct channel *ch, int msec)
fepcmd(ch, SENDBREAK, msec, 0, 10, 0);
memoff(ch);
spin_unlock_irqrestore(&epca_lock, flags);
return 0;
}

/* Caller MUST hold the lock */
Expand All @@ -2538,7 +2512,8 @@ static void setup_empty_event(struct tty_struct *tty, struct channel *ch)
memoff(ch);
}

static void epca_setup(char *str, int *ints)
#ifndef MODULE
static void __init epca_setup(char *str, int *ints)
{
struct board_info board;
int index, loop, last;
Expand Down Expand Up @@ -2792,6 +2767,17 @@ static void epca_setup(char *str, int *ints)
num_cards++;
}

static int __init epca_real_setup(char *str)
{
int ints[11];

epca_setup(get_options(str, 11, ints), ints);
return 1;
}

__setup("digiepca", epca_real_setup);
#endif

enum epic_board_types {
brd_xr = 0,
brd_xem,
Expand Down
5 changes: 3 additions & 2 deletions trunk/drivers/char/esp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1725,13 +1725,13 @@ static int esp_tiocmset(struct tty_struct *tty, struct file *file,
/*
* rs_break() --- routine which turns the break handling on or off
*/
static void esp_break(struct tty_struct *tty, int break_state)
static int esp_break(struct tty_struct *tty, int break_state)
{
struct esp_struct *info = tty->driver_data;
unsigned long flags;

if (serial_paranoia_check(info, tty->name, "esp_break"))
return;
return -EINVAL;

if (break_state == -1) {
spin_lock_irqsave(&info->lock, flags);
Expand All @@ -1747,6 +1747,7 @@ static void esp_break(struct tty_struct *tty, int break_state)
serial_out(info, UART_ESI_CMD2, 0x00);
spin_unlock_irqrestore(&info->lock, flags);
}
return 0;
}

static int rs_ioctl(struct tty_struct *tty, struct file *file,
Expand Down
30 changes: 9 additions & 21 deletions trunk/drivers/char/isicom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1181,21 +1181,25 @@ static int isicom_chars_in_buffer(struct tty_struct *tty)
}

/* ioctl et all */
static inline void isicom_send_break(struct isi_port *port,
unsigned long length)
static int isicom_send_break(struct tty_struct *tty, int length)
{
struct isi_port *port = tty->driver_data;
struct isi_board *card = port->card;
unsigned long base = card->base;

if (length == -1)
return -EOPNOTSUPP;

if (!lock_card(card))
return;
return -EINVAL;

outw(0x8000 | ((port->channel) << (card->shift_count)) | 0x3, base);
outw((length & 0xff) << 8 | 0x00, base);
outw((length & 0xff00), base);
InterruptTheCard(base);

unlock_card(card);
return 0;
}

static int isicom_tiocmget(struct tty_struct *tty, struct file *file)
Expand Down Expand Up @@ -1305,28 +1309,11 @@ static int isicom_ioctl(struct tty_struct *tty, struct file *filp,
{
struct isi_port *port = tty->driver_data;
void __user *argp = (void __user *)arg;
int retval;

if (isicom_paranoia_check(port, tty->name, "isicom_ioctl"))
return -ENODEV;

switch (cmd) {
case TCSBRK:
retval = tty_check_change(tty);
if (retval)
return retval;
tty_wait_until_sent(tty, 0);
if (!arg)
isicom_send_break(port, HZ/4);
return 0;

case TCSBRKP:
retval = tty_check_change(tty);
if (retval)
return retval;
tty_wait_until_sent(tty, 0);
isicom_send_break(port, arg ? arg * (HZ/10) : HZ/4);
return 0;
case TIOCGSERIAL:
return isicom_get_serial_info(port, argp);

Expand Down Expand Up @@ -1459,6 +1446,7 @@ static const struct tty_operations isicom_ops = {
.flush_buffer = isicom_flush_buffer,
.tiocmget = isicom_tiocmget,
.tiocmset = isicom_tiocmset,
.break_ctl = isicom_send_break,
};

static int __devinit reset_card(struct pci_dev *pdev,
Expand Down Expand Up @@ -1832,7 +1820,7 @@ static int __init isicom_init(void)
isicom_normal->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL |
CLOCAL;
isicom_normal->flags = TTY_DRIVER_REAL_RAW |
TTY_DRIVER_DYNAMIC_DEV;
TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_HARDWARE_BREAK;
tty_set_operations(isicom_normal, &isicom_ops);

retval = tty_register_driver(isicom_normal);
Expand Down
Loading

0 comments on commit 9757c93

Please sign in to comment.