mirror of
https://github.com/torvalds/linux.git
synced 2026-10-16 21:00:02 +02:00
lpc32xx_check_uid() and lpc32xx_pm_init() are arch_initcalls that poke
LPC32xx-only registers. Since the multiplatform conversion they also
run on other ARCH_MULTI_V5 boards where access faults e.g. on versatile:
Unable to handle kernel paging request at virtual address f4004130
PC is at lpc32xx_check_uid+0x2c/0x9c
Drop the arch_initcall() registrations and call both functions directly
from lpc3250_machine_init(), the machine's .init_machine hook.
The calls are placed in link order (common.c, pm.c, phy3250.c) to
keep their previous relative ordering.
Fixes: 75bf1bd7d2 ("ARM: lpc32xx: allow multiplatform build")
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Reviewed-by: Vladimir Zapolskiy <vz@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
35 lines
743 B
C
35 lines
743 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* arch/arm/mach-lpc32xx/common.h
|
|
*
|
|
* Author: Kevin Wells <kevin.wells@nxp.com>
|
|
*
|
|
* Copyright (C) 2009-2010 NXP Semiconductors
|
|
*/
|
|
|
|
#ifndef __LPC32XX_COMMON_H
|
|
#define __LPC32XX_COMMON_H
|
|
|
|
#include <linux/init.h>
|
|
|
|
/*
|
|
* Other arch specific structures and functions
|
|
*/
|
|
extern void __init lpc32xx_map_io(void);
|
|
extern void __init lpc32xx_check_uid(void);
|
|
extern void __init lpc32xx_pm_init(void);
|
|
extern void __init lpc32xx_serial_init(void);
|
|
|
|
/*
|
|
* Returns the LPC32xx unique 128-bit chip ID
|
|
*/
|
|
extern void lpc32xx_get_uid(u32 devid[4]);
|
|
|
|
/*
|
|
* Pointers used for sizing and copying suspend function data
|
|
*/
|
|
extern int lpc32xx_sys_suspend(void);
|
|
extern int lpc32xx_sys_suspend_sz;
|
|
|
|
#endif
|