Commit a295af24 authored by Alistair Popple's avatar Alistair Popple Committed by Michael Ellerman
Browse files

powernv/opal: Convert opal message events to opal irq domain



This patch converts the opal message event to use the new opal irq
domain.

Signed-off-by: default avatarAlistair Popple <alistair@popple.id.au>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 79231448
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -362,33 +362,34 @@ static void opal_handle_message(void)
	opal_message_do_notify(type, (void *)&msg);
}

static int opal_message_notify(struct notifier_block *nb,
			  unsigned long events, void *change)
static irqreturn_t opal_message_notify(int irq, void *data)
{
	if (events & OPAL_EVENT_MSG_PENDING)
	opal_handle_message();
	return 0;
	return IRQ_HANDLED;
}

static struct notifier_block opal_message_nb = {
	.notifier_call	= opal_message_notify,
	.next		= NULL,
	.priority	= 0,
};

static int __init opal_message_init(void)
{
	int ret, i;
	int ret, i, irq;

	for (i = 0; i < OPAL_MSG_TYPE_MAX; i++)
		ATOMIC_INIT_NOTIFIER_HEAD(&opal_msg_notifier_head[i]);

	ret = opal_notifier_register(&opal_message_nb);
	irq = opal_event_request(ilog2(OPAL_EVENT_MSG_PENDING));
	if (!irq) {
		pr_err("%s: Can't register OPAL event irq (%d)\n",
		       __func__, irq);
		return irq;
	}

	ret = request_irq(irq, opal_message_notify,
			IRQ_TYPE_LEVEL_HIGH, "opal-msg", NULL);
	if (ret) {
		pr_err("%s: Can't register OPAL event notifier (%d)\n",
		pr_err("%s: Can't request OPAL event irq (%d)\n",
		       __func__, ret);
		return ret;
	}

	return 0;
}