Messages in this thread | | | From | Linus Walleij <> | Date | Thu, 12 Oct 2017 10:08:10 +0200 | Subject | Re: [PATCH V8 00/14] mmc: Add Command Queue support |
| |
On Wed, Oct 11, 2017 at 3:58 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> Actually completing the request in the ->done callback, may still be > possible, because in principle it only needs to inform the other > prepared request that it may start, before it continues to post > process/completes the current one.
I try to do that in this patch: https://marc.info/?l=linux-mmc&m=148665460925587&w=2
I'm trying to rebase this work now.
> However, by looking at for example how mmci.c works, it actually holds > its spinlock while it calls mmc_request_done(). The same spinlock is > taken in the ->request() function, but not in the ->post_req() > function. In other words, completing the request in the ->done() > callback, would make mmci to keep the spinlock held throughout the > post processing cycle, which then prevents the next request from being > started.
It seems my patch would not deliver in some drivers until we look into the locking semantics in the drivers.
Yours, Linus Walleij
| |