|
@@ -162,7 +162,8 @@ static struct ata_port_info pdc_port_info[] = {
|
|
|
{
|
|
|
.sht = &pdc_ata_sht,
|
|
|
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
|
|
|
- ATA_FLAG_SRST | ATA_FLAG_MMIO,
|
|
|
+ ATA_FLAG_SRST | ATA_FLAG_MMIO |
|
|
|
+ ATA_FLAG_PIO_POLLING,
|
|
|
.pio_mask = 0x1f, /* pio0-4 */
|
|
|
.mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
.udma_mask = 0x7f, /* udma0-6 ; FIXME */
|
|
@@ -173,7 +174,8 @@ static struct ata_port_info pdc_port_info[] = {
|
|
|
{
|
|
|
.sht = &pdc_ata_sht,
|
|
|
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
|
|
|
- ATA_FLAG_SRST | ATA_FLAG_MMIO,
|
|
|
+ ATA_FLAG_SRST | ATA_FLAG_MMIO |
|
|
|
+ ATA_FLAG_PIO_POLLING,
|
|
|
.pio_mask = 0x1f, /* pio0-4 */
|
|
|
.mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
.udma_mask = 0x7f, /* udma0-6 ; FIXME */
|
|
@@ -184,7 +186,8 @@ static struct ata_port_info pdc_port_info[] = {
|
|
|
{
|
|
|
.sht = &pdc_ata_sht,
|
|
|
.host_flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST |
|
|
|
- ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS,
|
|
|
+ ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS |
|
|
|
+ ATA_FLAG_PIO_POLLING,
|
|
|
.pio_mask = 0x1f, /* pio0-4 */
|
|
|
.mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
.udma_mask = 0x7f, /* udma0-6 ; FIXME */
|
|
@@ -493,11 +496,11 @@ static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *r
|
|
|
ap = host_set->ports[i];
|
|
|
tmp = mask & (1 << (i + 1));
|
|
|
if (tmp && ap &&
|
|
|
- !(ap->flags & (ATA_FLAG_PORT_DISABLED | ATA_FLAG_NOINTR))) {
|
|
|
+ !(ap->flags & ATA_FLAG_PORT_DISABLED)) {
|
|
|
struct ata_queued_cmd *qc;
|
|
|
|
|
|
qc = ata_qc_from_tag(ap, ap->active_tag);
|
|
|
- if (qc && (!(qc->tf.ctl & ATA_NIEN)))
|
|
|
+ if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING)))
|
|
|
handled += pdc_host_intr(ap, qc);
|
|
|
}
|
|
|
}
|