public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: "Dave Airlie" <airlied@linux.ie>,
	"Felix Kühling" <fxkuehl@gmx.de>,
	"DRI Devel" <dri-devel@lists.sourceforge.net>,
	lkml <linux-kernel@vger.kernel.org>,
	"Linus Torvalds" <torvalds@osdl.org>
Subject: Re: radeon-pre-2
Date: Mon, 13 Sep 2004 14:11:41 -0400	[thread overview]
Message-ID: <9e473391040913111158292add@mail.gmail.com> (raw)
In-Reply-To: <1095093816.14586.51.camel@localhost.localdomain>

It wasn't intended to stay in the PCI layer. Something needs to be
done about hotplugging bridges. There aren't callouts from the PCI
layer for that. A hotplugged bridge can be capable of VGA routing and
have VGA devices behind it. I just started off in the PCI layer while
I figured out what hooks were needed. If a VGA capable bridge is
hotplugged, the VGA driver needs to know about it since it has to
create sysfs attributes and directories for it.

Another solution would be to split it. VGA attributes for the bridges
would be handled by the PCI layer. The other stuff by the VGA driver.

The driver has to have a few capabilities:
1) Turn off all VGA devices in this "VGA space". This is needed
because resetting a card is going to turn on it's VGA mode and we
can't have more than one.
2) It can't rely on the kernel structures representing the VGA state
or bridge routing state. For example the reset program is going to
turn a VGA device on without telling the kernel. There are other
things like X that do VGA programming from user space. Instead of
using the structure you need to query the hardware.
3) Activate a new VGA device. The only safe way to do this is to turn
off all devices using function #1 first. User space may have turned a
device on with telling the kernel. Activating a new device need to
tell vgacon about new screen size/mode.

sysfs looks like this:

/class/vga
     vga0
     vga1 --- one for each "VGA space"

/class/vga/vga0/dev - causes hotplug to create /dev/vga0. I used the
major from DRM and started the minors at 512.

/class/vga/vga0/vga - setting this attribute to zero turns off all VGA
devices in this space

