diff options
author | Alan <alan@lxorguk.ukuu.org.uk> | 2006-11-22 11:57:36 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-01 22:46:49 -0500 |
commit | 30ced0f0d211999f316930eff7287aa5a9995bef (patch) | |
tree | f00359c2aa4dda61d7d31f58a72fee78ef059a14 /drivers | |
parent | 8550c1637ba7dd96a76353eb52d31088f9c2f5fe (diff) |
[PATCH] PATA libata: suspend/resume simple cases
This patch adds the suspend/resume callbacks for drivers which don't need
any additional help (beyond the pci resume quirk patch I posted earlier
anyway). Also bring version numbers back inline with master copies.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/ata_generic.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_atiixp.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_cs5535.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_cypress.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_efar.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_marvell.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_mpiix.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_netcell.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_ns87410.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_oldpiix.c | 4 | ||||
-rw-r--r-- | drivers/ata/pata_opti.c | 33 | ||||
-rw-r--r-- | drivers/ata/pata_optidma.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_radisys.c | 4 | ||||
-rw-r--r-- | drivers/ata/pata_sc1200.c | 8 | ||||
-rw-r--r-- | drivers/ata/pata_triflex.c | 8 |
15 files changed, 82 insertions, 47 deletions
diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c index 1b9ba4dfac65..c7e8f033125d 100644 --- a/drivers/ata/ata_generic.c +++ b/drivers/ata/ata_generic.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <linux/libata.h> | 26 | #include <linux/libata.h> |
27 | 27 | ||
28 | #define DRV_NAME "ata_generic" | 28 | #define DRV_NAME "ata_generic" |
29 | #define DRV_VERSION "0.2.7" | 29 | #define DRV_VERSION "0.2.10" |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * A generic parallel ATA driver using libata | 32 | * A generic parallel ATA driver using libata |
@@ -118,6 +118,8 @@ static struct scsi_host_template generic_sht = { | |||
118 | .slave_configure = ata_scsi_slave_config, | 118 | .slave_configure = ata_scsi_slave_config, |
119 | .slave_destroy = ata_scsi_slave_destroy, | 119 | .slave_destroy = ata_scsi_slave_destroy, |
120 | .bios_param = ata_std_bios_param, | 120 | .bios_param = ata_std_bios_param, |
121 | .resume = ata_scsi_device_resume, | ||
122 | .suspend = ata_scsi_device_suspend, | ||
121 | }; | 123 | }; |
122 | 124 | ||
123 | static struct ata_port_operations generic_port_ops = { | 125 | static struct ata_port_operations generic_port_ops = { |
@@ -226,7 +228,9 @@ static struct pci_driver ata_generic_pci_driver = { | |||
226 | .name = DRV_NAME, | 228 | .name = DRV_NAME, |
227 | .id_table = ata_generic, | 229 | .id_table = ata_generic, |
228 | .probe = ata_generic_init_one, | 230 | .probe = ata_generic_init_one, |
229 | .remove = ata_pci_remove_one | 231 | .remove = ata_pci_remove_one, |
232 | .suspend = ata_pci_device_suspend, | ||
233 | .resume = ata_pci_device_resume, | ||
230 | }; | 234 | }; |
231 | 235 | ||
232 | static int __init ata_generic_init(void) | 236 | static int __init ata_generic_init(void) |
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c index 4e1d3b59adbb..7d9e391b0d18 100644 --- a/drivers/ata/pata_atiixp.c +++ b/drivers/ata/pata_atiixp.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/libata.h> | 22 | #include <linux/libata.h> |
23 | 23 | ||
24 | #define DRV_NAME "pata_atiixp" | 24 | #define DRV_NAME "pata_atiixp" |
25 | #define DRV_VERSION "0.4.3" | 25 | #define DRV_VERSION "0.4.4" |
26 | 26 | ||
27 | enum { | 27 | enum { |
28 | ATIIXP_IDE_PIO_TIMING = 0x40, | 28 | ATIIXP_IDE_PIO_TIMING = 0x40, |
@@ -218,6 +218,8 @@ static struct scsi_host_template atiixp_sht = { | |||
218 | .slave_configure = ata_scsi_slave_config, | 218 | .slave_configure = ata_scsi_slave_config, |
219 | .slave_destroy = ata_scsi_slave_destroy, | 219 | .slave_destroy = ata_scsi_slave_destroy, |
220 | .bios_param = ata_std_bios_param, | 220 | .bios_param = ata_std_bios_param, |
221 | .resume = ata_scsi_device_resume, | ||
222 | .suspend = ata_scsi_device_suspend, | ||
221 | }; | 223 | }; |
222 | 224 | ||
223 | static struct ata_port_operations atiixp_port_ops = { | 225 | static struct ata_port_operations atiixp_port_ops = { |
@@ -281,7 +283,9 @@ static struct pci_driver atiixp_pci_driver = { | |||
281 | .name = DRV_NAME, | 283 | .name = DRV_NAME, |
282 | .id_table = atiixp, | 284 | .id_table = atiixp, |
283 | .probe = atiixp_init_one, | 285 | .probe = atiixp_init_one, |
284 | .remove = ata_pci_remove_one | 286 | .remove = ata_pci_remove_one, |
287 | .resume = ata_pci_device_resume, | ||
288 | .suspend = ata_pci_device_suspend, | ||
285 | }; | 289 | }; |
286 | 290 | ||
287 | static int __init atiixp_init(void) | 291 | static int __init atiixp_init(void) |
diff --git a/drivers/ata/pata_cs5535.c b/drivers/ata/pata_cs5535.c index 8dafa4a49fdc..38c00f628761 100644 --- a/drivers/ata/pata_cs5535.c +++ b/drivers/ata/pata_cs5535.c | |||
@@ -39,7 +39,7 @@ | |||
39 | #include <asm/msr.h> | 39 | #include <asm/msr.h> |
40 | 40 | ||
41 | #define DRV_NAME "cs5535" | 41 | #define DRV_NAME "cs5535" |
42 | #define DRV_VERSION "0.2.10" | 42 | #define DRV_VERSION "0.2.11" |
43 | 43 | ||
44 | /* | 44 | /* |
45 | * The Geode (Aka Athlon GX now) uses an internal MSR based | 45 | * The Geode (Aka Athlon GX now) uses an internal MSR based |
@@ -186,6 +186,8 @@ static struct scsi_host_template cs5535_sht = { | |||
186 | .slave_configure = ata_scsi_slave_config, | 186 | .slave_configure = ata_scsi_slave_config, |
187 | .slave_destroy = ata_scsi_slave_destroy, | 187 | .slave_destroy = ata_scsi_slave_destroy, |
188 | .bios_param = ata_std_bios_param, | 188 | .bios_param = ata_std_bios_param, |
189 | .resume = ata_scsi_device_resume, | ||
190 | .suspend = ata_scsi_device_suspend, | ||
189 | }; | 191 | }; |
190 | 192 | ||
191 | static struct ata_port_operations cs5535_port_ops = { | 193 | static struct ata_port_operations cs5535_port_ops = { |
@@ -269,6 +271,8 @@ static struct pci_driver cs5535_pci_driver = { | |||
269 | .id_table = cs5535, | 271 | .id_table = cs5535, |
270 | .probe = cs5535_init_one, | 272 | .probe = cs5535_init_one, |
271 | .remove = ata_pci_remove_one | 273 | .remove = ata_pci_remove_one |
274 | .suspend = ata_pci_device_suspend, | ||
275 | .resume = ata_pci_device_resume, | ||
272 | }; | 276 | }; |
273 | 277 | ||
274 | static int __init cs5535_init(void) | 278 | static int __init cs5535_init(void) |
diff --git a/drivers/ata/pata_cypress.c b/drivers/ata/pata_cypress.c index 5a0b811907ee..6352bc7df603 100644 --- a/drivers/ata/pata_cypress.c +++ b/drivers/ata/pata_cypress.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/libata.h> | 18 | #include <linux/libata.h> |
19 | 19 | ||
20 | #define DRV_NAME "pata_cypress" | 20 | #define DRV_NAME "pata_cypress" |
21 | #define DRV_VERSION "0.1.2" | 21 | #define DRV_VERSION "0.1.4" |
22 | 22 | ||
23 | /* here are the offset definitions for the registers */ | 23 | /* here are the offset definitions for the registers */ |
24 | 24 | ||
@@ -137,6 +137,8 @@ static struct scsi_host_template cy82c693_sht = { | |||
137 | .slave_configure = ata_scsi_slave_config, | 137 | .slave_configure = ata_scsi_slave_config, |
138 | .slave_destroy = ata_scsi_slave_destroy, | 138 | .slave_destroy = ata_scsi_slave_destroy, |
139 | .bios_param = ata_std_bios_param, | 139 | .bios_param = ata_std_bios_param, |
140 | .resume = ata_scsi_device_resume, | ||
141 | .suspend = ata_scsi_device_suspend, | ||
140 | }; | 142 | }; |
141 | 143 | ||
142 | static struct ata_port_operations cy82c693_port_ops = { | 144 | static struct ata_port_operations cy82c693_port_ops = { |
@@ -204,7 +206,9 @@ static struct pci_driver cy82c693_pci_driver = { | |||
204 | .name = DRV_NAME, | 206 | .name = DRV_NAME, |
205 | .id_table = cy82c693, | 207 | .id_table = cy82c693, |
206 | .probe = cy82c693_init_one, | 208 | .probe = cy82c693_init_one, |
207 | .remove = ata_pci_remove_one | 209 | .remove = ata_pci_remove_one, |
210 | .suspend = ata_pci_device_suspend, | ||
211 | .resume = ata_pci_device_resume, | ||
208 | }; | 212 | }; |
209 | 213 | ||
210 | static int __init cy82c693_init(void) | 214 | static int __init cy82c693_init(void) |
diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c index 755f79279de3..56589834483d 100644 --- a/drivers/ata/pata_efar.c +++ b/drivers/ata/pata_efar.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/ata.h> | 22 | #include <linux/ata.h> |
23 | 23 | ||
24 | #define DRV_NAME "pata_efar" | 24 | #define DRV_NAME "pata_efar" |
25 | #define DRV_VERSION "0.4.2" | 25 | #define DRV_VERSION "0.4.3" |
26 | 26 | ||
27 | /** | 27 | /** |
28 | * efar_pre_reset - check for 40/80 pin | 28 | * efar_pre_reset - check for 40/80 pin |
@@ -235,6 +235,8 @@ static struct scsi_host_template efar_sht = { | |||
235 | .slave_configure = ata_scsi_slave_config, | 235 | .slave_configure = ata_scsi_slave_config, |
236 | .slave_destroy = ata_scsi_slave_destroy, | 236 | .slave_destroy = ata_scsi_slave_destroy, |
237 | .bios_param = ata_std_bios_param, | 237 | .bios_param = ata_std_bios_param, |
238 | .resume = ata_scsi_device_resume, | ||
239 | .suspend = ata_scsi_device_suspend, | ||
238 | }; | 240 | }; |
239 | 241 | ||
240 | static const struct ata_port_operations efar_ops = { | 242 | static const struct ata_port_operations efar_ops = { |
@@ -316,6 +318,8 @@ static struct pci_driver efar_pci_driver = { | |||
316 | .id_table = efar_pci_tbl, | 318 | .id_table = efar_pci_tbl, |
317 | .probe = efar_init_one, | 319 | .probe = efar_init_one, |
318 | .remove = ata_pci_remove_one, | 320 | .remove = ata_pci_remove_one, |
321 | .suspend = ata_pci_device_suspend, | ||
322 | .resume = ata_pci_device_resume, | ||
319 | }; | 323 | }; |
320 | 324 | ||
321 | static int __init efar_init(void) | 325 | static int __init efar_init(void) |
diff --git a/drivers/ata/pata_marvell.c b/drivers/ata/pata_marvell.c index 1ea64075c783..a5953c389264 100644 --- a/drivers/ata/pata_marvell.c +++ b/drivers/ata/pata_marvell.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <linux/ata.h> | 20 | #include <linux/ata.h> |
21 | 21 | ||
22 | #define DRV_NAME "pata_marvell" | 22 | #define DRV_NAME "pata_marvell" |
23 | #define DRV_VERSION "0.0.5u" | 23 | #define DRV_VERSION "0.1.1" |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * marvell_pre_reset - check for 40/80 pin | 26 | * marvell_pre_reset - check for 40/80 pin |
@@ -103,6 +103,8 @@ static struct scsi_host_template marvell_sht = { | |||
103 | .slave_configure = ata_scsi_slave_config, | 103 | .slave_configure = ata_scsi_slave_config, |
104 | /* Use standard CHS mapping rules */ | 104 | /* Use standard CHS mapping rules */ |
105 | .bios_param = ata_std_bios_param, | 105 | .bios_param = ata_std_bios_param, |
106 | .resume = ata_scsi_device_resume, | ||
107 | .suspend = ata_scsi_device_suspend, | ||
106 | }; | 108 | }; |
107 | 109 | ||
108 | static const struct ata_port_operations marvell_ops = { | 110 | static const struct ata_port_operations marvell_ops = { |
@@ -197,6 +199,8 @@ static struct pci_driver marvell_pci_driver = { | |||
197 | .id_table = marvell_pci_tbl, | 199 | .id_table = marvell_pci_tbl, |
198 | .probe = marvell_init_one, | 200 | .probe = marvell_init_one, |
199 | .remove = ata_pci_remove_one, | 201 | .remove = ata_pci_remove_one, |
202 | .suspend = ata_pci_device_suspend, | ||
203 | .resume = ata_pci_device_resume, | ||
200 | }; | 204 | }; |
201 | 205 | ||
202 | static int __init marvell_init(void) | 206 | static int __init marvell_init(void) |
diff --git a/drivers/ata/pata_mpiix.c b/drivers/ata/pata_mpiix.c index e00d406bfdf5..752a7418ed51 100644 --- a/drivers/ata/pata_mpiix.c +++ b/drivers/ata/pata_mpiix.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <linux/libata.h> | 35 | #include <linux/libata.h> |
36 | 36 | ||
37 | #define DRV_NAME "pata_mpiix" | 37 | #define DRV_NAME "pata_mpiix" |
38 | #define DRV_VERSION "0.7.2" | 38 | #define DRV_VERSION "0.7.3" |
39 | 39 | ||
40 | enum { | 40 | enum { |
41 | IDETIM = 0x6C, /* IDE control register */ | 41 | IDETIM = 0x6C, /* IDE control register */ |
@@ -168,6 +168,8 @@ static struct scsi_host_template mpiix_sht = { | |||
168 | .slave_configure = ata_scsi_slave_config, | 168 | .slave_configure = ata_scsi_slave_config, |
169 | .slave_destroy = ata_scsi_slave_destroy, | 169 | .slave_destroy = ata_scsi_slave_destroy, |
170 | .bios_param = ata_std_bios_param, | 170 | .bios_param = ata_std_bios_param, |
171 | .resume = ata_scsi_device_resume, | ||
172 | .suspend = ata_scsi_device_suspend, | ||
171 | }; | 173 | }; |
172 | 174 | ||
173 | static struct ata_port_operations mpiix_port_ops = { | 175 | static struct ata_port_operations mpiix_port_ops = { |
@@ -285,7 +287,9 @@ static struct pci_driver mpiix_pci_driver = { | |||
285 | .name = DRV_NAME, | 287 | .name = DRV_NAME, |
286 | .id_table = mpiix, | 288 | .id_table = mpiix, |
287 | .probe = mpiix_init_one, | 289 | .probe = mpiix_init_one, |
288 | .remove = mpiix_remove_one | 290 | .remove = mpiix_remove_one, |
291 | .suspend = ata_pci_device_suspend, | ||
292 | .resume = ata_pci_device_resume, | ||
289 | }; | 293 | }; |
290 | 294 | ||
291 | static int __init mpiix_init(void) | 295 | static int __init mpiix_init(void) |
diff --git a/drivers/ata/pata_netcell.c b/drivers/ata/pata_netcell.c index 1963a4d35873..956616789ba1 100644 --- a/drivers/ata/pata_netcell.c +++ b/drivers/ata/pata_netcell.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <linux/ata.h> | 16 | #include <linux/ata.h> |
17 | 17 | ||
18 | #define DRV_NAME "pata_netcell" | 18 | #define DRV_NAME "pata_netcell" |
19 | #define DRV_VERSION "0.1.5" | 19 | #define DRV_VERSION "0.1.6" |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * netcell_probe_init - check for 40/80 pin | 22 | * netcell_probe_init - check for 40/80 pin |
@@ -65,6 +65,8 @@ static struct scsi_host_template netcell_sht = { | |||
65 | .slave_destroy = ata_scsi_slave_destroy, | 65 | .slave_destroy = ata_scsi_slave_destroy, |
66 | /* Use standard CHS mapping rules */ | 66 | /* Use standard CHS mapping rules */ |
67 | .bios_param = ata_std_bios_param, | 67 | .bios_param = ata_std_bios_param, |
68 | .resume = ata_scsi_device_resume, | ||
69 | .suspend = ata_scsi_device_suspend, | ||
68 | }; | 70 | }; |
69 | 71 | ||
70 | static const struct ata_port_operations netcell_ops = { | 72 | static const struct ata_port_operations netcell_ops = { |
@@ -153,6 +155,8 @@ static struct pci_driver netcell_pci_driver = { | |||
153 | .id_table = netcell_pci_tbl, | 155 | .id_table = netcell_pci_tbl, |
154 | .probe = netcell_init_one, | 156 | .probe = netcell_init_one, |
155 | .remove = ata_pci_remove_one, | 157 | .remove = ata_pci_remove_one, |
158 | .suspend = ata_pci_device_suspend, | ||
159 | .resume = ata_pci_device_resume, | ||
156 | }; | 160 | }; |
157 | 161 | ||
158 | static int __init netcell_init(void) | 162 | static int __init netcell_init(void) |
diff --git a/drivers/ata/pata_ns87410.c b/drivers/ata/pata_ns87410.c index 7ec800f00ec8..428e6b511a2f 100644 --- a/drivers/ata/pata_ns87410.c +++ b/drivers/ata/pata_ns87410.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <linux/libata.h> | 28 | #include <linux/libata.h> |
29 | 29 | ||
30 | #define DRV_NAME "pata_ns87410" | 30 | #define DRV_NAME "pata_ns87410" |
31 | #define DRV_VERSION "0.4.2" | 31 | #define DRV_VERSION "0.4.3" |
32 | 32 | ||
33 | /** | 33 | /** |
34 | * ns87410_pre_reset - probe begin | 34 | * ns87410_pre_reset - probe begin |
@@ -158,6 +158,8 @@ static struct scsi_host_template ns87410_sht = { | |||
158 | .slave_configure = ata_scsi_slave_config, | 158 | .slave_configure = ata_scsi_slave_config, |
159 | .slave_destroy = ata_scsi_slave_destroy, | 159 | .slave_destroy = ata_scsi_slave_destroy, |
160 | .bios_param = ata_std_bios_param, | 160 | .bios_param = ata_std_bios_param, |
161 | .resume = ata_scsi_device_resume, | ||
162 | .suspend = ata_scsi_device_suspend, | ||
161 | }; | 163 | }; |
162 | 164 | ||
163 | static struct ata_port_operations ns87410_port_ops = { | 165 | static struct ata_port_operations ns87410_port_ops = { |
@@ -210,7 +212,9 @@ static struct pci_driver ns87410_pci_driver = { | |||
210 | .name = DRV_NAME, | 212 | .name = DRV_NAME, |
211 | .id_table = ns87410, | 213 | .id_table = ns87410, |
212 | .probe = ns87410_init_one, | 214 | .probe = ns87410_init_one, |
213 | .remove = ata_pci_remove_one | 215 | .remove = ata_pci_remove_one, |
216 | .suspend = ata_pci_device_suspend, | ||
217 | .resume = ata_pci_device_resume, | ||
214 | }; | 218 | }; |
215 | 219 | ||
216 | static int __init ns87410_init(void) | 220 | static int __init ns87410_init(void) |
diff --git a/drivers/ata/pata_oldpiix.c b/drivers/ata/pata_oldpiix.c index 8837256632e9..1283fb71bd5d 100644 --- a/drivers/ata/pata_oldpiix.c +++ b/drivers/ata/pata_oldpiix.c | |||
@@ -233,6 +233,8 @@ static struct scsi_host_template oldpiix_sht = { | |||
233 | .slave_configure = ata_scsi_slave_config, | 233 | .slave_configure = ata_scsi_slave_config, |
234 | .slave_destroy = ata_scsi_slave_destroy, | 234 | .slave_destroy = ata_scsi_slave_destroy, |
235 | .bios_param = ata_std_bios_param, | 235 | .bios_param = ata_std_bios_param, |
236 | .resume = ata_scsi_device_resume, | ||
237 | .suspend = ata_scsi_device_suspend, | ||
236 | }; | 238 | }; |
237 | 239 | ||
238 | static const struct ata_port_operations oldpiix_pata_ops = { | 240 | static const struct ata_port_operations oldpiix_pata_ops = { |
@@ -314,6 +316,8 @@ static struct pci_driver oldpiix_pci_driver = { | |||
314 | .id_table = oldpiix_pci_tbl, | 316 | .id_table = oldpiix_pci_tbl, |
315 | .probe = oldpiix_init_one, | 317 | .probe = oldpiix_init_one, |
316 | .remove = ata_pci_remove_one, | 318 | .remove = ata_pci_remove_one, |
319 | .suspend = ata_pci_device_suspend, | ||
320 | .resume = ata_pci_device_resume, | ||
317 | }; | 321 | }; |
318 | 322 | ||
319 | static int __init oldpiix_init(void) | 323 | static int __init oldpiix_init(void) |
diff --git a/drivers/ata/pata_opti.c b/drivers/ata/pata_opti.c index c6319cf50de4..66f561db2ab1 100644 --- a/drivers/ata/pata_opti.c +++ b/drivers/ata/pata_opti.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include <linux/libata.h> | 34 | #include <linux/libata.h> |
35 | 35 | ||
36 | #define DRV_NAME "pata_opti" | 36 | #define DRV_NAME "pata_opti" |
37 | #define DRV_VERSION "0.2.5" | 37 | #define DRV_VERSION "0.2.7" |
38 | 38 | ||
39 | enum { | 39 | enum { |
40 | READ_REG = 0, /* index of Read cycle timing register */ | 40 | READ_REG = 0, /* index of Read cycle timing register */ |
@@ -109,30 +109,6 @@ static void opti_write_reg(struct ata_port *ap, u8 val, int reg) | |||
109 | outb(0x83, regio + 2); | 109 | outb(0x83, regio + 2); |
110 | } | 110 | } |
111 | 111 | ||
112 | #if 0 | ||
113 | /** | ||
114 | * opti_read_reg - control register read | ||
115 | * @ap: ATA port | ||
116 | * @reg: control register number | ||
117 | * | ||
118 | * The Opti uses magic 'trapdoor' register accesses to do configuration | ||
119 | * rather than using PCI space as other controllers do. The double inw | ||
120 | * on the error register activates configuration mode. We can then read | ||
121 | * the control register | ||
122 | */ | ||
123 | |||
124 | static u8 opti_read_reg(struct ata_port *ap, int reg) | ||
125 | { | ||
126 | unsigned long regio = ap->ioaddr.cmd_addr; | ||
127 | u8 ret; | ||
128 | inw(regio + 1); | ||
129 | inw(regio + 1); | ||
130 | outb(3, regio + 2); | ||
131 | ret = inb(regio + reg); | ||
132 | outb(0x83, regio + 2); | ||
133 | } | ||
134 | #endif | ||
135 | |||
136 | /** | 112 | /** |
137 | * opti_set_piomode - set initial PIO mode data | 113 | * opti_set_piomode - set initial PIO mode data |
138 | * @ap: ATA interface | 114 | * @ap: ATA interface |
@@ -204,12 +180,13 @@ static struct scsi_host_template opti_sht = { | |||
204 | .slave_configure = ata_scsi_slave_config, | 180 | .slave_configure = ata_scsi_slave_config, |
205 | .slave_destroy = ata_scsi_slave_destroy, | 181 | .slave_destroy = ata_scsi_slave_destroy, |
206 | .bios_param = ata_std_bios_param, | 182 | .bios_param = ata_std_bios_param, |
183 | .resume = ata_scsi_device_resume, | ||
184 | .suspend = ata_scsi_device_suspend, | ||
207 | }; | 185 | }; |
208 | 186 | ||
209 | static struct ata_port_operations opti_port_ops = { | 187 | static struct ata_port_operations opti_port_ops = { |
210 | .port_disable = ata_port_disable, | 188 | .port_disable = ata_port_disable, |
211 | .set_piomode = opti_set_piomode, | 189 | .set_piomode = opti_set_piomode, |
212 | /* .set_dmamode = opti_set_dmamode, */ | ||
213 | .tf_load = ata_tf_load, | 190 | .tf_load = ata_tf_load, |
214 | .tf_read = ata_tf_read, | 191 | .tf_read = ata_tf_read, |
215 | .check_status = ata_check_status, | 192 | .check_status = ata_check_status, |
@@ -267,7 +244,9 @@ static struct pci_driver opti_pci_driver = { | |||
267 | .name = DRV_NAME, | 244 | .name = DRV_NAME, |
268 | .id_table = opti, | 245 | .id_table = opti, |
269 | .probe = opti_init_one, | 246 | .probe = opti_init_one, |
270 | .remove = ata_pci_remove_one | 247 | .remove = ata_pci_remove_one, |
248 | .suspend = ata_pci_device_suspend, | ||
249 | .resume = ata_pci_device_resume, | ||
271 | }; | 250 | }; |
272 | 251 | ||
273 | static int __init opti_init(void) | 252 | static int __init opti_init(void) |
diff --git a/drivers/ata/pata_optidma.c b/drivers/ata/pata_optidma.c index 2f4770cce04e..d898e42f99e8 100644 --- a/drivers/ata/pata_optidma.c +++ b/drivers/ata/pata_optidma.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/libata.h> | 33 | #include <linux/libata.h> |
34 | 34 | ||
35 | #define DRV_NAME "pata_optidma" | 35 | #define DRV_NAME "pata_optidma" |
36 | #define DRV_VERSION "0.2.2" | 36 | #define DRV_VERSION "0.2.3" |
37 | 37 | ||
38 | enum { | 38 | enum { |
39 | READ_REG = 0, /* index of Read cycle timing register */ | 39 | READ_REG = 0, /* index of Read cycle timing register */ |
@@ -361,6 +361,8 @@ static struct scsi_host_template optidma_sht = { | |||
361 | .slave_configure = ata_scsi_slave_config, | 361 | .slave_configure = ata_scsi_slave_config, |
362 | .slave_destroy = ata_scsi_slave_destroy, | 362 | .slave_destroy = ata_scsi_slave_destroy, |
363 | .bios_param = ata_std_bios_param, | 363 | .bios_param = ata_std_bios_param, |
364 | .resume = ata_scsi_device_resume, | ||
365 | .suspend = ata_scsi_device_suspend, | ||
364 | }; | 366 | }; |
365 | 367 | ||
366 | static struct ata_port_operations optidma_port_ops = { | 368 | static struct ata_port_operations optidma_port_ops = { |
@@ -522,7 +524,9 @@ static struct pci_driver optidma_pci_driver = { | |||
522 | .name = DRV_NAME, | 524 | .name = DRV_NAME, |
523 | .id_table = optidma, | 525 | .id_table = optidma, |
524 | .probe = optidma_init_one, | 526 | .probe = optidma_init_one, |
525 | .remove = ata_pci_remove_one | 527 | .remove = ata_pci_remove_one, |
528 | .suspend = ata_pci_device_suspend, | ||
529 | .resume = ata_pci_device_resume, | ||
526 | }; | 530 | }; |
527 | 531 | ||
528 | static int __init optidma_init(void) | 532 | static int __init optidma_init(void) |
diff --git a/drivers/ata/pata_radisys.c b/drivers/ata/pata_radisys.c index 048c2bb21ef1..5fe7ffce5284 100644 --- a/drivers/ata/pata_radisys.c +++ b/drivers/ata/pata_radisys.c | |||
@@ -229,6 +229,8 @@ static struct scsi_host_template radisys_sht = { | |||
229 | .slave_configure = ata_scsi_slave_config, | 229 | .slave_configure = ata_scsi_slave_config, |
230 | .slave_destroy = ata_scsi_slave_destroy, | 230 | .slave_destroy = ata_scsi_slave_destroy, |
231 | .bios_param = ata_std_bios_param, | 231 | .bios_param = ata_std_bios_param, |
232 | .resume = ata_scsi_device_resume, | ||
233 | .suspend = ata_scsi_device_suspend, | ||
232 | }; | 234 | }; |
233 | 235 | ||
234 | static const struct ata_port_operations radisys_pata_ops = { | 236 | static const struct ata_port_operations radisys_pata_ops = { |
@@ -311,6 +313,8 @@ static struct pci_driver radisys_pci_driver = { | |||
311 | .id_table = radisys_pci_tbl, | 313 | .id_table = radisys_pci_tbl, |
312 | .probe = radisys_init_one, | 314 | .probe = radisys_init_one, |
313 | .remove = ata_pci_remove_one, | 315 | .remove = ata_pci_remove_one, |
316 | .suspend = ata_pci_device_suspend, | ||
317 | .resume = ata_pci_device_resume, | ||
314 | }; | 318 | }; |
315 | 319 | ||
316 | static int __init radisys_init(void) | 320 | static int __init radisys_init(void) |
diff --git a/drivers/ata/pata_sc1200.c b/drivers/ata/pata_sc1200.c index 0c75dae74764..0c5393a73970 100644 --- a/drivers/ata/pata_sc1200.c +++ b/drivers/ata/pata_sc1200.c | |||
@@ -40,7 +40,7 @@ | |||
40 | #include <linux/libata.h> | 40 | #include <linux/libata.h> |
41 | 41 | ||
42 | #define DRV_NAME "sc1200" | 42 | #define DRV_NAME "sc1200" |
43 | #define DRV_VERSION "0.2.3" | 43 | #define DRV_VERSION "0.2.4" |
44 | 44 | ||
45 | #define SC1200_REV_A 0x00 | 45 | #define SC1200_REV_A 0x00 |
46 | #define SC1200_REV_B1 0x01 | 46 | #define SC1200_REV_B1 0x01 |
@@ -195,6 +195,8 @@ static struct scsi_host_template sc1200_sht = { | |||
195 | .slave_configure = ata_scsi_slave_config, | 195 | .slave_configure = ata_scsi_slave_config, |
196 | .slave_destroy = ata_scsi_slave_destroy, | 196 | .slave_destroy = ata_scsi_slave_destroy, |
197 | .bios_param = ata_std_bios_param, | 197 | .bios_param = ata_std_bios_param, |
198 | .resume = ata_scsi_device_resume, | ||
199 | .suspend = ata_scsi_device_suspend, | ||
198 | }; | 200 | }; |
199 | 201 | ||
200 | static struct ata_port_operations sc1200_port_ops = { | 202 | static struct ata_port_operations sc1200_port_ops = { |
@@ -264,7 +266,9 @@ static struct pci_driver sc1200_pci_driver = { | |||
264 | .name = DRV_NAME, | 266 | .name = DRV_NAME, |
265 | .id_table = sc1200, | 267 | .id_table = sc1200, |
266 | .probe = sc1200_init_one, | 268 | .probe = sc1200_init_one, |
267 | .remove = ata_pci_remove_one | 269 | .remove = ata_pci_remove_one, |
270 | .suspend = ata_pci_device_suspend, | ||
271 | .resume = ata_pci_device_resume, | ||
268 | }; | 272 | }; |
269 | 273 | ||
270 | static int __init sc1200_init(void) | 274 | static int __init sc1200_init(void) |
diff --git a/drivers/ata/pata_triflex.c b/drivers/ata/pata_triflex.c index bfda1f7e760a..ece9cb7c2f4d 100644 --- a/drivers/ata/pata_triflex.c +++ b/drivers/ata/pata_triflex.c | |||
@@ -43,7 +43,7 @@ | |||
43 | #include <linux/libata.h> | 43 | #include <linux/libata.h> |
44 | 44 | ||
45 | #define DRV_NAME "pata_triflex" | 45 | #define DRV_NAME "pata_triflex" |
46 | #define DRV_VERSION "0.2.5" | 46 | #define DRV_VERSION "0.2.7" |
47 | 47 | ||
48 | /** | 48 | /** |
49 | * triflex_prereset - probe begin | 49 | * triflex_prereset - probe begin |
@@ -194,6 +194,8 @@ static struct scsi_host_template triflex_sht = { | |||
194 | .slave_configure = ata_scsi_slave_config, | 194 | .slave_configure = ata_scsi_slave_config, |
195 | .slave_destroy = ata_scsi_slave_destroy, | 195 | .slave_destroy = ata_scsi_slave_destroy, |
196 | .bios_param = ata_std_bios_param, | 196 | .bios_param = ata_std_bios_param, |
197 | .resume = ata_scsi_device_resume, | ||
198 | .suspend = ata_scsi_device_suspend, | ||
197 | }; | 199 | }; |
198 | 200 | ||
199 | static struct ata_port_operations triflex_port_ops = { | 201 | static struct ata_port_operations triflex_port_ops = { |
@@ -258,7 +260,9 @@ static struct pci_driver triflex_pci_driver = { | |||
258 | .name = DRV_NAME, | 260 | .name = DRV_NAME, |
259 | .id_table = triflex, | 261 | .id_table = triflex, |
260 | .probe = triflex_init_one, | 262 | .probe = triflex_init_one, |
261 | .remove = ata_pci_remove_one | 263 | .remove = ata_pci_remove_one, |
264 | .suspend = ata_pci_device_suspend, | ||
265 | .resume = ata_pci_device_resume, | ||
262 | }; | 266 | }; |
263 | 267 | ||
264 | static int __init triflex_init(void) | 268 | static int __init triflex_init(void) |