aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ht6560b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ht6560b.c')
-rw-r--r--drivers/ide/ht6560b.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/ide/ht6560b.c b/drivers/ide/ht6560b.c
index c7e5c2246b79..2fb0f2965009 100644
--- a/drivers/ide/ht6560b.c
+++ b/drivers/ide/ht6560b.c
@@ -103,7 +103,7 @@
103/* 103/*
104 * This routine is invoked from ide.c to prepare for access to a given drive. 104 * This routine is invoked from ide.c to prepare for access to a given drive.
105 */ 105 */
106static void ht6560b_selectproc (ide_drive_t *drive) 106static void ht6560b_dev_select(ide_drive_t *drive)
107{ 107{
108 ide_hwif_t *hwif = drive->hwif; 108 ide_hwif_t *hwif = drive->hwif;
109 unsigned long flags; 109 unsigned long flags;
@@ -143,6 +143,8 @@ static void ht6560b_selectproc (ide_drive_t *drive)
143#endif 143#endif
144 } 144 }
145 local_irq_restore(flags); 145 local_irq_restore(flags);
146
147 outb(drive->select | ATA_DEVICE_OBS, hwif->io_ports.device_addr);
146} 148}
147 149
148/* 150/*
@@ -305,15 +307,29 @@ static int probe_ht6560b;
305module_param_named(probe, probe_ht6560b, bool, 0); 307module_param_named(probe, probe_ht6560b, bool, 0);
306MODULE_PARM_DESC(probe, "probe for HT6560B chipset"); 308MODULE_PARM_DESC(probe, "probe for HT6560B chipset");
307 309
310static const struct ide_tp_ops ht6560b_tp_ops = {
311 .exec_command = ide_exec_command,
312 .read_status = ide_read_status,
313 .read_altstatus = ide_read_altstatus,
314 .write_devctl = ide_write_devctl,
315
316 .dev_select = ht6560b_dev_select,
317 .tf_load = ide_tf_load,
318 .tf_read = ide_tf_read,
319
320 .input_data = ide_input_data,
321 .output_data = ide_output_data,
322};
323
308static const struct ide_port_ops ht6560b_port_ops = { 324static const struct ide_port_ops ht6560b_port_ops = {
309 .init_dev = ht6560b_init_dev, 325 .init_dev = ht6560b_init_dev,
310 .set_pio_mode = ht6560b_set_pio_mode, 326 .set_pio_mode = ht6560b_set_pio_mode,
311 .selectproc = ht6560b_selectproc,
312}; 327};
313 328
314static const struct ide_port_info ht6560b_port_info __initdata = { 329static const struct ide_port_info ht6560b_port_info __initdata = {
315 .name = DRV_NAME, 330 .name = DRV_NAME,
316 .chipset = ide_ht6560b, 331 .chipset = ide_ht6560b,
332 .tp_ops = &ht6560b_tp_ops,
317 .port_ops = &ht6560b_port_ops, 333 .port_ops = &ht6560b_port_ops,
318 .host_flags = IDE_HFLAG_SERIALIZE | /* is this needed? */ 334 .host_flags = IDE_HFLAG_SERIALIZE | /* is this needed? */
319 IDE_HFLAG_NO_DMA | 335 IDE_HFLAG_NO_DMA |