/class/vga/vga0/* - links to all of the VGA devices in this "VGA space"

/class/vga/vga0/0000:01:00.0/vga - set this to one to enable a
specific VGA device. As a side effect it will always disable all other
VGA device in this space.

Each PCI bridge device has a vga attribute indicating it's state of
VGA routing. These are readonly. The actual bridge routing state is
set as a function of activating a new VGA device.

The IA64 people want a file/ioctl interface on the /dev/vga0 devices
so that they can issue control calls to the active device in each "VGA
space"

  reply	other threads:[~2004-09-13 18:12 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E3389AF2-0272-11D9-A8D1-000A95F07A7A@fs.ei.tum.de>
     [not found] ` <DA459966-02B9-11D9-A8D1-000A95F07A7A@fs.ei.tum.de>
     [not found]   ` <9e47339104090917353554a586@mail.gmail.com>
     [not found]     ` <Pine.LNX.4.58.0409100209100.32064@skynet>
     [not found]       ` <9e47339104090919015b5b5a4d@mail.gmail.com>
     [not found]         ` <20040910153135.4310c13a.felix@trabant>
     [not found]           ` <9e47339104091008115b821912@mail.gmail.com>
     [not found]             ` <1094829278.17801.18.camel@localhost.localdomain>
     [not found]               ` <9e4733910409100937126dc0e7@mail.gmail.com>
     [not found]                 ` <1094832031.17883.1.camel@localhost.localdomain>
2004-09-10 17:22                   ` radeon-pre-2 Jon Smirl
2004-09-10 17:04                     ` radeon-pre-2 Alan Cox
2004-09-10 18:40                       ` radeon-pre-2 Jon Smirl
2004-09-10 22:19                         ` radeon-pre-2 Dave Airlie
2004-09-10 22:00                           ` radeon-pre-2 Alan Cox
2004-09-10 23:24                             ` radeon-pre-2 Dave Airlie
2004-09-11  7:40                               ` radeon-pre-2 Geert Uytterhoeven
2004-09-11  8:42                               ` radeon-pre-2 Keith Whitwell
2004-09-11 13:59                               ` radeon-pre-2 Alan Cox
2004-09-11  0:47                             ` radeon-pre-2 Vladimir Dergachev
2004-09-11  8:43                               ` radeon-pre-2 Keith Whitwell
2004-09-11 12:23                                 ` radeon-pre-2 Mike Mestnik
2004-09-11 15:39                                 ` radeon-pre-2 Vladimir Dergachev
2004-09-11 14:14                               ` radeon-pre-2 Alan Cox
2004-09-11  0:50                             ` radeon-pre-2 Dave Airlie
2004-09-11  3:30                               ` radeon-pre-2 Michel Dänzer
2004-09-11  5:19                                 ` radeon-pre-2 Dave Airlie
2004-09-11  6:12                                   ` radeon-pre-2 Michel Dänzer
2004-09-11  7:11                                     ` radeon-pre-2 Vladimir Dergachev
2004-09-11 14:36                                       ` radeon-pre-2 Alan Cox
2004-09-11 15:53                                         ` radeon-pre-2 Vladimir Dergachev
2004-09-11 15:14                                           ` radeon-pre-2 Alan Cox
2004-09-11 17:10                                             ` radeon-pre-2 Vladimir Dergachev
2004-09-11 16:20                                               ` radeon-pre-2 Alan Cox
2004-09-11 17:49                                                 ` radeon-pre-2 Vladimir Dergachev
2004-09-11 17:59                                                   ` radeon-pre-2 Jon Smirl
2004-09-11 18:05                                                     ` radeon-pre-2 Vladimir Dergachev
2004-09-11 18:09                                                       ` radeon-pre-2 Jon Smirl
2004-09-12  1:55                                             ` radeon-pre-2 Mike Mestnik
2004-09-11  9:20                                   ` radeon-pre-2 Antonino A. Daplas
2004-09-11 14:40                                     ` radeon-pre-2 Alan Cox
2004-09-11 16:34                                     ` radeon-pre-2 Jon Smirl
2004-09-11 14:33                                   ` radeon-pre-2 Alan Cox
2004-09-11 16:46                                     ` radeon-pre-2 Jon Smirl
2004-09-11 16:21                                       ` radeon-pre-2 Alan Cox
2004-09-11 17:27                                         ` radeon-pre-2 Jon Smirl
2004-09-13 11:40                                           ` radeon-pre-2 Keith Whitwell
2004-09-11 19:10                                         ` radeon-pre-2 Hamie
2004-09-11 23:20                                           ` radeon-pre-2 Alan Cox
2004-09-12  9:13                                             ` radeon-pre-2 Geert Uytterhoeven
2004-09-12 11:36                                             ` radeon-pre-2 Hamie
2004-09-12 17:31                                               ` radeon-pre-2 Alan Cox
2004-09-11 16:23                                       ` radeon-pre-2 Alan Cox
2004-09-11 14:25                               ` radeon-pre-2 Alan Cox
2004-09-12 22:42                                 ` radeon-pre-2 Dave Airlie
2004-09-12 23:03                                   ` radeon-pre-2 Linus Torvalds
2004-09-13  0:27                                   ` radeon-pre-2 Michel Dänzer
2004-09-13  0:45                                     ` radeon-pre-2 Vladimir Dergachev
2004-09-13  0:52                                       ` radeon-pre-2 Michel Dänzer
2004-09-13 14:52                                         ` radeon-pre-2 Vladimir Dergachev
2004-09-13 13:57                                           ` radeon-pre-2 Alan Cox
2004-09-13 15:20                                             ` radeon-pre-2 Vladimir Dergachev
2004-09-13 15:07                                               ` radeon-pre-2 Alan Cox
2004-09-13 15:20                                           ` radeon-pre-2 Linus Torvalds
2004-09-13 19:21                                             ` radeon-pre-2 Alex Deucher
2004-09-13 20:42                                               ` radeon-pre-2 David Bronaugh
2004-09-13 21:57                                                 ` radeon-pre-2 Alex Deucher
2004-09-13 16:26                                           ` radeon-pre-2 Michel Dänzer
2004-09-13  6:05                                       ` radeon-pre-2 Alex Deucher
2004-09-13 16:29                                         ` radeon-pre-2 Michel Dänzer
2004-09-13  6:41                                   ` radeon-pre-2 Arjan van de Ven
2004-09-13 11:26                                   ` radeon-pre-2 Alan Cox
2004-09-13 15:06                                     ` radeon-pre-2 Jon Smirl
2004-09-13 15:04                                       ` radeon-pre-2 Alan Cox
2004-09-13 16:28                                         ` radeon-pre-2 Jon Smirl
2004-09-13 16:43                                           ` radeon-pre-2 Alan Cox
2004-09-13 18:11                                             ` Jon Smirl [this message]
2004-09-13 18:49                                               ` radeon-pre-2 Jesse Barnes
2004-09-13 22:17                                           ` radeon-pre-2 Antonino A. Daplas
2004-09-13 17:50                                         ` radeon-pre-2 Jon Smirl
2004-09-14 10:27                                           ` radeon-pre-2 Alan Cox
2004-09-11  8:38                             ` radeon-pre-2 Keith Whitwell
2004-09-10 23:10                           ` radeon-pre-2 Jon Smirl
2004-09-10 22:17                             ` radeon-pre-2 Alan Cox
2004-09-11 12:27                           ` radeon-pre-2 Christoph Hellwig
2004-09-11 12:49                             ` radeon-pre-2 Mike Mestnik
2004-09-11 16:45                               ` radeon-pre-2 Christoph Hellwig
2004-09-11 16:11                             ` radeon-pre-2 Jon Smirl
2004-09-11 16:45                               ` radeon-pre-2 Christoph Hellwig
2004-09-11 17:02                               ` radeon-pre-2 Linus Torvalds
2004-09-11 16:18                                 ` radeon-pre-2 Alan Cox
2004-09-11 17:49                                   ` radeon-pre-2 Linus Torvalds
2004-09-11 17:13                                 ` radeon-pre-2 Jon Smirl
2004-09-11 16:23                                   ` radeon-pre-2 Alan Cox
2004-09-11 17:41                                   ` radeon-pre-2 Linus Torvalds
2004-09-11 17:57                                   ` radeon-pre-2 Michel Dänzer
2004-09-11 20:29                                   ` radeon-pre-2 Eric Anholt
2004-09-11 21:41                                     ` radeon-pre-2 Jon Smirl
2004-09-11 17:54                                 ` radeon-pre-2 Jon Smirl
2004-09-11 18:13                                   ` radeon-pre-2 Linus Torvalds
2004-09-11 21:02                                     ` radeon-pre-2 Jon Smirl
2004-09-11 21:06                                       ` radeon-pre-2 Christoph Hellwig
2004-09-11 21:37                                         ` radeon-pre-2 Jon Smirl
2004-09-11 23:23                                           ` radeon-pre-2 Alan Cox
2004-09-12  7:12                                           ` radeon-pre-2 Eric Anholt
2004-09-12  0:21                                     ` radeon-pre-2 Jon Smirl
2004-09-12  0:28                                       ` radeon-pre-2 Linus Torvalds
2004-09-12 23:53                                         ` radeon-pre-2 Dave Airlie
2004-09-11 18:17                                   ` radeon-pre-2 Vladimir Dergachev
2004-09-10 17:12                     ` radeon-pre-2 Alan Cox
     [not found]           ` <1094853894.18235.17.camel@localhost.localdomain>
2004-09-11  2:20             ` radeon-pre-2 Jon Smirl

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=9e473391040913111158292add@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=airlied@linux.ie \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dri-devel@lists.sourceforge.net \
    --cc=fxkuehl@gmx.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox