Re: [PATCH v2 0/3] Introduce the request_atomic() for the host

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 17/03/20 3:49 pm, Baolin Wang wrote:
> On Tue, Mar 17, 2020 at 9:25 PM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>>
>> On 17/03/20 12:14 pm, Baolin Wang wrote:
>>> This patch set introduces a new request_atomic() interface for the
>>> MMC host controller, which is used to submit a request to host in
>>> the atomic context, such as in the irq hard handler, to reduce the
>>> request latency.
>>>
>>> Any comments are welcome. Thanks.
>>>
>>> Note: Adrian pointed out that it is not good if moving the polling of
>>> inhibit bits in sdhci_send_command() into the interrupt context, but
>>> now I have not found a better way to address Adrian's concern. Moveover
>>> this is an unusual abnormal case and the original code has the same
>>> problem, so I plan to create another patch set to talk about and fix
>>> this issue.
>>
>> I tend to think the API requires the possibility for host controllers to
>> return "busy", so that should be sorted out first.
> 
> If request_atomic() can return 'busy', the HSQ need queue a work to
> dispatch this request to host again?

Sounds reasonable

> 
> I am thinking if I can introduce a new flag to avoid polling the
> status before sending commands, cause from the datasheet, I did not
> see we should need do this if the command complete and transfer
> complete interrupts are processed normally. At least on my platfrom, I
> did not see the inhibit bits are set. If we meet this issue, I think
> some abormal things are happened, we should give out errors. How do
> you think?

For the atomic path, some kind of warning would be ok.

> 
>>>
>>> Changes from v1:
>>>  - Re-split the changes to make them more clear suggested by Ulf.
>>>  - Factor out the auto CMD23 checking into a separate function.
>>>
>>> Baolin Wang (3):
>>>   mmc: host: Introduce the request_atomic() for the host
>>>   mmc: host: sdhci: Implement the request_atomic() API
>>>   mmc: host: sdhci-sprd: Implement the request_atomic() API
>>>
>>>  drivers/mmc/host/mmc_hsq.c    |  5 ++++-
>>>  drivers/mmc/host/sdhci-sprd.c | 23 ++++++++++++++++++++---
>>>  drivers/mmc/host/sdhci.c      | 27 +++++++++++++++++++--------
>>>  drivers/mmc/host/sdhci.h      |  1 +
>>>  include/linux/mmc/host.h      |  3 +++
>>>  5 files changed, 47 insertions(+), 12 deletions(-)
>>>
>>
> 
> 




[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux