diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/common/locomo.c | 4 | ||||
-rw-r--r-- | arch/arm/common/sa1111.c | 4 | ||||
-rw-r--r-- | arch/arm/kernel/ecard.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-integrator/lm.c | 36 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/tiocx.c | 16 | ||||
-rw-r--r-- | arch/parisc/kernel/drivers.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/of_device.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/vio.c | 8 | ||||
-rw-r--r-- | arch/ppc/syslib/ocp.c | 4 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/bus.c | 34 |
10 files changed, 65 insertions, 63 deletions
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 1b7eaab02b9e..159ad7ed7a40 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -1103,14 +1103,14 @@ static int locomo_bus_remove(struct device *dev) | |||
1103 | struct bus_type locomo_bus_type = { | 1103 | struct bus_type locomo_bus_type = { |
1104 | .name = "locomo-bus", | 1104 | .name = "locomo-bus", |
1105 | .match = locomo_match, | 1105 | .match = locomo_match, |
1106 | .probe = locomo_bus_probe, | ||
1107 | .remove = locomo_bus_remove, | ||
1106 | .suspend = locomo_bus_suspend, | 1108 | .suspend = locomo_bus_suspend, |
1107 | .resume = locomo_bus_resume, | 1109 | .resume = locomo_bus_resume, |
1108 | }; | 1110 | }; |
1109 | 1111 | ||
1110 | int locomo_driver_register(struct locomo_driver *driver) | 1112 | int locomo_driver_register(struct locomo_driver *driver) |
1111 | { | 1113 | { |
1112 | driver->drv.probe = locomo_bus_probe; | ||
1113 | driver->drv.remove = locomo_bus_remove; | ||
1114 | driver->drv.bus = &locomo_bus_type; | 1114 | driver->drv.bus = &locomo_bus_type; |
1115 | return driver_register(&driver->drv); | 1115 | return driver_register(&driver->drv); |
1116 | } | 1116 | } |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index d0d6e6d2d649..1475089f9b42 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -1247,14 +1247,14 @@ static int sa1111_bus_remove(struct device *dev) | |||
1247 | struct bus_type sa1111_bus_type = { | 1247 | struct bus_type sa1111_bus_type = { |
1248 | .name = "sa1111-rab", | 1248 | .name = "sa1111-rab", |
1249 | .match = sa1111_match, | 1249 | .match = sa1111_match, |
1250 | .probe = sa1111_bus_probe, | ||
1251 | .remove = sa1111_bus_remove, | ||
1250 | .suspend = sa1111_bus_suspend, | 1252 | .suspend = sa1111_bus_suspend, |
1251 | .resume = sa1111_bus_resume, | 1253 | .resume = sa1111_bus_resume, |
1252 | }; | 1254 | }; |
1253 | 1255 | ||
1254 | int sa1111_driver_register(struct sa1111_driver *driver) | 1256 | int sa1111_driver_register(struct sa1111_driver *driver) |
1255 | { | 1257 | { |
1256 | driver->drv.probe = sa1111_bus_probe; | ||
1257 | driver->drv.remove = sa1111_bus_remove; | ||
1258 | driver->drv.bus = &sa1111_bus_type; | 1258 | driver->drv.bus = &sa1111_bus_type; |
1259 | return driver_register(&driver->drv); | 1259 | return driver_register(&driver->drv); |
1260 | } | 1260 | } |
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index 96fd91926c9b..74ea29c3205e 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c | |||
@@ -1147,9 +1147,11 @@ static void ecard_drv_shutdown(struct device *dev) | |||
1147 | struct ecard_driver *drv = ECARD_DRV(dev->driver); | 1147 | struct ecard_driver *drv = ECARD_DRV(dev->driver); |
1148 | struct ecard_request req; | 1148 | struct ecard_request req; |
1149 | 1149 | ||
1150 | if (drv->shutdown) | 1150 | if (dev->driver) { |
1151 | drv->shutdown(ec); | 1151 | if (drv->shutdown) |
1152 | ecard_release(ec); | 1152 | drv->shutdown(ec); |
1153 | ecard_release(ec); | ||
1154 | } | ||
1153 | 1155 | ||
1154 | /* | 1156 | /* |
1155 | * If this card has a loader, call the reset handler. | 1157 | * If this card has a loader, call the reset handler. |
@@ -1164,9 +1166,6 @@ static void ecard_drv_shutdown(struct device *dev) | |||
1164 | int ecard_register_driver(struct ecard_driver *drv) | 1166 | int ecard_register_driver(struct ecard_driver *drv) |
1165 | { | 1167 | { |
1166 | drv->drv.bus = &ecard_bus_type; | 1168 | drv->drv.bus = &ecard_bus_type; |
1167 | drv->drv.probe = ecard_drv_probe; | ||
1168 | drv->drv.remove = ecard_drv_remove; | ||
1169 | drv->drv.shutdown = ecard_drv_shutdown; | ||
1170 | 1169 | ||
1171 | return driver_register(&drv->drv); | 1170 | return driver_register(&drv->drv); |
1172 | } | 1171 | } |
@@ -1195,6 +1194,9 @@ struct bus_type ecard_bus_type = { | |||
1195 | .name = "ecard", | 1194 | .name = "ecard", |
1196 | .dev_attrs = ecard_dev_attrs, | 1195 | .dev_attrs = ecard_dev_attrs, |
1197 | .match = ecard_match, | 1196 | .match = ecard_match, |
1197 | .probe = ecard_drv_probe, | ||
1198 | .remove = ecard_drv_remove, | ||
1199 | .shutdown = ecard_drv_shutdown, | ||
1198 | }; | 1200 | }; |
1199 | 1201 | ||
1200 | static int ecard_bus_init(void) | 1202 | static int ecard_bus_init(void) |
diff --git a/arch/arm/mach-integrator/lm.c b/arch/arm/mach-integrator/lm.c index 5b41e3a724e1..622cdc4212dd 100644 --- a/arch/arm/mach-integrator/lm.c +++ b/arch/arm/mach-integrator/lm.c | |||
@@ -22,20 +22,6 @@ static int lm_match(struct device *dev, struct device_driver *drv) | |||
22 | return 1; | 22 | return 1; |
23 | } | 23 | } |
24 | 24 | ||
25 | static struct bus_type lm_bustype = { | ||
26 | .name = "logicmodule", | ||
27 | .match = lm_match, | ||
28 | // .suspend = lm_suspend, | ||
29 | // .resume = lm_resume, | ||
30 | }; | ||
31 | |||
32 | static int __init lm_init(void) | ||
33 | { | ||
34 | return bus_register(&lm_bustype); | ||
35 | } | ||
36 | |||
37 | postcore_initcall(lm_init); | ||
38 | |||
39 | static int lm_bus_probe(struct device *dev) | 25 | static int lm_bus_probe(struct device *dev) |
40 | { | 26 | { |
41 | struct lm_device *lmdev = to_lm_device(dev); | 27 | struct lm_device *lmdev = to_lm_device(dev); |
@@ -49,16 +35,30 @@ static int lm_bus_remove(struct device *dev) | |||
49 | struct lm_device *lmdev = to_lm_device(dev); | 35 | struct lm_device *lmdev = to_lm_device(dev); |
50 | struct lm_driver *lmdrv = to_lm_driver(dev->driver); | 36 | struct lm_driver *lmdrv = to_lm_driver(dev->driver); |
51 | 37 | ||
52 | lmdrv->remove(lmdev); | 38 | if (lmdrv->remove) |
39 | lmdrv->remove(lmdev); | ||
53 | return 0; | 40 | return 0; |
54 | } | 41 | } |
55 | 42 | ||
43 | static struct bus_type lm_bustype = { | ||
44 | .name = "logicmodule", | ||
45 | .match = lm_match, | ||
46 | .probe = lm_bus_probe, | ||
47 | .remove = lm_bus_remove, | ||
48 | // .suspend = lm_bus_suspend, | ||
49 | // .resume = lm_bus_resume, | ||
50 | }; | ||
51 | |||
52 | static int __init lm_init(void) | ||
53 | { | ||
54 | return bus_register(&lm_bustype); | ||
55 | } | ||
56 | |||
57 | postcore_initcall(lm_init); | ||
58 | |||
56 | int lm_driver_register(struct lm_driver *drv) | 59 | int lm_driver_register(struct lm_driver *drv) |
57 | { | 60 | { |
58 | drv->drv.bus = &lm_bustype; | 61 | drv->drv.bus = &lm_bustype; |
59 | drv->drv.probe = lm_bus_probe; | ||
60 | drv->drv.remove = lm_bus_remove; | ||
61 | |||
62 | return driver_register(&drv->drv); | 62 | return driver_register(&drv->drv); |
63 | } | 63 | } |
64 | 64 | ||
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c index 493fb3f38dc3..6a7939b16a1c 100644 --- a/arch/ia64/sn/kernel/tiocx.c +++ b/arch/ia64/sn/kernel/tiocx.c | |||
@@ -77,12 +77,6 @@ static void tiocx_bus_release(struct device *dev) | |||
77 | kfree(to_cx_dev(dev)); | 77 | kfree(to_cx_dev(dev)); |
78 | } | 78 | } |
79 | 79 | ||
80 | struct bus_type tiocx_bus_type = { | ||
81 | .name = "tiocx", | ||
82 | .match = tiocx_match, | ||
83 | .uevent = tiocx_uevent, | ||
84 | }; | ||
85 | |||
86 | /** | 80 | /** |
87 | * cx_device_match - Find cx_device in the id table. | 81 | * cx_device_match - Find cx_device in the id table. |
88 | * @ids: id table from driver | 82 | * @ids: id table from driver |
@@ -149,6 +143,14 @@ static int cx_driver_remove(struct device *dev) | |||
149 | return 0; | 143 | return 0; |
150 | } | 144 | } |
151 | 145 | ||
146 | struct bus_type tiocx_bus_type = { | ||
147 | .name = "tiocx", | ||
148 | .match = tiocx_match, | ||
149 | .uevent = tiocx_uevent, | ||
150 | .probe = cx_device_probe, | ||
151 | .remove = cx_driver_remove, | ||
152 | }; | ||
153 | |||
152 | /** | 154 | /** |
153 | * cx_driver_register - Register the driver. | 155 | * cx_driver_register - Register the driver. |
154 | * @cx_driver: driver table (cx_drv struct) from driver | 156 | * @cx_driver: driver table (cx_drv struct) from driver |
@@ -162,8 +164,6 @@ int cx_driver_register(struct cx_drv *cx_driver) | |||
162 | { | 164 | { |
163 | cx_driver->driver.name = cx_driver->name; | 165 | cx_driver->driver.name = cx_driver->name; |
164 | cx_driver->driver.bus = &tiocx_bus_type; | 166 | cx_driver->driver.bus = &tiocx_bus_type; |
165 | cx_driver->driver.probe = cx_device_probe; | ||
166 | cx_driver->driver.remove = cx_driver_remove; | ||
167 | 167 | ||
168 | return driver_register(&cx_driver->driver); | 168 | return driver_register(&cx_driver->driver); |
169 | } | 169 | } |
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c index 1eaa0d37f677..2d804e2d16d1 100644 --- a/arch/parisc/kernel/drivers.c +++ b/arch/parisc/kernel/drivers.c | |||
@@ -173,8 +173,6 @@ int register_parisc_driver(struct parisc_driver *driver) | |||
173 | WARN_ON(driver->drv.probe != NULL); | 173 | WARN_ON(driver->drv.probe != NULL); |
174 | WARN_ON(driver->drv.remove != NULL); | 174 | WARN_ON(driver->drv.remove != NULL); |
175 | 175 | ||
176 | driver->drv.probe = parisc_driver_probe; | ||
177 | driver->drv.remove = parisc_driver_remove; | ||
178 | driver->drv.name = driver->name; | 176 | driver->drv.name = driver->name; |
179 | 177 | ||
180 | return driver_register(&driver->drv); | 178 | return driver_register(&driver->drv); |
@@ -575,6 +573,8 @@ struct bus_type parisc_bus_type = { | |||
575 | .name = "parisc", | 573 | .name = "parisc", |
576 | .match = parisc_generic_match, | 574 | .match = parisc_generic_match, |
577 | .dev_attrs = parisc_device_attrs, | 575 | .dev_attrs = parisc_device_attrs, |
576 | .probe = parisc_driver_probe, | ||
577 | .remove = parisc_driver_remove, | ||
578 | }; | 578 | }; |
579 | 579 | ||
580 | /** | 580 | /** |
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c index 7065e40e2f42..22d83d4d1af5 100644 --- a/arch/powerpc/kernel/of_device.c +++ b/arch/powerpc/kernel/of_device.c | |||
@@ -132,6 +132,8 @@ static int of_device_resume(struct device * dev) | |||
132 | struct bus_type of_platform_bus_type = { | 132 | struct bus_type of_platform_bus_type = { |
133 | .name = "of_platform", | 133 | .name = "of_platform", |
134 | .match = of_platform_bus_match, | 134 | .match = of_platform_bus_match, |
135 | .probe = of_device_probe, | ||
136 | .remove = of_device_remove, | ||
135 | .suspend = of_device_suspend, | 137 | .suspend = of_device_suspend, |
136 | .resume = of_device_resume, | 138 | .resume = of_device_resume, |
137 | }; | 139 | }; |
@@ -150,8 +152,6 @@ int of_register_driver(struct of_platform_driver *drv) | |||
150 | /* initialize common driver fields */ | 152 | /* initialize common driver fields */ |
151 | drv->driver.name = drv->name; | 153 | drv->driver.name = drv->name; |
152 | drv->driver.bus = &of_platform_bus_type; | 154 | drv->driver.bus = &of_platform_bus_type; |
153 | drv->driver.probe = of_device_probe; | ||
154 | drv->driver.remove = of_device_remove; | ||
155 | 155 | ||
156 | /* register with core */ | 156 | /* register with core */ |
157 | count = driver_register(&drv->driver); | 157 | count = driver_register(&drv->driver); |
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c index 13c41495fe06..13c655ba2841 100644 --- a/arch/powerpc/kernel/vio.c +++ b/arch/powerpc/kernel/vio.c | |||
@@ -76,7 +76,7 @@ static void vio_bus_shutdown(struct device *dev) | |||
76 | struct vio_dev *viodev = to_vio_dev(dev); | 76 | struct vio_dev *viodev = to_vio_dev(dev); |
77 | struct vio_driver *viodrv = to_vio_driver(dev->driver); | 77 | struct vio_driver *viodrv = to_vio_driver(dev->driver); |
78 | 78 | ||
79 | if (viodrv->shutdown) | 79 | if (dev->driver && viodrv->shutdown) |
80 | viodrv->shutdown(viodev); | 80 | viodrv->shutdown(viodev); |
81 | } | 81 | } |
82 | 82 | ||
@@ -91,9 +91,6 @@ int vio_register_driver(struct vio_driver *viodrv) | |||
91 | 91 | ||
92 | /* fill in 'struct driver' fields */ | 92 | /* fill in 'struct driver' fields */ |
93 | viodrv->driver.bus = &vio_bus_type; | 93 | viodrv->driver.bus = &vio_bus_type; |
94 | viodrv->driver.probe = vio_bus_probe; | ||
95 | viodrv->driver.remove = vio_bus_remove; | ||
96 | viodrv->driver.shutdown = vio_bus_shutdown; | ||
97 | 94 | ||
98 | return driver_register(&viodrv->driver); | 95 | return driver_register(&viodrv->driver); |
99 | } | 96 | } |
@@ -295,4 +292,7 @@ struct bus_type vio_bus_type = { | |||
295 | .name = "vio", | 292 | .name = "vio", |
296 | .uevent = vio_hotplug, | 293 | .uevent = vio_hotplug, |
297 | .match = vio_bus_match, | 294 | .match = vio_bus_match, |
295 | .probe = vio_bus_probe, | ||
296 | .remove = vio_bus_remove, | ||
297 | .shutdown = vio_bus_shutdown, | ||
298 | }; | 298 | }; |
diff --git a/arch/ppc/syslib/ocp.c b/arch/ppc/syslib/ocp.c index 9ccce438bd7a..ab34b1d6072f 100644 --- a/arch/ppc/syslib/ocp.c +++ b/arch/ppc/syslib/ocp.c | |||
@@ -189,6 +189,8 @@ ocp_device_resume(struct device *dev) | |||
189 | struct bus_type ocp_bus_type = { | 189 | struct bus_type ocp_bus_type = { |
190 | .name = "ocp", | 190 | .name = "ocp", |
191 | .match = ocp_device_match, | 191 | .match = ocp_device_match, |
192 | .probe = ocp_driver_probe, | ||
193 | .remove = ocp_driver_remove, | ||
192 | .suspend = ocp_device_suspend, | 194 | .suspend = ocp_device_suspend, |
193 | .resume = ocp_device_resume, | 195 | .resume = ocp_device_resume, |
194 | }; | 196 | }; |
@@ -210,8 +212,6 @@ ocp_register_driver(struct ocp_driver *drv) | |||
210 | /* initialize common driver fields */ | 212 | /* initialize common driver fields */ |
211 | drv->driver.name = drv->name; | 213 | drv->driver.name = drv->name; |
212 | drv->driver.bus = &ocp_bus_type; | 214 | drv->driver.bus = &ocp_bus_type; |
213 | drv->driver.probe = ocp_device_probe; | ||
214 | drv->driver.remove = ocp_device_remove; | ||
215 | 215 | ||
216 | /* register with core */ | 216 | /* register with core */ |
217 | return driver_register(&drv->driver); | 217 | return driver_register(&drv->driver); |
diff --git a/arch/sh/kernel/cpu/bus.c b/arch/sh/kernel/cpu/bus.c index d4fee2a79373..3278d234bb1b 100644 --- a/arch/sh/kernel/cpu/bus.c +++ b/arch/sh/kernel/cpu/bus.c | |||
@@ -53,21 +53,6 @@ static int sh_bus_resume(struct device *dev) | |||
53 | return 0; | 53 | return 0; |
54 | } | 54 | } |
55 | 55 | ||
56 | static struct device sh_bus_devices[SH_NR_BUSES] = { | ||
57 | { | ||
58 | .bus_id = SH_BUS_NAME_VIRT, | ||
59 | }, | ||
60 | }; | ||
61 | |||
62 | struct bus_type sh_bus_types[SH_NR_BUSES] = { | ||
63 | { | ||
64 | .name = SH_BUS_NAME_VIRT, | ||
65 | .match = sh_bus_match, | ||
66 | .suspend = sh_bus_suspend, | ||
67 | .resume = sh_bus_resume, | ||
68 | }, | ||
69 | }; | ||
70 | |||
71 | static int sh_device_probe(struct device *dev) | 56 | static int sh_device_probe(struct device *dev) |
72 | { | 57 | { |
73 | struct sh_dev *shdev = to_sh_dev(dev); | 58 | struct sh_dev *shdev = to_sh_dev(dev); |
@@ -90,6 +75,23 @@ static int sh_device_remove(struct device *dev) | |||
90 | return 0; | 75 | return 0; |
91 | } | 76 | } |
92 | 77 | ||
78 | static struct device sh_bus_devices[SH_NR_BUSES] = { | ||
79 | { | ||
80 | .bus_id = SH_BUS_NAME_VIRT, | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | struct bus_type sh_bus_types[SH_NR_BUSES] = { | ||
85 | { | ||
86 | .name = SH_BUS_NAME_VIRT, | ||
87 | .match = sh_bus_match, | ||
88 | .probe = sh_bus_probe, | ||
89 | .remove = sh_bus_remove, | ||
90 | .suspend = sh_bus_suspend, | ||
91 | .resume = sh_bus_resume, | ||
92 | }, | ||
93 | }; | ||
94 | |||
93 | int sh_device_register(struct sh_dev *dev) | 95 | int sh_device_register(struct sh_dev *dev) |
94 | { | 96 | { |
95 | if (!dev) | 97 | if (!dev) |
@@ -133,8 +135,6 @@ int sh_driver_register(struct sh_driver *drv) | |||
133 | return -EINVAL; | 135 | return -EINVAL; |
134 | } | 136 | } |
135 | 137 | ||
136 | drv->drv.probe = sh_device_probe; | ||
137 | drv->drv.remove = sh_device_remove; | ||
138 | drv->drv.bus = &sh_bus_types[drv->bus_id]; | 138 | drv->drv.bus = &sh_bus_types[drv->bus_id]; |
139 | 139 | ||
140 | return driver_register(&drv->drv); | 140 | return driver_register(&drv->drv); |