blob: 15ad0a456bedf023714a861f4b7f67522a3b9e35 [file] [log] [blame]
Klaus Heinrich Kiwi49aaa422020-06-24 08:10:42 -05001From d78eb515d2be3b7cdc8fa60b517ab1ce8fcbce4b Mon Sep 17 00:00:00 2001
Joel Stanley2b0f7b42016-07-19 23:26:28 +09302From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
3Date: Wed, 13 Jul 2016 11:15:42 +1000
Klaus Heinrich Kiwi49aaa422020-06-24 08:10:42 -05004Subject: [PATCH 07/10] tty/hvc: Use opal irqchip interface if available
Joel Stanley2b0f7b42016-07-19 23:26:28 +09305
6Update the hvc driver to use the OPAL irqchip if made available by the
7running firmware. If it is not present, the driver falls back to the
8existing OPAL event number.
9
10Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
11Cc: <stable@vger.kernel.org> # 4.1.x-
12Signed-off-by: Joel Stanley <joel@jms.id.au>
13---
14 drivers/tty/hvc/hvc_opal.c | 8 +++++++-
15 1 file changed, 7 insertions(+), 1 deletion(-)
16
17diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
Klaus Heinrich Kiwi49aaa422020-06-24 08:10:42 -050018index 9f660e5..046fd62 100644
Joel Stanley2b0f7b42016-07-19 23:26:28 +093019--- a/drivers/tty/hvc/hvc_opal.c
20+++ b/drivers/tty/hvc/hvc_opal.c
21@@ -214,7 +214,13 @@ static int hvc_opal_probe(struct platform_device *dev)
22 dev->dev.of_node->full_name,
23 boot ? " (boot console)" : "");
24
25- irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
26+ irq = irq_of_parse_and_map(dev->dev.of_node, 0);
27+ if (!irq) {
28+ pr_info("hvc%d: No interrupts property, using OPAL event\n",
29+ termno);
30+ irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
31+ }
32+
33 if (!irq) {
34 pr_err("hvc_opal: Unable to map interrupt for device %s\n",
35 dev->dev.of_node->full_name);
Klaus Heinrich Kiwi49aaa422020-06-24 08:10:42 -050036--
371.9.4
38