linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] Introduce atomic MMIO register modify
@ 2013-12-10 14:41 Ezequiel Garcia
  2013-12-10 14:41 ` [PATCH v5 1/3] ARM: Introduce atomic MMIO modify Ezequiel Garcia
                   ` (3 more replies)
  0 siblings, 4 replies; 25+ messages in thread
From: Ezequiel Garcia @ 2013-12-10 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

After this patchset stalled for several months, I'm picking where
we left. The last conclusion [1] was that instead of doing the arch-generic
from scratch, we'd start by implementing the API in ARM only.

In other words, this is basically a resend of v3, with some of the typos fixed
and using raw spinlocks.

[1] http://www.spinics.net/lists/arm-kernel/msg271773.html

The patch that adds the atomic-modify API is PATCH 1. The other two are sent
as usage examples.

Changes from v4:
* Returned to the ARM-specific implementation for this API. The arch-generic
  can be added later.

Changes from v3:
* Implemented an arch-generic atomic_io_modify(), as suggested by Baruch
  and Catalin.

* Add an ARM-specific variant, using relaxed R/W as Will suggested.

* Replaced spin_locks by raw_spin_locks, to protect the registers
  even on RT.

* Fixed two stupid typos.

Changes from v2:
* As suggested by Will Deacon, dropped the iowmb() barrier
  and use relaxed variants instead. See Will's explanation for
  details: http://www.spinics.net/lists/arm-kernel/msg268775.html

* Use spin_{}_irqsave/restore to allow irq-context usage
  also suggested by Will Deacon.

* Re-worked the API semantics as proposed by Russell King.

Changes from v1:
* Added an io barrier iowmb() as suggested by Will Deacon,
  to ensure the writel gets completed before the spin_unlock().

If nobody has objections, I'll add patch 1/3 to ARM's tracking system
as usual.

Thanks!

Ezequiel Garcia (3):
  ARM: Introduce atomic MMIO modify
  clocksource: orion: Use atomic access for shared registers
  watchdog: orion: Use atomic access for shared registers

 arch/arm/include/asm/io.h        |  6 ++++++
 arch/arm/kernel/io.c             | 35 +++++++++++++++++++++++++++++++++++
 drivers/clocksource/time-orion.c | 28 ++++++++++------------------
 drivers/watchdog/orion_wdt.c     |  8 ++------
 4 files changed, 53 insertions(+), 24 deletions(-)

-- 
1.8.1.5

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2014-01-15 17:15 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-10 14:41 [PATCH v5 0/3] Introduce atomic MMIO register modify Ezequiel Garcia
2013-12-10 14:41 ` [PATCH v5 1/3] ARM: Introduce atomic MMIO modify Ezequiel Garcia
2013-12-10 16:49   ` Mark Brown
2013-12-10 17:00     ` Russell King - ARM Linux
2013-12-10 17:09       ` Mark Brown
2013-12-11 20:49       ` Ezequiel Garcia
2013-12-12 13:58         ` Will Deacon
2013-12-12 14:02           ` Jason Cooper
2013-12-12 14:07             ` Will Deacon
2013-12-12 14:36               ` Jason Cooper
2013-12-12 15:05               ` Ezequiel Garcia
2014-01-02 11:30   ` Russell King - ARM Linux
2014-01-02 14:47     ` Jason Cooper
2014-01-02 14:58       ` Ezequiel Garcia
2014-01-12 14:52         ` Ezequiel Garcia
2014-01-13 13:58           ` Catalin Marinas
2014-01-13 14:02             ` Russell King - ARM Linux
2014-01-13 15:28               ` Will Deacon
2014-01-15 17:15               ` Jason Cooper
2013-12-10 14:41 ` [PATCH v5 2/3] clocksource: orion: Use atomic access for shared registers Ezequiel Garcia
2013-12-12 13:53   ` Jason Cooper
2013-12-10 14:41 ` [PATCH v5 3/3] watchdog: " Ezequiel Garcia
2013-12-12 13:53   ` Jason Cooper
2013-12-12 13:52 ` [PATCH v5 0/3] Introduce atomic MMIO register modify Jason Cooper
2013-12-12 15:07   ` Ezequiel Garcia

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).