aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-msm/Kconfig9
-rw-r--r--arch/arm/mach-msm/board-halibut.c1
-rw-r--r--arch/arm/mach-msm/include/mach/debug-macro.S15
-rw-r--r--arch/arm/mach-msm/iommu_dev.c22
-rw-r--r--arch/arm/mach-msm/timer.c2
-rw-r--r--drivers/video/msm/mddi.c5
-rw-r--r--drivers/video/msm/mdp.c3
7 files changed, 36 insertions, 21 deletions
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 3115a29dec4e..dbbcfeb919db 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -6,6 +6,7 @@ choice
6 6
7config ARCH_MSM7X00A 7config ARCH_MSM7X00A
8 bool "MSM7x00A / MSM7x01A" 8 bool "MSM7x00A / MSM7x01A"
9 select MACH_TROUT if !MACH_HALIBUT
9 select ARCH_MSM_ARM11 10 select ARCH_MSM_ARM11
10 select MSM_SMD 11 select MSM_SMD
11 select MSM_SMD_PKG3 12 select MSM_SMD_PKG3
@@ -15,34 +16,34 @@ config ARCH_MSM7X00A
15 16
16config ARCH_MSM7X30 17config ARCH_MSM7X30
17 bool "MSM7x30" 18 bool "MSM7x30"
19 select MACH_MSM7X30_SURF # if !
18 select ARCH_MSM_SCORPION 20 select ARCH_MSM_SCORPION
19 select MSM_SMD 21 select MSM_SMD
20 select MSM_VIC 22 select MSM_VIC
21 select CPU_V7 23 select CPU_V7
22 select MSM_REMOTE_SPINLOCK_DEKKERS
23 select MSM_GPIOMUX 24 select MSM_GPIOMUX
24 select MSM_PROC_COMM 25 select MSM_PROC_COMM
25 select HAS_MSM_DEBUG_UART_PHYS 26 select HAS_MSM_DEBUG_UART_PHYS
26 27
27config ARCH_QSD8X50 28config ARCH_QSD8X50
28 bool "QSD8X50" 29 bool "QSD8X50"
30 select MACH_QSD8X50_SURF if !MACH_QSD8X50A_ST1_5
29 select ARCH_MSM_SCORPION 31 select ARCH_MSM_SCORPION
30 select MSM_SMD 32 select MSM_SMD
31 select MSM_VIC 33 select MSM_VIC
32 select CPU_V7 34 select CPU_V7
33 select MSM_REMOTE_SPINLOCK_LDREX
34 select MSM_GPIOMUX 35 select MSM_GPIOMUX
35 select MSM_PROC_COMM 36 select MSM_PROC_COMM
36 select HAS_MSM_DEBUG_UART_PHYS 37 select HAS_MSM_DEBUG_UART_PHYS
37 38
38config ARCH_MSM8X60 39config ARCH_MSM8X60
39 bool "MSM8X60" 40 bool "MSM8X60"
41 select MACH_MSM8X60_SURF if (!MACH_MSM8X60_RUMI3 && !MACH_MSM8X60_SIM \
42 && !MACH_MSM8X60_FFA)
40 select ARM_GIC 43 select ARM_GIC
41 select CPU_V7 44 select CPU_V7
42 select MSM_V2_TLMM 45 select MSM_V2_TLMM
43 select MSM_GPIOMUX 46 select MSM_GPIOMUX
44 select MACH_MSM8X60_SURF if (!MACH_MSM8X60_RUMI3 && !MACH_MSM8X60_SIM \
45 && !MACH_MSM8X60_FFA)
46 47
47endchoice 48endchoice
48 49
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c
index 59edecbe126c..75dabb16c802 100644
--- a/arch/arm/mach-msm/board-halibut.c
+++ b/arch/arm/mach-msm/board-halibut.c
@@ -83,7 +83,6 @@ static void __init halibut_fixup(struct machine_desc *desc, struct tag *tags,
83{ 83{
84 mi->nr_banks=1; 84 mi->nr_banks=1;
85 mi->bank[0].start = PHYS_OFFSET; 85 mi->bank[0].start = PHYS_OFFSET;
86 mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET);
87 mi->bank[0].size = (101*1024*1024); 86 mi->bank[0].size = (101*1024*1024);
88} 87}
89 88
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index fbd5d90dcc8c..646b99ebc773 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -19,7 +19,7 @@
19#include <mach/hardware.h> 19#include <mach/hardware.h>
20#include <mach/msm_iomap.h> 20#include <mach/msm_iomap.h>
21 21
22#ifdef CONFIG_HAS_MSM_DEBUG_UART_PHYS 22#if defined(CONFIG_HAS_MSM_DEBUG_UART_PHYS) && !defined(CONFIG_MSM_DEBUG_UART_NONE)
23 .macro addruart, rp, rv 23 .macro addruart, rp, rv
24 ldr \rp, =MSM_DEBUG_UART_PHYS 24 ldr \rp, =MSM_DEBUG_UART_PHYS
25 ldr \rv, =MSM_DEBUG_UART_BASE 25 ldr \rv, =MSM_DEBUG_UART_BASE
@@ -36,7 +36,18 @@
36 tst \rd, #0x04 36 tst \rd, #0x04
37 beq 1001b 37 beq 1001b
38 .endm 38 .endm
39#else
40 .macro addruart, rp, rv
41 mov \rv, #0xff000000
42 orr \rv, \rv, #0x00f00000
43 .endm
39 44
40 .macro busyuart,rd,rx 45 .macro senduart,rd,rx
46 .endm
47
48 .macro waituart,rd,rx
41 .endm 49 .endm
42#endif 50#endif
51
52 .macro busyuart,rd,rx
53 .endm
diff --git a/arch/arm/mach-msm/iommu_dev.c b/arch/arm/mach-msm/iommu_dev.c
index c33ae786c41f..9019cee2907b 100644
--- a/arch/arm/mach-msm/iommu_dev.c
+++ b/arch/arm/mach-msm/iommu_dev.c
@@ -128,7 +128,7 @@ static void msm_iommu_reset(void __iomem *base)
128 128
129static int msm_iommu_probe(struct platform_device *pdev) 129static int msm_iommu_probe(struct platform_device *pdev)
130{ 130{
131 struct resource *r; 131 struct resource *r, *r2;
132 struct clk *iommu_clk; 132 struct clk *iommu_clk;
133 struct msm_iommu_drvdata *drvdata; 133 struct msm_iommu_drvdata *drvdata;
134 struct msm_iommu_dev *iommu_dev = pdev->dev.platform_data; 134 struct msm_iommu_dev *iommu_dev = pdev->dev.platform_data;
@@ -183,27 +183,27 @@ static int msm_iommu_probe(struct platform_device *pdev)
183 183
184 len = r->end - r->start + 1; 184 len = r->end - r->start + 1;
185 185
186 r = request_mem_region(r->start, len, r->name); 186 r2 = request_mem_region(r->start, len, r->name);
187 if (!r) { 187 if (!r2) {
188 pr_err("Could not request memory region: " 188 pr_err("Could not request memory region: "
189 "start=%p, len=%d\n", (void *) r->start, len); 189 "start=%p, len=%d\n", (void *) r->start, len);
190 ret = -EBUSY; 190 ret = -EBUSY;
191 goto fail; 191 goto fail;
192 } 192 }
193 193
194 regs_base = ioremap(r->start, len); 194 regs_base = ioremap(r2->start, len);
195 195
196 if (!regs_base) { 196 if (!regs_base) {
197 pr_err("Could not ioremap: start=%p, len=%d\n", 197 pr_err("Could not ioremap: start=%p, len=%d\n",
198 (void *) r->start, len); 198 (void *) r2->start, len);
199 ret = -EBUSY; 199 ret = -EBUSY;
200 goto fail; 200 goto fail_mem;
201 } 201 }
202 202
203 irq = platform_get_irq_byname(pdev, "secure_irq"); 203 irq = platform_get_irq_byname(pdev, "secure_irq");
204 if (irq < 0) { 204 if (irq < 0) {
205 ret = -ENODEV; 205 ret = -ENODEV;
206 goto fail; 206 goto fail_io;
207 } 207 }
208 208
209 mb(); 209 mb();
@@ -211,14 +211,14 @@ static int msm_iommu_probe(struct platform_device *pdev)
211 if (GET_IDR(regs_base) == 0) { 211 if (GET_IDR(regs_base) == 0) {
212 pr_err("Invalid IDR value detected\n"); 212 pr_err("Invalid IDR value detected\n");
213 ret = -ENODEV; 213 ret = -ENODEV;
214 goto fail; 214 goto fail_io;
215 } 215 }
216 216
217 ret = request_irq(irq, msm_iommu_fault_handler, 0, 217 ret = request_irq(irq, msm_iommu_fault_handler, 0,
218 "msm_iommu_secure_irpt_handler", drvdata); 218 "msm_iommu_secure_irpt_handler", drvdata);
219 if (ret) { 219 if (ret) {
220 pr_err("Request IRQ %d failed with ret=%d\n", irq, ret); 220 pr_err("Request IRQ %d failed with ret=%d\n", irq, ret);
221 goto fail; 221 goto fail_io;
222 } 222 }
223 223
224 msm_iommu_reset(regs_base); 224 msm_iommu_reset(regs_base);
@@ -237,6 +237,10 @@ static int msm_iommu_probe(struct platform_device *pdev)
237 237
238 return 0; 238 return 0;
239 239
240fail_io:
241 iounmap(regs_base);
242fail_mem:
243 release_mem_region(r->start, len);
240fail: 244fail:
241 kfree(drvdata); 245 kfree(drvdata);
242 return ret; 246 return ret;
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
index 7689848ec680..950100f19d07 100644
--- a/arch/arm/mach-msm/timer.c
+++ b/arch/arm/mach-msm/timer.c
@@ -137,7 +137,7 @@ static struct msm_clock msm_clocks[] = {
137 .rating = 200, 137 .rating = 200,
138 .read = msm_gpt_read, 138 .read = msm_gpt_read,
139 .mask = CLOCKSOURCE_MASK(32), 139 .mask = CLOCKSOURCE_MASK(32),
140 .shift = 24, 140 .shift = 17,
141 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 141 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
142 }, 142 },
143 .irq = { 143 .irq = {
diff --git a/drivers/video/msm/mddi.c b/drivers/video/msm/mddi.c
index 7c316c34dfca..b66d86ac7cea 100644
--- a/drivers/video/msm/mddi.c
+++ b/drivers/video/msm/mddi.c
@@ -318,7 +318,7 @@ static long mddi_wait_interrupt_timeout(struct mddi_info *mddi,
318static void mddi_wait_interrupt(struct mddi_info *mddi, uint32_t intmask) 318static void mddi_wait_interrupt(struct mddi_info *mddi, uint32_t intmask)
319{ 319{
320 if (mddi_wait_interrupt_timeout(mddi, intmask, HZ/10) == 0) 320 if (mddi_wait_interrupt_timeout(mddi, intmask, HZ/10) == 0)
321 printk(KERN_INFO KERN_ERR "mddi_wait_interrupt %d, timeout " 321 printk(KERN_INFO "mddi_wait_interrupt %d, timeout "
322 "waiting for %x, INT = %x, STAT = %x gotint = %x\n", 322 "waiting for %x, INT = %x, STAT = %x gotint = %x\n",
323 current->pid, intmask, mddi_readl(INT), mddi_readl(STAT), 323 current->pid, intmask, mddi_readl(INT), mddi_readl(STAT),
324 mddi->got_int); 324 mddi->got_int);
@@ -465,8 +465,7 @@ static int __init mddi_get_client_caps(struct mddi_info *mddi)
465 465
466 if (mddi->flags & FLAG_HAVE_CAPS) 466 if (mddi->flags & FLAG_HAVE_CAPS)
467 break; 467 break;
468 printk(KERN_INFO KERN_ERR "mddi_init, timeout waiting for " 468 printk(KERN_INFO "mddi_init, timeout waiting for caps\n");
469 "caps\n");
470 } 469 }
471 return mddi->flags & FLAG_HAVE_CAPS; 470 return mddi->flags & FLAG_HAVE_CAPS;
472} 471}
diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c
index 3c28db03ad39..c3636d55a3c5 100644
--- a/drivers/video/msm/mdp.c
+++ b/drivers/video/msm/mdp.c
@@ -90,7 +90,7 @@ static int locked_disable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
90 mdp_irq_mask &= ~(mask); 90 mdp_irq_mask &= ~(mask);
91 /* if no one is waiting on the interrupt, disable it */ 91 /* if no one is waiting on the interrupt, disable it */
92 if (!mdp_irq_mask) { 92 if (!mdp_irq_mask) {
93 disable_irq(mdp->irq); 93 disable_irq_nosync(mdp->irq);
94 if (clk) 94 if (clk)
95 clk_disable(clk); 95 clk_disable(clk);
96 } 96 }
@@ -482,6 +482,7 @@ int mdp_probe(struct platform_device *pdev)
482 /* register mdp device */ 482 /* register mdp device */
483 mdp->mdp_dev.dev.parent = &pdev->dev; 483 mdp->mdp_dev.dev.parent = &pdev->dev;
484 mdp->mdp_dev.dev.class = mdp_class; 484 mdp->mdp_dev.dev.class = mdp_class;
485 dev_set_name(&mdp->mdp_dev.dev, "mdp%d", pdev->id);
485 486
486 /* if you can remove the platform device you'd have to implement 487 /* if you can remove the platform device you'd have to implement
487 * this: 488 * this: