diff options
Diffstat (limited to 'drivers/ide/ht6560b.c')
-rw-r--r-- | drivers/ide/ht6560b.c | 20 |
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 | */ |
106 | static void ht6560b_selectproc (ide_drive_t *drive) | 106 | static 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; | |||
305 | module_param_named(probe, probe_ht6560b, bool, 0); | 307 | module_param_named(probe, probe_ht6560b, bool, 0); |
306 | MODULE_PARM_DESC(probe, "probe for HT6560B chipset"); | 308 | MODULE_PARM_DESC(probe, "probe for HT6560B chipset"); |
307 | 309 | ||
310 | static 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 | |||
308 | static const struct ide_port_ops ht6560b_port_ops = { | 324 | static 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 | ||
314 | static const struct ide_port_info ht6560b_port_info __initdata = { | 329 | static 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 | |