aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_rb500_cf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_rb500_cf.c')
-rw-r--r--drivers/ata/pata_rb500_cf.c54
1 files changed, 7 insertions, 47 deletions
diff --git a/drivers/ata/pata_rb500_cf.c b/drivers/ata/pata_rb500_cf.c
index 4ce9b03fe6c8..800ae4601f44 100644
--- a/drivers/ata/pata_rb500_cf.c
+++ b/drivers/ata/pata_rb500_cf.c
@@ -57,7 +57,7 @@ static inline void rb500_pata_finish_io(struct ata_port *ap)
57 struct ata_host *ah = ap->host; 57 struct ata_host *ah = ap->host;
58 struct rb500_cf_info *info = ah->private_data; 58 struct rb500_cf_info *info = ah->private_data;
59 59
60 ata_altstatus(ap); 60 ata_sff_altstatus(ap);
61 ndelay(RB500_CF_IO_DELAY); 61 ndelay(RB500_CF_IO_DELAY);
62 62
63 set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH); 63 set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH);
@@ -109,7 +109,7 @@ static irqreturn_t rb500_pata_irq_handler(int irq, void *dev_instance)
109 if (gpio_get_value(info->gpio_line)) { 109 if (gpio_get_value(info->gpio_line)) {
110 set_irq_type(info->irq, IRQ_TYPE_LEVEL_LOW); 110 set_irq_type(info->irq, IRQ_TYPE_LEVEL_LOW);
111 if (!info->frozen) 111 if (!info->frozen)
112 ata_interrupt(info->irq, dev_instance); 112 ata_sff_interrupt(info->irq, dev_instance);
113 } else { 113 } else {
114 set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH); 114 set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH);
115 } 115 }
@@ -117,58 +117,18 @@ static irqreturn_t rb500_pata_irq_handler(int irq, void *dev_instance)
117 return IRQ_HANDLED; 117 return IRQ_HANDLED;
118} 118}
119 119
120static void rb500_pata_irq_clear(struct ata_port *ap)
121{
122}
123
124static int rb500_pata_port_start(struct ata_port *ap)
125{
126 return 0;
127}
128
129static struct ata_port_operations rb500_pata_port_ops = { 120static struct ata_port_operations rb500_pata_port_ops = {
130 .tf_load = ata_tf_load, 121 .inherits = &ata_sff_port_ops,
131 .tf_read = ata_tf_read, 122 .sff_exec_command = rb500_pata_exec_command,
132 123 .sff_data_xfer = rb500_pata_data_xfer,
133 .exec_command = rb500_pata_exec_command,
134 .check_status = ata_check_status,
135 .dev_select = ata_std_dev_select,
136
137 .data_xfer = rb500_pata_data_xfer,
138
139 .qc_prep = ata_qc_prep,
140 .qc_issue = ata_qc_issue_prot,
141
142 .freeze = rb500_pata_freeze, 124 .freeze = rb500_pata_freeze,
143 .thaw = rb500_pata_thaw, 125 .thaw = rb500_pata_thaw,
144 .error_handler = ata_bmdma_error_handler,
145
146 .irq_handler = rb500_pata_irq_handler,
147 .irq_clear = rb500_pata_irq_clear,
148 .irq_on = ata_irq_on,
149
150 .port_start = rb500_pata_port_start,
151}; 126};
152 127
153/* ------------------------------------------------------------------------ */ 128/* ------------------------------------------------------------------------ */
154 129
155static struct scsi_host_template rb500_pata_sht = { 130static struct scsi_host_template rb500_pata_sht = {
156 .module = THIS_MODULE, 131 ATA_PIO_SHT(DRV_NAME),
157 .name = DRV_NAME,
158 .ioctl = ata_scsi_ioctl,
159 .queuecommand = ata_scsi_queuecmd,
160 .slave_configure = ata_scsi_slave_config,
161 .slave_destroy = ata_scsi_slave_destroy,
162 .bios_param = ata_std_bios_param,
163 .proc_name = DRV_NAME,
164
165 .can_queue = ATA_DEF_QUEUE,
166 .this_id = ATA_SHT_THIS_ID,
167 .sg_tablesize = LIBATA_MAX_PRD,
168 .dma_boundary = ATA_DMA_BOUNDARY,
169 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
170 .emulated = ATA_SHT_EMULATED,
171 .use_clustering = ATA_SHT_USE_CLUSTERING,
172}; 132};
173 133
174/* ------------------------------------------------------------------------ */ 134/* ------------------------------------------------------------------------ */
@@ -188,7 +148,7 @@ static void rb500_pata_setup_ports(struct ata_host *ah)
188 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL; 148 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL;
189 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL; 149 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL;
190 150
191 ata_std_ports(&ap->ioaddr); 151 ata_sff_std_ports(&ap->ioaddr);
192 152
193 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DATA; 153 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DATA;
194} 154}