pcibios_fixup_final in linux-2.5.47/arch/alpha/kernel/pci.c
directly sets pci_dev->dma_mask instead of calling pci_set_dma_mask.
pci_dev.dma_mask may be moved soon (probably to
pci_dev.device.dma_mask). So, applying this patch will reduce or
eliminate the need to change this code when that happens, and it will
be one less change to maintain between 2.4 and 2.5+ kernels.
I am not quite sure who to directly alpha architecture patches
to, so I'm sending this to the authors listed in the file and to lkml.
If there is a more appropriate address to submit this to, I would
appreciate it if someone would let me know. Otherwise, I'd ask
that someone who actually uses Linux on Alpha give this patch a
whirl and submit it to Linus if it works.
--
Adam J. Richter __ ______________ 575 Oroville Road
[email protected] \ / Milpitas, California 95035
+1 408 309-6081 | g g d r a s i l United States of America
"Free Software For The Rest Of Us."
Adam J. Richter wrote:
> --- linux-2.5.47/arch/alpha/kernel/pci.c 2002-11-10 19:28:03.000000000
> -0800
> +++ linux/arch/alpha/kernel/pci.c 2002-11-16 05:54:00.000000000 -0800
> @@ -124,7 +124,7 @@
> unsigned int class = dev->class >> 8;
>
> if (class == PCI_CLASS_BRIDGE_ISA || class == PCI_CLASS_BRIDGE_ISA) {
> - dev->dma_mask = MAX_ISA_DMA_ADDRESS - 1;
> + pci_set_dma_mask(dev, MAX_ISA_DMA_ADDRESS - 1);
> isa_bridge = dev;
> }
> }
No; pci_set_dma_mask is too high-level for the above arch-specific code.
When dma_mask is moved this will need to get examined and fixed up in
another way.
Jeff