From mboxrd@z Thu Jan 1 00:00:00 1970 From: tony@atomide.com (Tony Lindgren) Date: Wed, 21 Sep 2011 09:14:06 -0700 Subject: [PATCH 04/10] hwspinlock/core/omap: fix id issues on multiple hwspinlock devices In-Reply-To: <1315846025-11453-5-git-send-email-ohad@wizery.com> References: <1315846025-11453-1-git-send-email-ohad@wizery.com> <1315846025-11453-5-git-send-email-ohad@wizery.com> Message-ID: <20110921161406.GF2937@atomide.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org * Ohad Ben-Cohen [110912 09:14]: > hwspinlock devices provide system-wide hardware locks that are used > by remote processors that have no other way to achieve synchronization. > > For that to work, each physical lock must have a system-wide unique id > number that all processors are familiar with, otherwise they can't > possibly assume they're using the same hardware lock. > > Usually SoCs have a single hwspinlock device, which provides several > hwspinlocks, and in this case, they can be trivially numbered 0 to > (num-of-locks - 1). > > In case boards have several hwspinlocks devices (each of which > providing numerous hardware spinlocks) a different base id should be > used for each hwspinlock device (they can't all use 0 as a starting > id!). > > While this is certainly not common, it's just plain wrong to just > silently use 0 as a base id whenever the hwspinlock driver is probed. > > This patch provides a hwspinlock_pdata structure, that boards can use > to set a different base id for each of the hwspinlock devices they may > have, and demonstrates how to use it with the omap hwspinlock driver > (ultimately it will be DT which will supply this base_id information). > > While we're at it, make sure the hwspinlock core prints an explicit > error message in case an hwspinlock is registered with an id number > that already exists; this will help users catch such base id issues. > > Reported-by: Arnd Bergmann > Signed-off-by: Ohad Ben-Cohen Acked-by: Tony Lindgren