Re: Linux 2.4.10-ac10

Thomas Hood
2001-10-09T23:41:05Z

Okay, I've figured out issue #1. There's an error in the
parport_pc.c code such that it prints the irq number as the
dma number ( ... thus DMA 7 instead of DMA 3).

I append a patch that fixes this. I'll submit it again with
a [PATCH] subject heading.

We still need to figure out #2: what is taking up ioport 0x530?

--
Thomas

> Well, the two notable difference in the syslog are:
> 1) Parport now reports that it is going to use DMA 7
> instead of DMA 3;
> 2) On the second boot ioport 0x530 is reported not to be free
> and this prevents ad1816 from loading
>
> Two questions:
> 1) Is the parport actually configured to use DMA7, not DMA3?
> Please check using "lspnp -v 0d" and also by any other
> methods you have access to
> 2) What is using 0x530? What's in /proc/ioports?

The patch:
--- linux-2.4.10-ac10/drivers/parport/parport_pc.c Mon Oct 8 22:41:14 2001
+++ linux-2.4.10-ac10-fix/drivers/parport/parport_pc.c Tue Oct 9 19:36:58 2001
@@ -2826,7 +2826,7 @@
if ( UNSET(dev->irq_resource[0]) ) {
irq = PARPORT_IRQ_NONE;
} else {
- if ( dev->irq_resource[0].start == -1 ) {
+ if ( dev->irq_resource[0].start == (unsigned long)-1 ) {
irq = PARPORT_IRQ_NONE;
printk(", irq disabled");
} else {
@@ -2838,12 +2838,12 @@
if ( UNSET(dev->dma_resource[0]) ) {
dma = PARPORT_DMA_NONE;
} else {
- if ( dev->dma_resource[0].start == -1 ) {
+ if ( dev->dma_resource[0].start == (unsigned long)-1 ) {
dma = PARPORT_DMA_NONE;
printk(", dma disabled");
} else {
dma = dev->dma_resource[0].start;
- printk(", dma %d",irq);
+ printk(", dma %d",dma);
}
}