Commit 34d4ade77ba755afa6a2a04f043659781e4b6fc2

Authored by 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

Showing 13 changed files Side-by-side Diff

arch/arm/common/Kconfig
... ... @@ -6,6 +6,8 @@
6 6  
7 7 config ARM_VIC_NR
8 8 int
  9 + default 4 if ARCH_S5PV210
  10 + default 3 if ARCH_S5P6442 || ARCH_S5PC100
9 11 default 2
10 12 depends on ARM_VIC
11 13 help
arch/arm/include/asm/mach/arch.h
... ... @@ -15,10 +15,6 @@
15 15 struct sys_timer;
16 16  
17 17 struct machine_desc {
18   - /*
19   - * Note! The first two elements are used
20   - * by assembler code in head.S, head-common.S
21   - */
22 18 unsigned int nr; /* architecture number */
23 19 const char *name; /* architecture name */
24 20 unsigned long boot_params; /* tagged list */
arch/arm/include/asm/pgalloc.h
... ... @@ -10,6 +10,8 @@
10 10 #ifndef _ASMARM_PGALLOC_H
11 11 #define _ASMARM_PGALLOC_H
12 12  
  13 +#include <linux/pagemap.h>
  14 +
13 15 #include <asm/domain.h>
14 16 #include <asm/pgtable-hwdef.h>
15 17 #include <asm/processor.h>
arch/arm/kernel/hw_breakpoint.c
... ... @@ -836,9 +836,11 @@
836 836 /*
837 837 * One-time initialisation.
838 838 */
839   -static void reset_ctrl_regs(void *unused)
  839 +static void reset_ctrl_regs(void *info)
840 840 {
841   - int i;
  841 + int i, cpu = smp_processor_id();
  842 + u32 dbg_power;
  843 + cpumask_t *cpumask = info;
842 844  
843 845 /*
844 846 * v7 debug contains save and restore registers so that debug state
... ... @@ -850,6 +852,17 @@
850 852 */
851 853 if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) {
852 854 /*
  855 + * Ensure sticky power-down is clear (i.e. debug logic is
  856 + * powered up).
  857 + */
  858 + asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power));
  859 + if ((dbg_power & 0x1) == 0) {
  860 + pr_warning("CPU %d debug is powered down!\n", cpu);
  861 + cpumask_or(cpumask, cpumask, cpumask_of(cpu));
  862 + return;
  863 + }
  864 +
  865 + /*
853 866 * Unconditionally clear the lock by writing a value
854 867 * other than 0xC5ACCE55 to the access register.
855 868 */
... ... @@ -887,6 +900,7 @@
887 900 static int __init arch_hw_breakpoint_init(void)
888 901 {
889 902 u32 dscr;
  903 + cpumask_t cpumask = { CPU_BITS_NONE };
890 904  
891 905 debug_arch = get_debug_arch();
892 906  
... ... @@ -911,7 +925,13 @@
911 925 * Reset the breakpoint resources. We assume that a halting
912 926 * debugger will leave the world in a nice state for us.
913 927 */
914   - on_each_cpu(reset_ctrl_regs, NULL, 1);
  928 + on_each_cpu(reset_ctrl_regs, &cpumask, 1);
  929 + if (!cpumask_empty(&cpumask)) {
  930 + core_num_brps = 0;
  931 + core_num_reserved_brps = 0;
  932 + core_num_wrps = 0;
  933 + return 0;
  934 + }
915 935  
916 936 ARM_DBG_READ(c1, 0, dscr);
917 937 if (dscr & ARM_DSCR_HDBGEN) {
arch/arm/kernel/ptrace.c
... ... @@ -996,10 +996,10 @@
996 996 while (!(arch_ctrl.len & 0x1))
997 997 arch_ctrl.len >>= 1;
998 998  
999   - if (idx & 0x1)
1000   - reg = encode_ctrl_reg(arch_ctrl);
1001   - else
  999 + if (num & 0x1)
1002 1000 reg = bp->attr.bp_addr;
  1001 + else
  1002 + reg = encode_ctrl_reg(arch_ctrl);
1003 1003 }
1004 1004  
1005 1005 put:
arch/arm/mach-davinci/cpufreq.c
... ... @@ -132,7 +132,7 @@
132 132 return ret;
133 133 }
134 134  
135   -static int __init davinci_cpu_init(struct cpufreq_policy *policy)
  135 +static int davinci_cpu_init(struct cpufreq_policy *policy)
136 136 {
137 137 int result = 0;
138 138 struct davinci_cpufreq_config *pdata = cpufreq.dev->platform_data;
arch/arm/mach-davinci/devices-da8xx.c
... ... @@ -480,8 +480,15 @@
480 480 .resource = da850_mcasp_resources,
481 481 };
482 482  
  483 +struct platform_device davinci_pcm_device = {
  484 + .name = "davinci-pcm-audio",
  485 + .id = -1,
  486 +};
  487 +
