On Friday 28 February 2014 04:39 AM, Arnd Bergmann wrote: > On Thursday 27 February 2014 16:17:49 Santosh Shilimkar wrote: >> + >> +/** >> + * of_dma_is_coherent - Check if device is coherent >> + * @np: device node >> + * >> + * It returns true if "dma-coherent" property was found >> + * for this device in DT. >> + */ >> +bool of_dma_is_coherent(struct device_node *np) >> +{ >> + struct device_node *node = np; >> + >> + while (node) { >> + if (of_property_read_bool(node, "dma-coherent")) { >> + of_node_put(node); >> + return true; >> + } >> + node = of_get_next_parent(node); >> + } >> + return false; >> +} >> +EXPORT_SYMBOL_GPL(of_dma_is_coherent); >> > > This won't work on architectures that are always coherent and > did not need 'dma-coherent' properties before, such as IBM > Power servers. > > That said, I think the property makes sense, and we already have > platforms using it (highbank is the one I'm aware of). > > We probably need ways to override this function in both ways: > "always coherent" (powerpc, x86), and "never coherent" (keystone > without LPAE) from platform code, and it would be nice to put > either option into DT in a global location as well. We may have > to go through a few iterations of this patch to get the best > algorithm, but I think the interface is good at least. > Probably we should discuss bit more next week at connect. The current 'dma-coherent' is a per device property. For arch's which are always coherent, the per device property doesn't make sense. BTW, the current users of this API is only ARM32 bit port and if this satisfies the ARM platforms, we should get this in kernel and then address other cases on need basis. Regards, Santosh -- 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