public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Summary of PnP BIOS problems
@ 2001-09-21 21:31 Thomas Hood
  0 siblings, 0 replies; only message in thread
From: Thomas Hood @ 2001-09-21 21:31 UTC (permalink / raw)
  To: linux-kernel

I have been looking into the cause of my PnP BIOS woes recently
and FYI here is what I've found out.

1) setpnp contains a bug such that arguments of 0 given to the
   irq or dma command cause setpnp to disable the irq or dma.
   setpnp ought to (try to) set the irq or dma to zero.  The
   way to disable an irq or dma is to do this:
      setpnp -- 0b irq -1
   (The '--' is required so that the '-1' isn't mistaken for an
    option.)
   A patch has been submitted to the pcmcia-cs bug tracking
   system.

2) parport_pc.c contains a bit of mysterious code that rejects
   the assignment of DMA0.  parport_pc treats this as if it
   meant "disabled".  This was discussed in another thread.
   I suspect that the rejection of DMA0 is unnecessary, but
   I may well be wrong.  The current code should at least be 
   commented ... by someone who knows for sure why the code
   is there.

3) pnp_bios.c contained a bug (fixed in -ac13) such that the
   driver would report disabled irqs as IRQ0.  (It ought to
   report a disabled irq as irq -1.)

4) pnp_bios.c swaps the "boot" and "current" configurations.
   The result is that on my ThinkPad "setpnp -b 0b irq 7" changes
   the current configuration while "setpnp 0b irq 7" changes
   the boot configuration.  Also, "setpnp on" copies the current
   to the boot config instead of vice versa.  There may be 
   other strange side-effects of this.  I have just submitted
   a patch to fix this.

5) The pnpbios driver queries the BIOS for all PnP devices at
   init time, then it acts as if the configurations of these
   devices never change, whereas setpnp does change the
   configurations.  Code is needed that will fix this, but 
   only for machines whose BIOSes won't crash the machine if
   they are called later than init time.  Once the preceding
   issues have been addressed (in a couple of weeks) I'll try
   to implement this fix ... unless someone more competent than
   myself wants to volunteer.  :)

6) There remains a problem that I haven't yet figured out:
   On my ThinkPad 600, running the recent -ac kernels (at
   least since 2.4.7) does something to the PnP BIOS such
   that on a subsequent reboot, the current configuration
   of all configurable devices is set to "disable".  I am
   currently working around this problem by running setpnp
   during my boot sequence (which is why I have been so 
   interested in the pnpbios driver of late).  The bug
   should be fixed properly, but I have no idea where the
   bug might be.  Anyone have any ideas?

7) While I'm at it I might as well ask a question that I asked
   before: Would it be possible to connect the isa-pnp driver
   to the pnpbios driver in such a way that device drivers
   would not have to query both in order to determine the
   hardware config.  What I have in mind is that the isa-pnp
   driver would call pnpbios if PnP setup was done by the
   BIOS; otherwise it would go ahead and do the PnP configuration
   itself, as usual.  If this could be implemented then it
   would save us having to make all the device drivers pnpbios-
   aware.

Thomas Hood

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-09-21 21:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-09-21 21:31 Summary of PnP BIOS problems Thomas Hood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox