Re: [PATCH 1/3] SLIMbus: Device management on SLIMbus

From: Mark Brown
Date: Wed Jun 17 2015 - 07:45:25 EST


On Tue, Jun 16, 2015 at 09:22:31AM -0600, Sagar Dharia wrote:
> On 6/15/2015 4:54 AM, Mark Brown wrote:
> >On Sat, Jun 13, 2015 at 11:49:16PM -0600, Sagar Dharia wrote:

> >>+void slim_ctrl_add_boarddevs(struct slim_controller *ctrl)
> >>+{

> >Why are these operations split?

> Some slaves may choose to do expensive operations in their probes (or wait
> for logical address assignment). That will delay/block controller
> registration and further HW initialization of the controller.
> I did not see any downside/side-effect in splitting them. I am open however
> to have them combined if that's the preferred way.

How does this resolve the issue? As far as I can see it just shuffles
it around so any delay happens later (and possibly not at a convenient
time), possibly not helping if there's multiple controllers. If devices
are doing excessively expensive things in their probe that seems like
something that we should fix in the drivers. For LA assignment
shouldn't we be addressing that by having a callback when the LA is
assigned? That will avoid single threading effects and is more like the
pattern for other buses. Slimbus isn't particularly unique in this
regard.

Greg, the LA assignment thing here is an example of the issue is an
example of the pattern I raised a while ago (but never got round to
coding up handling of) where we have devices on an enumerable bus with
static registrations. LA assignment is the end of the hotplug process
for a Slimbus device but most devices will need something doing to power
them up so they enumerate.

Attachment: signature.asc
Description: Digital signature