[alsa-devel] [PATCH 4/5] ASoC: fsl_ssi: use flat regmap cache

Maciej S. Szmigiero mail at maciej.szmigiero.name
Thu Sep 22 01:33:47 CEST 2016


On 22.09.2016 00:45, Marek Vasut wrote:
> On 09/22/2016 12:18 AM, Maciej S. Szmigiero wrote:
>> On 21.09.2016 21:32, Marek Vasut wrote:
>>> On 09/21/2016 06:28 PM, Maciej S. Szmigiero wrote:
>>>> Hi Marek,
>>>
>>> Hi!
>>>
>>>> On 19.09.2016 21:30, Marek Vasut wrote:
>> (..)
>>>>> The RB-tree regmap cache needs to allocate new space on first
>>>>> writes.
>>>>
>>>> That's why SSI driver had .num_reg_defaults_raw set in regmap config.
>>>> With this set and .reg_defaults_raw unset regcache_hw_init() will read
>>>> existing register content which then will be used to populate cache
>>>> (and so allocate RB tree nodes) at regcache initialization time.
>>>
>>> OK
>>>
>>>> This means that allocation of new cache RB tree nodes should never happen
>>>> during actual write.
>>>> If you get a warning that it happened then maybe there is a write to
>>>> some register not covered by .num_reg_defaults_raw - this should be
>>>> fixed.
>>>
>>> I might be blind, but I really don't see that. I just discussed it with
>>> Mark and he thinks the same. I will revisit this one more time.
>>
>> Maybe it would be possible to get a backtrace when that warning was
>> generated so we know which register write or update triggers new cache
>> allocation?
> 
> See patch 5/5 .

In you patch 5/5 there is backtrace with flat cache, but I meant a
backtrace with original RB tree cache code when warning about allocation
being done in atomic context was generated.

Maciej



More information about the Alsa-devel mailing list