aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2013-03-07 07:12:29 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-18 19:19:45 -0400
commit6aad04f21374633bd8cecf25024553d1e11a9522 (patch)
tree9e3351e53b68d158b436a737049cbe2ee01ff126 /drivers/s390
parent6982a398426a22166eaf049b79544536fdd6429f (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.c9
-rw-r--r--drivers/s390/char/sclp_vt220.c8
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)
107static void 107static void
108sclp_ttybuf_callback(struct sclp_buffer *buffer, int rc) 108sclp_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
136static inline void 131static 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 = {
114static void 114static void
115sclp_vt220_process_queue(struct sclp_vt220_request *request) 115sclp_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