From: Peter Hurley <peter@hurleysoftware.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
"Matwey V. Kornilov" <matwey@sai.msu.ru>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
jslaby@suse.com,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Subject: Re: [PATCH v3 2/5] tty: Introduce SER_RS485_SOFTWARE read-only flag for struct serial_rs485
Date: Thu, 12 Nov 2015 20:55:46 -0500 [thread overview]
Message-ID: <56454322.9050803@hurleysoftware.com> (raw)
In-Reply-To: <CAHp75VcoJh51ai_35vB_V7exyFwRT0NjKcs=a0TAdaU8+FuzwA@mail.gmail.com>
On 11/12/2015 08:26 PM, Andy Shevchenko wrote:
> On Fri, Nov 13, 2015 at 3:11 AM, Peter Hurley <peter@hurleysoftware.com> wrote:
>> On 11/12/2015 07:41 PM, Andy Shevchenko wrote:
>>> On Thu, Nov 12, 2015 at 10:22 PM, Peter Hurley <peter@hurleysoftware.com> wrote:
>>>> On 11/12/2015 02:57 PM, One Thousand Gnomes wrote:
>>>
>>>> An illustrative (kernel-space) example is the mess that is dmaengine_pause().
>>>> Some DMA implementations provide the means to stop and restart DMA without
>>>> losing data and some DMA implementations do not. Unfortunately, some
>>>> advertise they support dmaengine_pause() but only for lossy uses like audio.
>>>> Because the api hides this, the query interface for pause support is
>>>> useless.
>>>
>>> The DMA pause() call means only pause with possibility to resume.
>>> There is a resume() call as well. Any driver which treats pause() as a
>>> complete stop is buggy driver and should be fixed.
>>
>> How about pause _without_ the possibility to resume?
>>
>> https://groups.google.com/d/msg/linux.kernel/Abe0hfGcgsw/H0se55wC558J
>
> Briefly what I got from the thread that Russell shows similar view on
> the API, so that's why he was objecting to add pause/resume calls for
> a specific hardware.
Not quite.
That dmaengine driver (omap-dma) advertises that it supports pause() via
dma_get_slave_caps(). And if you call it with a cyclic channel it will pause.
However, if you call dmaengine_pause() with a slave channel it returns an error
*because the hardware can't actually meet the criteria for dmaengine_pause()*
which is pause()/resume() without data loss.
IOW, there is no method of determining a priori if dmaengine_pause() will
categorically fail for a given transfer type.
Regards,
Peter Hurley
next prev parent reply other threads:[~2015-11-13 1:55 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-12 14:33 [PATCH v3 0/5] tty: Introduce software RS485 direction control support Matwey V. Kornilov
2015-11-12 14:33 ` [PATCH v3 1/5] tty: Introduce UART_CAP_HW485 Matwey V. Kornilov
2015-11-12 14:33 ` [PATCH v3 2/5] tty: Introduce SER_RS485_SOFTWARE read-only flag for struct serial_rs485 Matwey V. Kornilov
2015-11-12 19:57 ` One Thousand Gnomes
2015-11-12 20:22 ` Peter Hurley
2015-11-13 0:41 ` Andy Shevchenko
2015-11-13 1:11 ` Peter Hurley
2015-11-13 1:26 ` Andy Shevchenko
2015-11-13 1:55 ` Peter Hurley [this message]
2015-11-14 15:25 ` One Thousand Gnomes
2015-11-16 19:18 ` Peter Hurley
2015-11-17 8:20 ` Matwey V. Kornilov
2015-11-18 18:33 ` Peter Hurley
2015-11-18 19:39 ` Matwey V. Kornilov
2015-11-18 19:49 ` Matwey V. Kornilov
2015-12-02 23:20 ` Peter Hurley
2015-12-03 5:50 ` Matwey V. Kornilov
2015-12-03 14:41 ` Peter Hurley
2015-12-03 17:29 ` Matwey V. Kornilov
2015-12-03 19:45 ` Peter Hurley
2015-12-04 17:50 ` Matwey V. Kornilov
2015-11-13 20:03 ` Matwey V. Kornilov
2015-11-12 14:33 ` [PATCH v3 3/5] tty: Implement default fallback serial8250_rs485_config Matwey V. Kornilov
2015-11-12 14:33 ` [PATCH v3 4/5] tty: Move serial8250_stop_rx in front of serial8250_start_tx Matwey V. Kornilov
2015-11-12 14:33 ` [PATCH v3 5/5] tty: Add software emulated RS485 support for 8250 Matwey V. Kornilov
2015-11-12 14:48 ` Andy Shevchenko
2015-11-17 9:24 ` Uwe Kleine-König
2015-11-17 10:25 ` Matwey V. Kornilov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56454322.9050803@hurleysoftware.com \
--to=peter@hurleysoftware.com \
--cc=andy.shevchenko@gmail.com \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=matwey@sai.msu.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.