lkml.org 
[lkml]   [2020]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v6 11/16] dmaengine: tegra-apb: Keep clock enabled only during of DMA transfer
    From
    Date
    31.01.2020 12:02, Jon Hunter пишет:
    >
    > On 30/01/2020 20:04, Dmitry Osipenko wrote:
    >
    > ...
    >
    >>>> The tegra_dma_stop() should put RPM anyways, which is missed in yours
    >>>> sample. Please see handle_continuous_head_request().
    >>>
    >>> Yes and that is deliberate. The cyclic transfers the transfers *should*
    >>> not stop until terminate_all is called. The tegra_dma_stop in
    >>> handle_continuous_head_request() is an error condition and so I am not
    >>> sure it is actually necessary to call pm_runtime_put() here.
    >>
    >> But then tegra_dma_stop() shouldn't unset the "busy" mark.
    >
    > True.
    >
    >>>> I'm also finding the explicit get/put a bit easier to follow in the
    >>>> code, don't you think so?
    >>>
    >>> I can see that, but I was thinking that in the case of cyclic transfers,
    >>> it should only really be necessary to call the get/put at the beginning
    >>> and end. So in my mind there should only be two exit points which are
    >>> the ISR handler for SG and terminate_all for SG and cyclic.
    >>
    >> Alright, I'll update this patch.
    >
    > Hmmm ... I am wondering if we should not mess with that and leave how
    > you have it.

    I took another look and seems my current v6 should be more correct because:

    1. If "busy" is unset in tegra_dma_stop(), then the RPM should be put
    there since tegra_dma_terminate_all() won't put RPM in this case:

    if (!tdc->busy)
    goto skip_dma_stop;

    2. We can't move the "busy" unsetting into the terminate because then
    tegra_dma_stop() will be invoked twice. Although, one option could be to
    remove the tegra_dma_stop() from the error paths of
    handle_continuous_head_request(), but I'm not sure that this is correct
    to do.

    \
     
     \ /
      Last update: 2020-01-31 15:24    [W:3.294 / U:0.612 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site