[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180918090002.2e4012e6@bbrezillon>
Date: Tue, 18 Sep 2018 09:00:02 +0200
From: Boris Brezillon <boris.brezillon@...tlin.com>
To: vitor <Vitor.Soares@...opsys.com>
Cc: Wolfram Sang <wsa@...-dreams.de>, <linux-i2c@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Arnd Bergmann <arnd@...db.de>,
Jonathan Corbet <corbet@....net>, <linux-doc@...r.kernel.org>,
Przemyslaw Sroka <psroka@...ence.com>,
Arkadiusz Golec <agolec@...ence.com>,
Alan Douglas <adouglas@...ence.com>,
Bartosz Folta <bfolta@...ence.com>,
Damian Kos <dkos@...ence.com>,
"Alicja Jurasik-Urbaniak" <alicja@...ence.com>,
Cyprian Wronka <cwronka@...ence.com>,
Suresh Punnoose <sureshp@...ence.com>,
"Rafal Ciepiela" <rafalc@...ence.com>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Nishanth Menon <nm@...com>, Rob Herring <robh+dt@...nel.org>,
Pawel Moll <pawel.moll@....com>,
Mark Rutland <mark.rutland@....com>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
"Kumar Gala" <galak@...eaurora.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>,
Geert Uytterhoeven <geert@...ux-m68k.org>,
Linus Walleij <linus.walleij@...aro.org>,
Xiang Lin <Xiang.Lin@...aptics.com>,
<linux-gpio@...r.kernel.org>, Sekhar Nori <nsekhar@...com>,
Przemyslaw Gaj <pgaj@...ence.com>,
Peter Rosin <peda@...ntia.se>,
Mike Shettel <mshettel@...eaurora.org>,
Stephen Boyd <swboyd@...omium.org>
Subject: Re: [PATCH v7 01/10] i3c: Add core I3C infrastructure
Hi Vitor,
Sorry for the late reply, I was not at the office last week.
On Tue, 11 Sep 2018 11:04:07 +0100
vitor <Vitor.Soares@...opsys.com> wrote:
> Hi Boris,
>
> On 05-09-2018 16:40, Boris Brezillon wrote:
> > +i3c_master_register_new_i3c_devs(struct i3c_master_controller *master)
> > +{
> > + struct i3c_dev_desc *desc;
> > + int ret;
> > +
> > + if (!master->init_done)
> > + return;
> > +
> If you have a hot-join and call i3c_master_do_daa this function will
> return without create the i3c_device.
Hm, you mean if hot-join happens when the I3C master is not yet
registered? That shouldn't be a problem since all devices will be
registered at the end of i3c_master_register(). Am I missing something?
Is this a problem you actually face or just something you found out
doing code inspection?
>
> > + i3c_bus_for_each_i3cdev(master->bus, desc) {
> > + if (desc->dev || !desc->info.dyn_addr || desc == master->this)
> > + continue;
> > +
> > + desc->dev = kzalloc(sizeof(*desc->dev), GFP_KERNEL);
> > + if (!desc->dev)
> > + continue;
> > +
> > + desc->dev->bus = master->bus;
> > + desc->dev->desc = desc;
> > + desc->dev->dev.parent = &master->bus->dev;
> > + desc->dev->dev.type = &i3c_device_type;
> > + desc->dev->dev.bus = &i3c_bus_type;
> > + desc->dev->dev.release = i3c_device_release;
> > + dev_set_name(&desc->dev->dev, "%d-%llx", master->bus->id,
> > + desc->info.pid);
> > +
> > + if (desc->boardinfo)
> > + desc->dev->dev.of_node = desc->boardinfo->of_node;
> > +
> > + ret = device_register(&desc->dev->dev);
> > + if (ret)
> > + dev_err(master->parent,
> > + "Failed to add I3C device (err = %d)\n", ret);
> > + }
> > +}
Regards,
Boris
Powered by blists - more mailing lists