Re: [2.6.11 Permedia-2 Framebuffer] driver broken (?).

From: Jim Hague
Date: Mon Mar 07 2005 - 18:00:25 EST


Hi Guennadi,

> Thanks for the patch. Yes, it does fix switching between X and VT.

OK, good.

> As for colours / graphics, disabling CONFIG_FB_PM2_FIFO_DISCONNECT fixes
> that too, but it worked under 2.6.10-rc2 with that option on too. What does
> it do and why I cannot use it under 2.6.11 any more? The help text to this
> option is not very enlightening...

(To be honest, I've never looked closely at this but inherited it from Illo's
2.4 driver. Cue scrabbling around in manuals...)

pm2fb programs the Permedia registers by writing to a FIFO. Normally if you
attempt to write to the FIFO and the FIFO is full, the write is lost. So pm2fb
checks before writing that there is sufficient space in the FIFO to hold the
full command sequence, and if not it loops waiting for the FIFO to empty
sufficiently.

Enabling FIFO_DISCONNECT enables PCI Disconnect. In this mode, if a write to
the FIFO occurs when the FIFO is full, the Permedia chip enables PCI Disconnect
which causes the processor to keep retrying the write cycle until the FIFO
empties and the write succeeds.

On the one hand this allows faster download to the Permedia because you don't
have to check the FIFO space, but at a cost of hogging the PCI bus (and possibly
causing interrupt loss) until the Permedia is ready. The programmers manual
cautions that it should only be used when you know that the Permedia can
consume data faster than the host can generate it and/or where there are no
time-critical periperals on the PCI bus.

All of which sounds to me like enabling PCI Disconnect isn't a great idea and
offers at best infinitesimal speedups. Having said that, the X driver does seem
to turn it on, which probably shows how much I know. As to why it's suddenly
stopped working, I have no idea. I'll try it out and see if I see the same
problems.

--
Jim Hague - jim.hague@xxxxxxx Never trust a computer you can't lift.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/