aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/virtio_console.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 17:49:12 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 17:49:12 -0500
commit3c834b6f41fa21a48389b13c3bf63aa8df1d7080 (patch)
tree126447276497510f44277e8442715e103e2cb85a /drivers/char/virtio_console.c
parent515d01f7726b9ba4838787d247115e1b259e1cc7 (diff)
parent8078db789a92b10ff6e2d713231b5367e014c53b (diff)
Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull virtio updates from Rusty Russell: "All trivial, thanks to the stuff which didn't quite make it time" * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: virtio_console: Initialize guest_connected=true for rproc_serial virtio: use module_virtio_driver. virtio: Add module driver macro for virtio drivers. virtio_console: Use virtio device index to generate port name virtio: make pci_device_id const virtio: make config_ops const virtio-mmio: fix wrong comment about register offset virtio_console: Let unconnected rproc device receive data.
Diffstat (limited to 'drivers/char/virtio_console.c')
-rw-r--r--drivers/char/virtio_console.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index ee4dbeafb377..e905d5f53051 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -61,9 +61,6 @@ struct ports_driver_data {
61 /* List of all the devices we're handling */ 61 /* List of all the devices we're handling */
62 struct list_head portdevs; 62 struct list_head portdevs;
63 63
64 /* Number of devices this driver is handling */
65 unsigned int index;
66
67 /* 64 /*
68 * This is used to keep track of the number of hvc consoles 65 * This is used to keep track of the number of hvc consoles
69 * spawned by this driver. This number is given as the first 66 * spawned by this driver. This number is given as the first
@@ -169,9 +166,6 @@ struct ports_device {
169 /* Array of per-port IO virtqueues */ 166 /* Array of per-port IO virtqueues */
170 struct virtqueue **in_vqs, **out_vqs; 167 struct virtqueue **in_vqs, **out_vqs;
171 168
172 /* Used for numbering devices for sysfs and debugfs */
173 unsigned int drv_index;
174
175 /* Major number for this device. Ports will be created as minors. */ 169 /* Major number for this device. Ports will be created as minors. */
176 int chr_major; 170 int chr_major;
177}; 171};
@@ -1415,7 +1409,7 @@ static int add_port(struct ports_device *portdev, u32 id)
1415 } 1409 }
1416 port->dev = device_create(pdrvdata.class, &port->portdev->vdev->dev, 1410 port->dev = device_create(pdrvdata.class, &port->portdev->vdev->dev,
1417 devt, port, "vport%up%u", 1411 devt, port, "vport%up%u",
1418 port->portdev->drv_index, id); 1412 port->portdev->vdev->index, id);
1419 if (IS_ERR(port->dev)) { 1413 if (IS_ERR(port->dev)) {
1420 err = PTR_ERR(port->dev); 1414 err = PTR_ERR(port->dev);
1421 dev_err(&port->portdev->vdev->dev, 1415 dev_err(&port->portdev->vdev->dev,
@@ -1442,7 +1436,7 @@ static int add_port(struct ports_device *portdev, u32 id)
1442 * rproc_serial does not want the console port, only 1436 * rproc_serial does not want the console port, only
1443 * the generic port implementation. 1437 * the generic port implementation.
1444 */ 1438 */
1445 port->host_connected = true; 1439 port->host_connected = port->guest_connected = true;
1446 else if (!use_multiport(port->portdev)) { 1440 else if (!use_multiport(port->portdev)) {
1447 /* 1441 /*
1448 * If we're not using multiport support, 1442 * If we're not using multiport support,
@@ -1470,7 +1464,7 @@ static int add_port(struct ports_device *portdev, u32 id)
1470 * inspect a port's state at any time 1464 * inspect a port's state at any time
1471 */ 1465 */
1472 sprintf(debugfs_name, "vport%up%u", 1466 sprintf(debugfs_name, "vport%up%u",
1473 port->portdev->drv_index, id); 1467 port->portdev->vdev->index, id);
1474 port->debugfs_file = debugfs_create_file(debugfs_name, 0444, 1468 port->debugfs_file = debugfs_create_file(debugfs_name, 0444,
1475 pdrvdata.debugfs_dir, 1469 pdrvdata.debugfs_dir,
1476 port, 1470 port,
@@ -1958,16 +1952,12 @@ static int virtcons_probe(struct virtio_device *vdev)
1958 portdev->vdev = vdev; 1952 portdev->vdev = vdev;
1959 vdev->priv = portdev; 1953 vdev->priv = portdev;
1960 1954
1961 spin_lock_irq(&pdrvdata_lock);
1962 portdev->drv_index = pdrvdata.index++;
1963 spin_unlock_irq(&pdrvdata_lock);
1964
1965 portdev->chr_major = register_chrdev(0, "virtio-portsdev", 1955 portdev->chr_major = register_chrdev(0, "virtio-portsdev",
1966 &portdev_fops); 1956 &portdev_fops);
1967 if (portdev->chr_major < 0) { 1957 if (portdev->chr_major < 0) {
1968 dev_err(&vdev->dev, 1958 dev_err(&vdev->dev,
1969 "Error %d registering chrdev for device %u\n", 1959 "Error %d registering chrdev for device %u\n",
1970 portdev->chr_major, portdev->drv_index); 1960 portdev->chr_major, vdev->index);
1971 err = portdev->chr_major; 1961 err = portdev->chr_major;
1972 goto free; 1962 goto free;
1973 } 1963 }