On Sun, Feb 12, 2017 at 10:47 PM, Archit Taneja <architt@xxxxxxxxxxxxxx> wrote: > > > On 02/10/2017 12:35 AM, Rob Herring wrote: >> >> Many drivers have a common pattern of searching the OF graph for either an >> attached panel or bridge and then finding the DRM struct for the panel >> or bridge. Also, most drivers need to handle deferred probing when the >> DRM device is not yet instantiated. Create a common function, >> drm_of_find_panel_or_bridge, to find the connected node and the >> associated DRM panel or bridge device. >> >> Signed-off-by: Rob Herring <robh@xxxxxxxxxx> >> Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> >> --- >> v2: >> - Reworked code flow >> - Added note that at least one of panel or bridge must not be NULL. >> >> drivers/gpu/drm/drm_of.c | 52 >> ++++++++++++++++++++++++++++++++++++++++++++++++ >> include/drm/drm_of.h | 13 ++++++++++++ >> 2 files changed, 65 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c >> index 47848ed8ca48..86b8b959587a 100644 >> --- a/drivers/gpu/drm/drm_of.c >> +++ b/drivers/gpu/drm/drm_of.c >> @@ -3,7 +3,9 @@ >> #include <linux/list.h> >> #include <linux/of_graph.h> >> #include <drm/drmP.h> >> +#include <drm/drm_bridge.h> >> #include <drm/drm_crtc.h> >> +#include <drm/drm_panel.h> >> #include <drm/drm_of.h> >> >> static void drm_release_of(struct device *dev, void *data) >> @@ -207,3 +209,53 @@ int drm_of_encoder_active_endpoint(struct device_node >> *node, >> return -EINVAL; >> } >> EXPORT_SYMBOL_GPL(drm_of_encoder_active_endpoint); >> + >> +/* >> + * drm_of_find_panel_or_bridge - return connected panel or bridge device >> + * @np: device tree node containing encoder input ports > > > Should this be 'encoder output ports'? It's the encoder's output port(s) > that > contain the endpoint corresponding to the bridge/panel input port. Yes, indeed. Rob -- 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