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

Commit 3ed43c74 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (21 commits)
  Blackfin Serial Driver: abstract away DLAB differences into header
  Blackfin Serial Driver: macro away the IER differences between processors
  [Blackfin] arch: remove useless IRQ_SW_INT defines
  [Blackfin] arch: protect linux/usb/musb.h include until the driver gets mainlined
  [Blackfin] arch: protect linux/usb/isp1362.h include until the driver gets mainlined
  [Blackfin] arch: add EBIU supporting for BF54x EZKIT SMSC LAN911x/LAN921x families embedded ethernet driver
  [Blackfin] arch: Set spi flash partition on bf527 as like bf548.
  [Blackfin] arch: fix bug - Remove module will not free L1 memory used
  [Blackfin] arch: fix wrong header name in comment
  [Blackfin] arch: Fix BUG - spi flash on bf527 ezkit would fail at mount
  [Blackfin] arch: add twi_lcd and twi_keypad i2c board info to bf527-ezkit
  [Blackfin] arch: Add physmap partition for BF527-EZkit
  [Blackfin] arch: fix gdb testing regression
  [Blackfin] arch: disable single stepping when delivering a signal
  [Blackfin] arch: Delete unused (copied from m68k) entries in asm-offsets.c.
  [Blackfin] arch: In the double fault handler, set up the PT_RETI slot
  [Blackfin] arch: Support for CPU_FREQ and NOHZ
  [Blackfin] arch: Functional power management support: Add CPU and platform voltage scaling support
  [Blackfin] arch: fix bug -  breaking the atomic sections code.
  [Blackfin] arch: Equalize include files: Add VR_CTL masks
  ...
parents 26c5e98e 45828b81
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -832,6 +832,7 @@ config BANK_0
config BANK_1
	hex "Bank 1"
	default 0x7BB0
	default 0x5558 if BF54x

config BANK_2
	hex "Bank 2"
@@ -963,21 +964,22 @@ endchoice

endmenu

if (BF537 || BF533 || BF54x)

menu "CPU Frequency scaling"

source "drivers/cpufreq/Kconfig"

config CPU_FREQ
	bool
config CPU_VOLTAGE
	bool "CPU Voltage scaling"
	depends on EXPERIMENTAL	
	depends on CPU_FREQ
	default n
	help
	  If you want to enable this option, you should select the
	  DPMC driver from Character Devices.
endmenu
	  Say Y here if you want CPU voltage scaling according to the CPU frequency.
	  This option violates the PLL BYPASS recommendation in the Blackfin Processor
	  manuals. There is a theoretical risk that during VDDINT transitions 
	  the PLL may unlock.

endif
endmenu

source "net/Kconfig"

+0 −3
Original line number Diff line number Diff line
@@ -56,9 +56,6 @@ int main(void)
	/* offsets into the thread struct */
	DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
	DEFINE(THREAD_USP, offsetof(struct thread_struct, usp));
	DEFINE(THREAD_SR, offsetof(struct thread_struct, seqstat));
	DEFINE(PT_SR, offsetof(struct thread_struct, seqstat));
	DEFINE(THREAD_ESP0, offsetof(struct thread_struct, esp0));
	DEFINE(THREAD_PC, offsetof(struct thread_struct, pc));
	DEFINE(KERNEL_STACK_SIZE, THREAD_SIZE);

+1 −1
Original line number Diff line number Diff line
/*
 * This file contains sequences of code that will be copied to a
 * fixed location, defined in <asm/atomic_seq.h>.  The interrupt
 * fixed location, defined in <asm/fixed_code.h>.  The interrupt
 * handlers ensure that these sequences appear to be atomic when
 * executed from userspace.
 * These are aligned to 16 bytes, so that we have some space to replace
+22 −15
Original line number Diff line number Diff line
@@ -160,6 +160,13 @@ int
module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
			  char *secstrings, struct module *mod)
{
	/*
	 * XXX: sechdrs are vmalloced in kernel/module.c
	 * and would be vfreed just after module is loaded,
	 * so we hack to keep the only information we needed
	 * in mod->arch to correctly free L1 I/D sram later.
	 * NOTE: this breaks the semantic of mod->arch structure.
	 */
	Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum;
	void *dest = NULL;

