tty/hvc: Use opal irqchip interface if available
authorSam Mendoza-Jonas <sam@mendozajonas.com>
Mon, 11 Jul 2016 03:38:58 +0000 (13:38 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 27 Jul 2016 02:38:20 +0000 (12:38 +1000)
Update the hvc driver to use the OPAL irqchip if made available by the
running firmware. If it is not present, the driver falls back to the
existing OPAL event number.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/tty/hvc/hvc_opal.c

index b7cd0ae7d927a49d132f5f6699a17cdd86beef6a..51079931109956178a0730716307c7c773f7c643 100644 (file)
@@ -214,7 +214,13 @@ static int hvc_opal_probe(struct platform_device *dev)
                dev->dev.of_node->full_name,
                boot ? " (boot console)" : "");
 
-       irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
+       irq = irq_of_parse_and_map(dev->dev.of_node, 0);
+       if (!irq) {
+               pr_info("hvc%d: No interrupts property, using OPAL event\n",
+                               termno);
+               irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
+       }
+
        if (!irq) {
                pr_err("hvc_opal: Unable to map interrupt for device %s\n",
                        dev->dev.of_node->full_name);