--- /dev/null
+From 474de3bbadd9cb75ffc32cc759c40d868343d46c Mon Sep 17 00:00:00 2001
+From: Danny Kukawka <danny.kukawka@bisect.de>
+Date: Thu, 2 Feb 2012 14:20:29 +0100
+Subject: cs5535-mfgpt: don't call __init function from __devinit
+
+From: Danny Kukawka <danny.kukawka@bisect.de>
+
+commit 474de3bbadd9cb75ffc32cc759c40d868343d46c upstream.
+
+Fix scan_timers() to be __devinit and not __init since
+the function get called from cs5535_mfgpt_probe which is
+__devinit.
+
+Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/misc/cs5535-mfgpt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/misc/cs5535-mfgpt.c
++++ b/drivers/misc/cs5535-mfgpt.c
+@@ -262,7 +262,7 @@ static void __init reset_all_timers(void
+ * In other cases (such as with VSAless OpenFirmware), the system firmware
+ * leaves timers available for us to use.
+ */
+-static int __init scan_timers(struct cs5535_mfgpt_chip *mfgpt)
++static int __devinit scan_timers(struct cs5535_mfgpt_chip *mfgpt)
+ {
+ struct cs5535_mfgpt_timer timer = { .chip = mfgpt };
+ unsigned long flags;
--- /dev/null
+From 97e43c983c721a47546e6db3b7711dcd912a6481 Mon Sep 17 00:00:00 2001
+From: Christian Gmeiner <christian.gmeiner@gmail.com>
+Date: Tue, 13 Dec 2011 21:30:04 +0100
+Subject: mfd: Fix cs5535 section mismatch
+
+From: Christian Gmeiner <christian.gmeiner@gmail.com>
+
+commit 97e43c983c721a47546e6db3b7711dcd912a6481 upstream.
+
+Silence following warnings:
+WARNING: drivers/mfd/cs5535-mfd.o(.data+0x20): Section mismatch in
+reference from the variable cs5535_mfd_drv to the function
+.devinit.text:cs5535_mfd_probe()
+The variable cs5535_mfd_drv references
+the function __devinit cs5535_mfd_probe()
+If the reference is valid then annotate the
+variable with __init* or __refdata (see linux/init.h) or name the variable:
+*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
+
+WARNING: drivers/mfd/cs5535-mfd.o(.data+0x28): Section mismatch in
+reference from the variable cs5535_mfd_drv to the function
+.devexit.text:cs5535_mfd_remove()
+The variable cs5535_mfd_drv references
+the function __devexit cs5535_mfd_remove()
+If the reference is valid then annotate the
+variable with __exit* (see linux/init.h) or name the variable:
+*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
+
+Rename the variable from *_drv to *_driver so
+modpost ignore the OK references to __devinit/__devexit
+functions.
+
+Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
+Acked-by: Andres Salomon <dilinger@queued.net>
+Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mfd/cs5535-mfd.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/mfd/cs5535-mfd.c
++++ b/drivers/mfd/cs5535-mfd.c
+@@ -179,7 +179,7 @@ static struct pci_device_id cs5535_mfd_p
+ };
+ MODULE_DEVICE_TABLE(pci, cs5535_mfd_pci_tbl);
+
+-static struct pci_driver cs5535_mfd_drv = {
++static struct pci_driver cs5535_mfd_driver = {
+ .name = DRV_NAME,
+ .id_table = cs5535_mfd_pci_tbl,
+ .probe = cs5535_mfd_probe,
+@@ -188,12 +188,12 @@ static struct pci_driver cs5535_mfd_drv
+
+ static int __init cs5535_mfd_init(void)
+ {
+- return pci_register_driver(&cs5535_mfd_drv);
++ return pci_register_driver(&cs5535_mfd_driver);
+ }
+
+ static void __exit cs5535_mfd_exit(void)
+ {
+- pci_unregister_driver(&cs5535_mfd_drv);
++ pci_unregister_driver(&cs5535_mfd_driver);
+ }
+
+ module_init(cs5535_mfd_init);