Commit b73384f0 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4843/1: Add GCR_CLKBPB for PXA3xx
  [ARM] 4842/1: pxa: remove redundant IRQ saving/restoring in clk_pxa3xx_cken_*
  [ARM] 4841/1: pxa: fix typo in LCD platform data definition code for zylonite
  [ARM] 4840/1: pxa: fix the typo in get_irqnr_and_base
  [ARM] 4839/1: fixes kernel Oops in /dev/mem device driver for memory map with PHYS_OFF
  [ARM] eliminate MODULE_PARM() usage
  [ARM] 4838/1: Fix kexec for SA1100 machines
  [ARM] 4837/1: make __get_unaligned_*() return unsigned types
  [ARM] 4836/1: Make ATAGS_PROC depend on KEXEC
parents c9e71002 d862ccc5
...@@ -939,7 +939,8 @@ config KEXEC ...@@ -939,7 +939,8 @@ config KEXEC
config ATAGS_PROC config ATAGS_PROC
bool "Export atags in procfs" bool "Export atags in procfs"
default n depends on KEXEC
default y
help help
Should the atags used to boot the kernel be exported in an "atags" Should the atags used to boot the kernel be exported in an "atags"
file in procfs. Useful with kexec. file in procfs. Useful with kexec.
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#ifdef DEBUG #ifdef DEBUG
static unsigned int freq_debug; static unsigned int freq_debug;
MODULE_PARM(freq_debug, "i"); module_param(freq_debug, uint, 0);
MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0"); MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0");
#else #else
#define freq_debug 0 #define freq_debug 0
......
...@@ -129,28 +129,20 @@ static void clk_pxa3xx_cken_enable(struct clk *clk) ...@@ -129,28 +129,20 @@ static void clk_pxa3xx_cken_enable(struct clk *clk)
{ {
unsigned long mask = 1ul << (clk->cken & 0x1f); unsigned long mask = 1ul << (clk->cken & 0x1f);
local_irq_disable();
if (clk->cken < 32) if (clk->cken < 32)
CKENA |= mask; CKENA |= mask;
else else
CKENB |= mask; CKENB |= mask;
local_irq_enable();
} }
static void clk_pxa3xx_cken_disable(struct clk *clk) static void clk_pxa3xx_cken_disable(struct clk *clk)
{ {
unsigned long mask = 1ul << (clk->cken & 0x1f); unsigned long mask = 1ul << (clk->cken & 0x1f);
local_irq_disable();
if (clk->cken < 32) if (clk->cken < 32)
CKENA &= ~mask; CKENA &= ~mask;
else else
CKENB &= ~mask; CKENB &= ~mask;
local_irq_enable();
} }
static const struct clkops clk_pxa3xx_cken_ops = { static const struct clkops clk_pxa3xx_cken_ops = {
......
...@@ -58,7 +58,7 @@ static struct platform_device smc91x_device = { ...@@ -58,7 +58,7 @@ static struct platform_device smc91x_device = {
.resource = smc91x_resources, .resource = smc91x_resources,
}; };
#if defined(CONFIG_FB_PXA) || (CONFIG_FB_PXA_MODULES) #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
static void zylonite_backlight_power(int on) static void zylonite_backlight_power(int on)
{ {
gpio_set_value(gpio_backlight, on); gpio_set_value(gpio_backlight, on);
......
...@@ -120,6 +120,8 @@ full_search: ...@@ -120,6 +120,8 @@ full_search:
*/ */
int valid_phys_addr_range(unsigned long addr, size_t size) int valid_phys_addr_range(unsigned long addr, size_t size)
{ {
if (addr < PHYS_OFFSET)
return 0;
if (addr + size > __pa(high_memory)) if (addr + size > __pa(high_memory))
return 0; return 0;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
1004: 1004:
mrc p6, 0, \irqstat, c6, c0, 0 @ ICIP2 mrc p6, 0, \irqstat, c6, c0, 0 @ ICIP2
mrc p6, 0, \irqnr, c7, c0, 0 @ ICMR2 mrc p6, 0, \irqnr, c7, c0, 0 @ ICMR2
ands \irqstat, \irqstat, \irqnr ands \irqnr, \irqstat, \irqnr
beq 1003f beq 1003f
rsb \irqstat, \irqnr, #0 rsb \irqstat, \irqnr, #0
and \irqstat, \irqstat, \irqnr and \irqstat, \irqstat, \irqnr
......
...@@ -520,6 +520,9 @@ ...@@ -520,6 +520,9 @@
#define MCCR_FSRIE (1 << 1) /* FIFO Service Request Interrupt Enable */ #define MCCR_FSRIE (1 << 1) /* FIFO Service Request Interrupt Enable */
#define GCR __REG(0x4050000C) /* Global Control Register */ #define GCR __REG(0x4050000C) /* Global Control Register */
#ifdef CONFIG_PXA3xx
#define GCR_CLKBPB (1 << 31) /* Internal clock enable */
#endif
#define GCR_nDMAEN (1 << 24) /* non DMA Enable */ #define GCR_nDMAEN (1 << 24) /* non DMA Enable */
#define GCR_CDONE_IE (1 << 19) /* Command Done Interrupt Enable */ #define GCR_CDONE_IE (1 << 19) /* Command Done Interrupt Enable */
#define GCR_SDONE_IE (1 << 18) /* Status Done Interrupt Enable */ #define GCR_SDONE_IE (1 << 18) /* Status Done Interrupt Enable */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
/* Maximum address we can reach in physical address mode */ /* Maximum address we can reach in physical address mode */
#define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
/* Maximum address we can use for the control code buffer */ /* Maximum address we can use for the control code buffer */
#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE #define KEXEC_CONTROL_MEMORY_LIMIT (-1UL)
#define KEXEC_CONTROL_CODE_SIZE 4096 #define KEXEC_CONTROL_CODE_SIZE 4096
......
...@@ -40,16 +40,16 @@ extern int __bug_unaligned_x(const void *ptr); ...@@ -40,16 +40,16 @@ extern int __bug_unaligned_x(const void *ptr);
*/ */
#define __get_unaligned_2_le(__p) \ #define __get_unaligned_2_le(__p) \
(__p[0] | __p[1] << 8) (unsigned int)(__p[0] | __p[1] << 8)
#define __get_unaligned_2_be(__p) \ #define __get_unaligned_2_be(__p) \
(__p[0] << 8 | __p[1]) (unsigned int)(__p[0] << 8 | __p[1])
#define __get_unaligned_4_le(__p) \ #define __get_unaligned_4_le(__p) \
(__p[0] | __p[1] << 8 | __p[2] << 16 | __p[3] << 24) (unsigned int)(__p[0] | __p[1] << 8 | __p[2] << 16 | __p[3] << 24)
#define __get_unaligned_4_be(__p) \ #define __get_unaligned_4_be(__p) \
(__p[0] << 24 | __p[1] << 16 | __p[2] << 8 | __p[3]) (unsigned int)(__p[0] << 24 | __p[1] << 16 | __p[2] << 8 | __p[3])
#define __get_unaligned_8_le(__p) \ #define __get_unaligned_8_le(__p) \
((unsigned long long)__get_unaligned_4_le((__p+4)) << 32 | \ ((unsigned long long)__get_unaligned_4_le((__p+4)) << 32 | \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment