[parisc-linux] parisc-linux.org kernel

Alan Cox alan@lxorguk.ukuu.org.uk
14 Apr 2003 12:39:46 +0100


On Llu, 2003-04-14 at 13:13, Joel Soete wrote:
> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
> +#include <asm/superio.h>
> +#endif
> +

Please keep superio out of generic drivers


>  	if (!using_inta)
> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
> +		hwif->irq = superio_get_ide_irq();	/* legacy mode */
> +#else
>  		hwif->irq = hwif->channel ? 15 : 14;	/* legacy mode */
> +#endif
>  	else if (!hwif->irq && hwif->mate && hwif->mate->irq)
>  		hwif->irq = hwif->mate->irq;	/* share IRQ with mate */

Ughh. Ok this needs tackling in a more general way. get_legacy_irq(0/1)
perhaps. This isnt the only port we need to sort out.

Ok suppose you added superio.h to include/asm-parisc/ide.h and added
ide_get_legacy(int n) [n=0/1] for interfaces. I can do the same for the
other ports (return 14+n) and it will stay clean in 2.4 and 2.5

 
>  	     (dev->class & 0x80))) {
> -		unsigned long dma_base = ide_get_or_set_dma_base(hwif);
> +		u32 dma_base = ide_get_or_set_dma_base(hwif);

Thats reverting a fix. dma_base must be unsigned long for 64bit
platforms. Looks just like a merge error.