Hi Ohad, > > On Thu, May 1, 2014 at 3:34 AM, Suman Anna <s-anna@xxxxxx> wrote: >> 2. The of_hwspin_lock_simple_xlate() is a simple default >> translator function for hwspinlock provider implementations >> that use a single cell number for requesting a specific lock >> (relatively indexed) within a hwlock bank. > > Do we have a use case today that require the xlate() method? > > If not, let's remove it as we could always add it back if some new > hardware shows up that needs it. The xlate() method is to support the phandle + args specifier way of requesting hwlocks, platform implementations are free to implement their own xlate functions, but the above supports the simplest case of controller + relative lock index within controller. > > As long as the dt data is unchanged, we should generally only add > kernel code that we really need. > >> 3. The of_hwspin_lock_request_specific() API can be used by >> hwspinlock clients to request a specific lock using the >> phandle + args specifier. This function relies on the >> implementation providing back a relative hwlock id within >> the bank from the args specifier. > > It seems to me we can just introduce a of_hwspin_lock_get_id() method > which will provide the global lock id to dt users, with which they > could just invoke the existing hwspin_lock_request_specific(). This > way we will have more common code between dt users and users who get > the lock id from a remote processor. This function again is to support the phandle + args specifier way of requesting hwlocks, the hwspin_lock_request_specific() is invoked internally within this function, so we are still reusing the actual request code other than handling the DT parsing portion. If we go back to using global locks in client hwlocks property, we don't need a of_hwspin_lock_get_id(), the same can be achieved using the existing DT function, of_property_read_u32_index(). regards Suman -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html