Use platform_get_irq_optional() to be able to handle potential -EPROBE_DEFER and other errors.
Signed-off-by: Rosen Penev <[email protected]> --- drivers/tty/hvc/hvc_opal.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c index 402da9e7c534..ce726b8b5ab0 100644 --- a/drivers/tty/hvc/hvc_opal.c +++ b/drivers/tty/hvc/hvc_opal.c @@ -13,7 +13,6 @@ #include <linux/slab.h> #include <linux/console.h> #include <linux/of.h> -#include <linux/of_irq.h> #include <linux/platform_device.h> #include <linux/export.h> #include <linux/interrupt.h> @@ -157,8 +156,9 @@ static int hvc_opal_probe(struct platform_device *dev) struct hvc_struct *hp; struct hvc_opal_priv *pv; hv_protocol_t proto; - unsigned int termno, irq, boot = 0; + unsigned int termno, boot = 0; const __be32 *reg; + int irq; if (of_device_is_compatible(dev->dev.of_node, "ibm,opal-console-raw")) { proto = HV_PROTOCOL_RAW; @@ -209,8 +209,10 @@ static int hvc_opal_probe(struct platform_device *dev) dev->dev.of_node, boot ? " (boot console)" : ""); - irq = irq_of_parse_and_map(dev->dev.of_node, 0); - if (!irq) { + irq = platform_get_irq_optional(dev, 0); + if (irq == -EPROBE_DEFER) + return irq; + if (irq < 0) { pr_info("hvc%d: No interrupts property, using OPAL event\n", termno); irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT)); -- 2.55.0
