aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_opti.c
diff options
context:
space:
mode:
authorAlan <alan@lxorguk.ukuu.org.uk>2006-11-22 11:57:36 -0500
committerJeff Garzik <jeff@garzik.org>2006-12-01 22:46:49 -0500
commit30ced0f0d211999f316930eff7287aa5a9995bef (patch)
treef00359c2aa4dda61d7d31f58a72fee78ef059a14 /drivers/ata/pata_opti.c
parent8550c1637ba7dd96a76353eb52d31088f9c2f5fe (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/ata/pata_opti.c')
-rw-r--r--drivers/ata/pata_opti.c33
1 files changed, 6 insertions, 27 deletions
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
39enum { 39enum {
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
124static 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
209static struct ata_port_operations opti_port_ops = { 187static 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
273static int __init opti_init(void) 252static int __init opti_init(void)