On Tue, Jun 16, 2015 at 09:22:31AM -0600, Sagar Dharia wrote:I agree that using the 'device_up' callback (it's called when the device has LA assignment) will make sure slaves can keep their probes non-blocking.
On 6/15/2015 4:54 AM, Mark Brown wrote:How does this resolve the issue? As far as I can see it just shuffles
On Sat, Jun 13, 2015 at 11:49:16PM -0600, Sagar Dharia wrote:Some slaves may choose to do expensive operations in their probes (or wait
+void slim_ctrl_add_boarddevs(struct slim_controller *ctrl)Why are these operations split?
+{
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.
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.