diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2008-04-30 03:54:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:29:45 -0400 |
commit | 9e7c9a19c1df8a7450c56c41b9c7405eca7eda07 (patch) | |
tree | 8fd3e57dad8f05c7e43969d391bfd33a31738f27 /drivers/s390 | |
parent | 978e595f88a1fba5869aa42a4af4fba36f33ecac (diff) |
s390 tty: Prepare for put_char to return success/fail
Put the changes into the drivers first. This will still compile/work but
produce a warning if bisected so can still be debugged
Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/char/con3215.c | 5 | ||||
-rw-r--r-- | drivers/s390/char/sclp_tty.c | 4 | ||||
-rw-r--r-- | drivers/s390/char/sclp_vt220.c | 6 | ||||
-rw-r--r-- | drivers/s390/char/tty3270.c | 3 |
4 files changed, 12 insertions, 6 deletions
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 0e1f35c9ed9..3e5653c92f4 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -982,15 +982,16 @@ tty3215_write(struct tty_struct * tty, | |||
982 | /* | 982 | /* |
983 | * Put character routine for 3215 ttys | 983 | * Put character routine for 3215 ttys |
984 | */ | 984 | */ |
985 | static void | 985 | static int |
986 | tty3215_put_char(struct tty_struct *tty, unsigned char ch) | 986 | tty3215_put_char(struct tty_struct *tty, unsigned char ch) |
987 | { | 987 | { |
988 | struct raw3215_info *raw; | 988 | struct raw3215_info *raw; |
989 | 989 | ||
990 | if (!tty) | 990 | if (!tty) |
991 | return; | 991 | return 0; |
992 | raw = (struct raw3215_info *) tty->driver_data; | 992 | raw = (struct raw3215_info *) tty->driver_data; |
993 | raw3215_putchar(raw, ch); | 993 | raw3215_putchar(raw, ch); |
994 | return 1; | ||
994 | } | 995 | } |
995 | 996 | ||
996 | static void | 997 | static void |
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c index e3b3d390b4a..40b11521cd2 100644 --- a/drivers/s390/char/sclp_tty.c +++ b/drivers/s390/char/sclp_tty.c | |||
@@ -412,14 +412,14 @@ sclp_tty_write(struct tty_struct *tty, const unsigned char *buf, int count) | |||
412 | * - including previous characters from sclp_tty_put_char() and strings from | 412 | * - including previous characters from sclp_tty_put_char() and strings from |
413 | * sclp_write() without final '\n' - will be written. | 413 | * sclp_write() without final '\n' - will be written. |
414 | */ | 414 | */ |
415 | static void | 415 | static int |
416 | sclp_tty_put_char(struct tty_struct *tty, unsigned char ch) | 416 | sclp_tty_put_char(struct tty_struct *tty, unsigned char ch) |
417 | { | 417 | { |
418 | sclp_tty_chars[sclp_tty_chars_count++] = ch; | 418 | sclp_tty_chars[sclp_tty_chars_count++] = ch; |
419 | if (ch == '\n' || sclp_tty_chars_count >= SCLP_TTY_BUF_SIZE) { | 419 | if (ch == '\n' || sclp_tty_chars_count >= SCLP_TTY_BUF_SIZE) { |
420 | sclp_tty_write_string(sclp_tty_chars, sclp_tty_chars_count); | 420 | sclp_tty_write_string(sclp_tty_chars, sclp_tty_chars_count); |
421 | sclp_tty_chars_count = 0; | 421 | sclp_tty_chars_count = 0; |
422 | } | 422 | } return 1; |
423 | } | 423 | } |
424 | 424 | ||
425 | /* | 425 | /* |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index ed507594e62..35707c04e61 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -524,11 +524,15 @@ sclp_vt220_close(struct tty_struct *tty, struct file *filp) | |||
524 | * NOTE: include/linux/tty_driver.h specifies that a character should be | 524 | * NOTE: include/linux/tty_driver.h specifies that a character should be |
525 | * ignored if there is no room in the queue. This driver implements a different | 525 | * ignored if there is no room in the queue. This driver implements a different |
526 | * semantic in that it will block when there is no more room left. | 526 | * semantic in that it will block when there is no more room left. |
527 | * | ||
528 | * FIXME: putchar can currently be called from BH and other non blocking | ||
529 | * handlers so this semantic isn't a good idea. | ||
527 | */ | 530 | */ |
528 | static void | 531 | static int |
529 | sclp_vt220_put_char(struct tty_struct *tty, unsigned char ch) | 532 | sclp_vt220_put_char(struct tty_struct *tty, unsigned char ch) |
530 | { | 533 | { |
531 | __sclp_vt220_write(&ch, 1, 0, 0, 1); | 534 | __sclp_vt220_write(&ch, 1, 0, 0, 1); |
535 | return 1; | ||
532 | } | 536 | } |
533 | 537 | ||
534 | /* | 538 | /* |
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c index 70b1980a08b..c1f2adefad4 100644 --- a/drivers/s390/char/tty3270.c +++ b/drivers/s390/char/tty3270.c | |||
@@ -965,7 +965,7 @@ tty3270_write_room(struct tty_struct *tty) | |||
965 | * Insert character into the screen at the current position with the | 965 | * Insert character into the screen at the current position with the |
966 | * current color and highlight. This function does NOT do cursor movement. | 966 | * current color and highlight. This function does NOT do cursor movement. |
967 | */ | 967 | */ |
968 | static void | 968 | static int |
969 | tty3270_put_character(struct tty3270 *tp, char ch) | 969 | tty3270_put_character(struct tty3270 *tp, char ch) |
970 | { | 970 | { |
971 | struct tty3270_line *line; | 971 | struct tty3270_line *line; |
@@ -986,6 +986,7 @@ tty3270_put_character(struct tty3270 *tp, char ch) | |||
986 | cell->character = tp->view.ascebc[(unsigned int) ch]; | 986 | cell->character = tp->view.ascebc[(unsigned int) ch]; |
987 | cell->highlight = tp->highlight; | 987 | cell->highlight = tp->highlight; |
988 | cell->f_color = tp->f_color; | 988 | cell->f_color = tp->f_color; |
989 | return 1; | ||
989 | } | 990 | } |
990 | 991 | ||
991 | /* | 992 | /* |