On 05/28/2015 03:39 PM, Noralf Trønnes wrote: > > Den 28.05.2015 23:28, skrev Stephen Warren: >> On 05/28/2015 12:33 PM, Eric Anholt wrote: >>> This gives us a function for making mailbox property channel requests >>> of the firmware, which is most notable in that it will let us get and >>> set clock rates. > ... >>> +int rpi_firmware_property_list(struct device_node *of_node, >>> + void *data, size_t tag_size) >>> +{ >>> + struct platform_device *pdev = of_find_device_by_node(of_node); >> I would expect the of_node -> pdev mapping to happen at client device >> probe time. Simplest for this driver would be if the >> client-probe-time-mapping function returned the "struct rpi_firmware" >> and the client passed that to this function. > > What if the firmware driver/device is removed or reloaded? > In that case the client has an invalid pointer. It wouldn't know about > the change. A provider can't be removed if it has clients. So, you'd have to remove all clients first, then remove the provider. This may require adding some code to increment/decrement the module use count when clients look up the provider and are themselves removed. -- 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