Re: [PATCH v3] regmap: add iopoll-like atomic polling macro
From: Dmitry Osipenko
Date: Thu Jan 09 2020 - 08:57:59 EST
09.01.2020 10:24, Sameer Pujar ÐÐÑÐÑ:
>
> On 1/9/2020 11:30 AM, Dmitry Osipenko wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> 09.01.2020 08:09, Sameer Pujar ÐÐÑÐÑ:
>>> This patch adds a macro 'regmap_read_poll_timeout_atomic' that works
>>> similar to 'readx_poll_timeout_atomic' defined in linux/iopoll.h; This
>>> is atomic version of already available 'regmap_read_poll_timeout' macro.
>>>
>>> It should be noted that above atomic macro cannot be used by all
>>> regmaps.
>>> If the regmap is set up for atomic use (flat or no cache and MMIO) then
>>> only it can use.
>>>
>>> Signed-off-by: Sameer Pujar <spujar@xxxxxxxxxx>
>>> ---
>> Could you please explain what is the targeted use-case here?
>
> I was trying to use regmap_read_poll_timeout() to poll for status change
> of a register. This resulted in "BUG: scheduling while atomic". The
> callback function, in which I was trying to use the macro, runs in
> atomic context. Hence new atomic macro is added. I was checking ALSA
> playback/capture and trigger() callback had to monitor some register
> status.
>
> In general, the new macro can be used in atomic callbacks where regmap
> interface is used and polling is required.
>
You should send a full patchset because it may turn out that the patch
which makes use of the new feature isn't correct or maybe the new
feature isn't really needed.
If there was a previous discussion about the need for this change, then
you should provide a link to that discussion.
Please note that usually changes without a real use-case in kernel are
not getting picked up or they are getting removed later on if nobody
makes use of them, so I assume this is a kind of an RFC patch for now.