Commit 34d4ade7 authored by Linus Torvalds's avatar Linus Torvalds

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

* 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
  davinci: cpufreq: fix section mismatch warning
  DaVinci: fix compilation warnings in <mach/clkdev.h>
  davinci: tnetv107x: fix register indexing for GPIOs numbers > 31
  davinci: da8xx/omap-l1x: add platform device for davinci-pcm-audio
  ARM: pxa/tosa: register wm9712 codec device
  ARM: pxa: enable pxa-pcm-audio on pxa210/pxa25x platform
  ARM: pxa/colibri: don't register pxa2xx-pcmcia nodes on non-colibri platforms
  ARM: pxa/tosa: drop setting LED trigger name, as it's unsupported now
  ARM: 6762/1: Update number of VIC for S5P6442 and S5PC100
  ARM: 6761/1: Update number of VIC for S5PV210
  ARM: 6768/1: hw_breakpoint: ensure debug logic is powered up on v7 cores
  ARM: 6767/1: ptrace: fix register indexing in GETHBPREGS request
  ARM: 6765/1: remove obsolete comment from asm/mach/arch.h
  ARM: 6757/1: fix tlb.h induced linux/swap.h build failure
parents 1a345303 c0d61a79
...@@ -6,6 +6,8 @@ config ARM_VIC ...@@ -6,6 +6,8 @@ config ARM_VIC
config ARM_VIC_NR config ARM_VIC_NR
int int
default 4 if ARCH_S5PV210
default 3 if ARCH_S5P6442 || ARCH_S5PC100
default 2 default 2
depends on ARM_VIC depends on ARM_VIC
help help
......
...@@ -15,10 +15,6 @@ struct meminfo; ...@@ -15,10 +15,6 @@ struct meminfo;
struct sys_timer; struct sys_timer;
struct machine_desc { struct machine_desc {
/*
* Note! The first two elements are used
* by assembler code in head.S, head-common.S
*/
unsigned int nr; /* architecture number */ unsigned int nr; /* architecture number */
const char *name; /* architecture name */ const char *name; /* architecture name */
unsigned long boot_params; /* tagged list */ unsigned long boot_params; /* tagged list */
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#ifndef _ASMARM_PGALLOC_H #ifndef _ASMARM_PGALLOC_H
#define _ASMARM_PGALLOC_H #define _ASMARM_PGALLOC_H
#include <linux/pagemap.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/pgtable-hwdef.h> #include <asm/pgtable-hwdef.h>
#include <asm/processor.h> #include <asm/processor.h>
......
...@@ -836,9 +836,11 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, ...@@ -836,9 +836,11 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr,
/* /*
* One-time initialisation. * One-time initialisation.
*/ */
static void reset_ctrl_regs(void *unused) static void reset_ctrl_regs(void *info)
{ {
int i; int i, cpu = smp_processor_id();
u32 dbg_power;
cpumask_t *cpumask = info;
/* /*
* v7 debug contains save and restore registers so that debug state * v7 debug contains save and restore registers so that debug state
...@@ -849,6 +851,17 @@ static void reset_ctrl_regs(void *unused) ...@@ -849,6 +851,17 @@ static void reset_ctrl_regs(void *unused)
* later on. * later on.
*/ */
if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) { if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) {
/*
* Ensure sticky power-down is clear (i.e. debug logic is
* powered up).
*/
asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power));
if ((dbg_power & 0x1) == 0) {
pr_warning("CPU %d debug is powered down!\n", cpu);
cpumask_or(cpumask, cpumask, cpumask_of(cpu));
return;
}
/* /*
* Unconditionally clear the lock by writing a value * Unconditionally clear the lock by writing a value
* other than 0xC5ACCE55 to the access register. * other than 0xC5ACCE55 to the access register.
...@@ -887,6 +900,7 @@ static struct notifier_block __cpuinitdata dbg_reset_nb = { ...@@ -887,6 +900,7 @@ static struct notifier_block __cpuinitdata dbg_reset_nb = {
static int __init arch_hw_breakpoint_init(void) static int __init arch_hw_breakpoint_init(void)
{ {
u32 dscr; u32 dscr;
cpumask_t cpumask = { CPU_BITS_NONE };
debug_arch = get_debug_arch(); debug_arch = get_debug_arch();
...@@ -911,7 +925,13 @@ static int __init arch_hw_breakpoint_init(void) ...@@ -911,7 +925,13 @@ static int __init arch_hw_breakpoint_init(void)
* Reset the breakpoint resources. We assume that a halting * Reset the breakpoint resources. We assume that a halting
* debugger will leave the world in a nice state for us. * debugger will leave the world in a nice state for us.
*/ */
on_each_cpu(reset_ctrl_regs, NULL, 1); on_each_cpu(reset_ctrl_regs, &cpumask, 1);
if (!cpumask_empty(&cpumask)) {
core_num_brps = 0;
core_num_reserved_brps = 0;
core_num_wrps = 0;
return 0;
}
ARM_DBG_READ(c1, 0, dscr); ARM_DBG_READ(c1, 0, dscr);
if (dscr & ARM_DSCR_HDBGEN) { if (dscr & ARM_DSCR_HDBGEN) {
......
...@@ -996,10 +996,10 @@ static int ptrace_gethbpregs(struct task_struct *tsk, long num, ...@@ -996,10 +996,10 @@ static int ptrace_gethbpregs(struct task_struct *tsk, long num,
while (!(arch_ctrl.len & 0x1)) while (!(arch_ctrl.len & 0x1))
arch_ctrl.len >>= 1; arch_ctrl.len >>= 1;
if (idx & 0x1) if (num & 0x1)
reg = encode_ctrl_reg(arch_ctrl);
else
reg = bp->attr.bp_addr; reg = bp->attr.bp_addr;
else
reg = encode_ctrl_reg(arch_ctrl);
} }
put: put:
......
...@@ -132,7 +132,7 @@ static int davinci_target(struct cpufreq_policy *policy, ...@@ -132,7 +132,7 @@ static int davinci_target(struct cpufreq_policy *policy,
return ret; return ret;
} }
static int __init davinci_cpu_init(struct cpufreq_policy *policy) static int davinci_cpu_init(struct cpufreq_policy *policy)
{ {
int result = 0; int result = 0;
struct davinci_cpufreq_config *pdata = cpufreq.dev->platform_data; struct davinci_cpufreq_config *pdata = cpufreq.dev->platform_data;
......
...@@ -480,8 +480,15 @@ static struct platform_device da850_mcasp_device = { ...@@ -480,8 +480,15 @@ static struct platform_device da850_mcasp_device = {
.resource = da850_mcasp_resources, .resource = da850_mcasp_resources,
}; };
struct platform_device davinci_pcm_device = {
.name = "davinci-pcm-audio",
.id = -1,
};
void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata) void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
{ {
platform_device_register(&davinci_pcm_device);
/* DA830/OMAP-L137 has 3 instances of McASP */ /* DA830/OMAP-L137 has 3 instances of McASP */
if (cpu_is_davinci_da830() && id == 1) { if (cpu_is_davinci_da830() && id == 1) {
da830_mcasp1_device.dev.platform_data = pdata; da830_mcasp1_device.dev.platform_data = pdata;
......
...@@ -58,7 +58,7 @@ static int tnetv107x_gpio_request(struct gpio_chip *chip, unsigned offset) ...@@ -58,7 +58,7 @@ static int tnetv107x_gpio_request(struct gpio_chip *chip, unsigned offset)
spin_lock_irqsave(&ctlr->lock, flags); spin_lock_irqsave(&ctlr->lock, flags);
gpio_reg_set_bit(&regs->enable, gpio); gpio_reg_set_bit(regs->enable, gpio);
spin_unlock_irqrestore(&ctlr->lock, flags); spin_unlock_irqrestore(&ctlr->lock, flags);
...@@ -74,7 +74,7 @@ static void tnetv107x_gpio_free(struct gpio_chip *chip, unsigned offset) ...@@ -74,7 +74,7 @@ static void tnetv107x_gpio_free(struct gpio_chip *chip, unsigned offset)
spin_lock_irqsave(&ctlr->lock, flags); spin_lock_irqsave(&ctlr->lock, flags);
gpio_reg_clear_bit(&regs->enable, gpio); gpio_reg_clear_bit(regs->enable, gpio);
spin_unlock_irqrestore(&ctlr->lock, flags); spin_unlock_irqrestore(&ctlr->lock, flags);
} }
...@@ -88,7 +88,7 @@ static int tnetv107x_gpio_dir_in(struct gpio_chip *chip, unsigned offset) ...@@ -88,7 +88,7 @@ static int tnetv107x_gpio_dir_in(struct gpio_chip *chip, unsigned offset)
spin_lock_irqsave(&ctlr->lock, flags); spin_lock_irqsave(&ctlr->lock, flags);
gpio_reg_set_bit(&regs->direction, gpio); gpio_reg_set_bit(regs->direction, gpio);
spin_unlock_irqrestore(&ctlr->lock, flags); spin_unlock_irqrestore(&ctlr->lock, flags);
...@@ -106,11 +106,11 @@ static int tnetv107x_gpio_dir_out(struct gpio_chip *chip, ...@@ -106,11 +106,11 @@ static int tnetv107x_gpio_dir_out(struct gpio_chip *chip,
spin_lock_irqsave(&ctlr->lock, flags); spin_lock_irqsave(&ctlr->lock, flags);
if (value) if (value)
gpio_reg_set_bit(&regs->data_out, gpio); gpio_reg_set_bit(regs->data_out, gpio);
else else
gpio_reg_clear_bit(&regs->data_out, gpio); gpio_reg_clear_bit(regs->data_out, gpio);
gpio_reg_clear_bit(&regs->direction, gpio); gpio_reg_clear_bit(regs->direction, gpio);
spin_unlock_irqrestore(&ctlr->lock, flags); spin_unlock_irqrestore(&ctlr->lock, flags);
...@@ -124,7 +124,7 @@ static int tnetv107x_gpio_get(struct gpio_chip *chip, unsigned offset) ...@@ -124,7 +124,7 @@ static int tnetv107x_gpio_get(struct gpio_chip *chip, unsigned offset)
unsigned gpio = chip->base + offset; unsigned gpio = chip->base + offset;
int ret; int ret;
ret = gpio_reg_get_bit(&regs->data_in, gpio); ret = gpio_reg_get_bit(regs->data_in, gpio);
return ret ? 1 : 0; return ret ? 1 : 0;
} }
...@@ -140,9 +140,9 @@ static void tnetv107x_gpio_set(struct gpio_chip *chip, ...@@ -140,9 +140,9 @@ static void tnetv107x_gpio_set(struct gpio_chip *chip,
spin_lock_irqsave(&ctlr->lock, flags); spin_lock_irqsave(&ctlr->lock, flags);
if (value) if (value)
gpio_reg_set_bit(&regs->data_out, gpio); gpio_reg_set_bit(regs->data_out, gpio);
else else
gpio_reg_clear_bit(&regs->data_out, gpio); gpio_reg_clear_bit(regs->data_out, gpio);
spin_unlock_irqrestore(&ctlr->lock, flags); spin_unlock_irqrestore(&ctlr->lock, flags);
} }
......
#ifndef __MACH_CLKDEV_H #ifndef __MACH_CLKDEV_H
#define __MACH_CLKDEV_H #define __MACH_CLKDEV_H
struct clk;
static inline int __clk_get(struct clk *clk) static inline int __clk_get(struct clk *clk)
{ {
return 1; return 1;
......
...@@ -347,6 +347,7 @@ static struct platform_device *pxa25x_devices[] __initdata = { ...@@ -347,6 +347,7 @@ static struct platform_device *pxa25x_devices[] __initdata = {
&pxa25x_device_assp, &pxa25x_device_assp,
&pxa25x_device_pwm0, &pxa25x_device_pwm0,
&pxa25x_device_pwm1, &pxa25x_device_pwm1,
&pxa_device_asoc_platform,
}; };
static struct sys_device pxa25x_sysdev[] = { static struct sys_device pxa25x_sysdev[] = {
......
...@@ -81,8 +81,6 @@ static int tosa_bt_probe(struct platform_device *dev) ...@@ -81,8 +81,6 @@ static int tosa_bt_probe(struct platform_device *dev)
goto err_rfk_alloc; goto err_rfk_alloc;
} }
rfkill_set_led_trigger_name(rfk, "tosa-bt");
rc = rfkill_register(rfk); rc = rfkill_register(rfk);
if (rc) if (rc)
goto err_rfkill; goto err_rfkill;
......
...@@ -875,6 +875,11 @@ static struct platform_device sharpsl_rom_device = { ...@@ -875,6 +875,11 @@ static struct platform_device sharpsl_rom_device = {
.dev.platform_data = &sharpsl_rom_data, .dev.platform_data = &sharpsl_rom_data,
}; };
static struct platform_device wm9712_device = {
.name = "wm9712-codec",
.id = -1,
};
static struct platform_device *devices[] __initdata = { static struct platform_device *devices[] __initdata = {
&tosascoop_device, &tosascoop_device,
&tosascoop_jc_device, &tosascoop_jc_device,
...@@ -885,6 +890,7 @@ static struct platform_device *devices[] __initdata = { ...@@ -885,6 +890,7 @@ static struct platform_device *devices[] __initdata = {
&tosaled_device, &tosaled_device,
&tosa_bt_device, &tosa_bt_device,
&sharpsl_rom_device, &sharpsl_rom_device,
&wm9712_device,
}; };
static void tosa_poweroff(void) static void tosa_poweroff(void)
......
...@@ -181,6 +181,9 @@ static int __init colibri_pcmcia_init(void) ...@@ -181,6 +181,9 @@ static int __init colibri_pcmcia_init(void)
{ {
int ret; int ret;
if (!machine_is_colibri() && !machine_is_colibri320())
return -ENODEV;
colibri_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); colibri_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
if (!colibri_pcmcia_device) if (!colibri_pcmcia_device)
return -ENOMEM; return -ENOMEM;
......
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