Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee1262db authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6:
  sparc: Set UTS_MACHINE correctly.
  sparc,leon: init_leon srmmu cleanup
  sparc32: Remove early interrupt enable.
  sparc, leon: Added Aeroflex Gaisler entry in manufacturer_info structure
  sparc64: Faster early-boot framebuffer console.
  Revert "sparc: Make atomic locks raw"
  sparc: remove unused nfsd #includes
  sparc: Fixup last users of irq_chip->typename
  Added sparc_leon3_snooping_enabled() and converted extern inline to static inline
  No auxio on LEON
  apbuart: Use of_find_node_by_path to find root node.
  sparc: Replace old style lock initializer
  sparc: Make atomic locks raw
  apbuart: Fix build and missing driver unregister.
  apbuart: Kill dependency on deprecated Sparc-only PROM interfaces.
  apbuart: Fix build warning.
  sparc: Support for GRLIB APBUART serial port
  watchdog: Remove BKL from rio watchdog driver
  sparc: Remove BKL from apc
  sparc,leon: Sparc-Leon SMP support
parents a421018e 7f5620a5
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -221,6 +221,13 @@ config SPARC64_SMP
	default y
	default y
	depends on SPARC64 && SMP
	depends on SPARC64 && SMP


config EARLYFB
	bool "Support for early boot text console"
	default y
	depends on SPARC64
	help
	  Say Y here to enable a faster early framebuffer boot console.

choice
choice
	prompt "Kernel page size" if SPARC64
	prompt "Kernel page size" if SPARC64
	default SPARC64_PAGE_SIZE_8KB
	default SPARC64_PAGE_SIZE_8KB
+2 −0
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@ AS := $(AS) -32
LDFLAGS        := -m elf32_sparc
LDFLAGS        := -m elf32_sparc
CHECKFLAGS     += -D__sparc__
CHECKFLAGS     += -D__sparc__
export BITS    := 32
export BITS    := 32
UTS_MACHINE    := sparc


#KBUILD_CFLAGS += -g -pipe -fcall-used-g5 -fcall-used-g7
#KBUILD_CFLAGS += -g -pipe -fcall-used-g5 -fcall-used-g7
KBUILD_CFLAGS += -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7
KBUILD_CFLAGS += -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7
@@ -46,6 +47,7 @@ CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ -m64


LDFLAGS              := -m elf64_sparc
LDFLAGS              := -m elf64_sparc
export BITS          := 64
export BITS          := 64
UTS_MACHINE          := sparc64


KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow   \
KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow   \
                 -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
                 -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
+6 −0
Original line number Original line Diff line number Diff line
#ifndef _SPARC_BTEXT_H
#define _SPARC_BTEXT_H

extern int btext_find_display(void);

#endif /* _SPARC_BTEXT_H */
+40 −5
Original line number Original line Diff line number Diff line
@@ -148,7 +148,7 @@ static inline unsigned long leon_load_reg(unsigned long paddr)
	return retval;
	return retval;
}
}


extern inline void leon_srmmu_disabletlb(void)
static inline void leon_srmmu_disabletlb(void)
{
{
	unsigned int retval;
	unsigned int retval;
	__asm__ __volatile__("lda [%%g0] %2, %0\n\t" : "=r"(retval) : "r"(0),
	__asm__ __volatile__("lda [%%g0] %2, %0\n\t" : "=r"(retval) : "r"(0),
@@ -158,7 +158,7 @@ extern inline void leon_srmmu_disabletlb(void)
			     "i"(ASI_LEON_MMUREGS) : "memory");
			     "i"(ASI_LEON_MMUREGS) : "memory");
}
}


