--- 2.4/arch/i386/kernel/pci-irq.c Sat Nov 3 19:51:08 2001
+++ build-2.4/arch/i386/kernel/pci-irq.c Sun Nov 4 11:57:00 2001
@@ -48,6 +48,8 @@
* Search 0xf0000 -- 0xfffff for the PCI IRQ Routing Table.
*/
+#undef DBG
+#define DBG printk
static struct irq_routing_table * __init pirq_find_routing_table(void)
{
u8 *addr;
Index: arch/i386/kernel/pci-i386.h
===================================================================
RCS file: /cvsroot/gkernel/linux_2_4/arch/i386/kernel/pci-i386.h,v
retrieving revision 1.3
diff -u -r1.3 pci-i386.h
--- arch/i386/kernel/pci-i386.h 2001/10/13 07:47:29 1.3
+++ arch/i386/kernel/pci-i386.h 2001/11/04 14:02:45
@@ -4,7 +4,7 @@
* (c) 1999 Martin Mares <[email protected]>
*/
-#undef DEBUG
+#define DEBUG 1
#ifdef DEBUG
#define DBG(x...) printk(x)
--- 2.4/arch/i386/kernel/pci-irq.c Sat Nov 3 19:51:08 2001
+++ build-2.4/arch/i386/kernel/pci-irq.c Sun Nov 4 15:09:40 2001
@@ -629,6 +629,18 @@
if (dev2->irq && dev2->irq != irq) {
printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n",
dev2->slot_name, dev2->irq, irq);
+ if (!strcmp(msg, "Found")) {
+ /* ok, the bios lied. Try to recover */
+ if (r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
+ printk(KERN_ERR "trying set.\n");
+ if (r->set(pirq_router_dev, dev2, pirq, dev2->irq)) {
+ printk(KERN_ERR "set succedded.\n");
+ eisa_set_level_irq(dev2->irq);
+ } else {
+ printk(KERN_ERR "set failed.\n");
+ }
+ }
+ }
continue;
}
dev2->irq = irq;
Hi,
I tested both patches from Manfred and both of them worked!
My Vaio now works perfectly with USB. I've put together some
short information at http://www.sbox.tugraz.at/home/t/twinkler/vaio/
(dmesg and interrupts - if you're interested in something else let me
know). I'm not really sure which of the patches to use since both
are working. For now I'll stick with the first one I guess.
Just a questinon: Will this patch (wich as far as I saw on the web
will be interesting for many other vaio users) be part of one of the
next kernel releases? If you need me to test something related to
this patch just drop me a line.
Thank you very much Manfred and Jeff for your help,
Tom
Hi!
I got Sony Vaio PCG-FX240 (on i815), and problems as Tom Winkler
described.
Maybe you will be interested in my patch, which also makes
USB work...
Maybe it is a little narrower the prevoius ones.
I think it is worth to add 'is_sony_vaio_laptop' check in if condition...
I know that is a rather ugly hack, but maybe it can be added to kernel,
like other sony pathces... Of course it should be implemented somehow
nicer...
--- pci-irq.c Sun Nov 4 18:31:58 2001
+++ ../../../../linux-2.4.14-pre3/arch/i386/kernel/pci-irq.c Sun Nov 4 19:01:30 2001
@@ -588,7 +588,7 @@
irq = pirq & 0xf;
DBG(" -> hardcoded IRQ %d\n", irq);
msg = "Hardcoded";
- } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq))) {
+ } else if (r->get && (irq=r->get(pirq_router_dev, dev, pirq)) && !(dev->vendor==0x8086 && dev->device==0x2442)) {
DBG(" -> got IRQ %d\n", irq);
msg = "Found";
} else if (newirq && r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
Plese CC me if you have any additional questions/comments.
I can send some logs, or anything...
Jan
PS.
My eepro100 card works great on 100Mbps net, and has problems
(eepro100: wait_for_cmd_done) on 10Mbs. Even if I set up
speed manually (by option to module)
_ _ _ _ _____________________________________________
| |_| |\ | S L U P S K I [email protected]
|_| | | | \| http://www.pm.waw.pl/~jslupski