diff options
author | Jag Raman | 2017-08-15 23:03:00 +0200 |
---|---|---|
committer | David S. Miller | 2017-08-16 06:33:51 +0200 |
commit | 5d171050e28f823aeb040f2830da4d3422b54b63 (patch) | |
tree | 0a33555a897bb343261d0b066079e7f7d479ef1e /arch/sparc/kernel/viohs.c | |
parent | sparc64: vcc: TTY driver initialization and cleanup (diff) | |
download | kernel-qcow2-linux-5d171050e28f823aeb040f2830da4d3422b54b63.tar.gz kernel-qcow2-linux-5d171050e28f823aeb040f2830da4d3422b54b63.tar.xz kernel-qcow2-linux-5d171050e28f823aeb040f2830da4d3422b54b63.zip |
sparc64: vcc: Enable VCC port probe and removal
Enables VCC port probe and removal to initialize and terminate
VCC ports respectively. When a device/port matching the VCC driver
is added, the probe function is invoked along with a reference
to the device. remove function is called when the device is
removed.
Also add APIs to cache and retrieve VCC ports from a VCC table
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/viohs.c')
-rw-r--r-- | arch/sparc/kernel/viohs.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/sparc/kernel/viohs.c b/arch/sparc/kernel/viohs.c index d4f13c037a40..dcd278f29573 100644 --- a/arch/sparc/kernel/viohs.c +++ b/arch/sparc/kernel/viohs.c @@ -814,15 +814,21 @@ int vio_driver_init(struct vio_driver_state *vio, struct vio_dev *vdev, case VDEV_NETWORK_SWITCH: case VDEV_DISK: case VDEV_DISK_SERVER: + case VDEV_CONSOLE_CON: break; default: return -EINVAL; } - if (!ops || !ops->send_attr || !ops->handle_attr || - !ops->handshake_complete) - return -EINVAL; + if (dev_class == VDEV_NETWORK || + dev_class == VDEV_NETWORK_SWITCH || + dev_class == VDEV_DISK || + dev_class == VDEV_DISK_SERVER) { + if (!ops || !ops->send_attr || !ops->handle_attr || + !ops->handshake_complete) + return -EINVAL; + } if (!ver_table || ver_table_size < 0) return -EINVAL; |