diff options
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index f210dbd4cbe6..2e8ca652c0d9 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -2664,8 +2664,7 @@ void ata_bus_reset(struct ata_port *ap) | |||
2664 | ap->device[1].class = ata_dev_try_classify(ap, 1, &err); | 2664 | ap->device[1].class = ata_dev_try_classify(ap, 1, &err); |
2665 | 2665 | ||
2666 | /* re-enable interrupts */ | 2666 | /* re-enable interrupts */ |
2667 | if (ap->ioaddr.ctl_addr) /* FIXME: hack. create a hook instead */ | 2667 | ap->ops->irq_on(ap); |
2668 | ata_irq_on(ap); | ||
2669 | 2668 | ||
2670 | /* is double-select really necessary? */ | 2669 | /* is double-select really necessary? */ |
2671 | if (ap->device[1].class != ATA_DEV_NONE) | 2670 | if (ap->device[1].class != ATA_DEV_NONE) |
@@ -3054,11 +3053,8 @@ void ata_std_postreset(struct ata_port *ap, unsigned int *classes) | |||
3054 | sata_scr_write(ap, SCR_ERROR, serror); | 3053 | sata_scr_write(ap, SCR_ERROR, serror); |
3055 | 3054 | ||
3056 | /* re-enable interrupts */ | 3055 | /* re-enable interrupts */ |
3057 | if (!ap->ops->error_handler) { | 3056 | if (!ap->ops->error_handler) |
3058 | /* FIXME: hack. create a hook instead */ | 3057 | ap->ops->irq_on(ap); |
3059 | if (ap->ioaddr.ctl_addr) | ||
3060 | ata_irq_on(ap); | ||
3061 | } | ||
3062 | 3058 | ||
3063 | /* is double-select really necessary? */ | 3059 | /* is double-select really necessary? */ |
3064 | if (classes[0] != ATA_DEV_NONE) | 3060 | if (classes[0] != ATA_DEV_NONE) |
@@ -4169,7 +4165,7 @@ static void ata_hsm_qc_complete(struct ata_queued_cmd *qc, int in_wq) | |||
4169 | qc = ata_qc_from_tag(ap, qc->tag); | 4165 | qc = ata_qc_from_tag(ap, qc->tag); |
4170 | if (qc) { | 4166 | if (qc) { |
4171 | if (likely(!(qc->err_mask & AC_ERR_HSM))) { | 4167 | if (likely(!(qc->err_mask & AC_ERR_HSM))) { |
4172 | ata_irq_on(ap); | 4168 | ap->ops->irq_on(ap); |
4173 | ata_qc_complete(qc); | 4169 | ata_qc_complete(qc); |
4174 | } else | 4170 | } else |
4175 | ata_port_freeze(ap); | 4171 | ata_port_freeze(ap); |
@@ -4185,7 +4181,7 @@ static void ata_hsm_qc_complete(struct ata_queued_cmd *qc, int in_wq) | |||
4185 | } else { | 4181 | } else { |
4186 | if (in_wq) { | 4182 | if (in_wq) { |
4187 | spin_lock_irqsave(ap->lock, flags); | 4183 | spin_lock_irqsave(ap->lock, flags); |
4188 | ata_irq_on(ap); | 4184 | ap->ops->irq_on(ap); |
4189 | ata_qc_complete(qc); | 4185 | ata_qc_complete(qc); |
4190 | spin_unlock_irqrestore(ap->lock, flags); | 4186 | spin_unlock_irqrestore(ap->lock, flags); |
4191 | } else | 4187 | } else |
@@ -5010,7 +5006,7 @@ idle_irq: | |||
5010 | 5006 | ||
5011 | #ifdef ATA_IRQ_TRAP | 5007 | #ifdef ATA_IRQ_TRAP |
5012 | if ((ap->stats.idle_irq % 1000) == 0) { | 5008 | if ((ap->stats.idle_irq % 1000) == 0) { |
5013 | ata_irq_ack(ap, 0); /* debug trap */ | 5009 | ap->ops->irq_ack(ap, 0); /* debug trap */ |
5014 | ata_port_printk(ap, KERN_WARNING, "irq trap\n"); | 5010 | ata_port_printk(ap, KERN_WARNING, "irq trap\n"); |
5015 | return 1; | 5011 | return 1; |
5016 | } | 5012 | } |
@@ -6271,3 +6267,7 @@ EXPORT_SYMBOL_GPL(ata_eh_thaw_port); | |||
6271 | EXPORT_SYMBOL_GPL(ata_eh_qc_complete); | 6267 | EXPORT_SYMBOL_GPL(ata_eh_qc_complete); |
6272 | EXPORT_SYMBOL_GPL(ata_eh_qc_retry); | 6268 | EXPORT_SYMBOL_GPL(ata_eh_qc_retry); |
6273 | EXPORT_SYMBOL_GPL(ata_do_eh); | 6269 | EXPORT_SYMBOL_GPL(ata_do_eh); |
6270 | EXPORT_SYMBOL_GPL(ata_irq_on); | ||
6271 | EXPORT_SYMBOL_GPL(ata_dummy_irq_on); | ||
6272 | EXPORT_SYMBOL_GPL(ata_irq_ack); | ||
6273 | EXPORT_SYMBOL_GPL(ata_dummy_irq_ack); | ||