public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Ford <david@linux.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Jeff Garzik <jgarzik@mandrakesoft.com>,
	David Hinds <dhinds@valinux.com>,
	linux-kernel@vger.kernel.org, "Theodore Y. Ts'o" <tytso@MIT.EDU>
Subject: [FIXED!] Re: [PATCH] pcmcia event thread. (fwd)
Date: Sat, 18 Nov 2000 22:30:51 -0800	[thread overview]
Message-ID: <3A17739A.29AFFAC6@linux.com> (raw)
In-Reply-To: <Pine.LNX.4.10.10011182133240.3061-100000@cesium.transmeta.com>

[-- Attachment #1: Type: text/plain, Size: 7694 bytes --]

It's time for a week long party!

It works great, interrupts are even delivered to the tulip handler :)

Attached is the boot dmesg in case any aesthetic changes are desired.

Ted, please scratch off the NEC Versa LX PCMCIA entries as fixed, I assume this patch will go in on the
next release.

MEGA thank yous,
-d

----
PCI: BIOS32 Service Directory structure at 0xc00fdb70
PCI: BIOS32 Service Directory entry at 0xfdb80
PCI: BIOS probe returned s=00 hw=01 ver=02.10 l=01
PCI: PCI BIOS revision 2.10 entry at 0xfdba1, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: IDE base address fixup for 00:07.1
PCI: Scanning for ghost devices on bus 0
PCI: Scanning for ghost devices on bus 1
PCI: IRQ init
PCI: Interrupt Routing Table found at 0xc00f5a80
00:01 slot=00 0:60/0420 1:00/0000 2:00/0000 3:00/0000
00:03 slot=00 0:60/0420 1:61/0420 2:00/0000 3:00/0000
00:04 slot=00 0:61/0420 1:00/0000 2:00/0000 3:00/0000
00:05 slot=00 0:60/0420 1:00/0000 2:00/0000 3:00/0000
00:07 slot=00 0:fe/4000 1:ff/8000 2:00/0000 3:63/0200
00:11 slot=01 0:60/0420 1:61/0420 2:62/0800 3:61/0420
PCI: Using IRQ router PIIX [8086/7110] at 00:07.0
PCI: IRQ fixup
00:03.0: ignoring bogus IRQ 255
00:03.1: ignoring bogus IRQ 255
IRQ for 00:03.0(0) via 00:03.0 -> PIRQ 60, mask 0420, excl 0000 -> got IRQ 10
PCI: Found IRQ 10 for device 00:03.0
PCI: The same IRQ used for device 01:00.0
IRQ for 00:03.1(1) via 00:03.1 -> PIRQ 61, mask 0420, excl 0000 -> got IRQ 5
PCI: Found IRQ 5 for device 00:03.1
PCI: The same IRQ used for device 00:04.0
PCI: Allocating resources
PCI: Resource e0000000-efffffff (f=1208, d=0, p=0)
PCI: Resource 0000ec00-0000ecff (f=101, d=0, p=0)
PCI: Resource 0000ffa0-0000ffaf (f=101, d=0, p=0)
PCI: Resource 0000ef80-0000ef9f (f=101, d=0, p=0)
PCI: Resource fd000000-fdffffff (f=200, d=0, p=0)
PCI: Resource 0000dc00-0000dcff (f=101, d=0, p=0)
PCI: Resource feaff000-feafffff (f=200, d=0, p=0)
PCI: Sorting device list...
Limiting direct PCI/PCI transfers.

Linux PCMCIA Card Services 3.1.22
  options:  [pci] [cardbus] [pm]
Intel PCIC probe: not found.
Databook TCIC-2 PCMCIA probe: not found.
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
Yenta IRQ list 0898, PCI irq10
Socket status: 30000860
Yenta IRQ list 0898, PCI irq5
Socket status: 30000046

cs: cb_alloc(bus 2): vendor 0x1011, device 0x0019
PCI: Enabling device 02:00.0 (0000 -> 0003)
Linux Tulip driver version 0.9.11 (November 3, 2000)
PCI: Setting latency timer of device 02:00.0 to 64
eth1: Digital DS21143 Tulip rev 65 at 0x1800, 00:E0:98:70:1E:AF, IRQ 10.
eth1:  EEPROM default media type Autosense.
eth1:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block.
eth1:  MII transceiver #0 config 3000 status 7809 advertising 01e1.
call_usermodehelper[/sbin/hotplug]: no root fs



