aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/hosts.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ieee1394/hosts.c')
-rw-r--r--drivers/ieee1394/hosts.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/ieee1394/hosts.c b/drivers/ieee1394/hosts.c
index ee82a5320bf7..32a130921938 100644
--- a/drivers/ieee1394/hosts.c
+++ b/drivers/ieee1394/hosts.c
@@ -190,14 +190,19 @@ int hpsb_add_host(struct hpsb_host *host)
190{ 190{
191 if (hpsb_default_host_entry(host)) 191 if (hpsb_default_host_entry(host))
192 return -ENOMEM; 192 return -ENOMEM;
193
194 hpsb_add_extra_config_roms(host); 193 hpsb_add_extra_config_roms(host);
195
196 highlevel_add_host(host); 194 highlevel_add_host(host);
197
198 return 0; 195 return 0;
199} 196}
200 197
198void hpsb_resume_host(struct hpsb_host *host)
199{
200 if (host->driver->set_hw_config_rom)
201 host->driver->set_hw_config_rom(host,
202 host->csr.rom->bus_info_data);
203 host->driver->devctl(host, RESET_BUS, SHORT_RESET);
204}
205
201void hpsb_remove_host(struct hpsb_host *host) 206void hpsb_remove_host(struct hpsb_host *host)
202{ 207{
203 host->is_shutdown = 1; 208 host->is_shutdown = 1;
@@ -206,9 +211,7 @@ void hpsb_remove_host(struct hpsb_host *host)
206 flush_scheduled_work(); 211 flush_scheduled_work();
207 212
208 host->driver = &dummy_driver; 213 host->driver = &dummy_driver;
209
210 highlevel_remove_host(host); 214 highlevel_remove_host(host);
211
212 hpsb_remove_extra_config_roms(host); 215 hpsb_remove_extra_config_roms(host);
213 216
214 class_device_unregister(&host->class_dev); 217 class_device_unregister(&host->class_dev);