Messages in this thread | | | Date | Mon, 25 Jun 2018 21:51:56 +0530 | From | Vinod <> | Subject | Re: [PATCH 1/2] slimbus: stream: add stream support |
| |
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
| |