diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-30 18:44:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-30 18:44:21 -0400 |
commit | c01ec7b1ea61b1c7febfe09d7751a4d916194aaf (patch) | |
tree | 0cb86fd908d91cfc78858e003de9eb43f0508cb0 /arch/arm | |
parent | 5e9772b95ba848516b2c76c11cf6f4aa4aa232a5 (diff) | |
parent | 41bd03ba0758a076671e5de35ed084535984143d (diff) |
Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
OMAP: hwmod: Fix the missing braces
OMAP4: clock: Fix multi-omap boot with reset un-used clocks
OMAP3: PM: fix IO daisy chain enable to use PM_WKEN reg
omap: GPIO: fix auto-disable of debounce clock
omap: DMTIMER: Ack pending interrupt always when stopping a timer
omap: Stalker board: switch over to gpio_set_debounce
omap: fix build failure due to missing include dma-mapping.h
omap iommu: Fix Memory leak
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/board-omap3stalker.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/usb-ehci.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 6 | ||||
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/iovmm.c | 4 |
8 files changed, 20 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index f848ba8dbc16..a04cffd691c5 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -538,9 +538,7 @@ static void ads7846_dev_init(void) | |||
538 | printk(KERN_ERR "can't get ads7846 pen down GPIO\n"); | 538 | printk(KERN_ERR "can't get ads7846 pen down GPIO\n"); |
539 | 539 | ||
540 | gpio_direction_input(OMAP3_STALKER_TS_GPIO); | 540 | gpio_direction_input(OMAP3_STALKER_TS_GPIO); |
541 | 541 | gpio_set_debounce(OMAP3_STALKER_TS_GPIO, 310); | |
542 | omap_set_gpio_debounce(OMAP3_STALKER_TS_GPIO, 1); | ||
543 | omap_set_gpio_debounce_time(OMAP3_STALKER_TS_GPIO, 0xa); | ||
544 | } | 542 | } |
545 | 543 | ||
546 | static int ads7846_get_pendown_state(void) | 544 | static int ads7846_get_pendown_state(void) |
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index 02804224517b..e10db7a90cb2 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -1369,6 +1369,7 @@ static struct clk emif1_ick = { | |||
1369 | .ops = &clkops_omap2_dflt, | 1369 | .ops = &clkops_omap2_dflt, |
1370 | .enable_reg = OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL, | 1370 | .enable_reg = OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL, |
1371 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, | 1371 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, |
1372 | .flags = ENABLE_ON_INIT, | ||
1372 | .clkdm_name = "l3_emif_clkdm", | 1373 | .clkdm_name = "l3_emif_clkdm", |
1373 | .parent = &ddrphy_ck, | 1374 | .parent = &ddrphy_ck, |
1374 | .recalc = &followparent_recalc, | 1375 | .recalc = &followparent_recalc, |
@@ -1379,6 +1380,7 @@ static struct clk emif2_ick = { | |||
1379 | .ops = &clkops_omap2_dflt, | 1380 | .ops = &clkops_omap2_dflt, |
1380 | .enable_reg = OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL, | 1381 | .enable_reg = OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL, |
1381 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, | 1382 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, |
1383 | .flags = ENABLE_ON_INIT, | ||
1382 | .clkdm_name = "l3_emif_clkdm", | 1384 | .clkdm_name = "l3_emif_clkdm", |
1383 | .parent = &ddrphy_ck, | 1385 | .parent = &ddrphy_ck, |
1384 | .recalc = &followparent_recalc, | 1386 | .recalc = &followparent_recalc, |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 95c9a5f774e1..b7a4133267d8 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -409,10 +409,11 @@ static int _init_main_clk(struct omap_hwmod *oh) | |||
409 | return 0; | 409 | return 0; |
410 | 410 | ||
411 | oh->_clk = omap_clk_get_by_name(oh->main_clk); | 411 | oh->_clk = omap_clk_get_by_name(oh->main_clk); |
412 | if (!oh->_clk) | 412 | if (!oh->_clk) { |
413 | pr_warning("omap_hwmod: %s: cannot clk_get main_clk %s\n", | 413 | pr_warning("omap_hwmod: %s: cannot clk_get main_clk %s\n", |
414 | oh->name, oh->main_clk); | 414 | oh->name, oh->main_clk); |
415 | return -EINVAL; | 415 | return -EINVAL; |
416 | } | ||
416 | 417 | ||
417 | if (!oh->_clk->clkdm) | 418 | if (!oh->_clk->clkdm) |
418 | pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n", | 419 | pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n", |
@@ -444,10 +445,11 @@ static int _init_interface_clks(struct omap_hwmod *oh) | |||
444 | continue; | 445 | continue; |
445 | 446 | ||
446 | c = omap_clk_get_by_name(os->clk); | 447 | c = omap_clk_get_by_name(os->clk); |
447 | if (!c) | 448 | if (!c) { |
448 | pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n", | 449 | pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n", |
449 | oh->name, os->clk); | 450 | oh->name, os->clk); |
450 | ret = -EINVAL; | 451 | ret = -EINVAL; |
452 | } | ||
451 | os->_clk = c; | 453 | os->_clk = c; |
452 | } | 454 | } |
453 | 455 | ||
@@ -470,10 +472,11 @@ static int _init_opt_clks(struct omap_hwmod *oh) | |||
470 | 472 | ||
471 | for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { | 473 | for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { |
472 | c = omap_clk_get_by_name(oc->clk); | 474 | c = omap_clk_get_by_name(oc->clk); |
473 | if (!c) | 475 | if (!c) { |
474 | pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n", | 476 | pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n", |
475 | oh->name, oc->clk); | 477 | oh->name, oc->clk); |
476 | ret = -EINVAL; | 478 | ret = -EINVAL; |
479 | } | ||
477 | oc->_clk = c; | 480 | oc->_clk = c; |
478 | } | 481 | } |
479 | 482 | ||
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 2e967716cc3f..b88737fd6cfe 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -99,7 +99,7 @@ static void omap3_enable_io_chain(void) | |||
99 | /* Do a readback to assure write has been done */ | 99 | /* Do a readback to assure write has been done */ |
100 | prm_read_mod_reg(WKUP_MOD, PM_WKEN); | 100 | prm_read_mod_reg(WKUP_MOD, PM_WKEN); |
101 | 101 | ||
102 | while (!(prm_read_mod_reg(WKUP_MOD, PM_WKST) & | 102 | while (!(prm_read_mod_reg(WKUP_MOD, PM_WKEN) & |
103 | OMAP3430_ST_IO_CHAIN_MASK)) { | 103 | OMAP3430_ST_IO_CHAIN_MASK)) { |
104 | timeout++; | 104 | timeout++; |
105 | if (timeout > 1000) { | 105 | if (timeout > 1000) { |
@@ -108,7 +108,7 @@ static void omap3_enable_io_chain(void) | |||
108 | return; | 108 | return; |
109 | } | 109 | } |
110 | prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK, | 110 | prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK, |
111 | WKUP_MOD, PM_WKST); | 111 | WKUP_MOD, PM_WKEN); |
112 | } | 112 | } |
113 | } | 113 | } |
114 | } | 114 | } |
diff --git a/arch/arm/mach-omap2/usb-ehci.c b/arch/arm/mach-omap2/usb-ehci.c index c68f799e83c5..d72d1ac30333 100644 --- a/arch/arm/mach-omap2/usb-ehci.c +++ b/arch/arm/mach-omap2/usb-ehci.c | |||
@@ -20,6 +20,8 @@ | |||
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/dma-mapping.h> | ||
24 | |||
23 | #include <asm/io.h> | 25 | #include <asm/io.h> |
24 | #include <plat/mux.h> | 26 | #include <plat/mux.h> |
25 | 27 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index c64875f11fac..44bafdab2dce 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -541,11 +541,11 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer) | |||
541 | * timer is stopped | 541 | * timer is stopped |
542 | */ | 542 | */ |
543 | udelay(3500000 / clk_get_rate(timer->fclk) + 1); | 543 | udelay(3500000 / clk_get_rate(timer->fclk) + 1); |
544 | /* Ack possibly pending interrupt */ | ||
545 | omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, | ||
546 | OMAP_TIMER_INT_OVERFLOW); | ||
547 | #endif | 544 | #endif |
548 | } | 545 | } |
546 | /* Ack possibly pending interrupt */ | ||
547 | omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, | ||
548 | OMAP_TIMER_INT_OVERFLOW); | ||
549 | } | 549 | } |
550 | EXPORT_SYMBOL_GPL(omap_dm_timer_stop); | 550 | EXPORT_SYMBOL_GPL(omap_dm_timer_stop); |
551 | 551 | ||
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 393e9219a5b6..9b7e3545f325 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -673,6 +673,7 @@ static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio, | |||
673 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) | 673 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) |
674 | clk_disable(bank->dbck); | 674 | clk_disable(bank->dbck); |
675 | } | 675 | } |
676 | bank->dbck_enable_mask = val; | ||
676 | 677 | ||
677 | __raw_writel(val, reg); | 678 | __raw_writel(val, reg); |
678 | } | 679 | } |
diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c index e43983ba59c5..8ce0de247c71 100644 --- a/arch/arm/plat-omap/iovmm.c +++ b/arch/arm/plat-omap/iovmm.c | |||
@@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags) | |||
140 | return ERR_PTR(-ENOMEM); | 140 | return ERR_PTR(-ENOMEM); |
141 | 141 | ||
142 | err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL); | 142 | err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL); |
143 | if (err) | 143 | if (err) { |
144 | kfree(sgt); | ||
144 | return ERR_PTR(err); | 145 | return ERR_PTR(err); |
146 | } | ||
145 | 147 | ||
146 | pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries); | 148 | pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries); |
147 | 149 | ||