diff options
-rw-r--r-- | arch/arm/mach-msm/Kconfig | 9 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-halibut.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-msm/include/mach/debug-macro.S | 15 | ||||
-rw-r--r-- | arch/arm/mach-msm/iommu_dev.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-msm/timer.c | 2 | ||||
-rw-r--r-- | drivers/video/msm/mddi.c | 5 | ||||
-rw-r--r-- | drivers/video/msm/mdp.c | 3 |
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 | ||
7 | config ARCH_MSM7X00A | 7 | config 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 | ||
16 | config ARCH_MSM7X30 | 17 | config 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 | ||
27 | config ARCH_QSD8X50 | 28 | config 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 | ||
38 | config ARCH_MSM8X60 | 39 | config 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 | ||
47 | endchoice | 48 | endchoice |
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 | ||
129 | static int msm_iommu_probe(struct platform_device *pdev) | 129 | static 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 | ||
240 | fail_io: | ||
241 | iounmap(regs_base); | ||
242 | fail_mem: | ||
243 | release_mem_region(r->start, len); | ||
240 | fail: | 244 | fail: |
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, | |||
318 | static void mddi_wait_interrupt(struct mddi_info *mddi, uint32_t intmask) | 318 | static 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: |