Linus Torvalds wrote:

> On Sat, 18 Nov 2000, David Ford wrote:
> > Linus Torvalds wrote:
> >
> > > Can you (you've probably done this before, but anyway) enable DEBUG in
> > > arch/i386/kernel/pci-i386.h? I wonder if the kernel for some strange
> > > reason doesn't find your router, even though "dump_pirq" obviously does..
> > > If there's something wrong with the checksumming for example..
> >
> > ..building now.
>
> Actually, try this patch first. It adds the PCI_DEVICE_ID_INTEL_82371MX
> router type, and also makes the PCI router search fall back more
> gracefully on the device it actually found if there is not an exact match
> on the "compatible router" entry...
>
> It should make Linux find and accept the chip you have. Knock wood.
>
>                 Linus
>
> --- v2.4.0-test10/linux/arch/i386/kernel/pci-irq.c      Tue Oct 31 12:42:26 2000
> +++ linux/arch/i386/kernel/pci-irq.c    Sat Nov 18 21:11:19 2000
> @@ -283,12 +297,19 @@
>         { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_0, pirq_piix_get, pirq_piix_set },
>         { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, pirq_piix_get, pirq_piix_set },
>         { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0, pirq_piix_get, pirq_piix_set },
> +       { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371MX,   pirq_piix_get, pirq_piix_set },
>         { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_0, pirq_piix_get, pirq_piix_set },
> +
>         { "ALI", PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, pirq_ali_get, pirq_ali_set },
> +
>         { "VIA", PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, pirq_via_get, pirq_via_set },
>         { "VIA", PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C596, pirq_via_get, pirq_via_set },
>         { "VIA", PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, pirq_via_get, pirq_via_set },
> +
>         { "OPTI", PCI_VENDOR_ID_OPTI, PCI_DEVICE_ID_OPTI_82C700, pirq_opti_get, pirq_opti_set },
> +
> +       { "NatSemi", PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5520, pirq_cyrix_get, pirq_cyrix_set },
> +
>         { "default", 0, 0, NULL, NULL }
>  };
>
> @@ -298,7 +319,6 @@
>  static void __init pirq_find_router(void)
>  {
>         struct irq_routing_table *rt = pirq_table;
> -       u16 rvendor, rdevice;
>         struct irq_router *r;
>
>  #ifdef CONFIG_PCI_BIOS
> @@ -308,32 +328,31 @@
>                 return;
>         }
>  #endif
> -       if (!(pirq_router_dev = pci_find_slot(rt->rtr_bus, rt->rtr_devfn))) {
> +       /* fall back to default router if nothing else found */
> +       pirq_router = pirq_routers + sizeof(pirq_routers) / sizeof(pirq_routers[0]) - 1;
> +
> +       pirq_router_dev = pci_find_slot(rt->rtr_bus, rt->rtr_devfn);
> +       if (!pirq_router_dev) {
>                 DBG("PCI: Interrupt router not found at %02x:%02x\n", rt->rtr_bus, rt->rtr_devfn);
> -               /* fall back to default router */
> -               pirq_router = pirq_routers + sizeof(pirq_routers) / sizeof(pirq_routers[0]) - 1;
>                 return;
>         }
> -       if (rt->rtr_vendor) {
> -               rvendor = rt->rtr_vendor;
> -               rdevice = rt->rtr_device;
> -       } else {
> -               /*
> -                * Several BIOSes forget to set the router type. In such cases, we
> -                * use chip vendor/device. This doesn't guarantee us semantics of
> -                * PIRQ values, but was found to work in practice and it's still
> -                * better than not trying.
> -                */
> -               DBG("PCI: Guessed interrupt router ID from %s\n", pirq_router_dev->slot_name);
> -               rvendor = pirq_router_dev->vendor;
> -               rdevice = pirq_router_dev->device;
> -       }
> -       for(r=pirq_routers; r->vendor; r++)
> -               if (r->vendor == rvendor && r->device == rdevice)
> +
> +       for(r=pirq_routers; r->vendor; r++) {
> +               /* Exact match against router table entry? Use it! */
> +               if (r->vendor == rt->rtr_vendor && r->device == rt->rtr_device) {
> +                       pirq_router = r;
>                         break;
> -       pirq_router = r;
> -       printk("PCI: Using IRQ router %s [%04x/%04x] at %s\n", r->name,
> -              rvendor, rdevice, pirq_router_dev->slot_name);
> +               }
> +               /* Match against router device entry? Use it as a fallback */
> +               if (r->vendor == pirq_router_dev->vendor && r->device == pirq_router_dev->device) {
> +                       pirq_router = r;
> +               }
> +       }
> +       printk("PCI: Using IRQ router %s [%04x/%04x] at %s\n",
> +               pirq_router->name,
> +               pirq_router_dev->vendor,
> +               pirq_router_dev->device,
> +               pirq_router_dev->slot_name);
>  }
>
>  static struct irq_info *pirq_get_info(struct pci_dev *dev, int pin)

