aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorAndres Salomon <dilinger@queued.net>2011-03-21 22:19:35 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2011-03-26 19:09:30 -0400
commitfa1df691688f34cbcd5bf77bd084bbe47e9d6bfe (patch)
tree83df18f1d427115c0016a059535b04f2d600a2d0 /arch/x86
parent16c29dafcc86024048f1dbb8349d31cb22c7c55a (diff)
mfd: Add mfd_clone_cell(), convert cs5535-mfd/olpc-xo1 to it
Replace mfd_shared_platform_driver_register with mfd_clone_cell. The former was called by an mfd client, and registered both a platform driver and device. The latter is called by an mfd driver, and registers only a platform device. The downside of this is that mfd drivers need to be modified whenever new clients are added that share a cell; the upside is that it fits Linux's driver model better. It's also simpler. This also converts cs5535-mfd/olpc-xo1 from the old API. cs5535-mfd now creates the olpc-xo1-{acpi,pms} devices, while olpc-xo1 binds to them via platform drivers. Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/platform/olpc/olpc-xo1.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/x86/platform/olpc/olpc-xo1.c b/arch/x86/platform/olpc/olpc-xo1.c
index 99513642a0e6..386e3a159cca 100644
--- a/arch/x86/platform/olpc/olpc-xo1.c
+++ b/arch/x86/platform/olpc/olpc-xo1.c
@@ -121,22 +121,21 @@ static int __init olpc_xo1_init(void)
121{ 121{
122 int r; 122 int r;
123 123
124 r = mfd_shared_platform_driver_register(&cs5535_pms_drv, "cs5535-pms"); 124 r = platform_driver_register(&cs5535_pms_drv);
125 if (r) 125 if (r)
126 return r; 126 return r;
127 127
128 r = mfd_shared_platform_driver_register(&cs5535_acpi_drv, 128 r = platform_driver_register(&cs5535_acpi_drv);
129 "cs5535-acpi");
130 if (r) 129 if (r)
131 mfd_shared_platform_driver_unregister(&cs5535_pms_drv); 130 platform_driver_unregister(&cs5535_pms_drv);
132 131
133 return r; 132 return r;
134} 133}
135 134
136static void __exit olpc_xo1_exit(void) 135static void __exit olpc_xo1_exit(void)
137{ 136{
138 mfd_shared_platform_driver_unregister(&cs5535_acpi_drv); 137 platform_driver_unregister(&cs5535_acpi_drv);
139 mfd_shared_platform_driver_unregister(&cs5535_pms_drv); 138 platform_driver_unregister(&cs5535_pms_drv);
140} 139}
141 140
142MODULE_AUTHOR("Daniel Drake <dsd@laptop.org>"); 141MODULE_AUTHOR("Daniel Drake <dsd@laptop.org>");