Skip to content

Commit

Permalink
atiixp.c: add cable detection support for ATI IDE
Browse files Browse the repository at this point in the history
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>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Conke Hu authored and Bartlomiej Zolnierkiewicz committed Jan 27, 2007
1 parent b25168d commit e5c073f
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions drivers/ide/pci/atiixp.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,12 @@ static int atiixp_dma_check(ide_drive_t *drive)

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;
Expand All @@ -308,8 +312,12 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif)
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;
Expand Down

0 comments on commit e5c073f

Please sign in to comment.