Prev: [PATCH 1/2] tty_io: add an API to get device corresponding to tty_struct
Next: pcmcia: pd6729: call disable_pci_device() if pci_probe() failed
From: Dmitry Eremin-Solenikov on 7 Aug 2010 06:00 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(a)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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |