aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/hosts.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2007-01-07 15:49:27 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-02-08 14:59:19 -0500
commit3360177c62e86f476c4f1a057e13163383652f7b (patch)
tree4394cb7f4cef0231e371fda119178bde552eec79 /drivers/ieee1394/hosts.c
parent083922fe1c277603a03f0ca700fe5a76f11178c7 (diff)
ieee1394: restore config ROM when resuming
After PM suspend + resume, the local configuration ROM was not restored. This prevented remote nodes from recognizing the resuming machine. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
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);