Messages in this thread Patch in this message | | | From | Dmitry Eremin-Solenikov <> | Subject | [PATCH 2/2] serport: place serport serio device correctly in the device tree | Date | Sat, 7 Aug 2010 13:55:39 +0400 |
| |
Make serport serio device to be a child of corresponding tty device instead of just hanging at /sys/devices/serioX.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> --- drivers/input/serio/serport.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c index 6d34511..d3d832a 100644 --- a/drivers/input/serio/serport.c +++ b/drivers/input/serio/serport.c @@ -148,6 +148,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u { struct serport *serport = (struct serport*) tty->disc_data; struct serio *serio; + struct device *parent; char name[64]; if (test_and_set_bit(SERPORT_BUSY, &serport->flags)) @@ -157,6 +158,8 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u if (!serio) return -ENOMEM; + parent = tty_get_device(tty); + strlcpy(serio->name, "Serial port", sizeof(serio->name)); snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty, name)); serio->id = serport->id; @@ -165,6 +168,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u serio->open = serport_serio_open; serio->close = serport_serio_close; serio->port_data = serport; + serio->dev.parent = parent; serio_register_port(serport->serio); printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty, name)); @@ -173,6 +177,8 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u serio_unregister_port(serport->serio); serport->serio = NULL; + put_device(parent); + clear_bit(SERPORT_DEAD, &serport->flags); clear_bit(SERPORT_BUSY, &serport->flags); -- 1.7.1
| |