[-- Attachment #2: Card for David Ford --]
[-- Type: text/x-vcard, Size: 176 bytes --]

begin:vcard 
n:Ford;David
x-mozilla-html:TRUE
adr:;;;;;;
version:2.1
email;internet:david@kalifornia.com
title:Blue Labs Developer
x-mozilla-cpt:;14688
fn:David Ford
end:vcard

  reply	other threads:[~2000-11-19  7:02 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-13 13:08 [PATCH] pcmcia event thread. (fwd) David Woodhouse
2000-11-13 13:48 ` Jeff Garzik
2000-11-16 13:28   ` Alan Cox
2000-11-13 14:37 ` David Woodhouse
2000-11-13 15:04   ` Jeff Garzik
2000-11-13 15:14   ` David Woodhouse
2000-11-13 15:33     ` Jeff Garzik
2000-11-16 13:39       ` Alan Cox
2000-11-16 14:14         ` David Woodhouse
2000-11-16 16:28           ` Tobias Ringstrom
2000-11-18 11:24           ` Pavel Machek
2000-11-13 15:42     ` David Woodhouse
2000-11-13 18:59       ` David Hinds
2000-11-13 21:52         ` David Woodhouse
2000-11-13 21:57           ` David Hinds
2000-11-13 22:30         ` David Woodhouse
2000-11-13 22:47           ` Jeff Garzik
2000-01-01  2:54             ` Pavel Machek
2000-11-16 21:26               ` tytso
2000-11-16 21:42                 ` David Hinds
2000-11-13 23:04             ` David Woodhouse
2000-11-16 16:08             ` Alan Cox
2000-11-16 16:15               ` Jeff Garzik
2000-11-16 16:20                 ` Alan Cox
2000-11-17  0:51               ` Russell King
2000-11-17 10:54                 ` Alan Cox
2000-11-17 16:21                   ` Linus Torvalds
2000-11-17 16:29                     ` Alan Cox
2000-11-17 16:35                       ` Linus Torvalds
2000-11-17 16:39                         ` Alan Cox
2000-11-17 16:34                     ` Russell King
2000-11-17 16:17                 ` Linus Torvalds
2000-11-17 16:34                   ` David Woodhouse
2000-11-17 16:40                     ` Jeff Garzik
2000-11-17 16:47                       ` Linus Torvalds
2000-11-17 16:49                         ` David Woodhouse
2000-11-17 20:01                         ` David Hinds
2000-11-17 16:43                     ` David Woodhouse
2000-11-17 20:30                   ` 2.4's internal PCMCIA works for me (was Re: [PATCH] pcmcia event thread) Barry K. Nathan
2000-11-17 21:07                     ` David Hinds
2000-11-18  9:55                   ` [PATCH] pcmcia event thread. (fwd) David Ford
2000-11-18 16:03                     ` Linus Torvalds
2000-11-18 22:16                       ` David Hinds
2000-11-19  5:32                       ` David Ford
2000-11-19  5:36                         ` Linus Torvalds
2000-11-19  6:30                           ` David Ford [this message]
2000-11-19  7:03                             ` neighbour table? Andrew Park
2000-11-19  6:57                               ` David Ford
2000-11-19  7:45                                 ` Eric W. Biederman
2000-11-19 10:40                                   ` David Ford
2000-11-16 13:40       ` [PATCH] pcmcia event thread. (fwd) Alan Cox
2000-11-15  0:01   ` Russell King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3A17739A.29AFFAC6@linux.com \
    --to=david@linux.com \
    --cc=dhinds@valinux.com \
    --cc=jgarzik@mandrakesoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    --cc=tytso@MIT.EDU \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox