summaryrefslogtreecommitdiff
path: root/drivers/s390/char
diff options
context:
space:
mode:
authorSven Schnelle <svens@linux.ibm.com>2022-12-08 10:41:17 +0300
committerHeiko Carstens <hca@linux.ibm.com>2023-01-09 16:34:06 +0300
commitda4e272e831c6b1ab5169e5f7a51b21b7e364c22 (patch)
treef3097dc8a12b9330589567cb199a8a5545cda36c /drivers/s390/char
parent9975fde09e50b9ac9bab49cafac4ebc32cf4044c (diff)
downloadlinux-da4e272e831c6b1ab5169e5f7a51b21b7e364c22.tar.xz
s390/con3270: simplify update flags
Make TTY3270_UPDATE_ALL the sum of all TTY3270_* flags, so we don't need any special handling for it. Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'drivers/s390/char')
-rw-r--r--drivers/s390/char/con3270.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c
index 5fa1f080d5f3..6d21e16a92cb 100644
--- a/drivers/s390/char/con3270.c
+++ b/drivers/s390/char/con3270.c
@@ -127,10 +127,9 @@ struct tty3270 {
};
/* tty3270->update_flags. See tty3270_update for details. */
-#define TTY_UPDATE_ERASE 1 /* Use EWRITEA instead of WRITE. */
-#define TTY_UPDATE_INPUT 4 /* Update input line. */
-#define TTY_UPDATE_STATUS 8 /* Update status line. */
-#define TTY_UPDATE_ALL 16 /* Recreate screen. */
+#define TTY_UPDATE_INPUT 0x1 /* Update input line. */
+#define TTY_UPDATE_STATUS 0x2 /* Update status line. */
+#define TTY_UPDATE_ALL 0x3 /* Recreate screen. */
#define TTY3270_INPUT_AREA_ROWS 2
@@ -491,7 +490,7 @@ static void tty3270_update(struct timer_list *t)
struct tty3270 *tp = from_timer(tp, t, timer);
struct raw3270_request *wrq;
struct tty3270_line *line;
- unsigned long updated;
+ u8 cmd = TC_WRITE;
int i, rc, len;
wrq = xchg(&tp->write, 0);
@@ -501,18 +500,10 @@ static void tty3270_update(struct timer_list *t)
}
spin_lock_irq(&tp->view.lock);
- updated = 0;
- if (tp->update_flags & TTY_UPDATE_ALL) {
- tp->update_flags = TTY_UPDATE_ERASE |
- TTY_UPDATE_INPUT | TTY_UPDATE_STATUS;
- }
- if (tp->update_flags & TTY_UPDATE_ERASE) {
- /* Use erase write alternate to erase display. */
- raw3270_request_set_cmd(wrq, TC_EWRITEA);
- updated |= TTY_UPDATE_ERASE;
- } else {
- raw3270_request_set_cmd(wrq, TC_WRITE);
- }
+ if (tp->update_flags == TTY_UPDATE_ALL)
+ cmd = TC_EWRITEA;
+
+ raw3270_request_set_cmd(wrq, cmd);
raw3270_request_add_data(wrq, &tp->wcc, 1);
tp->wcc = TW_NONE;
@@ -522,7 +513,7 @@ static void tty3270_update(struct timer_list *t)
if (tp->update_flags & TTY_UPDATE_STATUS) {
len = tty3270_add_status(tp);
if (raw3270_request_add_data(wrq, tp->converted_line, len) == 0)
- updated |= TTY_UPDATE_STATUS;
+ tp->update_flags &= ~TTY_UPDATE_STATUS;
}
/*
@@ -531,7 +522,7 @@ static void tty3270_update(struct timer_list *t)
if (tp->update_flags & TTY_UPDATE_INPUT) {
len = tty3270_add_prompt(tp);
if (raw3270_request_add_data(wrq, tp->converted_line, len) == 0)
- updated |= TTY_UPDATE_INPUT;
+ tp->update_flags &= ~TTY_UPDATE_INPUT;
}
for (i = 0; i < tty3270_tty_rows(tp); i++) {
@@ -551,7 +542,6 @@ static void tty3270_update(struct timer_list *t)
wrq->callback = tty3270_write_callback;
rc = raw3270_start(&tp->view, wrq);
if (rc == 0) {
- tp->update_flags &= ~updated;
if (tp->update_flags)
tty3270_set_timer(tp, 1);
} else {