Commit 34d4ade77ba755afa6a2a04f043659781e4b6fc2
Exists in
master
and in
4 other branches
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
- arch/arm/include/asm/mach/arch.h
- arch/arm/include/asm/pgalloc.h
- arch/arm/kernel/hw_breakpoint.c
- arch/arm/kernel/ptrace.c
- arch/arm/mach-davinci/cpufreq.c
- arch/arm/mach-davinci/devices-da8xx.c
- arch/arm/mach-davinci/gpio-tnetv107x.c
- arch/arm/mach-davinci/include/mach/clkdev.h
- arch/arm/mach-pxa/pxa25x.c
- arch/arm/mach-pxa/tosa-bt.c
- arch/arm/mach-pxa/tosa.c
- drivers/pcmcia/pxa2xx_colibri.c
arch/arm/common/Kconfig
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
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(®s->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(®s->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(®s->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(®s->data_out, gpio); | |
109 | + gpio_reg_set_bit(regs->data_out, gpio); | |
110 | 110 | else |
111 | - gpio_reg_clear_bit(®s->data_out, gpio); | |
111 | + gpio_reg_clear_bit(regs->data_out, gpio); | |
112 | 112 | |
113 | - gpio_reg_clear_bit(®s->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(®s->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(®s->data_out, gpio); | |
143 | + gpio_reg_set_bit(regs->data_out, gpio); | |
144 | 144 | else |
145 | - gpio_reg_clear_bit(®s->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
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/tosa-bt.c
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