[alsa-devel] [PATCH] ASoC: mediatek: Use current HW pointer for pointer callback

Takashi Iwai tiwai at suse.de
Thu Dec 3 16:33:56 CET 2015


On Thu, 03 Dec 2015 15:56:12 +0100,
Mark Brown wrote:
> 
> On Thu, Dec 03, 2015 at 12:07:26PM +0100, Takashi Iwai wrote:
> > Mark Brown wrote:
> > > On Thu, Dec 03, 2015 at 10:41:38AM +0100, Takashi Iwai wrote:
> 
> > > > While reading this patch, I wondered how regmap can be used safely in
> > > > an irq-disabled context.  Mark, do we have any API for that?
> 
> > > We can use user supplied locks or spin_lock_irqsave().
> 
> > I meant how to guarantee to make regmap_read() working in an already
> > spin-locked context, typically in an irq handler?  regmap_read()
> > involves with the regcache and it may invoke kmalloc().
> 
> I know that's what you meant - that should be done by preallocating the
> cache (which can be done with defaults) and providing your own lock
> if there's a spinlock already held (since we use _irqsave() which IIRC
> isn't nestable).

The extra lock should be fine unless any mutex is involved silently in
regmap code.  But preallocation sounds not so intuitive.

> We can also use GFP_ATOMIC for some of the allocations
> in reasonable use cases but it's not in general supported.

Yeah, but we have already map->alloc_flags, so we can use it
appropriately as a fallback?


Takashi


More information about the Alsa-devel mailing list