From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Egbert Eich <eich@xfree86.org>, Jon Smirl <jonsmirl@yahoo.com>,
Eric Anholt <eta@lclark.edu>, Kronos <kronos@kronoz.cjb.net>,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Fbdev development list
<linux-fbdev-devel@lists.sourceforge.net>,
dri-devel <dri-devel@lists.sourceforge.net>,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [Dri-devel] Re: DRM and pci_driver conversion
Date: Sun, 26 Oct 2003 00:07:08 +0200 [thread overview]
Message-ID: <1067119628.3570.23.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.44.0310251116140.4083-100000@home.osdl.org>
> Face it, a good graphics driver needs more than just "set up the ROM". It
> needs DMA access, and the ability to use interrupts. It needs a real
> driver.
>
> It basically needs something like what the DRI modules tend to do.
>
> I'd be really happy to have real graphics drivers in the kernel, but quite
> frankly, so far the abstractions I've seen have sucked dead donkeys
> through a straw. "fbcon" does way too much (it's not a driver, it's more a
> text delivery system and a mode switcher). And DRI is too complex and
> fluid to be a good low-level driver.
Well... While I tend to agree, note that in 2.6 fbcon and the fbdev
itself _do_ have been separated. The fbdevs are moving toward that
low level driver thing.
> Quite frankly, I'd much rather see a low-level graphics driver that does
> _two_ things, and those things only:
>
> - basic hardware enumeration and setup (and no, "basic setup" does not
> mean "mode switching": it literally means things like doing the
> pci_enable_device() stuff.
>
> - serialization and arbitrary command queuing from a _trusted_ party (ie
> it could take command lists from the X server, but not from untrusted
> clients). This part basically boils down to "DMA and interrupts". This
> is the part that allows others to wait for command completion, "enough
> space in the ring buffers" etc. But it does _not_ know or care what the
> commands are.
IMHO, that low level driver should be ... the fbdev. The main reason for
that is the necessary locking & synchronisation between the command flow
and mode switching, palette control and cursor control (which aren't
things doable via the normal command path on moth cases).
> Then, fbcon and DRI and X could all three use these basics - and they'd be
> _so_ basic that the hardware layer could be really stable (unlike the DRI
> code that tends to have to upgrade for each new type of command that DRI
> adds - since it has to take care of untrusted clients. So DRI would
> basically use the low-level driver as a separate module, the way it
> already uses AGP).
I agree that fbcon itself should (and is now in 2.6) be a separate
module. The interface is still scary, the locking is almost absent,
which is a real problem even with current mode switching beeing racy
with printk & blanking, but at least we have something that works and
can evolve in the right direction.
Look how the fbdev interface was simplified in the 2.4 -> 2.6
transition, it's really a lot saner now, and I hope it will continue
to improve.
> But I'm _not_ interested in some interfaces to let user mode just bypass
> the kernel. Because they will not solve any of the other problems that
> clearly _do_ need solving, and if the X server continues to believe that
> it can just access the hardware directly, it will never play well together
> with projects like fbcon/dri.
Fully agreed. My point is that this low-level driver and the fbdev should
be one thing.
Ben.
-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community? Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Egbert Eich <eich@xfree86.org>, Jon Smirl <jonsmirl@yahoo.com>,
Eric Anholt <eta@lclark.edu>, Kronos <kronos@kronoz.cjb.net>,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Fbdev development list
<linux-fbdev-devel@lists.sourceforge.net>,
dri-devel <dri-devel@lists.sourceforge.net>,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [Dri-devel] Re: [Linux-fbdev-devel] DRM and pci_driver conversion
Date: Sun, 26 Oct 2003 00:07:08 +0200 [thread overview]
Message-ID: <1067119628.3570.23.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.44.0310251116140.4083-100000@home.osdl.org>
> Face it, a good graphics driver needs more than just "set up the ROM". It
> needs DMA access, and the ability to use interrupts. It needs a real
> driver.
>
> It basically needs something like what the DRI modules tend to do.
>
> I'd be really happy to have real graphics drivers in the kernel, but quite
> frankly, so far the abstractions I've seen have sucked dead donkeys
> through a straw. "fbcon" does way too much (it's not a driver, it's more a
> text delivery system and a mode switcher). And DRI is too complex and
> fluid to be a good low-level driver.
Well... While I tend to agree, note that in 2.6 fbcon and the fbdev
itself _do_ have been separated. The fbdevs are moving toward that
low level driver thing.
> Quite frankly, I'd much rather see a low-level graphics driver that does
> _two_ things, and those things only:
>
> - basic hardware enumeration and setup (and no, "basic setup" does not
> mean "mode switching": it literally means things like doing the
> pci_enable_device() stuff.
>
> - serialization and arbitrary command queuing from a _trusted_ party (ie
> it could take command lists from the X server, but not from untrusted
> clients). This part basically boils down to "DMA and interrupts". This
> is the part that allows others to wait for command completion, "enough
> space in the ring buffers" etc. But it does _not_ know or care what the
> commands are.
IMHO, that low level driver should be ... the fbdev. The main reason for
that is the necessary locking & synchronisation between the command flow
and mode switching, palette control and cursor control (which aren't
things doable via the normal command path on moth cases).
> Then, fbcon and DRI and X could all three use these basics - and they'd be
> _so_ basic that the hardware layer could be really stable (unlike the DRI
> code that tends to have to upgrade for each new type of command that DRI
> adds - since it has to take care of untrusted clients. So DRI would
> basically use the low-level driver as a separate module, the way it
> already uses AGP).
I agree that fbcon itself should (and is now in 2.6) be a separate
module. The interface is still scary, the locking is almost absent,
which is a real problem even with current mode switching beeing racy
with printk & blanking, but at least we have something that works and
can evolve in the right direction.
Look how the fbdev interface was simplified in the 2.4 -> 2.6
transition, it's really a lot saner now, and I hope it will continue
to improve.
> But I'm _not_ interested in some interfaces to let user mode just bypass
> the kernel. Because they will not solve any of the other problems that
> clearly _do_ need solving, and if the X server continues to believe that
> it can just access the hardware directly, it will never play well together
> with projects like fbcon/dri.
Fully agreed. My point is that this low-level driver and the fbdev should
be one thing.
Ben.
next prev parent reply other threads:[~2003-10-25 22:07 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-21 2:31 DRM and pci_driver conversion Eric Anholt
2003-10-23 19:04 ` Kronos
2003-10-23 19:04 ` [Linux-fbdev-devel] " Kronos
2003-10-23 21:10 ` Eric Anholt
2003-10-23 21:31 ` Jon Smirl
2003-10-23 23:23 ` [Dri-devel] " Linus Torvalds
2003-10-23 23:23 ` Linus Torvalds
2003-10-23 23:46 ` Eric Anholt
2003-10-24 1:19 ` [Dri-devel] " Jeff Garzik
2003-10-24 1:19 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-24 1:52 ` Jon Smirl
2003-10-24 3:47 ` Multiple drivers for same hardware:, was: " Jon Smirl
2003-10-24 3:47 ` Jon Smirl
2003-10-24 4:40 ` Linus Torvalds
2003-10-24 4:40 ` Linus Torvalds
2003-10-28 18:00 ` James Simmons
2003-10-24 16:44 ` [Dri-devel] " Linus Torvalds
2003-10-24 16:44 ` [Dri-devel] Re: [Linux-fbdev-devel] " Linus Torvalds
2003-10-24 16:57 ` Petr Vandrovec
2003-10-24 17:59 ` Linus Torvalds
2003-10-24 17:59 ` Linus Torvalds
2003-10-24 18:34 ` Jon Smirl
2003-10-24 19:45 ` [Dri-devel] " Ivan Kokshaysky
2003-10-24 19:45 ` [Dri-devel] Re: [Linux-fbdev-devel] " Ivan Kokshaysky
2003-10-24 19:08 ` [Dri-devel] " Ivan Kokshaysky
2003-10-24 19:08 ` [Dri-devel] Re: [Linux-fbdev-devel] " Ivan Kokshaysky
2003-10-24 17:06 ` [Dri-devel] " Jeff Garzik
2003-10-24 17:06 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-24 1:50 ` [Dri-devel] " Jon Smirl
2003-10-24 1:50 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jon Smirl
2003-10-25 17:29 ` [Dri-devel] " Egbert Eich
2003-10-25 17:29 ` [Dri-devel] Re: [Linux-fbdev-devel] " Egbert Eich
2003-10-25 18:37 ` Linus Torvalds
2003-10-25 18:37 ` Linus Torvalds
2003-10-25 19:17 ` [Dri-devel] " Jeff Garzik
2003-10-25 19:17 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-27 14:37 ` Ingo Oeser
2003-10-27 15:43 ` [Dri-devel] " Jeff Garzik
2003-10-27 15:43 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-28 10:53 ` Ingo Oeser
2003-10-27 14:37 ` [Dri-devel] " Ingo Oeser
2003-10-27 15:14 ` Keith Whitwell
2003-10-27 15:14 ` [Dri-devel] Re: [Linux-fbdev-devel] " Keith Whitwell
2003-10-27 15:38 ` Jeff Garzik
2003-10-27 15:50 ` Keith Whitwell
2003-10-27 15:50 ` [Dri-devel] " Keith Whitwell
2003-10-27 15:38 ` Jeff Garzik
2003-10-25 21:02 ` Jon Smirl
2003-10-25 21:02 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jon Smirl
2003-10-25 22:07 ` Benjamin Herrenschmidt [this message]
2003-10-25 22:07 ` Benjamin Herrenschmidt
2003-10-27 14:01 ` jlnance
2003-10-27 15:10 ` [Dri-devel] " Eric W. Biederman
2003-10-27 15:10 ` [Dri-devel] Re: [Linux-fbdev-devel] " Eric W. Biederman
2003-10-27 15:10 ` [Dri-devel] " Keith Whitwell
2003-10-27 15:10 ` [Dri-devel] Re: [Linux-fbdev-devel] " Keith Whitwell
[not found] ` <20031027114006.A66611@xfree86.org>
2003-10-27 19:38 ` [Dri-devel] " Ian Romanick
2003-10-27 21:32 ` Linus Torvalds
2003-10-27 23:55 ` Benjamin Herrenschmidt
2003-10-28 2:13 ` Linus Torvalds
2003-10-28 3:27 ` Philip Brown
2003-10-28 19:40 ` James Simmons
2003-10-28 21:35 ` Benjamin Herrenschmidt
2003-10-28 22:09 ` Jon Smirl
2003-10-28 22:26 ` Benjamin Herrenschmidt
2003-10-28 22:54 ` Linus Torvalds
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=1067119628.3570.23.camel@gaston \
--to=benh@kernel.crashing.org \
--cc=dri-devel@lists.sourceforge.net \
--cc=eich@xfree86.org \
--cc=eta@lclark.edu \
--cc=jgarzik@pobox.com \
--cc=jonsmirl@yahoo.com \
--cc=kronos@kronoz.cjb.net \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.