Hello, On Thu, Oct 7, 2010 at 8:36 PM, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > 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? It won't work, as we don't set psm->ports[i].serio before ps2mult_serio_start() > > 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; > > -- With best wishes Dmitry -- 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