All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/3] atiixp.c: add cable detection support for ATI IDE
@ 2007-01-06 12:22 Conke Hu
  2007-01-07  2:16 ` Bartlomiej Zolnierkiewicz
  0 siblings, 1 reply; 7+ messages in thread
From: Conke Hu @ 2007-01-06 12:22 UTC (permalink / raw)
  To: Linux kernel mailing list, Andrew Morton, Greg KH

IDE HDD does not work if it uses a 40-pin PATA cable on ATI chipset.
This patch fixes the bug.

Signed-off-by: Conke Hu <conke.hu@amd.com>
-----------------------
--- linux-2.6.20-rc3-git4/drivers/ide/pci/atiixp.c.2	2007-01-06
19:19:35.000000000 +0800
+++ linux-2.6.20-rc3-git4/drivers/ide/pci/atiixp.c	2007-01-06
19:22:34.000000000 +0800
@@ -289,8 +289,12 @@ fast_ata_pio:

 static void __devinit init_hwif_atiixp(ide_hwif_t *hwif)
 {
+	u8 udma_mode = 0;
+	u8 ch = hwif->channel;
+	struct pci_dev *pdev = hwif->pci_dev;
+
 	if (!hwif->irq)
-		hwif->irq = hwif->channel ? 15 : 14;
+		hwif->irq = ch ? 15 : 14;

 	hwif->autodma = 0;
 	hwif->tuneproc = &atiixp_tuneproc;
@@ -306,8 +310,12 @@ static void __devinit init_hwif_atiixp(i
 	hwif->mwdma_mask = 0x06;
 	hwif->swdma_mask = 0x04;

-	/* FIXME: proper cable detection needed */
-	hwif->udma_four = 1;
+	pci_read_config_byte(pdev, ATIIXP_IDE_UDMA_MODE + ch, &udma_mode);
+	if ((udma_mode & 0x07) >= 0x04 || (udma_mode & 0x70) >= 0x40)
+		hwif->udma_four = 1;
+	else
+		hwif->udma_four = 0;
+
 	hwif->ide_dma_host_on = &atiixp_ide_dma_host_on;
 	hwif->ide_dma_host_off = &atiixp_ide_dma_host_off;
 	hwif->ide_dma_check = &atiixp_dma_check;

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-01-10  2:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-06 12:22 [PATCH 3/3] atiixp.c: add cable detection support for ATI IDE Conke Hu
2007-01-07  2:16 ` Bartlomiej Zolnierkiewicz
2007-01-09 12:53   ` Conke Hu
2007-01-09 13:04     ` Jeff Garzik
2007-01-09 13:54       ` Bartlomiej Zolnierkiewicz
2007-01-09 18:26         ` Andrew Morton
2007-01-10  2:34           ` Conke Hu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.