On 25-06-18, 11:11, Srinivas Kandagatla wrote: > > > +struct slim_stream_runtime *slim_stream_allocate(struct slim_device *dev, > > > + const char *name) > > > +{ > > > + struct slim_stream_runtime *rt; > > > + unsigned long flags; > > > + > > > + rt = kzalloc(sizeof(*rt), GFP_KERNEL); > > > + if (!rt) > > > + return ERR_PTR(-ENOMEM); > > > + > > > + rt->name = kasprintf(GFP_KERNEL, "slim-%s", name); > > > + if (!rt->name) { > > > + kfree(rt); > > > + return ERR_PTR(-ENOMEM); > > > + } > > > + > > > + rt->dev = dev; > > > + rt->state = SLIM_STREAM_STATE_ALLOCATED; > > > + spin_lock_irqsave(&dev->stream_list_lock, flags); > > > + list_add_tail(&rt->node, &dev->stream_list); > > > + spin_unlock_irqrestore(&dev->stream_list_lock, flags); > > > > Any reason for _irqsave variant? Do you expect stream APIs to be called > > from ISR?We can move to non irqsave variant here, as i do not see a case > > where > this list would be interrupted from irq context. That's interesting can you please describe how? Also, won't it be modified from bottom half... > > > +/* > > > + * slim_stream_enable() - Enable a prepared SLIMbus Stream > > > > Do you want to check if it is already prepared ..? > Yep, I think most of the code needs similar state machine check, I will add > this in next version. so if you are tying to snd stream states then I don't think you need a state machine here. ALSA already does that for you so you can skip it :D -- ~Vinod _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel