Commit 04a186bd authored by Paul Mundt's avatar Paul Mundt

Merge branch 'common/dma' into rmobile-latest

parents e9d728f5 661382fe
...@@ -1110,11 +1110,6 @@ static int __init sh_dmae_probe(struct platform_device *pdev) ...@@ -1110,11 +1110,6 @@ static int __init sh_dmae_probe(struct platform_device *pdev)
list_add_tail_rcu(&shdev->node, &sh_dmae_devices); list_add_tail_rcu(&shdev->node, &sh_dmae_devices);
spin_unlock_irqrestore(&sh_dmae_lock, flags); spin_unlock_irqrestore(&sh_dmae_lock, flags);
/* Wire up NMI handling before bringing the controller online */
err = register_die_notifier(&sh_dmae_nmi_notifier);
if (err)
goto notifier_err;
/* reset dma controller */ /* reset dma controller */
err = sh_dmae_rst(shdev); err = sh_dmae_rst(shdev);
if (err) if (err)
...@@ -1218,8 +1213,6 @@ static int __init sh_dmae_probe(struct platform_device *pdev) ...@@ -1218,8 +1213,6 @@ static int __init sh_dmae_probe(struct platform_device *pdev)
eirq_err: eirq_err:
#endif #endif
rst_err: rst_err:
unregister_die_notifier(&sh_dmae_nmi_notifier);
notifier_err:
spin_lock_irqsave(&sh_dmae_lock, flags); spin_lock_irqsave(&sh_dmae_lock, flags);
list_del_rcu(&shdev->node); list_del_rcu(&shdev->node);
spin_unlock_irqrestore(&sh_dmae_lock, flags); spin_unlock_irqrestore(&sh_dmae_lock, flags);
...@@ -1252,8 +1245,6 @@ static int __exit sh_dmae_remove(struct platform_device *pdev) ...@@ -1252,8 +1245,6 @@ static int __exit sh_dmae_remove(struct platform_device *pdev)
if (errirq > 0) if (errirq > 0)
free_irq(errirq, shdev); free_irq(errirq, shdev);
unregister_die_notifier(&sh_dmae_nmi_notifier);
spin_lock_irqsave(&sh_dmae_lock, flags); spin_lock_irqsave(&sh_dmae_lock, flags);
list_del_rcu(&shdev->node); list_del_rcu(&shdev->node);
spin_unlock_irqrestore(&sh_dmae_lock, flags); spin_unlock_irqrestore(&sh_dmae_lock, flags);
...@@ -1296,6 +1287,11 @@ static struct platform_driver sh_dmae_driver = { ...@@ -1296,6 +1287,11 @@ static struct platform_driver sh_dmae_driver = {
static int __init sh_dmae_init(void) static int __init sh_dmae_init(void)
{ {
/* Wire up NMI handling */
int err = register_die_notifier(&sh_dmae_nmi_notifier);
if (err)
return err;
return platform_driver_probe(&sh_dmae_driver, sh_dmae_probe); return platform_driver_probe(&sh_dmae_driver, sh_dmae_probe);
} }
module_init(sh_dmae_init); module_init(sh_dmae_init);
...@@ -1303,6 +1299,8 @@ module_init(sh_dmae_init); ...@@ -1303,6 +1299,8 @@ module_init(sh_dmae_init);
static void __exit sh_dmae_exit(void) static void __exit sh_dmae_exit(void)
{ {
platform_driver_unregister(&sh_dmae_driver); platform_driver_unregister(&sh_dmae_driver);
unregister_die_notifier(&sh_dmae_nmi_notifier);
} }
module_exit(sh_dmae_exit); module_exit(sh_dmae_exit);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment