MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices().
authorNicolas Schichan <nschichan@freebox.fr>
Thu, 12 Mar 2015 16:00:58 +0000 (17:00 +0100)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 17 May 2015 23:12:32 +0000 (19:12 -0400)
commit7b5991c8635c3211a474e549cd3f42d17ce53053
tree25a5c77f76a67e7a97f61c6c99dbb4556d59d83b
parent2611e2418ca8be78f87cd8f727aa92f04fdcfd21
MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices().

[ Upstream commit 2ec459f2a77b808c1e5a3616c88b613d3f720c8d ]

When called from prom init code, bcm63xx_gpio_init() will fail as it
will call gpiochip_add() which relies on a working kmalloc() to alloc
the gpio_desc array and kmalloc is not useable yet at prom init time.

Move bcm63xx_gpio_init() to bcm63xx_register_devices() (an
arch_initcall) where kmalloc works.

Fixes: 14e85c0e69d5 ("gpio: remove gpio_descs global array")
Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: Alexandre Courbot <acourbot@nvidia.com>
Patchwork: https://patchwork.linux-mips.org/patch/9530/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
arch/mips/bcm63xx/prom.c
arch/mips/bcm63xx/setup.c