Messages in this thread | ![/](/images/icornerl.gif) | | Date | Thu, 07 Aug 2003 14:02:22 +0100 | From | Tim Small <> | Subject | Re: TI yenta-alikes |
| |
Alan Cox wrote:
>On Iau, 2003-08-07 at 10:02, Russell King wrote: > > >>doing is *wrong*. The only people who know whether the pin has been >>wired for INTA or IRQ3 are the _designers_ of the hardware, not the >>Linux kernel. >> >> > >That assumes the yenta controller isnt hotplugged. > > Some (all?) PCI add-in cards leave this up to the OS/driver as well. The card I have has no firmware on board, and from a quick look at the PCI1031 datasheet, I can't see any easy way of adding one. The default power-on state (at least for the PCI1031) is to disable all interrupts.
>>Currently, the Linux kernel assumes a "greater than designers" approach >>to fiddling with the registers which control the function of these pins, >>and so far I've seen: >> >>- changing the mode from serial PCI interrupts to parallel PCI interrupts >> causes the machine to lock hard (since some cardbus controllers use the >> same physical pins for both functions.) >> >> > >Basically we got burned by changing the IRQMUX register rather than just >using it as an information source. > > I think it should be possible to use the IRQMUX, and other registers to work out whether the bridge has been setup or not.. e.g.
"device control register bits2,1: R/W, Interrupt mode. Bits 2 1 select the interrupt mode used by the PCI1031. Bits 2 1 are encoded as: 00 = No interrupts enabled (default) 01 = ISA 10 = Serialized IRQ type interrupt scheme 11 = Reserved"
If these bits are non-zero, I suppose we should probably leave the IRQ routing registers alone, as it would seem to be a good indicator that the BIOS has programmed these for us. This is just on the 1031, however, I haven't checked any of the other datasheets...
Tim.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |