[ALSA] aoa: feature gpio layer: fix IRQ access
The IRQ rework caused some hiccups here, in some cases we call get_irq without a device node. This patch makes it catch that case and return NO_IRQ when it happens, along with changing the place where the irq is checked to check for NO_IRQ instead of -1. Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
59feddb25f
commit
2566d36ab4
@ -112,7 +112,10 @@ static struct device_node *get_gpio(char *name,
|
|||||||
|
|
||||||
static void get_irq(struct device_node * np, int *irqptr)
|
static void get_irq(struct device_node * np, int *irqptr)
|
||||||
{
|
{
|
||||||
*irqptr = irq_of_parse_and_map(np, 0);
|
if (np)
|
||||||
|
*irqptr = irq_of_parse_and_map(np, 0);
|
||||||
|
else
|
||||||
|
*irqptr = NO_IRQ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 0x4 is outenable, 0x1 is out, thus 4 or 5 */
|
/* 0x4 is outenable, 0x1 is out, thus 4 or 5 */
|
||||||
@ -322,7 +325,7 @@ static int ftr_set_notify(struct gpio_runtime *rt,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (irq == -1)
|
if (irq == NO_IRQ)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
mutex_lock(¬if->mutex);
|
mutex_lock(¬if->mutex);
|
||||||
|
Loading…
Reference in New Issue
Block a user