提交 c01ec7b1 编写于 作者: L Linus Torvalds

Merge branch 'omap-fixes-for-linus' of...

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
...@@ -538,9 +538,7 @@ static void ads7846_dev_init(void) ...@@ -538,9 +538,7 @@ static void ads7846_dev_init(void)
printk(KERN_ERR "can't get ads7846 pen down GPIO\n"); printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
gpio_direction_input(OMAP3_STALKER_TS_GPIO); gpio_direction_input(OMAP3_STALKER_TS_GPIO);
gpio_set_debounce(OMAP3_STALKER_TS_GPIO, 310);
omap_set_gpio_debounce(OMAP3_STALKER_TS_GPIO, 1);
omap_set_gpio_debounce_time(OMAP3_STALKER_TS_GPIO, 0xa);
} }
static int ads7846_get_pendown_state(void) static int ads7846_get_pendown_state(void)
......
...@@ -1369,6 +1369,7 @@ static struct clk emif1_ick = { ...@@ -1369,6 +1369,7 @@ static struct clk emif1_ick = {
.ops = &clkops_omap2_dflt, .ops = &clkops_omap2_dflt,
.enable_reg = OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL, .enable_reg = OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL,
.enable_bit = OMAP4430_MODULEMODE_HWCTRL, .enable_bit = OMAP4430_MODULEMODE_HWCTRL,
.flags = ENABLE_ON_INIT,
.clkdm_name = "l3_emif_clkdm", .clkdm_name = "l3_emif_clkdm",
.parent = &ddrphy_ck, .parent = &ddrphy_ck,
.recalc = &followparent_recalc, .recalc = &followparent_recalc,
...@@ -1379,6 +1380,7 @@ static struct clk emif2_ick = { ...@@ -1379,6 +1380,7 @@ static struct clk emif2_ick = {
.ops = &clkops_omap2_dflt, .ops = &clkops_omap2_dflt,
.enable_reg = OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL, .enable_reg = OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL,
.enable_bit = OMAP4430_MODULEMODE_HWCTRL, .enable_bit = OMAP4430_MODULEMODE_HWCTRL,
.flags = ENABLE_ON_INIT,
.clkdm_name = "l3_emif_clkdm", .clkdm_name = "l3_emif_clkdm",
.parent = &ddrphy_ck, .parent = &ddrphy_ck,
.recalc = &followparent_recalc, .recalc = &followparent_recalc,
......
...@@ -409,10 +409,11 @@ static int _init_main_clk(struct omap_hwmod *oh) ...@@ -409,10 +409,11 @@ static int _init_main_clk(struct omap_hwmod *oh)
return 0; return 0;
oh->_clk = omap_clk_get_by_name(oh->main_clk); oh->_clk = omap_clk_get_by_name(oh->main_clk);
if (!oh->_clk) if (!oh->_clk) {
pr_warning("omap_hwmod: %s: cannot clk_get main_clk %s\n", pr_warning("omap_hwmod: %s: cannot clk_get main_clk %s\n",
oh->name, oh->main_clk); oh->name, oh->main_clk);
return -EINVAL; return -EINVAL;
}
if (!oh->_clk->clkdm) if (!oh->_clk->clkdm)
pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n", pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n",
...@@ -444,10 +445,11 @@ static int _init_interface_clks(struct omap_hwmod *oh) ...@@ -444,10 +445,11 @@ static int _init_interface_clks(struct omap_hwmod *oh)
continue; continue;
c = omap_clk_get_by_name(os->clk); c = omap_clk_get_by_name(os->clk);
if (!c) if (!c) {
pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n", pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n",
oh->name, os->clk); oh->name, os->clk);
ret = -EINVAL; ret = -EINVAL;
}
os->_clk = c; os->_clk = c;
} }
...@@ -470,10 +472,11 @@ static int _init_opt_clks(struct omap_hwmod *oh) ...@@ -470,10 +472,11 @@ static int _init_opt_clks(struct omap_hwmod *oh)
for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) {
c = omap_clk_get_by_name(oc->clk); c = omap_clk_get_by_name(oc->clk);
if (!c) if (!c) {
pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n", pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n",
oh->name, oc->clk); oh->name, oc->clk);
ret = -EINVAL; ret = -EINVAL;
}
oc->_clk = c; oc->_clk = c;
} }
......
...@@ -99,7 +99,7 @@ static void omap3_enable_io_chain(void) ...@@ -99,7 +99,7 @@ static void omap3_enable_io_chain(void)
/* Do a readback to assure write has been done */ /* Do a readback to assure write has been done */
prm_read_mod_reg(WKUP_MOD, PM_WKEN); prm_read_mod_reg(WKUP_MOD, PM_WKEN);
while (!(prm_read_mod_reg(WKUP_MOD, PM_WKST) & while (!(prm_read_mod_reg(WKUP_MOD, PM_WKEN) &
OMAP3430_ST_IO_CHAIN_MASK)) { OMAP3430_ST_IO_CHAIN_MASK)) {
timeout++; timeout++;
if (timeout > 1000) { if (timeout > 1000) {
...@@ -108,7 +108,7 @@ static void omap3_enable_io_chain(void) ...@@ -108,7 +108,7 @@ static void omap3_enable_io_chain(void)
return; return;
} }
prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK, prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK,
WKUP_MOD, PM_WKST); WKUP_MOD, PM_WKEN);
} }
} }
} }
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/dma-mapping.h>
#include <asm/io.h> #include <asm/io.h>
#include <plat/mux.h> #include <plat/mux.h>
......
...@@ -541,11 +541,11 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer) ...@@ -541,11 +541,11 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer)
* timer is stopped * timer is stopped
*/ */
udelay(3500000 / clk_get_rate(timer->fclk) + 1); udelay(3500000 / clk_get_rate(timer->fclk) + 1);
/* Ack possibly pending interrupt */
omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG,
OMAP_TIMER_INT_OVERFLOW);
#endif #endif
} }
/* Ack possibly pending interrupt */
omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG,
OMAP_TIMER_INT_OVERFLOW);
} }
EXPORT_SYMBOL_GPL(omap_dm_timer_stop); EXPORT_SYMBOL_GPL(omap_dm_timer_stop);
......
...@@ -673,6 +673,7 @@ static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio, ...@@ -673,6 +673,7 @@ static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
if (cpu_is_omap34xx() || cpu_is_omap44xx()) if (cpu_is_omap34xx() || cpu_is_omap44xx())
clk_disable(bank->dbck); clk_disable(bank->dbck);
} }
bank->dbck_enable_mask = val;
__raw_writel(val, reg); __raw_writel(val, reg);
} }
......
...@@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags) ...@@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL); err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL);
if (err) if (err) {
kfree(sgt);
return ERR_PTR(err); return ERR_PTR(err);
}
pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries); pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册