[parisc-linux] Linux-2.6.6-rc1-pa3 and Linux-2.6.6-rc2
M. Grabert
xam at cs.ucc.ie
Tue Apr 27 02:35:56 MDT 2004
On Tue, 27 Apr 2004, Joel Soete wrote:
> > and also the same symptoms as before (network is working normal, USB
> > keyboard/mouse don't work). If you respond fast what commands I should
> > run, I can give you more info ...
>
> hmm usb and ide seems to be on the same superio.
Also something other interesting:
I killed squid and all other processes that are trying to access /dev/hda,
so the kernel messages 'hda: lost interrupt' stopped (mostly) for now.
Also pdflush doesn't consume any (significant) CPU time anymore.
The system is quite stable again, but still no access to the serial
console login prompt, nor the USB devices are working. BTW, a
/proc/bus/usb/devices results in the following kernel message:
usb 2-1: control timeout on ep0in
... and the process hangs.
Attaching the USB keyboard/mouse to my PCI USB2.0 card suddenly gives that
kernel output:
Badness in ohci_endpoint_disable at drivers/usb/host/ohci-hcd.c:355
Kernel addresses on the stack:
[<10125b48>] printk+0x188/0x1c8
[<101063b8>] dump_stack+0x18/0x24
[<10267970>] ohci_endpoint_disable+0xd0/0x1a0
[<10121f70>] __wake_up_common+0x60/0xa8
[<10257cf4>] hcd_endpoint_disable+0x114/0x1b8
[<10121fd8>] __wake_up+0x20/0x38
[<102592c8>] usb_disable_endpoint+0x80/0x88
[<102593d4>] usb_disable_device+0x94/0xb4
[<102536c4>] usb_disconnect+0x90/0x140
[<10255d54>] hub_port_connect_change+0x2dc/0x2e0
[<1025604c>] hub_events+0x2f4/0x39c
[<10256150>] hub_thread+0x5c/0x128
[<1010bc5c>] ret_from_kernel_thread+0x1c/0x24
Another interesting thing is that I'm unable to kill -9 the X-Server.
Also I had some problems getting the Voodoo2 card working with custom
refresh rate settings; if I did specify a modeline in XF86Config-4
(generated with the fbset command), the machine would crash and print out
"bug in superio.c".
However if I use fbset after X has been started, it works perfectly.
Might be a Voodoo2 problem after all, who knows ...
And now for something completely different!
The Changelog to 2.6.6-rc2 contains the following:
=== snip ===
<dsaxena at plexity.net>
[PATCH] PCI: Allow arch-specific pci_set_dma_mask and friends
The patch provides the ability for architectures to have custom
implementations of pci_set_dma_mask() and friends (dac_set_dma_mask
and set_consistent_dma_mask). The reason I need this is b/c I have
a chipset (Intel ARM IXP425) that has a broken PCI interface that
only allows PCI dma to/from the bottom 64MB of system memory. To get
around this limitation, I trap a custom dma-mapping implementation that
bounces buffers outside the 64MB window. At device discover time, my
custom platform_notify() function gets called and it sets the dma_mask
to (64MB-1) and in ARM's dma-mapping code, I check for dma_mask != 0xffffffff
and if that is true, I call the special bounce helpers. This works great
except that certain drivers (e100, ide-pci) call pci_set_dma_mask()
with 0xffffffff and the generic implementation only allows for the
architecture-defined pci_dma_supported() to return true or false. There
is no method for the architecture to tell the PCI layer "I can't set
the mask to 0xffffffff, but I can set it to this other value" and there
is no way to pass that back to the driver. What this means is that if
I have pci_set_dma_supported() return failure on full 32-bit DMA, the
driver will not initialize the card; however, if I return true,
pci_set_dma_mask() will set the dma mask to full 32-bits and I can no
longer trap and will have buffers that are not dma-able and cause
PCI master aborts. Both of those are not acceptable. IMHO, the
driver shouldn't care if the architecture has to bounce DMA outside of
64MB and since this is not something most architectures have to worry
about, the easiest way to get around the issue is by allowing custom
pci_set_dma_mask() for arches that need it but keeping the generic
implementation for those that do not. In my case, it simply returns
0 to the driver but keeps the device mask set to 64MB-1 so I can trap.
=== snap ===
Since I still have problems to get onboard IDE DMA correctly working on my
C3000 (kernel and hdparm both say enabled, but just 3MB/s transfer rate
instead of >40 MB/s), and since any other PCI IDE card complains about
lost interrupts (on 2.6) or also behave like the onboard IDE (on 2.4),
I thought maybe this is related to the issue
Thanks for your help,
Max
More information about the parisc-linux
mailing list