mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
serial: hvc: use modern IRQ acquisition API
Use platform_get_irq_optional() to be able to handle potential -EPROBE_DEFER and other errors. Move it earlier to avoid having to call kfree() on the global array. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: https://patch.msgid.link/20261003213148.137206-1-rosenp@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
810d467c11
commit
831e5c42fd
|
|
@ -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;
|
||||
|
|
@ -176,6 +176,10 @@ static int hvc_opal_probe(struct platform_device *dev)
|
|||
reg = of_get_property(dev->dev.of_node, "reg", NULL);
|
||||
termno = reg ? be32_to_cpup(reg) : 0;
|
||||
|
||||
irq = platform_get_irq_optional(dev, 0);
|
||||
if (irq == -EPROBE_DEFER)
|
||||
return irq;
|
||||
|
||||
/* Is it our boot one ? */
|
||||
if (hvc_opal_privs[termno] == &hvc_opal_boot_priv) {
|
||||
pv = hvc_opal_privs[termno];
|
||||
|
|
@ -209,8 +213,7 @@ 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) {
|
||||
if (irq < 0) {
|
||||
pr_info("hvc%d: No interrupts property, using OPAL event\n",
|
||||
termno);
|
||||
irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user