--- a/drivers/ide/cmd64x.c
+++ b/drivers/ide/cmd64x.c
@@ -426,6 +426,7 @@ static const struct ide_port_info cmd64x_chipsets[]
 		.port_ops	= &cmd64x_port_ops,
 		.dma_ops	= &cmd648_dma_ops,
 		.host_flags	= IDE_HFLAG_ABUSE_PREFETCH,
+		.irq_flags	= IRQF_SHARED,
 		.pio_mask	= ATA_PIO5,
 		.mwdma_mask	= ATA_MWDMA2,
 		.udma_mask	= ATA_UDMA2,

I got the idea for that from 255115fb and had hoped it would compensate
for this change from Bart's commit:
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1125,7 +1125,7 @@ static int init_irq (ide_hwif_t *hwif)
                sa = IRQF_SHARED;
 #endif /* __mc68000__ */

-               if (hwif->chipset == ide_pci || hwif->chipset == ide_cmd646)
+               if (hwif->chipset == ide_pci)
                        sa = IRQF_SHARED;

> Alternatively you can try using the pata_cmd64x.c driver instead :-)
