diff options
author | Jiri Slaby <jslaby@suse.cz> | 2013-03-07 07:12:29 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-18 19:19:45 -0400 |
commit | 6aad04f21374633bd8cecf25024553d1e11a9522 (patch) | |
tree | 9e3351e53b68d158b436a737049cbe2ee01ff126 /drivers/s390 | |
parent | 6982a398426a22166eaf049b79544536fdd6429f (diff) |
TTY: add tty_port_tty_wakeup helper
It allows for cleaning up on a considerable amount of places. They did
port_get, wakeup, kref_put. Now the only thing needed is to call
tty_port_tty_wakeup which does exactly that.
One exception is ifx6x60 where tty_wakeup was open-coded. We now call
tty_wakeup properly there.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/char/sclp_tty.c | 9 | ||||
-rw-r--r-- | drivers/s390/char/sclp_vt220.c | 8 |
2 files changed, 3 insertions, 14 deletions
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c index 14b4cb8abcc8..7ed7a5987816 100644 --- a/drivers/s390/char/sclp_tty.c +++ b/drivers/s390/char/sclp_tty.c | |||
@@ -107,7 +107,6 @@ sclp_tty_write_room (struct tty_struct *tty) | |||
107 | static void | 107 | static void |
108 | sclp_ttybuf_callback(struct sclp_buffer *buffer, int rc) | 108 | sclp_ttybuf_callback(struct sclp_buffer *buffer, int rc) |
109 | { | 109 | { |
110 | struct tty_struct *tty; | ||
111 | unsigned long flags; | 110 | unsigned long flags; |
112 | void *page; | 111 | void *page; |
113 | 112 | ||
@@ -125,12 +124,8 @@ sclp_ttybuf_callback(struct sclp_buffer *buffer, int rc) | |||
125 | struct sclp_buffer, list); | 124 | struct sclp_buffer, list); |
126 | spin_unlock_irqrestore(&sclp_tty_lock, flags); | 125 | spin_unlock_irqrestore(&sclp_tty_lock, flags); |
127 | } while (buffer && sclp_emit_buffer(buffer, sclp_ttybuf_callback)); | 126 | } while (buffer && sclp_emit_buffer(buffer, sclp_ttybuf_callback)); |
128 | /* check if the tty needs a wake up call */ | 127 | |
129 | tty = tty_port_tty_get(&sclp_port); | 128 | tty_port_tty_wakeup(&sclp_port); |
130 | if (tty != NULL) { | ||
131 | tty_wakeup(tty); | ||
132 | tty_kref_put(tty); | ||
133 | } | ||
134 | } | 129 | } |
135 | 130 | ||
136 | static inline void | 131 | static inline void |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index 6c92f62623be..5aaaa2ec8df4 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -114,7 +114,6 @@ static struct sclp_register sclp_vt220_register = { | |||
114 | static void | 114 | static void |
115 | sclp_vt220_process_queue(struct sclp_vt220_request *request) | 115 | sclp_vt220_process_queue(struct sclp_vt220_request *request) |
116 | { | 116 | { |
117 | struct tty_struct *tty; | ||
118 | unsigned long flags; | 117 | unsigned long flags; |
119 | void *page; | 118 | void *page; |
120 | 119 | ||
@@ -139,12 +138,7 @@ sclp_vt220_process_queue(struct sclp_vt220_request *request) | |||
139 | } while (__sclp_vt220_emit(request)); | 138 | } while (__sclp_vt220_emit(request)); |
140 | if (request == NULL && sclp_vt220_flush_later) | 139 | if (request == NULL && sclp_vt220_flush_later) |
141 | sclp_vt220_emit_current(); | 140 | sclp_vt220_emit_current(); |
142 | /* Check if the tty needs a wake up call */ | 141 | tty_port_tty_wakeup(&sclp_vt220_port); |
143 | tty = tty_port_tty_get(&sclp_vt220_port); | ||
144 | if (tty) { | ||
145 | tty_wakeup(tty); | ||
146 | tty_kref_put(tty); | ||
147 | } | ||
148 | } | 142 | } |
149 | 143 | ||
150 | #define SCLP_BUFFER_MAX_RETRY 1 | 144 | #define SCLP_BUFFER_MAX_RETRY 1 |