ARM: OMAP: fix false lockdep warnings

Remove false lockdep warnings about lock recursion when declaring
IRQs as being wake-capable, by marking putting GPIO irq_desc locks
into their own class.

(Thanks to Peter Zijlstra for helping track down such a small
fix to this problem.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
David Brownell 2008-02-26 11:10:50 -08:00 коммит произвёл Tony Lindgren
Родитель b8488fbe6d
Коммит 8ba55c5c13
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -1277,6 +1277,11 @@ static struct clk *gpio_fclks[OMAP34XX_NR_GPIOS];
static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS];
#endif #endif
/* This lock class tells lockdep that GPIO irqs are in a different
* category than their parents, so it won't report false recursion.
*/
static struct lock_class_key gpio_lock_class;
static int __init _omap_gpio_init(void) static int __init _omap_gpio_init(void)
{ {
int i; int i;
@ -1450,6 +1455,7 @@ static int __init _omap_gpio_init(void)
#endif #endif
for (j = bank->virtual_irq_start; for (j = bank->virtual_irq_start;
j < bank->virtual_irq_start + gpio_count; j++) { j < bank->virtual_irq_start + gpio_count; j++) {
lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class);
set_irq_chip_data(j, bank); set_irq_chip_data(j, bank);
if (bank_is_mpuio(bank)) if (bank_is_mpuio(bank))
set_irq_chip(j, &mpuio_irq_chip); set_irq_chip(j, &mpuio_irq_chip);