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