tty: serial: qcom_geni_serial: Add comments for clarification
authorKarthikeyan Ramasubramanian <kramasub@codeaurora.org>
Thu, 3 May 2018 20:14:33 +0000 (14:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2018 11:44:54 +0000 (13:44 +0200)
* Document reason for newline character counting in console_write
* Document reason for disabling IRQ in the system resume operation

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/qcom_geni_serial.c

index c3eb87c..dcd22ca 100644 (file)
@@ -286,6 +286,10 @@ __qcom_geni_serial_console_write(struct uart_port *uport, const char *s,
        u32 bytes_to_send = count;
 
        for (i = 0; i < count; i++) {
+               /*
+                * uart_console_write() adds a carriage return for each newline.
+                * Account for additional bytes to be written.
+                */
                if (s[i] == '\n')
                        bytes_to_send++;
        }
@@ -1101,6 +1105,14 @@ static int __maybe_unused qcom_geni_serial_sys_resume_noirq(struct device *dev)
 
        if (console_suspend_enabled && uport->suspended) {
                uart_resume_port(uport->private_data, uport);
+               /*
+                * uart_suspend_port() invokes port shutdown which in turn
+                * frees the irq. uart_resume_port invokes port startup which
+                * performs request_irq. The request_irq auto-enables the IRQ.
+                * In addition, resume_noirq implicitly enables the IRQ and
+                * leads to an unbalanced IRQ enable warning. Disable the IRQ
+                * before returning so that the warning is suppressed.
+                */
                disable_irq(uport->irq);
        }
        return 0;