linux/arch/frv/kernel/local.h
David Howells 9dec17eb57 [PATCH] FRV: Fix FRV arch compile errors
Fix some FRV arch compile errors, including:

 (*) Marking nr_kernel_pages as __meminitdata so that references to it end up
     being properly calculated rather than being assumed to be in the small
     data section (and thus calculated wrt the GP register).  Not doing this
     causes the linker to emit errors as the offset is too big to fit into the
     load instruction.

 (*) Move pm_power_off into an unconditionally compiled .c file as it's now
     unconditionally accessed.

 (*) Declare frv_change_cmode() in a header file rather than in a .c file, and
     declare it asmlinkage.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-10 13:24:21 -07:00

60 lines
1.7 KiB
C

/* local.h: local definitions
*
* Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef _FRV_LOCAL_H
#define _FRV_LOCAL_H
#include <asm/sections.h>
#ifndef __ASSEMBLY__
/* dma.c */
extern unsigned long frv_dma_inprogress;
extern void frv_dma_pause_all(void);
extern void frv_dma_resume_all(void);
/* sleep.S */
extern asmlinkage void frv_cpu_suspend(unsigned long);
extern asmlinkage void frv_cpu_core_sleep(void);
/* setup.c */
extern unsigned long __nongprelbss pdm_suspend_mode;
extern void determine_clocks(int verbose);
extern int __nongprelbss clock_p0_current;
extern int __nongprelbss clock_cm_current;
extern int __nongprelbss clock_cmode_current;
#ifdef CONFIG_PM
extern int __nongprelbss clock_cmodes_permitted;
extern unsigned long __nongprelbss clock_bits_settable;
#define CLOCK_BIT_CM 0x0000000f
#define CLOCK_BIT_CM_H 0x00000001 /* CLKC.CM can be set to 0 */
#define CLOCK_BIT_CM_M 0x00000002 /* CLKC.CM can be set to 1 */
#define CLOCK_BIT_CM_L 0x00000004 /* CLKC.CM can be set to 2 */
#define CLOCK_BIT_P0 0x00000010 /* CLKC.P0 can be changed */
#define CLOCK_BIT_CMODE 0x00000020 /* CLKC.CMODE can be changed */
extern void (*__power_switch_wake_setup)(void);
extern int (*__power_switch_wake_check)(void);
extern void (*__power_switch_wake_cleanup)(void);
#endif
/* time.c */
extern void time_divisor_init(void);
/* cmode.S */
extern asmlinkage void frv_change_cmode(int);
#endif /* __ASSEMBLY__ */
#endif /* _FRV_LOCAL_H */