extern inline void leon_srmmu_enabletlb(void)
static inline void leon_srmmu_enabletlb(void)
{
{
	unsigned int retval;
	unsigned int retval;
	__asm__ __volatile__("lda [%%g0] %2, %0\n\t" : "=r"(retval) : "r"(0),
	__asm__ __volatile__("lda [%%g0] %2, %0\n\t" : "=r"(retval) : "r"(0),
@@ -190,7 +190,7 @@ extern void leon_init_IRQ(void);


extern unsigned long last_valid_pfn;
extern unsigned long last_valid_pfn;


extern inline unsigned long sparc_leon3_get_dcachecfg(void)
static inline unsigned long sparc_leon3_get_dcachecfg(void)
{
{
	unsigned int retval;
	unsigned int retval;
	__asm__ __volatile__("lda [%1] %2, %0\n\t" :
	__asm__ __volatile__("lda [%1] %2, %0\n\t" :
@@ -201,7 +201,7 @@ extern inline unsigned long sparc_leon3_get_dcachecfg(void)
}
}


/* enable snooping */
/* enable snooping */
extern inline void sparc_leon3_enable_snooping(void)
static inline void sparc_leon3_enable_snooping(void)
{
{
	__asm__ __volatile__ ("lda [%%g0] 2, %%l1\n\t"
	__asm__ __volatile__ ("lda [%%g0] 2, %%l1\n\t"
			  "set 0x800000, %%l2\n\t"
			  "set 0x800000, %%l2\n\t"
@@ -209,7 +209,14 @@ extern inline void sparc_leon3_enable_snooping(void)
			  "sta %%l2, [%%g0] 2\n\t" : : : "l1", "l2");
			  "sta %%l2, [%%g0] 2\n\t" : : : "l1", "l2");
};
};


extern inline void sparc_leon3_disable_cache(void)
static inline int sparc_leon3_snooping_enabled(void)
{
	u32 cctrl;
	__asm__ __volatile__("lda [%%g0] 2, %0\n\t" : "=r"(cctrl));
        return (cctrl >> 23) & 1;
};

static inline void sparc_leon3_disable_cache(void)
{
{
	__asm__ __volatile__ ("lda [%%g0] 2, %%l1\n\t"
	__asm__ __volatile__ ("lda [%%g0] 2, %%l1\n\t"
			  "set 0x00000f, %%l2\n\t"
			  "set 0x00000f, %%l2\n\t"
@@ -340,6 +347,30 @@ extern int leon_flush_needed(void);
extern void leon_switch_mm(void);
extern void leon_switch_mm(void);
extern int srmmu_swprobe_trace;
extern int srmmu_swprobe_trace;


#ifdef CONFIG_SMP
extern int leon_smp_nrcpus(void);
extern void leon_clear_profile_irq(int cpu);
extern void leon_smp_done(void);
extern void leon_boot_cpus(void);
extern int leon_boot_one_cpu(int i);
void leon_init_smp(void);
extern void cpu_probe(void);
extern void cpu_idle(void);
extern void init_IRQ(void);
extern void cpu_panic(void);
extern int __leon_processor_id(void);
void leon_enable_irq_cpu(unsigned int irq_nr, unsigned int cpu);

extern unsigned int real_irq_entry[], smpleon_ticker[];
extern unsigned int patchme_maybe_smp_msg[];
extern unsigned long trapbase_cpu1[];
extern unsigned long trapbase_cpu2[];
extern unsigned long trapbase_cpu3[];
extern unsigned int t_nmi[], linux_trap_ipi15_leon[];
extern unsigned int linux_trap_ipi15_sun4m[];

#endif /* CONFIG_SMP */

#endif /* __KERNEL__ */
#endif /* __KERNEL__ */


#endif /* __ASSEMBLY__ */
#endif /* __ASSEMBLY__ */
@@ -356,6 +387,10 @@ extern int srmmu_swprobe_trace;
#define leon_switch_mm() do {} while (0)
#define leon_switch_mm() do {} while (0)
#define leon_init_IRQ() do {} while (0)
#define leon_init_IRQ() do {} while (0)
#define init_leon() do {} while (0)
#define init_leon() do {} while (0)
#define leon_smp_done() do {} while (0)
#define leon_boot_cpus() do {} while (0)
#define leon_boot_one_cpu(i) 1
#define leon_init_smp() do {} while (0)


#endif /* !defined(CONFIG_SPARC_LEON) */
#endif /* !defined(CONFIG_SPARC_LEON) */


+2 −2
Original line number Original line Diff line number Diff line
@@ -35,8 +35,8 @@ struct rw_semaphore {
#endif
#endif


#define __RWSEM_INITIALIZER(name) \
#define __RWSEM_INITIALIZER(name) \
{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) \
{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
  __RWSEM_DEP_MAP_INIT(name) }
  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }


#define DECLARE_RWSEM(name) \
#define DECLARE_RWSEM(name) \
	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
Loading