drm: bridge: dw_hdmi: Switch to of_graph_get_remote_node()
To reduce boilerplate, use of_graph_get_remote_node() helper instead of the hand-rolling code. Signed-off-by: Sui Jingfeng <sui.jingfeng@linux.dev> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20240316170513.1159724-1-sui.jingfeng@linux.dev Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240316170513.1159724-1-sui.jingfeng@linux.dev
This commit is contained in:
committed by
Neil Armstrong
parent
ba2d3e6709
commit
d576e5e235
@@ -3291,40 +3291,17 @@ static void dw_hdmi_init_hw(struct dw_hdmi *hdmi)
|
||||
|
||||
static int dw_hdmi_parse_dt(struct dw_hdmi *hdmi)
|
||||
{
|
||||
struct device_node *endpoint;
|
||||
struct device_node *remote;
|
||||
|
||||
if (!hdmi->plat_data->output_port)
|
||||
return 0;
|
||||
|
||||
endpoint = of_graph_get_endpoint_by_regs(hdmi->dev->of_node,
|
||||
hdmi->plat_data->output_port,
|
||||
-1);
|
||||
if (!endpoint) {
|
||||
/*
|
||||
* On platforms whose bindings don't make the output port
|
||||
* mandatory (such as Rockchip) the plat_data->output_port
|
||||
* field isn't set, so it's safe to make this a fatal error.
|
||||
*/
|
||||
dev_err(hdmi->dev, "Missing endpoint in port@%u\n",
|
||||
hdmi->plat_data->output_port);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
remote = of_graph_get_remote_port_parent(endpoint);
|
||||
of_node_put(endpoint);
|
||||
if (!remote) {
|
||||
dev_err(hdmi->dev, "Endpoint in port@%u unconnected\n",
|
||||
hdmi->plat_data->output_port);
|
||||
remote = of_graph_get_remote_node(hdmi->dev->of_node,
|
||||
hdmi->plat_data->output_port,
|
||||
-1);
|
||||
if (!remote)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (!of_device_is_available(remote)) {
|
||||
dev_err(hdmi->dev, "port@%u remote device is disabled\n",
|
||||
hdmi->plat_data->output_port);
|
||||
of_node_put(remote);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
hdmi->next_bridge = of_drm_find_bridge(remote);
|
||||
of_node_put(remote);
|
||||
|
||||
Reference in New Issue
Block a user