aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/vio.c
Commit message (Collapse)AuthorAge
* [SPARC64]: Improve VIO device naming further.David S. Miller2007-07-20
| | | | | | | | | | The best scheme to get uniqueness seems to be: FOO -- If node lacks "id" property FOO-$(ID) -- If node has "id" but parent lacks "cfg-handle" FOO-$(ID)-$(CFG_HANDLE) -- If node has both Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix log message type in vio_create_one().Fabio Massimo Di Nitto2007-07-20
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix handling of multiple vdc-port nodes.David S. Miller2007-07-20
| | | | | | | | The "id" property in vdc-port nodes are not unique, they are all zero. Therefore assign ID's using the parent's "cfg-handle" property which will be unique. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix device type matching in VIO's devspec_show().Fabio Massimo Di Nitto2007-07-20
| | | | | | | with the recent renames, we forgot to update the matches for devspec. This is required to keep udev working and autoload modules. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Massively simplify VIO device layer and support hot add/remove.David S. Miller2007-07-18
| | | | | | | | Create and destroy VIO devices in response to MD update events. These run synchronously inside of the MD update mutex so the VIO layer doesn't need to do internal locking of any sort. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Add basic infrastructure for MD add/remove notification.David S. Miller2007-07-18
| | | | | | | | And add dummy handlers for the VIO device layer. These will be filled in with real code after the vdc, vnet, and ds drivers are reworked to have simpler dependencies on the VIO device tree. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Unconditionally register vio_bus_type.David S. Miller2007-07-16
| | | | | | | | The VIO drivers register themselves unconditionally just like those of any other bus type, so to avoid crashes on non-VIO systems we need to always register vio_bus_type. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix MD property lifetime bugs.David S. Miller2007-07-16
| | | | | | | | | | Property values cannot be referenced outside of mdesc_grab()/mdesc_release() pairs. The only major offender was the VIO bus layer, easily fixed. Add some commentary to mdesc.h describing these rules. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Abstract out mdesc accesses for better MD update handling.David S. Miller2007-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we have to be able to handle MD updates, having an in-tree set of data structures representing the MD objects actually makes things more painful. The MD itself is easy to parse, and we can implement the existing interfaces using direct parsing of the MD binary image. The MD is now reference counted, so accesses have to now take the form: handle = mdesc_grab(); ... operations on MD ... mdesc_release(handle); The only remaining issue are cases where code holds on to references to MD property values. mdesc_get_property() returns a direct pointer to the property value, most cases just pull in the information they need and discard the pointer, but there are few that use the pointer directly over a long lifetime. Those will be fixed up in a subsequent changeset. A preliminary handler for MD update events from domain services is there, it is rudimentry but it works and handles all of the reference counting. It does not check the generation number of the MDs, and it does not generate a "add/delete" list for notification to interesting parties about MD changes but that will be forthcoming. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Add domain-services nodes to VIO device tree.David S. Miller2007-07-16
| | | | | | | They sit under the root of the MD tree unlike the rest of the LDC channel based virtual devices. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Add LDOM virtual channel driver and VIO device layer.David S. Miller2007-07-16
Virtual devices on Sun Logical Domains are built on top of a virtual channel framework. This, with help of hypervisor interfaces, provides a link layer protocol with basic handshaking over which virtual device clients and servers communicate. Built on top of this is a VIO device protocol which has it's own handshaking and message types. At this layer attributes are exchanged (disk size, network device addresses, etc.) descriptor rings are registered, and data transfers are triggers and replied to. Signed-off-by: David S. Miller <davem@davemloft.net>