diff options
author | Jiri Slaby <jslaby@suse.cz> | 2012-08-07 15:47:47 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-13 19:50:19 -0400 |
commit | 734cc1783816ae358cef45673a29bf7af974e147 (patch) | |
tree | 146fde2a1add56ff7a35915d0fd1db7e01ce6630 /drivers/net | |
parent | 7e73eca6a7b2967423902a4543821bb97cbbe698 (diff) |
TTY: use tty_port_register_device
Currently we have no way to assign tty->port while performing tty
installation. There are two ways to provide the link tty_struct =>
tty_port. Either by calling tty_port_install from tty->ops->install or
tty_port_register_device called instead of tty_register_device when
the device is being set up after connected.
In this patch we modify most of the drivers to do the latter. When the
drivers use tty_register_device and we have tty_port already, we
switch to tty_port_register_device. So we have the tty_struct =>
tty_port link for free for those.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/usb/hso.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 7736af75e12b..605a4baa9b7b 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c | |||
@@ -2287,9 +2287,11 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs, | |||
2287 | if (minor < 0) | 2287 | if (minor < 0) |
2288 | goto exit; | 2288 | goto exit; |
2289 | 2289 | ||
2290 | tty_port_init(&serial->port); | ||
2291 | |||
2290 | /* register our minor number */ | 2292 | /* register our minor number */ |
2291 | serial->parent->dev = tty_register_device(tty_drv, minor, | 2293 | serial->parent->dev = tty_port_register_device(&serial->port, tty_drv, |
2292 | &serial->parent->interface->dev); | 2294 | minor, &serial->parent->interface->dev); |
2293 | dev = serial->parent->dev; | 2295 | dev = serial->parent->dev; |
2294 | dev_set_drvdata(dev, serial->parent); | 2296 | dev_set_drvdata(dev, serial->parent); |
2295 | i = device_create_file(dev, &dev_attr_hsotype); | 2297 | i = device_create_file(dev, &dev_attr_hsotype); |
@@ -2298,7 +2300,6 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs, | |||
2298 | serial->minor = minor; | 2300 | serial->minor = minor; |
2299 | serial->magic = HSO_SERIAL_MAGIC; | 2301 | serial->magic = HSO_SERIAL_MAGIC; |
2300 | spin_lock_init(&serial->serial_lock); | 2302 | spin_lock_init(&serial->serial_lock); |
2301 | tty_port_init(&serial->port); | ||
2302 | serial->num_rx_urbs = num_urbs; | 2303 | serial->num_rx_urbs = num_urbs; |
2303 | 2304 | ||
2304 | /* RX, allocate urb and initialize */ | 2305 | /* RX, allocate urb and initialize */ |