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: |
