Re: HPT366 problems continued

From: Francois Romieu (romieu@cogenit.fr)
Date: Sat Oct 27 2001 - 16:42:00 EST


Janne Liimatainen <jannel@iki.fi> :
[...]
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz PCI bus speed for PIO modes; override with idebus=xx
> HPT366: IDE controller on PCI bus 00 dev 70
> HPT366: chipset revision 1
> HPT366: not 100% native mode: will probe irqs later
> HPT366: simplex device: DMA disabled
> ide0: HPT366 Bus-Master DMA disabled (BIOS)
> HPT366: IDE controller on PCI bus 00 dev 71
> HPT366: chipset revision 1
> HPT366: not 100% native mode: will probe irqs later
> HPT366: simplex device: DMA disabled
> ide1: HPT366 Bus-Master DMA disabled (BIOS)
> hda: Maxtor 4D080H4, ATA DISK drive
> hdc: Maxtor 4D080H4, ATA DISK drive

drivers/ide/ide-dma.c::ide_get_or_set_dma_base
741 if (hwif->mate && hwif->mate->dma_base) {
742 dma_base = hwif->mate->dma_base - (hwif->channel ? 0 : 8);
        } else {
                dma_base = pci_resource_start(dev, 4);
                -> We take this branch first (or I've missed where
                   mate->dma_base is set)
[...]
        if ((inb(dma_base+2) & 0x80)) { /* simplex device? */
793 if ((!hwif->drives[0].present && !hwif->drives[1].present) ||
                -> do_identify is called later, we pass this test
794 (hwif->mate && hwif->mate->dma_base)) {
                    -> + we can't succeed this one or it means we would have
                    -> passed through the other branch (742). It would imply
                    -> at least one mate accepts to enable DMA.
                        printk("%s: simplex device: DMA disabled\n", name);
                        dma_base = 0;

I'd say either mate->dma_base is set too soon for both mate (and they're both
guaranteed to generate dma_base = 0 as soon as they reach 794) or do_identify
is called too late (and dma_base = 0 because of 793).
I haven't found a lot of dma_base field setting and they seem to happen late.

M. Hedrick ?

-- 
Ueimor
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Oct 31 2001 - 21:00:33 EST