From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
To: Ernst Schwab <mail-3FdAPXqljGQisWB6T/0fQA@public.gmane.org>
Cc: David Brownell
<dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org,
spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
yi.li-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH 1/5] spi: spi_lock_bus and spi_unlock_bus
Date: Wed, 17 Feb 2010 07:12:02 -0700 [thread overview]
Message-ID: <fa686aa41002170612n6166f2a1i3876d554fc8aa79d@mail.gmail.com> (raw)
In-Reply-To: <fa686aa41002170530i2ae007c2ia4f2ad185dfd2713-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Wed, Feb 17, 2010 at 6:30 AM, Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> wrote:
> On Wed, Feb 17, 2010 at 12:35 AM, Ernst Schwab <mail-3FdAPXqljGQisWB6T/0fQA@public.gmane.org> wrote:
>> Grant Likely wrote:
>>
>>> It sounds like you're very worried about making changes to the core
>>> code,
>>
>> Maybe...
>>
>>> In fact, now that I've had an evening to think about it, the solution
>>> is even simpler than what I said earlier. It requires 3 things to be
>>> added to struct spi_master.
>>> - 1 Mutex
>>> - 1 spin lock
>>> - 1 flag.
>>
>>> The mutex protects spi_async, and provides sleeping "for free"
>>> The spinlock protects the atomic spi_sync call.
>>
>> Sound viable and good, but, in Documentation/spi/spi-summary we have:
>>
>> "
>> The basic I/O primitive is spi_async(). Async requests may be
>> issued in any context (irq handler, task, etc) and completion
>> is reported using a callback provided with the message.
>> After any detected error, the chip is deselected and processing
>> of that spi_message is aborted.
>> "
>>
>> Is this compatible with a Mutex protecting spi_async?
>> It seems to me, that spi_async must queue the SPI message
>> immediately and return. The queue is implemented in the SPI master driver. I
>> suppose that's why the blackfin bus locking pioneers chose to make the
>> change in the SPI master driver.
>
> No, sorry, I made a mistake and got the functions backwards when I was
> writing up my description. What I meant to say is:
>
> spi_sync() is protected by a mutex because it can sleep
> spi_async() needs to be protected with a flag and a spinlock because
> it can be called atomically and must not sleep
On that note, apparently I find sync/async easy to mix up. I wonder
if other people find the same and if it would be a good idea to
migrate to clearer names. Perhaps spi_submit() and
spi_submit_atomic().
g.
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
prev parent reply other threads:[~2010-02-17 14:12 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-16 19:44 [PATCH 0/5] spi/mmc_spi: SPI bus locking to use mmc_spi together with other SPI devices Ernst Schwab
[not found] ` <20100216204450.e043eed8.eschwab-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org>
2010-02-16 19:57 ` [PATCH 1/5] spi: spi_lock_bus and spi_unlock_bus Ernst Schwab
[not found] ` <20100216205720.ebe949a1.eschwab-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org>
2010-02-16 20:43 ` Grant Likely
[not found] ` <fa686aa41002161243y6e24e439yff54a28cbe295de3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-16 21:16 ` Ned Forrester
[not found] ` <4B7B0B1C.8050407-/d+BM93fTQY@public.gmane.org>
2010-02-16 23:23 ` Grant Likely
2010-02-17 0:07 ` Mike Frysinger
2010-02-17 0:21 ` Ernst Schwab
2010-02-17 0:40 ` Mike Frysinger
[not found] ` <8bd0f97a1002161607m3c748ccegaffb83c42667287a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 3:48 ` Grant Likely
[not found] ` <fa686aa41002161948o31a48fc9kac263b0ac34f1a8d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 4:34 ` Mike Frysinger
[not found] ` <8bd0f97a1002162034r2d3e397eq12ae0f0df1ae2adb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 4:47 ` Grant Likely
[not found] ` <fa686aa41002162047h4b4c9cdam2133baf3b7d0e27c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 5:04 ` Mike Frysinger
[not found] ` <8bd0f97a1002162104u5291da69gbff20837f78c9cdf-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 5:08 ` Grant Likely
2010-02-17 4:37 ` Grant Likely
2010-02-17 0:16 ` Ernst Schwab
2010-02-17 4:32 ` Grant Likely
2010-02-17 7:35 ` Ernst Schwab
2010-02-17 13:30 ` Grant Likely
[not found] ` <fa686aa41002170530i2ae007c2ia4f2ad185dfd2713-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-17 14:12 ` Grant Likely [this message]
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=fa686aa41002170612n6166f2a1i3876d554fc8aa79d@mail.gmail.com \
--to=grant.likely-s3s/wqlpoipyb63q8fvjnq@public.gmane.org \
--cc=dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=mail-3FdAPXqljGQisWB6T/0fQA@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org \
--cc=yi.li-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).