Merge tag 's390-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[platform/kernel/linux-rpi.git] / drivers / s390 / char / sclp_vt220.c
index 7f4445b..fa40057 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <linux/module.h>
 #include <linux/spinlock.h>
+#include <linux/panic_notifier.h>
 #include <linux/list.h>
 #include <linux/wait.h>
 #include <linux/timer.h>
@@ -35,8 +36,8 @@
 #define SCLP_VT220_MINOR               65
 #define SCLP_VT220_DRIVER_NAME         "sclp_vt220"
 #define SCLP_VT220_DEVICE_NAME         "ttysclp"
-#define SCLP_VT220_CONSOLE_NAME                "ttyS"
-#define SCLP_VT220_CONSOLE_INDEX       1       /* console=ttyS1 */
+#define SCLP_VT220_CONSOLE_NAME                "ttysclp"
+#define SCLP_VT220_CONSOLE_INDEX       0       /* console=ttysclp0 */
 
 /* Representation of a single write request */
 struct sclp_vt220_request {
@@ -69,9 +70,6 @@ static LIST_HEAD(sclp_vt220_empty);
 /* List of pending requests */
 static LIST_HEAD(sclp_vt220_outqueue);
 
-/* Suspend mode flag */
-static int sclp_vt220_suspended;
-
 /* Flag that output queue is currently running */
 static int sclp_vt220_queue_running;
 
@@ -95,15 +93,12 @@ static int __initdata sclp_vt220_init_count;
 static int sclp_vt220_flush_later;
 
 static void sclp_vt220_receiver_fn(struct evbuf_header *evbuf);
-static void sclp_vt220_pm_event_fn(struct sclp_register *reg,
-                                  enum sclp_pm_event sclp_pm_event);
 static int __sclp_vt220_emit(struct sclp_vt220_request *request);
 static void sclp_vt220_emit_current(void);
 
 /* Registration structure for SCLP output event buffers */
 static struct sclp_register sclp_vt220_register = {
        .send_mask              = EVTYP_VT220MSG_MASK,
-       .pm_event_fn            = sclp_vt220_pm_event_fn,
 };
 
 /* Registration structure for SCLP input event buffers */
@@ -135,7 +130,7 @@ sclp_vt220_process_queue(struct sclp_vt220_request *request)
                if (!list_empty(&sclp_vt220_outqueue))
                        request = list_entry(sclp_vt220_outqueue.next,
                                             struct sclp_vt220_request, list);
-               if (!request || sclp_vt220_suspended) {
+               if (!request) {
                        sclp_vt220_queue_running = 0;
                        spin_unlock_irqrestore(&sclp_vt220_lock, flags);
                        break;
@@ -241,7 +236,7 @@ sclp_vt220_emit_current(void)
                }
                sclp_vt220_flush_later = 0;
        }
-       if (sclp_vt220_queue_running || sclp_vt220_suspended)
+       if (sclp_vt220_queue_running)
                goto out_unlock;
        if (list_empty(&sclp_vt220_outqueue))
                goto out_unlock;
@@ -420,7 +415,7 @@ __sclp_vt220_write(const unsigned char *buf, int count, int do_schedule,
                        if (list_empty(&sclp_vt220_empty))
                                sclp_console_full++;
                        while (list_empty(&sclp_vt220_empty)) {
-                               if (may_fail || sclp_vt220_suspended)
+                               if (may_fail)
                                        goto out;
                                if (sclp_vt220_drop_buffer())
                                        break;
@@ -791,46 +786,6 @@ static void __sclp_vt220_flush_buffer(void)
        spin_unlock_irqrestore(&sclp_vt220_lock, flags);
 }
 
-/*
- * Resume console: If there are cached messages, emit them.
- */
-static void sclp_vt220_resume(void)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&sclp_vt220_lock, flags);
-       sclp_vt220_suspended = 0;
-       spin_unlock_irqrestore(&sclp_vt220_lock, flags);
-       sclp_vt220_emit_current();
-}
-
-/*
- * Suspend console: Set suspend flag and flush console
- */
-static void sclp_vt220_suspend(void)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&sclp_vt220_lock, flags);
-       sclp_vt220_suspended = 1;
-       spin_unlock_irqrestore(&sclp_vt220_lock, flags);
-       __sclp_vt220_flush_buffer();
-}
-
-static void sclp_vt220_pm_event_fn(struct sclp_register *reg,
-                                  enum sclp_pm_event sclp_pm_event)
-{
-       switch (sclp_pm_event) {
-       case SCLP_PM_EVENT_FREEZE:
-               sclp_vt220_suspend();
-               break;
-       case SCLP_PM_EVENT_RESTORE:
-       case SCLP_PM_EVENT_THAW:
-               sclp_vt220_resume();
-               break;
-       }
-}
-
 #ifdef CONFIG_SCLP_VT220_CONSOLE
 
 static void