forked from luck/tmp_suning_uos_patched
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
This commit is contained in:
commit
c01ec7b1ea
|
@ -538,9 +538,7 @@ static void ads7846_dev_init(void)
|
|||
printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
|
||||
|
||||
gpio_direction_input(OMAP3_STALKER_TS_GPIO);
|
||||
|
||||
omap_set_gpio_debounce(OMAP3_STALKER_TS_GPIO, 1);
|
||||
omap_set_gpio_debounce_time(OMAP3_STALKER_TS_GPIO, 0xa);
|
||||
gpio_set_debounce(OMAP3_STALKER_TS_GPIO, 310);
|
||||
}
|
||||
|
||||
static int ads7846_get_pendown_state(void)
|
||||
|
|
|
@ -1369,6 +1369,7 @@ static struct clk emif1_ick = {
|
|||
.ops = &clkops_omap2_dflt,
|
||||
.enable_reg = OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL,
|
||||
.enable_bit = OMAP4430_MODULEMODE_HWCTRL,
|
||||
.flags = ENABLE_ON_INIT,
|
||||
.clkdm_name = "l3_emif_clkdm",
|
||||
.parent = &ddrphy_ck,
|
||||
.recalc = &followparent_recalc,
|
||||
|
@ -1379,6 +1380,7 @@ static struct clk emif2_ick = {
|
|||
.ops = &clkops_omap2_dflt,
|
||||
.enable_reg = OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL,
|
||||
.enable_bit = OMAP4430_MODULEMODE_HWCTRL,
|
||||
.flags = ENABLE_ON_INIT,
|
||||
.clkdm_name = "l3_emif_clkdm",
|
||||
.parent = &ddrphy_ck,
|
||||
.recalc = &followparent_recalc,
|
||||
|
|
|
@ -409,10 +409,11 @@ static int _init_main_clk(struct omap_hwmod *oh)
|
|||
return 0;
|
||||
|
||||
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",
|
||||
oh->name, oh->main_clk);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!oh->_clk->clkdm)
|
||||
pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n",
|
||||
|
@ -444,10 +445,11 @@ static int _init_interface_clks(struct omap_hwmod *oh)
|
|||
continue;
|
||||
|
||||
c = omap_clk_get_by_name(os->clk);
|
||||
if (!c)
|
||||
if (!c) {
|
||||
pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n",
|
||||
oh->name, os->clk);
|
||||
ret = -EINVAL;
|
||||
}
|
||||
os->_clk = c;
|
||||
}
|
||||
|
||||
|
@ -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++) {
|
||||
c = omap_clk_get_by_name(oc->clk);
|
||||
if (!c)
|
||||
if (!c) {
|
||||
pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n",
|
||||
oh->name, oc->clk);
|
||||
ret = -EINVAL;
|
||||
}
|
||||
oc->_clk = c;
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ static void omap3_enable_io_chain(void)
|
|||
/* Do a readback to assure write has been done */
|
||||
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)) {
|
||||
timeout++;
|
||||
if (timeout > 1000) {
|
||||
|
@ -108,7 +108,7 @@ static void omap3_enable_io_chain(void)
|
|||
return;
|
||||
}
|
||||
prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK,
|
||||
WKUP_MOD, PM_WKST);
|
||||
WKUP_MOD, PM_WKEN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <plat/mux.h>
|
||||
|
||||
|
|
|
@ -541,11 +541,11 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer)
|
|||
* timer is stopped
|
||||
*/
|
||||
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
|
||||
}
|
||||
/* 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);
|
||||
|
||||
|
|
|
@ -673,6 +673,7 @@ static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
|
|||
if (cpu_is_omap34xx() || cpu_is_omap44xx())
|
||||
clk_disable(bank->dbck);
|
||||
}
|
||||
bank->dbck_enable_mask = val;
|
||||
|
||||
__raw_writel(val, reg);
|
||||
}
|
||||
|
|
|
@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags)
|
|||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL);
|
||||
if (err)
|
||||
if (err) {
|
||||
kfree(sgt);
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user