483 488 void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
484 489 {
  490 + platform_device_register(&davinci_pcm_device);
  491 +
485 492 /* DA830/OMAP-L137 has 3 instances of McASP */
486 493 if (cpu_is_davinci_da830() && id == 1) {
487 494 da830_mcasp1_device.dev.platform_data = pdata;
arch/arm/mach-davinci/gpio-tnetv107x.c
... ... @@ -58,7 +58,7 @@
58 58  
59 59 spin_lock_irqsave(&ctlr->lock, flags);
60 60  
61   - gpio_reg_set_bit(&regs->enable, gpio);
  61 + gpio_reg_set_bit(regs->enable, gpio);
62 62  
63 63 spin_unlock_irqrestore(&ctlr->lock, flags);
64 64  
... ... @@ -74,7 +74,7 @@
74 74  
75 75 spin_lock_irqsave(&ctlr->lock, flags);
76 76  
77   - gpio_reg_clear_bit(&regs->enable, gpio);
  77 + gpio_reg_clear_bit(regs->enable, gpio);
78 78  
79 79 spin_unlock_irqrestore(&ctlr->lock, flags);
80 80 }
... ... @@ -88,7 +88,7 @@
88 88  
89 89 spin_lock_irqsave(&ctlr->lock, flags);
90 90  
91   - gpio_reg_set_bit(&regs->direction, gpio);
  91 + gpio_reg_set_bit(regs->direction, gpio);
92 92  
93 93 spin_unlock_irqrestore(&ctlr->lock, flags);
94 94  
95 95  
96 96  
... ... @@ -106,11 +106,11 @@
106 106 spin_lock_irqsave(&ctlr->lock, flags);
107 107  
108 108 if (value)
109   - gpio_reg_set_bit(&regs->data_out, gpio);
  109 + gpio_reg_set_bit(regs->data_out, gpio);
110 110 else
111   - gpio_reg_clear_bit(&regs->data_out, gpio);
  111 + gpio_reg_clear_bit(regs->data_out, gpio);
112 112  
113   - gpio_reg_clear_bit(&regs->direction, gpio);
  113 + gpio_reg_clear_bit(regs->direction, gpio);
114 114  
115 115 spin_unlock_irqrestore(&ctlr->lock, flags);
116 116  
... ... @@ -124,7 +124,7 @@
124 124 unsigned gpio = chip->base + offset;
125 125 int ret;
126 126  
127   - ret = gpio_reg_get_bit(&regs->data_in, gpio);
  127 + ret = gpio_reg_get_bit(regs->data_in, gpio);
128 128  
129 129 return ret ? 1 : 0;
130 130 }
131 131  
... ... @@ -140,9 +140,9 @@
140 140 spin_lock_irqsave(&ctlr->lock, flags);
141 141  
142 142 if (value)
143   - gpio_reg_set_bit(&regs->data_out, gpio);
  143 + gpio_reg_set_bit(regs->data_out, gpio);
144 144 else
145   - gpio_reg_clear_bit(&regs->data_out, gpio);
  145 + gpio_reg_clear_bit(regs->data_out, gpio);
146 146  
147 147 spin_unlock_irqrestore(&ctlr->lock, flags);
148 148 }
arch/arm/mach-davinci/include/mach/clkdev.h
1 1 #ifndef __MACH_CLKDEV_H
2 2 #define __MACH_CLKDEV_H
3 3  
  4 +struct clk;
  5 +
4 6 static inline int __clk_get(struct clk *clk)
5 7 {
6 8 return 1;
arch/arm/mach-pxa/pxa25x.c
... ... @@ -347,6 +347,7 @@
347 347 &pxa25x_device_assp,
348 348 &pxa25x_device_pwm0,
349 349 &pxa25x_device_pwm1,
  350 + &pxa_device_asoc_platform,
350 351 };
351 352  
352 353 static struct sys_device pxa25x_sysdev[] = {
arch/arm/mach-pxa/tosa-bt.c
... ... @@ -81,8 +81,6 @@
81 81 goto err_rfk_alloc;
82 82 }
83 83  
84   - rfkill_set_led_trigger_name(rfk, "tosa-bt");
85   -
86 84 rc = rfkill_register(rfk);
87 85 if (rc)
88 86 goto err_rfkill;
arch/arm/mach-pxa/tosa.c
... ... @@ -875,6 +875,11 @@
875 875 .dev.platform_data = &sharpsl_rom_data,
876 876 };
877 877  
  878 +static struct platform_device wm9712_device = {
  879 + .name = "wm9712-codec",
  880 + .id = -1,
  881 +};
  882 +
878 883 static struct platform_device *devices[] __initdata = {
879 884 &tosascoop_device,
880 885 &tosascoop_jc_device,
... ... @@ -885,6 +890,7 @@
885 890 &tosaled_device,
886 891 &tosa_bt_device,
887 892 &sharpsl_rom_device,
  893 + &wm9712_device,
888 894 };
889 895  
890 896 static void tosa_poweroff(void)
drivers/pcmcia/pxa2xx_colibri.c
... ... @@ -181,6 +181,9 @@
181 181 {
182 182 int ret;
183 183  
  184 + if (!machine_is_colibri() && !machine_is_colibri320())
  185 + return -ENODEV;
  186 +
184 187 colibri_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
185 188 if (!colibri_pcmcia_device)
186 189 return -ENOMEM;