| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Samuel Mendoza-Jonas <sam@mendozajonas.com> |
| Date: Wed, 13 Jul 2016 11:15:42 +1000 |
| Subject: [PATCH 07/11] tty/hvc: Use opal irqchip interface if available |
| |
| 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> |
| Cc: <stable@vger.kernel.org> # 4.1.x- |
| Signed-off-by: Joel Stanley <joel@jms.id.au> |
| --- |
| drivers/tty/hvc/hvc_opal.c | 8 +++++++- |
| 1 file changed, 7 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c |
| index 47b54c6aefd2..276b796b24e4 100644 |
| --- a/drivers/tty/hvc/hvc_opal.c |
| +++ b/drivers/tty/hvc/hvc_opal.c |
| @@ -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); |