diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-06-25 08:47:21 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-06-25 08:47:21 -0400 |
commit | f9bfccf11df33dae874aac58b0926004ae833167 (patch) | |
tree | 70c8c2a136c7de393de0ffb86823523cde3a1a05 | |
parent | 28d0325ce6e0a52f53d8af687e6427fee59004d3 (diff) | |
parent | 503dcbeba50fd3545283594bc391b4a400fa6c48 (diff) |
Merge branch 'omap-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
-rw-r--r-- | arch/arm/mach-omap1/board-nokia770.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap1/mailbox.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpmc-onenand.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-omap2/id.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mailbox.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mmc-twl4030.c | 13 | ||||
-rw-r--r-- | arch/arm/plat-omap/dma.c | 13 | ||||
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/cpu.h | 22 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/dma.h | 15 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/io.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/iommu.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/sram.c | 7 |
14 files changed, 108 insertions, 22 deletions
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index e70fc7c66bbb..ed2a48a9ce74 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <mach/hwa742.h> | 36 | #include <mach/hwa742.h> |
37 | #include <mach/lcd_mipid.h> | 37 | #include <mach/lcd_mipid.h> |
38 | #include <mach/mmc.h> | 38 | #include <mach/mmc.h> |
39 | #include <mach/usb.h> | ||
40 | #include <mach/clock.h> | 39 | #include <mach/clock.h> |
41 | 40 | ||
42 | #define ADS7846_PENDOWN_GPIO 15 | 41 | #define ADS7846_PENDOWN_GPIO 15 |
@@ -205,9 +204,11 @@ static int nokia770_mmc_get_cover_state(struct device *dev, int slot) | |||
205 | static struct omap_mmc_platform_data nokia770_mmc2_data = { | 204 | static struct omap_mmc_platform_data nokia770_mmc2_data = { |
206 | .nr_slots = 1, | 205 | .nr_slots = 1, |
207 | .dma_mask = 0xffffffff, | 206 | .dma_mask = 0xffffffff, |
207 | .max_freq = 12000000, | ||
208 | .slots[0] = { | 208 | .slots[0] = { |
209 | .set_power = nokia770_mmc_set_power, | 209 | .set_power = nokia770_mmc_set_power, |
210 | .get_cover_state = nokia770_mmc_get_cover_state, | 210 | .get_cover_state = nokia770_mmc_get_cover_state, |
211 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | ||
211 | .name = "mmcblk", | 212 | .name = "mmcblk", |
212 | }, | 213 | }, |
213 | }; | 214 | }; |
diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c index 0af4d6c85b47..6810b4aeb02c 100644 --- a/arch/arm/mach-omap1/mailbox.c +++ b/arch/arm/mach-omap1/mailbox.c | |||
@@ -203,5 +203,5 @@ module_exit(omap1_mbox_exit); | |||
203 | 203 | ||
204 | MODULE_LICENSE("GPL v2"); | 204 | MODULE_LICENSE("GPL v2"); |
205 | MODULE_DESCRIPTION("omap mailbox: omap1 architecture specific functions"); | 205 | MODULE_DESCRIPTION("omap mailbox: omap1 architecture specific functions"); |
206 | MODULE_AUTHOR("Hiroshi DOYU" <Hiroshi.DOYU@nokia.com>); | 206 | MODULE_AUTHOR("Hiroshi DOYU <Hiroshi.DOYU@nokia.com>"); |
207 | MODULE_ALIAS("platform:omap1-mailbox"); | 207 | MODULE_ALIAS("platform:omap1-mailbox"); |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index da93b86234ed..9a0bf6744a05 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -362,6 +362,7 @@ static struct omap_onenand_platform_data board_onenand_data = { | |||
362 | .gpio_irq = 65, | 362 | .gpio_irq = 65, |
363 | .parts = onenand_partitions, | 363 | .parts = onenand_partitions, |
364 | .nr_parts = ARRAY_SIZE(onenand_partitions), | 364 | .nr_parts = ARRAY_SIZE(onenand_partitions), |
365 | .flags = ONENAND_SYNC_READWRITE, | ||
365 | }; | 366 | }; |
366 | 367 | ||
367 | static void __init board_onenand_init(void) | 368 | static void __init board_onenand_init(void) |
diff --git a/arch/arm/mach-omap2/gpmc-onenand.c b/arch/arm/mach-omap2/gpmc-onenand.c index 2fd22f9c5f0e..54fec53a48e7 100644 --- a/arch/arm/mach-omap2/gpmc-onenand.c +++ b/arch/arm/mach-omap2/gpmc-onenand.c | |||
@@ -31,6 +31,8 @@ static struct platform_device gpmc_onenand_device = { | |||
31 | static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base) | 31 | static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base) |
32 | { | 32 | { |
33 | struct gpmc_timings t; | 33 | struct gpmc_timings t; |
34 | u32 reg; | ||
35 | int err; | ||
34 | 36 | ||
35 | const int t_cer = 15; | 37 | const int t_cer = 15; |
36 | const int t_avdp = 12; | 38 | const int t_avdp = 12; |
@@ -43,6 +45,11 @@ static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base) | |||
43 | const int t_wpl = 40; | 45 | const int t_wpl = 40; |
44 | const int t_wph = 30; | 46 | const int t_wph = 30; |
45 | 47 | ||
48 | /* Ensure sync read and sync write are disabled */ | ||
49 | reg = readw(onenand_base + ONENAND_REG_SYS_CFG1); | ||
50 | reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE; | ||
51 | writew(reg, onenand_base + ONENAND_REG_SYS_CFG1); | ||
52 | |||
46 | memset(&t, 0, sizeof(t)); | 53 | memset(&t, 0, sizeof(t)); |
47 | t.sync_clk = 0; | 54 | t.sync_clk = 0; |
48 | t.cs_on = 0; | 55 | t.cs_on = 0; |
@@ -74,7 +81,16 @@ static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base) | |||
74 | GPMC_CONFIG1_DEVICESIZE_16 | | 81 | GPMC_CONFIG1_DEVICESIZE_16 | |
75 | GPMC_CONFIG1_MUXADDDATA); | 82 | GPMC_CONFIG1_MUXADDDATA); |
76 | 83 | ||
77 | return gpmc_cs_set_timings(cs, &t); | 84 | err = gpmc_cs_set_timings(cs, &t); |
85 | if (err) | ||
86 | return err; | ||
87 | |||
88 | /* Ensure sync read and sync write are disabled */ | ||
89 | reg = readw(onenand_base + ONENAND_REG_SYS_CFG1); | ||
90 | reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE; | ||
91 | writew(reg, onenand_base + ONENAND_REG_SYS_CFG1); | ||
92 | |||
93 | return 0; | ||
78 | } | 94 | } |
79 | 95 | ||
80 | static void set_onenand_cfg(void __iomem *onenand_base, int latency, | 96 | static void set_onenand_cfg(void __iomem *onenand_base, int latency, |
@@ -124,7 +140,8 @@ static int omap2_onenand_set_sync_mode(struct omap_onenand_platform_data *cfg, | |||
124 | } else if (cfg->flags & ONENAND_SYNC_READWRITE) { | 140 | } else if (cfg->flags & ONENAND_SYNC_READWRITE) { |
125 | sync_read = 1; | 141 | sync_read = 1; |
126 | sync_write = 1; | 142 | sync_write = 1; |
127 | } | 143 | } else |
144 | return omap2_onenand_set_async_mode(cs, onenand_base); | ||
128 | 145 | ||
129 | if (!freq) { | 146 | if (!freq) { |
130 | /* Very first call freq is not known */ | 147 | /* Very first call freq is not known */ |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 458990e20c60..a98201cc265c 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -48,6 +48,28 @@ int omap_chip_is(struct omap_chip_id oci) | |||
48 | } | 48 | } |
49 | EXPORT_SYMBOL(omap_chip_is); | 49 | EXPORT_SYMBOL(omap_chip_is); |
50 | 50 | ||
51 | int omap_type(void) | ||
52 | { | ||
53 | u32 val = 0; | ||
54 | |||
55 | if (cpu_is_omap24xx()) | ||
56 | val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS); | ||
57 | else if (cpu_is_omap34xx()) | ||
58 | val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS); | ||
59 | else { | ||
60 | pr_err("Cannot detect omap type!\n"); | ||
61 | goto out; | ||
62 | } | ||
63 | |||
64 | val &= OMAP2_DEVICETYPE_MASK; | ||
65 | val >>= 8; | ||
66 | |||
67 | out: | ||
68 | return val; | ||
69 | } | ||
70 | EXPORT_SYMBOL(omap_type); | ||
71 | |||
72 | |||
51 | /*----------------------------------------------------------------------------*/ | 73 | /*----------------------------------------------------------------------------*/ |
52 | 74 | ||
53 | #define OMAP_TAP_IDCODE 0x0204 | 75 | #define OMAP_TAP_IDCODE 0x0204 |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index fd5b8a5925cc..6f71f3730c97 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -282,12 +282,12 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev) | |||
282 | return -ENOMEM; | 282 | return -ENOMEM; |
283 | 283 | ||
284 | /* DSP or IVA2 IRQ */ | 284 | /* DSP or IVA2 IRQ */ |
285 | mbox_dsp_info.irq = platform_get_irq(pdev, 0); | 285 | ret = platform_get_irq(pdev, 0); |
286 | if (mbox_dsp_info.irq < 0) { | 286 | if (ret < 0) { |
287 | dev_err(&pdev->dev, "invalid irq resource\n"); | 287 | dev_err(&pdev->dev, "invalid irq resource\n"); |
288 | ret = -ENODEV; | ||
289 | goto err_dsp; | 288 | goto err_dsp; |
290 | } | 289 | } |
290 | mbox_dsp_info.irq = ret; | ||
291 | 291 | ||
292 | ret = omap_mbox_register(&pdev->dev, &mbox_dsp_info); | 292 | ret = omap_mbox_register(&pdev->dev, &mbox_dsp_info); |
293 | if (ret) | 293 | if (ret) |
diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c index 9756a878fd90..1541fd4c8d0f 100644 --- a/arch/arm/mach-omap2/mmc-twl4030.c +++ b/arch/arm/mach-omap2/mmc-twl4030.c | |||
@@ -263,8 +263,19 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on, | |||
263 | static int twl_mmc23_set_power(struct device *dev, int slot, int power_on, int vdd) | 263 | static int twl_mmc23_set_power(struct device *dev, int slot, int power_on, int vdd) |
264 | { | 264 | { |
265 | int ret = 0; | 265 | int ret = 0; |
266 | struct twl_mmc_controller *c = &hsmmc[1]; | 266 | struct twl_mmc_controller *c = NULL; |
267 | struct omap_mmc_platform_data *mmc = dev->platform_data; | 267 | struct omap_mmc_platform_data *mmc = dev->platform_data; |
268 | int i; | ||
269 | |||
270 | for (i = 1; i < ARRAY_SIZE(hsmmc); i++) { | ||
271 | if (mmc == hsmmc[i].mmc) { | ||
272 | c = &hsmmc[i]; | ||
273 | break; | ||
274 | } | ||
275 | } | ||
276 | |||
277 | if (c == NULL) | ||
278 | return -ENODEV; | ||
268 | 279 | ||
269 | /* If we don't see a Vcc regulator, assume it's a fixed | 280 | /* If we don't see a Vcc regulator, assume it's a fixed |
270 | * voltage always-on regulator. | 281 | * voltage always-on regulator. |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index def14ec265b3..7677a4a1cef2 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -2457,6 +2457,19 @@ static int __init omap_init_dma(void) | |||
2457 | setup_irq(irq, &omap24xx_dma_irq); | 2457 | setup_irq(irq, &omap24xx_dma_irq); |
2458 | } | 2458 | } |
2459 | 2459 | ||
2460 | /* Enable smartidle idlemodes and autoidle */ | ||
2461 | if (cpu_is_omap34xx()) { | ||
2462 | u32 v = dma_read(OCP_SYSCONFIG); | ||
2463 | v &= ~(DMA_SYSCONFIG_MIDLEMODE_MASK | | ||
2464 | DMA_SYSCONFIG_SIDLEMODE_MASK | | ||
2465 | DMA_SYSCONFIG_AUTOIDLE); | ||
2466 | v |= (DMA_SYSCONFIG_MIDLEMODE(DMA_IDLEMODE_SMARTIDLE) | | ||
2467 | DMA_SYSCONFIG_SIDLEMODE(DMA_IDLEMODE_SMARTIDLE) | | ||
2468 | DMA_SYSCONFIG_AUTOIDLE); | ||
2469 | dma_write(v , OCP_SYSCONFIG); | ||
2470 | } | ||
2471 | |||
2472 | |||
2460 | /* FIXME: Update LCD DMA to work on 24xx */ | 2473 | /* FIXME: Update LCD DMA to work on 24xx */ |
2461 | if (cpu_class_is_omap1()) { | 2474 | if (cpu_class_is_omap1()) { |
2462 | r = request_irq(INT_DMA_LCD, lcd_dma_irq_handler, 0, | 2475 | r = request_irq(INT_DMA_LCD, lcd_dma_irq_handler, 0, |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 7fd89ba8d3b5..26b387c12423 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -1585,6 +1585,7 @@ static int __init _omap_gpio_init(void) | |||
1585 | __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_IRQENABLE1); | 1585 | __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_IRQENABLE1); |
1586 | __raw_writel(0xffffffff, bank->base + OMAP24XX_GPIO_IRQSTATUS1); | 1586 | __raw_writel(0xffffffff, bank->base + OMAP24XX_GPIO_IRQSTATUS1); |
1587 | __raw_writew(0x0015, bank->base + OMAP24XX_GPIO_SYSCONFIG); | 1587 | __raw_writew(0x0015, bank->base + OMAP24XX_GPIO_SYSCONFIG); |
1588 | __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_DEBOUNCE_EN); | ||
1588 | 1589 | ||
1589 | /* Initialize interface clock ungated, module enabled */ | 1590 | /* Initialize interface clock ungated, module enabled */ |
1590 | __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL); | 1591 | __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL); |
diff --git a/arch/arm/plat-omap/include/mach/cpu.h b/arch/arm/plat-omap/include/mach/cpu.h index fc60c4ebcc28..285eaa3a8275 100644 --- a/arch/arm/plat-omap/include/mach/cpu.h +++ b/arch/arm/plat-omap/include/mach/cpu.h | |||
@@ -30,6 +30,17 @@ | |||
30 | #ifndef __ASM_ARCH_OMAP_CPU_H | 30 | #ifndef __ASM_ARCH_OMAP_CPU_H |
31 | #define __ASM_ARCH_OMAP_CPU_H | 31 | #define __ASM_ARCH_OMAP_CPU_H |
32 | 32 | ||
33 | /* | ||
34 | * Omap device type i.e. EMU/HS/TST/GP/BAD | ||
35 | */ | ||
36 | #define OMAP2_DEVICE_TYPE_TEST 0 | ||
37 | #define OMAP2_DEVICE_TYPE_EMU 1 | ||
38 | #define OMAP2_DEVICE_TYPE_SEC 2 | ||
39 | #define OMAP2_DEVICE_TYPE_GP 3 | ||
40 | #define OMAP2_DEVICE_TYPE_BAD 4 | ||
41 | |||
42 | int omap_type(void); | ||
43 | |||
33 | struct omap_chip_id { | 44 | struct omap_chip_id { |
34 | u8 oc; | 45 | u8 oc; |
35 | u8 type; | 46 | u8 type; |
@@ -424,17 +435,6 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
424 | 435 | ||
425 | 436 | ||
426 | int omap_chip_is(struct omap_chip_id oci); | 437 | int omap_chip_is(struct omap_chip_id oci); |
427 | int omap_type(void); | ||
428 | |||
429 | /* | ||
430 | * Macro to detect device type i.e. EMU/HS/TST/GP/BAD | ||
431 | */ | ||
432 | #define OMAP2_DEVICE_TYPE_TEST 0 | ||
433 | #define OMAP2_DEVICE_TYPE_EMU 1 | ||
434 | #define OMAP2_DEVICE_TYPE_SEC 2 | ||
435 | #define OMAP2_DEVICE_TYPE_GP 3 | ||
436 | #define OMAP2_DEVICE_TYPE_BAD 4 | ||
437 | |||
438 | void omap2_check_revision(void); | 438 | void omap2_check_revision(void); |
439 | 439 | ||
440 | #endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */ | 440 | #endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */ |
diff --git a/arch/arm/plat-omap/include/mach/dma.h b/arch/arm/plat-omap/include/mach/dma.h index 8c1eae88737e..7b939cc01962 100644 --- a/arch/arm/plat-omap/include/mach/dma.h +++ b/arch/arm/plat-omap/include/mach/dma.h | |||
@@ -389,6 +389,21 @@ | |||
389 | #define DMA_THREAD_FIFO_25 (0x02 << 14) | 389 | #define DMA_THREAD_FIFO_25 (0x02 << 14) |
390 | #define DMA_THREAD_FIFO_50 (0x03 << 14) | 390 | #define DMA_THREAD_FIFO_50 (0x03 << 14) |
391 | 391 | ||
392 | /* DMA4_OCP_SYSCONFIG bits */ | ||
393 | #define DMA_SYSCONFIG_MIDLEMODE_MASK (3 << 12) | ||
394 | #define DMA_SYSCONFIG_CLOCKACTIVITY_MASK (3 << 8) | ||
395 | #define DMA_SYSCONFIG_EMUFREE (1 << 5) | ||
396 | #define DMA_SYSCONFIG_SIDLEMODE_MASK (3 << 3) | ||
397 | #define DMA_SYSCONFIG_SOFTRESET (1 << 2) | ||
398 | #define DMA_SYSCONFIG_AUTOIDLE (1 << 0) | ||
399 | |||
400 | #define DMA_SYSCONFIG_MIDLEMODE(n) ((n) << 12) | ||
401 | #define DMA_SYSCONFIG_SIDLEMODE(n) ((n) << 3) | ||
402 | |||
403 | #define DMA_IDLEMODE_SMARTIDLE 0x2 | ||
404 | #define DMA_IDLEMODE_NO_IDLE 0x1 | ||
405 | #define DMA_IDLEMODE_FORCE_IDLE 0x0 | ||
406 | |||
392 | /* Chaining modes*/ | 407 | /* Chaining modes*/ |
393 | #ifndef CONFIG_ARCH_OMAP1 | 408 | #ifndef CONFIG_ARCH_OMAP1 |
394 | #define OMAP_DMA_STATIC_CHAIN 0x1 | 409 | #define OMAP_DMA_STATIC_CHAIN 0x1 |
diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h index 3b2814720569..73f483d56ca6 100644 --- a/arch/arm/plat-omap/include/mach/io.h +++ b/arch/arm/plat-omap/include/mach/io.h | |||
@@ -201,7 +201,7 @@ | |||
201 | #define OMAP2_IO_ADDRESS(pa) IOMEM(__OMAP2_IO_ADDRESS(pa)) | 201 | #define OMAP2_IO_ADDRESS(pa) IOMEM(__OMAP2_IO_ADDRESS(pa)) |
202 | 202 | ||
203 | #ifdef __ASSEMBLER__ | 203 | #ifdef __ASSEMBLER__ |
204 | #define IOMEM(x) x | 204 | #define IOMEM(x) (x) |
205 | #else | 205 | #else |
206 | #define IOMEM(x) ((void __force __iomem *)(x)) | 206 | #define IOMEM(x) ((void __force __iomem *)(x)) |
207 | 207 | ||
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index 4cf449fa2cb5..4a0301399013 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c | |||
@@ -298,7 +298,7 @@ void flush_iotlb_page(struct iommu *obj, u32 da) | |||
298 | if ((start <= da) && (da < start + bytes)) { | 298 | if ((start <= da) && (da < start + bytes)) { |
299 | dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n", | 299 | dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n", |
300 | __func__, start, da, bytes); | 300 | __func__, start, da, bytes); |
301 | 301 | iotlb_load_cr(obj, &cr); | |
302 | iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY); | 302 | iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY); |
303 | } | 303 | } |
304 | } | 304 | } |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 65006df3f1b7..4ea73804d21e 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -133,7 +133,12 @@ void __init omap_detect_sram(void) | |||
133 | if (cpu_is_omap34xx()) { | 133 | if (cpu_is_omap34xx()) { |
134 | omap_sram_base = OMAP3_SRAM_PUB_VA; | 134 | omap_sram_base = OMAP3_SRAM_PUB_VA; |
135 | omap_sram_start = OMAP3_SRAM_PUB_PA; | 135 | omap_sram_start = OMAP3_SRAM_PUB_PA; |
136 | omap_sram_size = 0x8000; /* 32K */ | 136 | if ((omap_type() == OMAP2_DEVICE_TYPE_EMU) || |
137 | (omap_type() == OMAP2_DEVICE_TYPE_SEC)) { | ||
138 | omap_sram_size = 0x7000; /* 28K */ | ||
139 | } else { | ||
140 | omap_sram_size = 0x8000; /* 32K */ | ||
141 | } | ||
137 | } else { | 142 | } else { |
138 | omap_sram_base = OMAP2_SRAM_PUB_VA; | 143 | omap_sram_base = OMAP2_SRAM_PUB_VA; |
139 | omap_sram_start = OMAP2_SRAM_PUB_PA; | 144 | omap_sram_start = OMAP2_SRAM_PUB_PA; |