@@ -167,8 +174,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
		if ((strcmp(".l1.text", secstrings + s->sh_name) == 0) ||
		    ((strcmp(".text", secstrings + s->sh_name) == 0) &&
		     (hdr->e_flags & FLG_CODE_IN_L1) && (s->sh_size > 0))) {
			mod->arch.text_l1 = s;
			dest = l1_inst_sram_alloc(s->sh_size);
			mod->arch.text_l1 = dest;
			if (dest == NULL) {
				printk(KERN_ERR
				       "module %s: L1 instruction memory allocation failed\n",
@@ -182,8 +189,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
		if ((strcmp(".l1.data", secstrings + s->sh_name) == 0) ||
		    ((strcmp(".data", secstrings + s->sh_name) == 0) &&
		     (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) {
			mod->arch.data_a_l1 = s;
			dest = l1_data_sram_alloc(s->sh_size);
			mod->arch.data_a_l1 = dest;
			if (dest == NULL) {
				printk(KERN_ERR
					"module %s: L1 data memory allocation failed\n",
@@ -197,8 +204,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
		if (strcmp(".l1.bss", secstrings + s->sh_name) == 0 ||
		    ((strcmp(".bss", secstrings + s->sh_name) == 0) &&
		     (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) {
			mod->arch.bss_a_l1 = s;
			dest = l1_data_sram_alloc(s->sh_size);
			mod->arch.bss_a_l1 = dest;
			if (dest == NULL) {
				printk(KERN_ERR
					"module %s: L1 data memory allocation failed\n",
@@ -210,8 +217,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
			s->sh_addr = (unsigned long)dest;
		}
		if (strcmp(".l1.data.B", secstrings + s->sh_name) == 0) {
			mod->arch.data_b_l1 = s;
			dest = l1_data_B_sram_alloc(s->sh_size);
			mod->arch.data_b_l1 = dest;
			if (dest == NULL) {
				printk(KERN_ERR
					"module %s: L1 data memory allocation failed\n",
@@ -223,8 +230,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
			s->sh_addr = (unsigned long)dest;
		}
		if (strcmp(".l1.bss.B", secstrings + s->sh_name) == 0) {
			mod->arch.bss_b_l1 = s;
			dest = l1_data_B_sram_alloc(s->sh_size);
			mod->arch.bss_b_l1 = dest;
			if (dest == NULL) {
				printk(KERN_ERR
					"module %s: L1 data memory allocation failed\n",
@@ -416,14 +423,14 @@ module_finalize(const Elf_Ehdr * hdr,

void module_arch_cleanup(struct module *mod)
{
	if ((mod->arch.text_l1) && (mod->arch.text_l1->sh_addr))
		l1_inst_sram_free((void *)mod->arch.text_l1->sh_addr);
	if ((mod->arch.data_a_l1) && (mod->arch.data_a_l1->sh_addr))
		l1_data_sram_free((void *)mod->arch.data_a_l1->sh_addr);
	if ((mod->arch.bss_a_l1) && (mod->arch.bss_a_l1->sh_addr))
		l1_data_sram_free((void *)mod->arch.bss_a_l1->sh_addr);
	if ((mod->arch.data_b_l1) && (mod->arch.data_b_l1->sh_addr))
		l1_data_B_sram_free((void *)mod->arch.data_b_l1->sh_addr);
	if ((mod->arch.bss_b_l1) && (mod->arch.bss_b_l1->sh_addr))
		l1_data_B_sram_free((void *)mod->arch.bss_b_l1->sh_addr);
	if (mod->arch.text_l1)
		l1_inst_sram_free((void *)mod->arch.text_l1);
	if (mod->arch.data_a_l1)
		l1_data_sram_free((void *)mod->arch.data_a_l1);
	if (mod->arch.bss_a_l1)
		l1_data_sram_free((void *)mod->arch.bss_a_l1);
	if (mod->arch.data_b_l1)
		l1_data_B_sram_free((void *)mod->arch.data_b_l1);
	if (mod->arch.bss_b_l1)
		l1_data_B_sram_free((void *)mod->arch.bss_b_l1);
}
+1 −1
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ unsigned long get_wchan(struct task_struct *p)

void finish_atomic_sections (struct pt_regs *regs)
{
	int __user *up0 = (int __user *)&regs->p0;
	int __user *up0 = (int __user *)regs->p0;

	if (regs->pc < ATOMIC_SEQS_START || regs->pc >= ATOMIC_SEQS_END)
		return;
Loading