Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (187 commits) sh: remove dead LED code for migo-r and ms7724se sh: ecovec build fix for CONFIG_I2C=n sh: ecovec r-standby support sh: ms7724se r-standby support sh: SH-Mobile R-standby register save/restore clocksource: Fix up a registration/IRQ race in the sh drivers. sh: ms7724: modify scan_timing for KEYSC sh: ms7724: Add sh_sir support sh: mach-ecovec24: Add sh_sir support sh: wire up SET/GET_UNALIGN_CTL. sh: allow alignment fault mode to be configured at kernel boot. sh: sh7724: Update FSI/SPU2 clock sh: always enable sh7724 vpu_clk and set to 166MHz on Ecovec sh: add sh7724 kick callback to clk_div4_table sh: introduce struct clk_div4_table sh: clock-cpg div4 set_rate() shift fix sh: Turn on speculative return for SH7785 and SH7786 sh: Merge legacy and dynamic PMB modes. sh: Use uncached I/O helpers in PMB setup. sh: Provide uncached I/O helpers. ...
This commit is contained in:
@@ -603,18 +603,13 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev)
|
||||
p->irqaction.handler = sh_cmt_interrupt;
|
||||
p->irqaction.dev_id = p;
|
||||
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
|
||||
ret = setup_irq(irq, &p->irqaction);
|
||||
if (ret) {
|
||||
pr_err("sh_cmt: failed to request irq %d\n", irq);
|
||||
goto err1;
|
||||
}
|
||||
|
||||
/* get hold of clock */
|
||||
p->clk = clk_get(&p->pdev->dev, cfg->clk);
|
||||
if (IS_ERR(p->clk)) {
|
||||
pr_err("sh_cmt: cannot get clock \"%s\"\n", cfg->clk);
|
||||
ret = PTR_ERR(p->clk);
|
||||
goto err2;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
if (resource_size(res) == 6) {
|
||||
@@ -627,14 +622,25 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev)
|
||||
p->clear_bits = ~0xc000;
|
||||
}
|
||||
|
||||
return sh_cmt_register(p, cfg->name,
|
||||
cfg->clockevent_rating,
|
||||
cfg->clocksource_rating);
|
||||
err2:
|
||||
remove_irq(irq, &p->irqaction);
|
||||
err1:
|
||||
ret = sh_cmt_register(p, cfg->name,
|
||||
cfg->clockevent_rating,
|
||||
cfg->clocksource_rating);
|
||||
if (ret) {
|
||||
pr_err("sh_cmt: registration failed\n");
|
||||
goto err1;
|
||||
}
|
||||
|
||||
ret = setup_irq(irq, &p->irqaction);
|
||||
if (ret) {
|
||||
pr_err("sh_cmt: failed to request irq %d\n", irq);
|
||||
goto err1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err1:
|
||||
iounmap(p->mapbase);
|
||||
err0:
|
||||
err0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@@ -221,15 +221,15 @@ static void sh_mtu2_register_clockevent(struct sh_mtu2_priv *p,
|
||||
ced->cpumask = cpumask_of(0);
|
||||
ced->set_mode = sh_mtu2_clock_event_mode;
|
||||
|
||||
pr_info("sh_mtu2: %s used for clock events\n", ced->name);
|
||||
clockevents_register_device(ced);
|
||||
|
||||
ret = setup_irq(p->irqaction.irq, &p->irqaction);
|
||||
if (ret) {
|
||||
pr_err("sh_mtu2: failed to request irq %d\n",
|
||||
p->irqaction.irq);
|
||||
return;
|
||||
}
|
||||
|
||||
pr_info("sh_mtu2: %s used for clock events\n", ced->name);
|
||||
clockevents_register_device(ced);
|
||||
}
|
||||
|
||||
static int sh_mtu2_register(struct sh_mtu2_priv *p, char *name,
|
||||
|
@@ -323,15 +323,15 @@ static void sh_tmu_register_clockevent(struct sh_tmu_priv *p,
|
||||
ced->set_next_event = sh_tmu_clock_event_next;
|
||||
ced->set_mode = sh_tmu_clock_event_mode;
|
||||
|
||||
pr_info("sh_tmu: %s used for clock events\n", ced->name);
|
||||
clockevents_register_device(ced);
|
||||
|
||||
ret = setup_irq(p->irqaction.irq, &p->irqaction);
|
||||
if (ret) {
|
||||
pr_err("sh_tmu: failed to request irq %d\n",
|
||||
p->irqaction.irq);
|
||||
return;
|
||||
}
|
||||
|
||||
pr_info("sh_tmu: %s used for clock events\n", ced->name);
|
||||
clockevents_register_device(ced);
|
||||
}
|
||||
|
||||
static int sh_tmu_register(struct sh_tmu_priv *p, char *name,
|
||||
|
Reference in New Issue
Block a user