On Thu, Oct 07, 2010 at 07:19:57PM +0400, Dmitry Eremin-Solenikov wrote: > Hello, > > On Thu, Sep 30, 2010 at 10:25 AM, Dmitry Torokhov > <dmitry.torokhov@xxxxxxxxx> wrote: > > On Wed, Sep 29, 2010 at 04:45:53PM +0400, Dmitry Eremin-Solenikov wrote: > >> On Thu, Sep 23, 2010 at 8:44 PM, Dmitry Eremin-Solenikov > >> <dbaryshkov@xxxxxxxxx> wrote: > >> > PS2Mult is a simple serial protocol used for multiplexing several PS/2 streams > >> > into one serial data stream. It's used e.g. on TQM85xx serie of boards. > >> > > >> > Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@xxxxxxxxx> > >> > --- > >> > > >> > It actually depends on "serio: multiple children" patch. I'm not resending it > >> > as you were the originator of the latest version of the patch. > >> > >> So, what about this version of patch? > >> > > > > Looks better but I think you also need ->start() to make sure you do not > > try to deliver events too early. Does the following still work for you? > > Sorry for the delay. Crashes w/o the attached patch. > Ah, I see, however what I actually wanted is to create ports before hand and handle any errors that might arise and then enable the device and register child ports. If you apply the patch below instead of yours does it still work? Thanks. -- Dmitry Input: ps2mult - don't register ports twice Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx> --- drivers/input/serio/ps2mult.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/input/serio/ps2mult.c b/drivers/input/serio/ps2mult.c index 3664398..52b58de 100644 --- a/drivers/input/serio/ps2mult.c +++ b/drivers/input/serio/ps2mult.c @@ -144,9 +144,6 @@ static int ps2mult_create_port(struct ps2mult *psm, int i) serio->parent = psm->mx_serio; serio->port_data = &psm->ports[i]; - serio_register_port(serio); - dev_info(&serio->dev, "%s port at %s\n", serio->name, mx_serio->phys); - return 0; } @@ -196,8 +193,12 @@ static int ps2mult_connect(struct serio *serio, struct serio_driver *drv) ps2mult_reset(psm); - for (i = 0; i < PS2MULT_NUM_PORTS; i++) - serio_register_port(psm->ports[i].serio); + for (i = 0; i < PS2MULT_NUM_PORTS; i++) { + struct serio *s = psm->ports[i].serio; + + dev_info(&serio->dev, "%s port at %s\n", s->name, serio->phys); + serio_register_port(s); + } return 0; -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html